diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2022-01-13 21:40:58 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2023-03-04 23:50:46 +0100 |
commit | cdb752a018658f534924e940cf2712b550698a78 (patch) | |
tree | 5727ccc726e13454403e5c71d51760a7faaa53e1 | |
parent | d52bb73b07e64517fc028417508ee0a056b56baa (diff) |
[codecs filter] MT call: apply BSS codec list
For MT call, initialize the codecs filter and apply the
Codec List (BSS Supported) from Compl L3.
Related: SYS#5066
Change-Id: I530409a64d11da48518a3dc60aa3a4e47c384663
-rw-r--r-- | src/libmsc/gsm_04_08_cc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index 032d9fe52..5c7ff1fbd 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -674,6 +674,16 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) gsm48_start_cc_timer(trans, 0x303, GSM48_T303); + /* MT call leg is starting. Gather all codecs information so far known. + * (Usually) paging has succeeded, and now we're processing the MNCC Setup from the remote MO call leg. + * Initialize the codecs filter with this side's BSS' codec list, received at Complete Layer 3. + * We must not pass bearer_cap to codec_filter_init(), because we haven't received the MT MS's Bearer + * Capabilities yet; the Bearer Capabilities handled here are actually the remote call leg's Bearer + * Capabilities. */ + codec_filter_init(&trans->cc.codecs); + codec_filter_set_ran(&trans->cc.codecs, trans->msc_a->c.ran->type); + codec_filter_set_bss(&trans->cc.codecs, &trans->msc_a->cc.compl_l3_codec_list_bss_supported); + /* bearer capability */ if (setup->fields & MNCC_F_BEARER_CAP) { /* Create a copy of the bearer capability in the transaction struct, so we |