diff options
author | Oliver Smith <osmith@sysmocom.de> | 2023-05-23 17:58:26 +0200 |
---|---|---|
committer | Oliver Smith <osmith@sysmocom.de> | 2023-06-15 15:06:46 +0200 |
commit | 1c7f1787bdef689e4046dd29fa2fb0989bfa73ab (patch) | |
tree | 0563869aeb18e31ac410c3596c90d567cc07dd97 | |
parent | c7c40c9648b35687a3d450835755829d27e2ff87 (diff) |
codec_filter_set_bss: prepare for CSD
Related: OS#4394
Change-Id: I931db33820d9da81147bda84002ada0b80f11186
-rw-r--r-- | include/osmocom/msc/transaction_cc.h | 1 | ||||
-rw-r--r-- | src/libmsc/gsm_04_08_cc.c | 4 | ||||
-rw-r--r-- | src/libmsc/transaction_cc.c | 5 |
3 files changed, 8 insertions, 2 deletions
diff --git a/include/osmocom/msc/transaction_cc.h b/include/osmocom/msc/transaction_cc.h index 0d25b31a0..1f2f8c1e9 100644 --- a/include/osmocom/msc/transaction_cc.h +++ b/include/osmocom/msc/transaction_cc.h @@ -32,4 +32,5 @@ void trans_cc_filter_init(struct gsm_trans *trans); void trans_cc_filter_set_ran(struct gsm_trans *trans, enum osmo_rat_type ran_type); +void trans_cc_filter_set_bss(struct gsm_trans *trans, struct msc_a *msc_a); void trans_cc_filter_set_ms_from_bc(struct gsm_trans *trans, const struct gsm_mncc_bearer_cap *bcap); 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}; |