Change in osmo-ttcn3-hacks[master]: msc: add and fix Iu mt call

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

neels gerrit-no-reply at lists.osmocom.org
Sun Nov 3 23:18:13 UTC 2019


neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15940 )


Change subject: msc: add and fix Iu mt call
......................................................................

msc: add and fix Iu mt call

Change-Id: I3ce29f3d9254656dc295674e8cec72a741b7764a
---
M msc/BSC_ConnectionHandler.ttcn
M msc/MSC_Tests.ttcn
M msc/MSC_Tests_Iu.ttcn
3 files changed, 88 insertions(+), 11 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/15940/1

diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index b11d24b..63c64bb 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -905,21 +905,89 @@
 
 		}
 	} else {
-		var template TransportLayerAddress rab_tla := ? /* FIXME: encode the mgw_rtp_ip/mgw_rtp_port */
-		var template RAB_SetupOrModifyList rab_sml := tr_RAB_SML(rab_id := ?, tla := rab_tla, binding_id := ?);
-
 		interleave {
 		[] MGCP.receive(tr_CRCX(cpars.mgcp_ep)) -> value mgcp_cmd {
-			var SDP_Message sdp := valueof(ts_SDP_CRCX_CN(cpars));
-			MGCP.send(ts_CRCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_2.mgcp_connection_id, sdp));
-			/* MSC acknowledges the MNCC_CREATE to the MNCC handler */
-			MNCC.receive(tr_MNCC_RTP_CREATE(cpars.mncc_callref));
+			log("f_mt_call_complete 4.iu");
+			if (not f_handle_crcx(cpars, mgcp_cmd)) {
+				break;
 			}
-		[] BSSAP.receive(tr_RANAP_RabAssReq(rab_sml)) {
-			//BSSAP.send(ts_RANAP_RabAssResp(rab_sml)); FIXME
 			}
 
-		/* FIXME: same MNCC and MGCP as in 2G above */
+		/* MSC acknowledges the MNCC_CREATE to the MNCC handler */
+		[] MNCC.receive(tr_MNCC_RTP_CREATE(cpars.mncc_callref)) {
+			log("f_mt_call_complete 5.iu");
+			}
+
+		[] BSSAP.receive(tr_RANAP_RabAssReq(?)) {
+			log("f_mt_call_complete 6.iu");
+			var RAB_SetupOrModifiedList l := {
+				{
+					{
+						id := id_RAB_SetupOrModifiedItem,
+						criticality := ignore,
+						value_ := {
+						  rAB_SetupOrModifiedItem := {
+							rAB_ID := int2bit(23, 8),
+							transportLayerAddress := hex2bit( '350001c0a8021500000000000000000000000000'H),
+							iuTransportAssociation := {
+								bindingID := '040c0000'O
+							},
+							dl_dataVolumes := omit,
+							iE_Extensions := omit
+							}
+						}
+					}
+				}
+			};
+			BSSAP.send(ts_RANAP_RabAssResp(l));
+
+			BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CONNECT(cpars.transaction_id)));
+			}
+
+		[] MNCC.receive(tr_MNCC_SETUP_cnf(cpars.mncc_callref)) {
+			log("f_mt_call_complete 7.iu");
+			MNCC.send(ts_MNCC_RTP_CONNECT(cpars.mncc_callref,
+						      /* ip 42.23.11.5 */ hex2int('42231105'H),
+						      /* port 423 */ 423,
+						      /* payload type 3 = GSM FR */ 3));
+			}
+
+		/* MDCX setting up the RAN side remote RTP address received from Assignment Complete */
+		[] MGCP.receive(tr_MDCX) -> value mgcp_cmd {
+			log("f_mt_call_complete 8.iu");
+			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 (cpars.use_osmux) {
+				osmux_cid := f_MgcpCmd_extract_osmux_cid(mgcp_cmd);
+				if (osmux_cid != 0) { /* we expect MSC to use specific CID here */
+					setverdict(fail, "MSC using unexpected CID " & int2str(osmux_cid) & " != 0");
+					mtc.stop;
+				}
+				mgcp_resp := ts_MDCX_ACK_osmux(mgcp_cmd.line.trans_id, cpars.mgw_conn_1.mgcp_connection_id, osmux_cid, sdp);
+			} else {
+				mgcp_resp := ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_2.mgcp_connection_id, sdp);
+			}
+			MGCP.send(mgcp_resp);
+			}
+
+		/* MDCX setting up the CN side remote RTP address received from MNCC CONNECT */
+		[] MGCP.receive(tr_MDCX) -> value mgcp_cmd {
+			log("f_mt_call_complete 9.iu");
+			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)) }));
+			MGCP.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_2.mgcp_connection_id, sdp));
+			}
+
 		}
 	}
 
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index b4db43d..4ef592f 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -1658,7 +1658,7 @@
 }
 
 /* LU followed by MT call (including paging) */
-private function f_tc_lu_and_mt_call(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
+friend function f_tc_lu_and_mt_call(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
 	f_init_handler(pars);
 	var CallParameters cpars := valueof(t_CallParams('12345'H, 0));
 	cpars.use_osmux := pars.use_osmux;
diff --git a/msc/MSC_Tests_Iu.ttcn b/msc/MSC_Tests_Iu.ttcn
index 628fbcd..987baf0 100644
--- a/msc/MSC_Tests_Iu.ttcn
+++ b/msc/MSC_Tests_Iu.ttcn
@@ -249,6 +249,13 @@
 	vc_conn.done;
 }
 
+testcase TC_iu_lu_and_mt_call() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn;
+	f_init(3);
+	vc_conn := f_start_handler(refers(f_tc_lu_and_mt_call), 1142, ran_idx := 2, ran_is_geran := false);
+	vc_conn.done;
+}
+
 testcase TC_iu_lu_and_mo_sms() runs on MTC_CT {
 	var BSC_ConnHdlr vc_conn;
 	f_init(3);
@@ -438,6 +445,8 @@
 	execute( TC_iu_mo_release_timeout() );
 	execute( TC_reset_two_1iu() );
 
+	execute( TC_iu_lu_and_mt_call() );
+
 	execute( TC_iu_lu_and_mo_sms() );
 	execute( TC_iu_lu_and_mt_sms() );
 	execute( TC_iu_lu_and_mt_sms_paging_and_nothing() );

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15940
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I3ce29f3d9254656dc295674e8cec72a741b7764a
Gerrit-Change-Number: 15940
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20191103/97589e25/attachment.htm>


More information about the gerrit-log mailing list