aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2023-05-23 17:58:26 +0200
committerOliver Smith <osmith@sysmocom.de>2023-06-15 15:06:46 +0200
commit1c7f1787bdef689e4046dd29fa2fb0989bfa73ab (patch)
tree0563869aeb18e31ac410c3596c90d567cc07dd97 /src
parentc7c40c9648b35687a3d450835755829d27e2ff87 (diff)
codec_filter_set_bss: prepare for CSD
Diffstat (limited to 'src')
-rw-r--r--src/libmsc/gsm_04_08_cc.c4
-rw-r--r--src/libmsc/transaction_cc.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index 868dd66e2..810b404dd 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -673,7 +673,7 @@ static int gsm48_cc_rx_setup(struct gsm_trans *trans, struct msgb *msg)
/* MO call leg starting, gather all codec information so far known: */
trans_cc_filter_init(trans);
trans_cc_filter_set_ran(trans, trans->msc_a->c.ran->type);
- codec_filter_set_bss(&trans->cc.codecs, &trans->msc_a->cc.compl_l3_codec_list_bss_supported);
+ trans_cc_filter_set_bss(trans, trans->msc_a);
if (setup.fields & MNCC_F_BEARER_CAP)
trans_cc_filter_set_ms_from_bc(trans, &trans->bearer_cap);
codec_filter_run(&trans->cc.codecs);
@@ -806,7 +806,7 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg)
* actually the remote call leg's Bearer Capabilities. */
trans_cc_filter_init(trans);
trans_cc_filter_set_ran(trans, trans->msc_a->c.ran->type);
- codec_filter_set_bss(&trans->cc.codecs, &trans->msc_a->cc.compl_l3_codec_list_bss_supported);
+ trans_cc_filter_set_bss(trans, trans->msc_a);
/* sdp.remote: if SDP is included in the MNCC, take that as definitive list of remote audio codecs. */
rx_mncc_sdp(trans, setup->msg_type, setup->sdp);
/* sdp.remote: if there is no SDP information or we failed to parse it, try using the Bearer Capability from
diff --git a/src/libmsc/transaction_cc.c b/src/libmsc/transaction_cc.c
index 8059bb4e4..58617cd26 100644
--- a/src/libmsc/transaction_cc.c
+++ b/src/libmsc/transaction_cc.c
@@ -35,6 +35,11 @@ void trans_cc_filter_set_ran(struct gsm_trans *trans, enum osmo_rat_type ran_typ
codec_filter_set_ran(&trans->cc.codecs, ran_type);
}
+void trans_cc_filter_set_bss(struct gsm_trans *trans, struct msc_a *msc_a)
+{
+ codec_filter_set_bss(&trans->cc.codecs, &msc_a->cc.compl_l3_codec_list_bss_supported);
+}
+
void trans_cc_filter_set_ms_from_bc(struct gsm_trans *trans, const struct gsm_mncc_bearer_cap *bcap)
{
trans->cc.codecs.ms = (struct sdp_audio_codecs){0};