[codecs filter] store BSS codec list from Compl L3
The initial Compl L3 happens long before we establish a CC transaction. Remember the Codec List (BSS Supported), so that we can feed the new codecs filter with it. Subsequent patches implement feeding the filter. Related: SYS#5066 Change-Id: I7cdc348218433141a43d2e42750af02591688240
This commit is contained in:
parent
4c57bb0476
commit
e276ae9bc7
|
@ -121,6 +121,9 @@ struct msc_a {
|
||||||
* \-------RTP--> (ISUP) <--RTP--> <--RTP-->
|
* \-------RTP--> (ISUP) <--RTP--> <--RTP-->
|
||||||
*/
|
*/
|
||||||
struct {
|
struct {
|
||||||
|
/* Codec List (BSS Supported) as received during Complete Layer 3 Information */
|
||||||
|
struct gsm0808_speech_codec_list compl_l3_codec_list_bss_supported;
|
||||||
|
|
||||||
/* All of the RTP stream handling */
|
/* All of the RTP stream handling */
|
||||||
struct call_leg *call_leg;
|
struct call_leg *call_leg;
|
||||||
struct mncc_call *mncc_forwarding_to_remote_ran;
|
struct mncc_call *mncc_forwarding_to_remote_ran;
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
#include <osmocom/msc/call_leg.h>
|
#include <osmocom/msc/call_leg.h>
|
||||||
#include <osmocom/msc/rtp_stream.h>
|
#include <osmocom/msc/rtp_stream.h>
|
||||||
#include <osmocom/msc/msc_ho.h>
|
#include <osmocom/msc/msc_ho.h>
|
||||||
|
#include <osmocom/msc/codec_mapping.h>
|
||||||
|
|
||||||
#define MSC_A_USE_WAIT_CLEAR_COMPLETE "wait-Clear-Complete"
|
#define MSC_A_USE_WAIT_CLEAR_COMPLETE "wait-Clear-Complete"
|
||||||
|
|
||||||
|
@ -1443,6 +1444,18 @@ int msc_a_ran_dec_from_msc_i(struct msc_a *msc_a, struct msc_a_ran_dec_data *d)
|
||||||
};
|
};
|
||||||
gsm0808_cell_id_to_cgi(&msc_a->via_cell, msg->compl_l3.cell_id);
|
gsm0808_cell_id_to_cgi(&msc_a->via_cell, msg->compl_l3.cell_id);
|
||||||
|
|
||||||
|
/* If a codec list was sent along in the RAN_MSG_COMPL_L3, remember it for any upcoming codec
|
||||||
|
* resolution. */
|
||||||
|
if (msg->compl_l3.codec_list_bss_supported) {
|
||||||
|
msc_a->cc.compl_l3_codec_list_bss_supported = *msg->compl_l3.codec_list_bss_supported;
|
||||||
|
if (log_check_level(msc_a->c.ran->log_subsys, LOGL_DEBUG)) {
|
||||||
|
struct sdp_audio_codecs ac = {};
|
||||||
|
sdp_audio_codecs_from_speech_codec_list(&ac, &msc_a->cc.compl_l3_codec_list_bss_supported);
|
||||||
|
LOG_MSC_A(msc_a, LOGL_DEBUG, "Complete Layer 3: Codec List (BSS Supported): %s\n",
|
||||||
|
sdp_audio_codecs_to_str(&ac));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Submit the Complete Layer 3 Information DTAP */
|
/* Submit the Complete Layer 3 Information DTAP */
|
||||||
rc = msc_a_up_l3(msc_a, msg->compl_l3.msg);
|
rc = msc_a_up_l3(msc_a, msg->compl_l3.msg);
|
||||||
if (!rc) {
|
if (!rc) {
|
||||||
|
|
Loading…
Reference in New Issue