msc/BSC_Conn…: ass req/compl: check/use CSD codec

Verify that the MSC sends the CSData codec in the Assignment Request and
send this codec in the Assignment Complete towards the MSC.

Related: OS#4394
Change-Id: I7906e6fdb82c27f071aa55f2f73ba4108bfb46db
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 170694a..9f74199 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -1149,8 +1149,21 @@
 			var BSSMAP_IE_SpeechCodec codec;
 			var BSSMAP_IE_Osmo_OsmuxCID osmuxCID;
 			log("f_mt_call_complete 6");
+
+			if (cpars.csd and not match(bssap.pdu.bssmap.assignmentRequest.codecList.codecElements,
+					{ts_CodecCSData})) {
+				setverdict(fail, "MSC sent Assignment Request with unexpected codec list for CSD ",
+					   bssap.pdu.bssmap.assignmentRequest.codecList);
+				mtc.stop;
+			}
+
 			tla := f_ts_BSSMAP_IE_AoIP_TLA(cpars.bss_rtp_ip, cpars.bss_rtp_port);
-			codec := valueof(ts_BSSMAP_IE_SpeechCodec({ts_CodecFR}));
+
+			if (cpars.csd) {
+				codec := valueof(ts_BSSMAP_IE_SpeechCodec({ts_CodecCSData}));
+			} else {
+				codec := valueof(ts_BSSMAP_IE_SpeechCodec({ts_CodecFR}));
+			}
 
 			if (cpars.use_osmux) {
 				if (not ispresent(bssap.pdu.bssmap.assignmentRequest.osmuxCID)) {
@@ -1637,8 +1650,21 @@
 			mtc.stop;
 		}
 
+		if (cpars.csd and not match(bssap.pdu.bssmap.assignmentRequest.codecList.codecElements,
+				{ts_CodecCSData})) {
+			setverdict(fail, "MSC sent Assignment Request with unexpected codec list for CSD ",
+				   bssap.pdu.bssmap.assignmentRequest.codecList);
+			mtc.stop;
+		}
+
 		tla := valueof(f_ts_BSSMAP_IE_AoIP_TLA(cpars.bss_rtp_ip, cpars.bss_rtp_port));
-		codec := valueof(ts_BSSMAP_IE_SpeechCodec({ts_CodecFR}));
+
+		if (cpars.csd) {
+			codec := valueof(ts_BSSMAP_IE_SpeechCodec({ts_CodecCSData}));
+		} else {
+			codec := valueof(ts_BSSMAP_IE_SpeechCodec({ts_CodecFR}));
+		}
+
 		if (cpars.use_osmux) {
 			if (not ispresent(bssap.pdu.bssmap.assignmentRequest.osmuxCID)) {
 				setverdict(fail, "MSC sent AssignReq without expected OsmuxCID IE");