MO call: init codecs filter with BSS codec list

Related: SYS#5066
Change-Id: I062268406ae3f3a63a7f413db51c509c9eaf9e8a
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index 771ddbc..7c1da06 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -55,6 +55,7 @@
 #include <osmocom/msc/rtp_stream.h>
 #include <osmocom/msc/mncc_call.h>
 #include <osmocom/msc/msc_t.h>
+#include <osmocom/msc/codec_sdp_cc_t9n.h>
 
 #include <osmocom/gsm/gsm48.h>
 #include <osmocom/gsm/gsm0480.h>
@@ -609,8 +610,17 @@
 
 	new_cc_state(trans, GSM_CSTATE_INITIATED);
 
+	/* MO call leg starting, gather all codec information so far known: */
+	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);
+	if (setup.fields & MNCC_F_BEARER_CAP)
+		codec_filter_set_ms_from_bc(&trans->cc.codecs, &trans->bearer_cap);
+	codec_filter_run(&trans->cc.codecs);
+
 	LOG_TRANS(trans, setup.emergency ? LOGL_NOTICE : LOGL_INFO, "%sSETUP to %s\n",
 		  setup.emergency ? "EMERGENCY_" : "", setup.called.number);
+	LOG_TRANS(trans, LOGL_DEBUG, "codecs: %s\n", codec_filter_to_str(&trans->cc.codecs));
 
 	rate_ctr_inc(rate_ctr_group_get_ctr(trans->net->msc_ctrs, MSC_CTR_CALL_MO_SETUP));