msc: Validate RTP addr+port passed from MNCC to MGCP MDCX

Change-Id: I0b53643ed3a8f8550b2ea6e8832068d603a676e1
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 9218c76..6ea4f86 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -1022,14 +1022,28 @@
 
 		/* MDCX setting up the CN side remote RTP address received from MNCC CONNECT */
 		[] MGCP.receive(tr_MDCX) -> value mgcp_cmd {
+			var SDP_Message sdp;
 			log("f_mt_call_complete 9");
-			var SDP_Message sdp := valueof(ts_SDP(cpars.mgw_conn_2.mgw_rtp_ip, cpars.mgw_conn_2.mgw_rtp_ip,
-								hex2str(cpars.mgcp_call_id), "42",
-								cpars.mgw_conn_2.mgw_rtp_port,
-								{ int2str(cpars.rtp_payload_type) },
-								{ valueof(ts_SDP_rtpmap(cpars.rtp_payload_type,
-											cpars.rtp_sdp_format)),
-								  valueof(ts_SDP_ptime(20)) }));
+
+			if (isvalue(mgcp_cmd.sdp)) {
+				sdp := mgcp_cmd.sdp;
+				if (sdp.media_list[0].media_field.ports.port_number != cpars.mncc_rtp_port) {
+					setverdict(fail, "Wrong MDCX Connection port received, expected ", cpars.mncc_rtp_port, " and received ", sdp.media_list[0].media_field.ports.port_number)
+					mtc.stop;
+				}
+				if (sdp.connection.conn_addr.addr != cpars.mncc_rtp_ip) {
+					setverdict(fail, "Wrong MDCX Connection address received, expected ", cpars.mncc_rtp_ip, " and received ", sdp.connection.conn_addr.addr)
+					mtc.stop;
+				}
+			}
+
+			sdp := valueof(ts_SDP(cpars.mgw_conn_2.mgw_rtp_ip, cpars.mgw_conn_2.mgw_rtp_ip,
+						hex2str(cpars.mgcp_call_id), "42",
+						cpars.mgw_conn_2.mgw_rtp_port,
+						{ int2str(cpars.rtp_payload_type) },
+						{ valueof(ts_SDP_rtpmap(cpars.rtp_payload_type,
+									cpars.rtp_sdp_format)),
+						  valueof(ts_SDP_ptime(20)) }));
 			MGCP.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_2.mgcp_connection_id, sdp));
 			}