<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/10011">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified

</div><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;"><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 ee0760a..d2887ac 100644</span><br><span>--- a/src/osmo-bsc/codec_pref.c</span><br><span>+++ b/src/osmo-bsc/codec_pref.c</span><br><span>@@ -23,6 +23,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>@@ -130,6 +131,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>@@ -137,17 +166,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 73547ad..385854f 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>@@ -270,9 +270,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>@@ -296,7 +349,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>@@ -311,6 +370,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>@@ -321,7 +381,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>@@ -335,6 +396,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>@@ -343,9 +405,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>@@ -359,6 +422,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>@@ -367,9 +431,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%);">-         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>@@ -383,6 +448,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>@@ -391,9 +457,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>@@ -406,6 +473,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>@@ -415,19 +483,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>@@ -439,6 +531,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>@@ -448,19 +541,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: merged </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: 11 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>