aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2019-03-01 17:14:22 +0100
committerHarald Welte <laforge@gnumonks.org>2019-03-19 13:29:10 +0000
commitcf5d0c7f636e7cfb9d5deb37a7734b11b5efb5bc (patch)
tree96f18a321ade4eb0b89d4f13ead52bfa42447640 /tests
parent67e39c87a30524d523eca2d01926f01bafd3d4e3 (diff)
codec_pref: fix special handling for AMR rate configuration (S15-S0)
When match_codec_pref() is called and the codec selections from the ASSIGNMENT COMMAND are matched against the interal capabilities, the configurations are checked one by one. When a match is found that match is returned. However, the implementation currently does not check the AMR S15-S0 bits when the actual matching happens. This is done afterwards in case AMR gets picked. Unfortunately if the MSC implementation is not obeying the settings the MSC has previously communicated in the L3 COMPL message we may end up with an S15-S0 configuration that has all rate selection (which eventually end up as active set in RSL) bits set to zero. This is an invalid configuration and should be prevented. Also the handling of the S15-S0 bits should happen as part of the matching so that there is a chance to try the nect codec in the list if AMR is unuseable. Also S15-S0 has one special setting "Config-NB-Code = 1" (S1 = 1). When this bit is set, the four (in HR only three) most common rates are selected into the active set. If there are also other S-bits set besides S1 we should prefer S1 and discard the other bits. - Perform handling of S15-S0 while matching - If S1 is set, prefer this setting and discard all other settings Change-Id: Ie52376b51fe07ed07056e8df2e9557293ff67a78 Related: SYS#4470
Diffstat (limited to 'tests')
-rw-r--r--tests/codec_pref/codec_pref_test.ok12
1 files changed, 6 insertions, 6 deletions
diff --git a/tests/codec_pref/codec_pref_test.ok b/tests/codec_pref/codec_pref_test.ok
index 16d86ba67..11b9ede1d 100644
--- a/tests/codec_pref/codec_pref_test.ok
+++ b/tests/codec_pref/codec_pref_test.ok
@@ -54,7 +54,7 @@ Determining channel mode and rate:
codec->hr=0
codec->efr=0
codec->amr=1
- * result: rc=0, full_rate=1, s15_s0=57ff, chan_mode=SPEECH_AMR
+ * result: rc=0, full_rate=1, s15_s0=5702, chan_mode=SPEECH_AMR
Determining channel mode and rate:
* MS: speech codec list (1 items):
@@ -68,7 +68,7 @@ Determining channel mode and rate:
codec->hr=0
codec->efr=0
codec->amr=1
- * result: rc=0, full_rate=0, s15_s0=073f, chan_mode=SPEECH_AMR
+ * result: rc=0, full_rate=0, s15_s0=0702, chan_mode=SPEECH_AMR
Determining channel mode and rate:
* MS: speech codec list (2 items):
@@ -241,7 +241,7 @@ Determining channel mode and rate:
codec->hr=1
codec->efr=1
codec->amr=1
- * result: rc=0, full_rate=1, s15_s0=57ff, chan_mode=SPEECH_AMR
+ * result: rc=0, full_rate=1, s15_s0=5702, chan_mode=SPEECH_AMR
Determining channel mode and rate:
* MS: speech codec list (1 items):
@@ -263,7 +263,7 @@ Determining channel mode and rate:
codec->hr=1
codec->efr=1
codec->amr=1
- * result: rc=0, full_rate=0, s15_s0=073f, chan_mode=SPEECH_AMR
+ * result: rc=0, full_rate=0, s15_s0=0702, chan_mode=SPEECH_AMR
Determining channel mode and rate:
* MS: speech codec list (2 items):
@@ -450,7 +450,7 @@ Determining channel mode and rate:
codec->hr=1
codec->efr=1
codec->amr=1
- * result: rc=0, full_rate=1, s15_s0=57ff, chan_mode=SPEECH_AMR
+ * result: rc=0, full_rate=1, s15_s0=5702, chan_mode=SPEECH_AMR
Determining channel mode and rate:
* MS: speech codec list (5 items):
@@ -472,7 +472,7 @@ Determining channel mode and rate:
codec->hr=1
codec->efr=1
codec->amr=1
- * result: rc=0, full_rate=0, s15_s0=073f, chan_mode=SPEECH_AMR
+ * result: rc=0, full_rate=0, s15_s0=0702, chan_mode=SPEECH_AMR
Determining channel mode and rate:
* MS: speech codec list (5 items):