<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/10011">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">codec_pref: check bts codec support<br><br>The vty option bts->codec-support allows the user to set the supported<br>codecs per BTS level. However, those values are currently only used to<br>make the handover decision but the logic that handles the BSSMAP<br>ASSIGNMENT REQUEST does not check those flags.<br><br>- Do not ignore bts->codec-support flags on BSSMAP ASSIGNMENT REQUEST<br><br>Change-Id: I285234e9c81de74d9fb9907fca2c443b08537435<br>Closes: OS#3361<br>---<br>M include/osmocom/bsc/codec_pref.h<br>M src/osmo-bsc/codec_pref.c<br>M src/osmo-bsc/osmo_bsc_bssap.c<br>M tests/codec_pref/codec_pref_test.c<br>M tests/codec_pref/codec_pref_test.ok<br>5 files changed, 490 insertions(+), 21 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/10011/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/bsc/codec_pref.h b/include/osmocom/bsc/codec_pref.h</span><br><span>index 6933cea..bbda14e 100644</span><br><span>--- a/include/osmocom/bsc/codec_pref.h</span><br><span>+++ b/include/osmocom/bsc/codec_pref.h</span><br><span>@@ -1,6 +1,6 @@</span><br><span> #pragma once</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-int match_codec_pref(int *full_rate, enum gsm48_chan_mode *chan_mode,</span><br><span style="color: hsl(0, 100%, 40%);">-                const struct gsm0808_channel_type *ct,</span><br><span style="color: hsl(0, 100%, 40%);">-                  const struct gsm0808_speech_codec_list *scl,</span><br><span style="color: hsl(0, 100%, 40%);">-                    const struct bsc_msc_data *msc);</span><br><span style="color: hsl(120, 100%, 40%);">+struct gsm_bts;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+int match_codec_pref(int *full_rate, enum gsm48_chan_mode *chan_mode, const struct gsm0808_channel_type *ct,</span><br><span style="color: hsl(120, 100%, 40%);">+                      const struct gsm0808_speech_codec_list *scl, const struct bsc_msc_data *msc, struct gsm_bts *bts);</span><br><span>diff --git a/src/osmo-bsc/codec_pref.c b/src/osmo-bsc/codec_pref.c</span><br><span>index db4fee4..6a5604f 100644</span><br><span>--- a/src/osmo-bsc/codec_pref.c</span><br><span>+++ b/src/osmo-bsc/codec_pref.c</span><br><span>@@ -22,6 +22,7 @@</span><br><span> #include <osmocom/gsm/gsm0808_utils.h></span><br><span> #include <osmocom/bsc/bsc_msc_data.h></span><br><span> #include <osmocom/bsc/codec_pref.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <osmocom/bsc/gsm_data.h></span><br><span> </span><br><span> /* Helper function for match_codec_pref(), looks up a matching chan mode for</span><br><span>  * a given permitted speech value */</span><br><span>@@ -129,6 +130,34 @@</span><br><span>        return false;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Helper function to check if the given permitted speech value is supported</span><br><span style="color: hsl(120, 100%, 40%);">+ * by the BTS. (vty option bts->codec-support). */</span><br><span style="color: hsl(120, 100%, 40%);">+static bool test_codec_support_bts(struct gsm_bts *bts, uint8_t perm_spch)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    switch (perm_spch) {</span><br><span style="color: hsl(120, 100%, 40%);">+  case GSM0808_PERM_FR1:</span><br><span style="color: hsl(120, 100%, 40%);">+                /* GSM-FR is always supported by all BTSs. There is also no way to</span><br><span style="color: hsl(120, 100%, 40%);">+             * selectively disable GSM-RF per BTS via VTY. */</span><br><span style="color: hsl(120, 100%, 40%);">+             return true;</span><br><span style="color: hsl(120, 100%, 40%);">+  case GSM0808_PERM_FR2:</span><br><span style="color: hsl(120, 100%, 40%);">+                if (bts->codec.efr)</span><br><span style="color: hsl(120, 100%, 40%);">+                        return true;</span><br><span style="color: hsl(120, 100%, 40%);">+  case GSM0808_PERM_FR3:</span><br><span style="color: hsl(120, 100%, 40%);">+                if (bts->codec.amr)</span><br><span style="color: hsl(120, 100%, 40%);">+                        return true;</span><br><span style="color: hsl(120, 100%, 40%);">+  case GSM0808_PERM_HR1:</span><br><span style="color: hsl(120, 100%, 40%);">+                if (bts->codec.hr)</span><br><span style="color: hsl(120, 100%, 40%);">+                 return true;</span><br><span style="color: hsl(120, 100%, 40%);">+  case GSM0808_PERM_HR3:</span><br><span style="color: hsl(120, 100%, 40%);">+                if (bts->codec.amr)</span><br><span style="color: hsl(120, 100%, 40%);">+                        return true;</span><br><span style="color: hsl(120, 100%, 40%);">+  default:</span><br><span style="color: hsl(120, 100%, 40%);">+              return false;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   return false;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /*! Helper function for bssmap_handle_assignm_req(), matches the codec</span><br><span>  *  preferences from the MSC with the codec preferences</span><br><span>  *  \param[out] full_rate '1' if full-rate, '0' if half-rate, '-1' if no match</span><br><span>@@ -136,17 +165,26 @@</span><br><span>  *  \param[in] ct GSM 08.08 channel type</span><br><span>  *  \param[in] scl GSM 08.08 speech codec list</span><br><span>  *  \param[in] msc MSC data [for configuration]</span><br><span style="color: hsl(120, 100%, 40%);">+ *  \param[in] bts BTS data [for configuration]</span><br><span>  *  \returns 0 on success, -1 in case no match was found */</span><br><span style="color: hsl(0, 100%, 40%);">-int match_codec_pref(int *full_rate, enum gsm48_chan_mode *chan_mode,</span><br><span style="color: hsl(0, 100%, 40%);">-              const struct gsm0808_channel_type *ct,</span><br><span style="color: hsl(0, 100%, 40%);">-                  const struct gsm0808_speech_codec_list *scl, const struct bsc_msc_data *msc)</span><br><span style="color: hsl(120, 100%, 40%);">+int match_codec_pref(int *full_rate, enum gsm48_chan_mode *chan_mode, const struct gsm0808_channel_type *ct,</span><br><span style="color: hsl(120, 100%, 40%);">+                    const struct gsm0808_speech_codec_list *scl, const struct bsc_msc_data *msc, struct gsm_bts *bts)</span><br><span> {</span><br><span>  unsigned int i;</span><br><span>      uint8_t perm_spch;</span><br><span>   bool match = false;</span><br><span> </span><br><span>      for (i = 0; i < msc->audio_length; i++) {</span><br><span style="color: hsl(120, 100%, 40%);">+               /* Pick a permitted speech value from the global codec configuration list */</span><br><span>                 perm_spch = audio_support_to_gsm88(msc->audio_support[i]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+               /* Check this permitted speech value against the BTS specific parameters.</span><br><span style="color: hsl(120, 100%, 40%);">+              * if the BTS does not support the codec, try the next one */</span><br><span style="color: hsl(120, 100%, 40%);">+         if (test_codec_support_bts(bts, perm_spch) == false)</span><br><span style="color: hsl(120, 100%, 40%);">+                  continue;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           /* Match the permitted speech value against the codec lists that were</span><br><span style="color: hsl(120, 100%, 40%);">+          * advertised by the MS and the MSC */</span><br><span>               if (test_codec_pref(ct, scl, perm_spch)) {</span><br><span>                   match = true;</span><br><span>                        break;</span><br><span>diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c</span><br><span>index 96cc2c5..887a866 100644</span><br><span>--- a/src/osmo-bsc/osmo_bsc_bssap.c</span><br><span>+++ b/src/osmo-bsc/osmo_bsc_bssap.c</span><br><span>@@ -680,7 +680,7 @@</span><br><span> </span><br><span>            /* Match codec information from the assignment command against the</span><br><span>            * local preferences of the BSC */</span><br><span style="color: hsl(0, 100%, 40%);">-              rc = match_codec_pref(&full_rate, &chan_mode, &ct, scl_ptr, msc);</span><br><span style="color: hsl(120, 100%, 40%);">+         rc = match_codec_pref(&full_rate, &chan_mode, &ct, scl_ptr, msc, conn_get_bts(conn));</span><br><span>            if (rc < 0) {</span><br><span>                     LOGP(DMSC, LOGL_ERROR, "No supported audio type found for channel_type ="</span><br><span>                       " { ch_indctr=0x%x, ch_rate_type=0x%x, perm_spch=[ %s] }\n",</span><br><span>diff --git a/tests/codec_pref/codec_pref_test.c b/tests/codec_pref/codec_pref_test.c</span><br><span>index 3c86081..66403bf 100644</span><br><span>--- a/tests/codec_pref/codec_pref_test.c</span><br><span>+++ b/tests/codec_pref/codec_pref_test.c</span><br><span>@@ -271,9 +271,62 @@</span><br><span>      }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Generate a realitically looking bts codec configuration */</span><br><span style="color: hsl(120, 100%, 40%);">+static void make_bts_config(struct gsm_bts *bts, uint8_t config_no)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     /* Note: FR is supported by all BTSs, so there is no flag for it */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(config_no < N_CONFIG_VARIANTS);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      bts->codec.hr = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ bts->codec.efr = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+        bts->codec.amr = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      switch (config_no) {</span><br><span style="color: hsl(120, 100%, 40%);">+  case 0:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* FR1 (implicit) only */</span><br><span style="color: hsl(120, 100%, 40%);">+             break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case 1:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* HR1 only (+FR implicit) */</span><br><span style="color: hsl(120, 100%, 40%);">+         bts->codec.hr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+         break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case 2:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* FR2 only (+FR implicit)  */</span><br><span style="color: hsl(120, 100%, 40%);">+                bts->codec.efr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+                break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case 3:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* FR3 only (+FR implicit) */</span><br><span style="color: hsl(120, 100%, 40%);">+         bts->codec.amr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+                break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case 4:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* HR3 only (+FR implicit) */</span><br><span style="color: hsl(120, 100%, 40%);">+         bts->codec.amr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+                break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case 5:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* FR1 (implicit) and HR1 */</span><br><span style="color: hsl(120, 100%, 40%);">+          bts->codec.hr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+         break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case 6:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* FR1 (implicit), FR2 and HR1 */</span><br><span style="color: hsl(120, 100%, 40%);">+             bts->codec.efr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+                bts->codec.hr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+         break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case 7:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* FR1 (implicit), FR3 and HR3 */</span><br><span style="color: hsl(120, 100%, 40%);">+             bts->codec.amr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+                break;</span><br><span style="color: hsl(120, 100%, 40%);">+        case 8:</span><br><span style="color: hsl(120, 100%, 40%);">+               /* FR1 (implicit), FR2, FR3, HR1 and HR3 */</span><br><span style="color: hsl(120, 100%, 40%);">+           bts->codec.hr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+         bts->codec.efr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+                bts->codec.amr = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+                break;</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Try execute match_codec_pref(), display input and output parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-static int test_match_codec_pref(const struct gsm0808_channel_type *ct,</span><br><span style="color: hsl(0, 100%, 40%);">-                               const struct gsm0808_speech_codec_list *scl, const struct bsc_msc_data *msc)</span><br><span style="color: hsl(120, 100%, 40%);">+static int test_match_codec_pref(const struct gsm0808_channel_type *ct, const struct gsm0808_speech_codec_list *scl,</span><br><span style="color: hsl(120, 100%, 40%);">+                            const struct bsc_msc_data *msc, struct gsm_bts *bts)</span><br><span> {</span><br><span>   int rc;</span><br><span>      unsigned int i;</span><br><span>@@ -297,7 +350,13 @@</span><br><span>               else</span><br><span>                         printf("   audio_support[%u]=FR%u\n", i, msc->audio_support[i]->ver);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       rc = match_codec_pref(&full_rate, &chan_mode, ct, scl, msc);</span><br><span style="color: hsl(120, 100%, 40%);">+  printf(" * BTS: audio support settings:\n");</span><br><span style="color: hsl(120, 100%, 40%);">+        printf("   (GSM-FR implicitly supported)\n");</span><br><span style="color: hsl(120, 100%, 40%);">+       printf("   codec->hr=%u\n", bts->codec.hr);</span><br><span style="color: hsl(120, 100%, 40%);">+   printf("   codec->efr=%u\n", bts->codec.efr);</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("   codec->amr=%u\n", bts->codec.amr);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       rc = match_codec_pref(&full_rate, &chan_mode, ct, scl, msc, bts);</span><br><span>    printf(" * result: rc=%i, full_rate=%i, chan_mode=%s\n", rc, full_rate, gsm48_chan_mode_name(chan_mode));</span><br><span> </span><br><span>      printf("\n");</span><br><span>@@ -312,6 +371,7 @@</span><br><span>        struct gsm0808_channel_type ct_msc;</span><br><span>  struct gsm0808_speech_codec_list scl_ms;</span><br><span>     struct bsc_msc_data msc_local;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct gsm_bts bts_local;</span><br><span>    int rc;</span><br><span> </span><br><span>  printf("============== test_one_to_one ==============\n\n");</span><br><span>@@ -322,7 +382,8 @@</span><br><span>                 make_msc_config(&msc_local, i);</span><br><span>          make_scl_config(&scl_ms, i);</span><br><span>             make_ct_config(&ct_msc, i);</span><br><span style="color: hsl(0, 100%, 40%);">-         rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+         make_bts_config(&bts_local, i);</span><br><span style="color: hsl(120, 100%, 40%);">+           rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>                OSMO_ASSERT(rc == 0);</span><br><span>        }</span><br><span> </span><br><span>@@ -336,6 +397,7 @@</span><br><span>  struct gsm0808_channel_type ct_msc;</span><br><span>  struct gsm0808_speech_codec_list scl_ms;</span><br><span>     struct bsc_msc_data msc_local;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct gsm_bts bts_local;</span><br><span>    int rc;</span><br><span> </span><br><span>  printf("============== test_ms ==============\n\n");</span><br><span>@@ -344,9 +406,10 @@</span><br><span> </span><br><span>    make_msc_config(&msc_local, 8);</span><br><span>  make_ct_config(&ct_msc, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+       make_bts_config(&bts_local, 8);</span><br><span>  for (i = 0; i < N_CONFIG_VARIANTS; i++) {</span><br><span>                 make_scl_config(&scl_ms, i);</span><br><span style="color: hsl(0, 100%, 40%);">-                rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+         rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>                OSMO_ASSERT(rc == 0);</span><br><span>        }</span><br><span> </span><br><span>@@ -360,6 +423,7 @@</span><br><span>  struct gsm0808_channel_type ct_msc;</span><br><span>  struct gsm0808_speech_codec_list scl_ms;</span><br><span>     struct bsc_msc_data msc_local;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct gsm_bts bts_local;</span><br><span>    int rc;</span><br><span> </span><br><span>  printf("============== test_ct ==============\n\n");</span><br><span>@@ -368,9 +432,10 @@</span><br><span> </span><br><span>    make_msc_config(&msc_local, 8);</span><br><span>  make_scl_config(&scl_ms, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+      make_bts_config(&bts_local, 8);</span><br><span>  for (i = 0; i < N_CONFIG_VARIANTS; i++) {</span><br><span>                 make_ct_config(&ct_msc, i);</span><br><span style="color: hsl(0, 100%, 40%);">-         test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+              test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>             OSMO_ASSERT(rc == 0);</span><br><span>        }</span><br><span> </span><br><span>@@ -384,6 +449,7 @@</span><br><span>  struct gsm0808_channel_type ct_msc;</span><br><span>  struct gsm0808_speech_codec_list scl_ms;</span><br><span>     struct bsc_msc_data msc_local;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct gsm_bts bts_local;</span><br><span>    int rc;</span><br><span> </span><br><span>  printf("============== test_msc ==============\n\n");</span><br><span>@@ -392,9 +458,10 @@</span><br><span> </span><br><span>   make_ct_config(&ct_msc, 8);</span><br><span>      make_scl_config(&scl_ms, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+      make_bts_config(&bts_local, 8);</span><br><span>  for (i = 0; i < N_CONFIG_VARIANTS; i++) {</span><br><span>                 make_msc_config(&msc_local, 8);</span><br><span style="color: hsl(0, 100%, 40%);">-             rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+         rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>                OSMO_ASSERT(rc == 0);</span><br><span>        }</span><br><span> </span><br><span>@@ -407,6 +474,7 @@</span><br><span>  struct gsm0808_channel_type ct_msc;</span><br><span>  struct gsm0808_speech_codec_list scl_ms;</span><br><span>     struct bsc_msc_data msc_local;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct gsm_bts bts_local;</span><br><span>    int rc;</span><br><span> </span><br><span>  printf("============== test_selected_working ==============\n\n");</span><br><span>@@ -416,19 +484,43 @@</span><br><span>         make_scl_config(&scl_ms, 6);</span><br><span>     make_ct_config(&ct_msc, 5);</span><br><span>      make_msc_config(&msc_local, 7);</span><br><span style="color: hsl(0, 100%, 40%);">-     rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ make_bts_config(&bts_local, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>        OSMO_ASSERT(rc == 0);</span><br><span> </span><br><span>    make_scl_config(&scl_ms, 0);</span><br><span>     make_ct_config(&ct_msc, 5);</span><br><span>      make_msc_config(&msc_local, 7);</span><br><span style="color: hsl(0, 100%, 40%);">-     rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ make_bts_config(&bts_local, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>        OSMO_ASSERT(rc == 0);</span><br><span> </span><br><span>    make_scl_config(&scl_ms, 1);</span><br><span>     make_ct_config(&ct_msc, 5);</span><br><span>      make_msc_config(&msc_local, 6);</span><br><span style="color: hsl(0, 100%, 40%);">-     rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ make_bts_config(&bts_local, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(rc == 0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       make_scl_config(&scl_ms, 6);</span><br><span style="color: hsl(120, 100%, 40%);">+      make_ct_config(&ct_msc, 5);</span><br><span style="color: hsl(120, 100%, 40%);">+       make_msc_config(&msc_local, 7);</span><br><span style="color: hsl(120, 100%, 40%);">+   make_bts_config(&bts_local, 4);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(rc == 0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       make_scl_config(&scl_ms, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+      make_ct_config(&ct_msc, 5);</span><br><span style="color: hsl(120, 100%, 40%);">+       make_msc_config(&msc_local, 7);</span><br><span style="color: hsl(120, 100%, 40%);">+   make_bts_config(&bts_local, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(rc == 0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       make_scl_config(&scl_ms, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+      make_ct_config(&ct_msc, 5);</span><br><span style="color: hsl(120, 100%, 40%);">+       make_msc_config(&msc_local, 6);</span><br><span style="color: hsl(120, 100%, 40%);">+   make_bts_config(&bts_local, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>        OSMO_ASSERT(rc == 0);</span><br><span> </span><br><span>    free_msc_config(&msc_local);</span><br><span>@@ -440,6 +532,7 @@</span><br><span>       struct gsm0808_channel_type ct_msc;</span><br><span>  struct gsm0808_speech_codec_list scl_ms;</span><br><span>     struct bsc_msc_data msc_local;</span><br><span style="color: hsl(120, 100%, 40%);">+        struct gsm_bts bts_local;</span><br><span>    int rc;</span><br><span> </span><br><span>  printf("============== test_selected_non_working ==============\n\n");</span><br><span>@@ -449,19 +542,43 @@</span><br><span>     make_scl_config(&scl_ms, 1);</span><br><span>     make_ct_config(&ct_msc, 5);</span><br><span>      make_msc_config(&msc_local, 7);</span><br><span style="color: hsl(0, 100%, 40%);">-     rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ make_bts_config(&bts_local, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>        OSMO_ASSERT(rc == -1);</span><br><span> </span><br><span>   make_scl_config(&scl_ms, 1);</span><br><span>     make_ct_config(&ct_msc, 5);</span><br><span>      make_msc_config(&msc_local, 7);</span><br><span style="color: hsl(0, 100%, 40%);">-     rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ make_bts_config(&bts_local, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>        OSMO_ASSERT(rc == -1);</span><br><span> </span><br><span>   make_scl_config(&scl_ms, 1);</span><br><span>     make_ct_config(&ct_msc, 4);</span><br><span>      make_msc_config(&msc_local, 6);</span><br><span style="color: hsl(0, 100%, 40%);">-     rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ make_bts_config(&bts_local, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(rc == -1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      make_scl_config(&scl_ms, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+      make_ct_config(&ct_msc, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+       make_msc_config(&msc_local, 7);</span><br><span style="color: hsl(120, 100%, 40%);">+   make_bts_config(&bts_local, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(rc == -1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      make_scl_config(&scl_ms, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+      make_ct_config(&ct_msc, 5);</span><br><span style="color: hsl(120, 100%, 40%);">+       make_msc_config(&msc_local, 4);</span><br><span style="color: hsl(120, 100%, 40%);">+   make_bts_config(&bts_local, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span style="color: hsl(120, 100%, 40%);">+ OSMO_ASSERT(rc == -1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      make_scl_config(&scl_ms, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+      make_ct_config(&ct_msc, 4);</span><br><span style="color: hsl(120, 100%, 40%);">+       make_msc_config(&msc_local, 6);</span><br><span style="color: hsl(120, 100%, 40%);">+   make_bts_config(&bts_local, 7);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = test_match_codec_pref(&ct_msc, &scl_ms, &msc_local, &bts_local);</span><br><span>        OSMO_ASSERT(rc == -1);</span><br><span> </span><br><span>   free_msc_config(&msc_local);</span><br><span>diff --git a/tests/codec_pref/codec_pref_test.ok b/tests/codec_pref/codec_pref_test.ok</span><br><span>index f97fbb1..d3cd028 100644</span><br><span>--- a/tests/codec_pref/codec_pref_test.ok</span><br><span>+++ b/tests/codec_pref/codec_pref_test.ok</span><br><span>@@ -7,6 +7,11 @@</span><br><span>    perm_spch[0]=FR1</span><br><span>  * BSS: audio support settings (1 items):</span><br><span>    audio_support[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=0</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -16,6 +21,11 @@</span><br><span>    perm_spch[0]=HR1</span><br><span>  * BSS: audio support settings (1 items):</span><br><span>    audio_support[0]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=0</span><br><span>  * result: rc=0, full_rate=0, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -25,6 +35,11 @@</span><br><span>    perm_spch[0]=FR2</span><br><span>  * BSS: audio support settings (1 items):</span><br><span>    audio_support[0]=FR2</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=0</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_EFR</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -34,6 +49,11 @@</span><br><span>    perm_spch[0]=FR3</span><br><span>  * BSS: audio support settings (1 items):</span><br><span>    audio_support[0]=FR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_AMR</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -43,6 +63,11 @@</span><br><span>    perm_spch[0]=HR3</span><br><span>  * BSS: audio support settings (1 items):</span><br><span>    audio_support[0]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=0, chan_mode=SPEECH_AMR</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -55,6 +80,11 @@</span><br><span>  * BSS: audio support settings (2 items):</span><br><span>    audio_support[0]=FR1</span><br><span>    audio_support[1]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=0</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -70,6 +100,11 @@</span><br><span>    audio_support[0]=FR1</span><br><span>    audio_support[1]=FR2</span><br><span>    audio_support[2]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=0</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -85,6 +120,11 @@</span><br><span>    audio_support[0]=FR1</span><br><span>    audio_support[1]=FR3</span><br><span>    audio_support[2]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -106,6 +146,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> ============== test_ms ==============</span><br><span>@@ -125,6 +170,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -142,6 +192,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=0, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -159,6 +214,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_EFR</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -176,6 +236,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_AMR</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -193,6 +258,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=0, chan_mode=SPEECH_AMR</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -211,6 +281,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -230,6 +305,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -249,6 +329,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -270,6 +355,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> ============== test_ct ==============</span><br><span>@@ -289,6 +379,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -306,6 +401,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=0, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -323,6 +423,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_EFR</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -340,6 +445,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_AMR</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -357,6 +467,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=0, chan_mode=SPEECH_AMR</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -375,6 +490,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -394,6 +514,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -413,6 +538,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -434,6 +564,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> ============== test_msc ==============</span><br><span>@@ -457,6 +592,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -478,6 +618,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -499,6 +644,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -520,6 +670,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -541,6 +696,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -562,6 +722,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -583,6 +748,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -604,6 +774,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -625,6 +800,11 @@</span><br><span>    audio_support[2]=FR3</span><br><span>    audio_support[3]=HR1</span><br><span>    audio_support[4]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> ============== test_selected_working ==============</span><br><span>@@ -641,6 +821,11 @@</span><br><span>    audio_support[0]=FR1</span><br><span>    audio_support[1]=FR3</span><br><span>    audio_support[2]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -653,6 +838,11 @@</span><br><span>    audio_support[0]=FR1</span><br><span>    audio_support[1]=FR3</span><br><span>    audio_support[2]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -665,6 +855,64 @@</span><br><span>    audio_support[0]=FR1</span><br><span>    audio_support[1]=FR2</span><br><span>    audio_support[2]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span style="color: hsl(120, 100%, 40%);">+ * result: rc=0, full_rate=0, chan_mode=SPEECH_V1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Determining channel mode and rate:</span><br><span style="color: hsl(120, 100%, 40%);">+ * MS: speech codec list (3 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[0]->type=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[1]->type=FR2</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[2]->type=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * MSC: channel type permitted speech (2 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[1]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BSS: audio support settings (3 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[1]=FR3</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[2]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span style="color: hsl(120, 100%, 40%);">+ * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Determining channel mode and rate:</span><br><span style="color: hsl(120, 100%, 40%);">+ * MS: speech codec list (1 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[0]->type=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * MSC: channel type permitted speech (2 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[1]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BSS: audio support settings (3 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[1]=FR3</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[2]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=0</span><br><span style="color: hsl(120, 100%, 40%);">+ * result: rc=0, full_rate=1, chan_mode=SPEECH_V1</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Determining channel mode and rate:</span><br><span style="color: hsl(120, 100%, 40%);">+ * MS: speech codec list (1 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[0]->type=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * MSC: channel type permitted speech (2 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[1]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BSS: audio support settings (3 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[1]=FR2</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[2]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=0</span><br><span>  * result: rc=0, full_rate=0, chan_mode=SPEECH_V1</span><br><span> </span><br><span> ============== test_selected_non_working ==============</span><br><span>@@ -679,6 +927,11 @@</span><br><span>    audio_support[0]=FR1</span><br><span>    audio_support[1]=FR3</span><br><span>    audio_support[2]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=-1, full_rate=-1, chan_mode=SIGNALLING</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -691,6 +944,11 @@</span><br><span>    audio_support[0]=FR1</span><br><span>    audio_support[1]=FR3</span><br><span>    audio_support[2]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=-1, full_rate=-1, chan_mode=SIGNALLING</span><br><span> </span><br><span> Determining channel mode and rate:</span><br><span>@@ -702,6 +960,62 @@</span><br><span>    audio_support[0]=FR1</span><br><span>    audio_support[1]=FR2</span><br><span>    audio_support[2]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span style="color: hsl(120, 100%, 40%);">+ * result: rc=-1, full_rate=-1, chan_mode=SIGNALLING</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Determining channel mode and rate:</span><br><span style="color: hsl(120, 100%, 40%);">+ * MS: speech codec list (1 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[0]->type=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * MSC: channel type permitted speech (1 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[0]=FR2</span><br><span style="color: hsl(120, 100%, 40%);">+ * BSS: audio support settings (3 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[1]=FR3</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[2]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span style="color: hsl(120, 100%, 40%);">+ * result: rc=-1, full_rate=-1, chan_mode=SIGNALLING</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Determining channel mode and rate:</span><br><span style="color: hsl(120, 100%, 40%);">+ * MS: speech codec list (1 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[0]->type=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * MSC: channel type permitted speech (2 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[1]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BSS: audio support settings (1 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[0]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span style="color: hsl(120, 100%, 40%);">+ * result: rc=-1, full_rate=-1, chan_mode=SIGNALLING</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Determining channel mode and rate:</span><br><span style="color: hsl(120, 100%, 40%);">+ * MS: speech codec list (5 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[0]->type=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[1]->type=FR2</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[2]->type=FR3</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[3]->type=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+   codec[4]->type=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * MSC: channel type permitted speech (1 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   perm_spch[0]=HR3</span><br><span style="color: hsl(120, 100%, 40%);">+ * BSS: audio support settings (3 items):</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[0]=FR1</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[1]=FR2</span><br><span style="color: hsl(120, 100%, 40%);">+   audio_support[2]=HR1</span><br><span style="color: hsl(120, 100%, 40%);">+ * BTS: audio support settings:</span><br><span style="color: hsl(120, 100%, 40%);">+   (GSM-FR implicitly supported)</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->hr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->efr=0</span><br><span style="color: hsl(120, 100%, 40%);">+   codec->amr=1</span><br><span>  * result: rc=-1, full_rate=-1, chan_mode=SIGNALLING</span><br><span> </span><br><span> Testing execution completed.</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10011">change 10011</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/10011"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I285234e9c81de74d9fb9907fca2c443b08537435 </div>
<div style="display:none"> Gerrit-Change-Number: 10011 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>