[MERGED] osmo-ttcn3-hacks[master]: WIP: MSC: Add MO call testing

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/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Jan 24 21:59:47 UTC 2018


Harald Welte has submitted this change and it was merged.

Change subject: WIP: MSC: Add MO call testing
......................................................................


WIP: MSC: Add MO call testing

Change-Id: If32cb359b3cf732c4752856538552595dbbf2a8a
---
M library/L3_Templates.ttcn
M library/MNCC_Types.ttcn
M msc_tests/MSC_Tests.ttcn
3 files changed, 110 insertions(+), 0 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index 0da4706..be9386a 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -427,6 +427,52 @@
 	}
 }
 
+template PDU_ML3_NW_MS tr_ML3_MT_CC_DISC(integer tid) := {
+	discriminator := '0011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := int2bit(tid, 3),
+			tiFlag := ?,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		cc := {
+			disconnect_NW_MS := {
+				messageType := '100101'B,
+				nsd := '00'B,
+				cause := ?,
+				facility := *,
+				progressIndicator := *,
+				user_user := *,
+				allowedActions := *
+			}
+		}
+	}
+}
+
+template PDU_ML3_NW_MS tr_ML3_MT_CC_RELEASE(integer tid) := {
+	discriminator := '0011'B,
+	tiOrSkip := {
+		transactionId := {
+			tio := int2bit(tid, 3),
+			tiFlag := ?,
+			tIExtension := omit
+		}
+	},
+	msgs := {
+		cc := {
+			release_NW_MS := {
+				messageType := '101101'B,
+				nsd := '00'B,
+				cause := ?,
+				secondCause := *,
+				facility := *,
+				user_user := *
+			}
+		}
+	}
+}
 
 
 
diff --git a/library/MNCC_Types.ttcn b/library/MNCC_Types.ttcn
index e5d6af9..46159b7 100644
--- a/library/MNCC_Types.ttcn
+++ b/library/MNCC_Types.ttcn
@@ -274,6 +274,18 @@
 	variant (coding) "FIELDLENGTH(32)";
 }
 
+template MNCC_cause ts_MNCC_cause(int val,
+				  GSM48_cause_loc loc := GSM48_CAUSE_LOC_PUN_S_LU,
+				  GSM48_cause_coding coding := GSM48_CAUSE_CS_GSM,
+				  octetstring diag := ''O) := {
+	location := loc,
+	coding := coding,
+	rec := 0,
+	rec_val := 0,
+	val := val,
+	diag := diag
+}
+
 type record MNCC_useruser {
 	int		proto,
 	charstring	info
diff --git a/msc_tests/MSC_Tests.ttcn b/msc_tests/MSC_Tests.ttcn
index 68e0bef..dea27a7 100644
--- a/msc_tests/MSC_Tests.ttcn
+++ b/msc_tests/MSC_Tests.ttcn
@@ -21,6 +21,7 @@
 import from Osmocom_CTRL_Adapter all;
 
 import from MNCC_Emulation all;
+import from MNCC_Types all;
 
 import from GSUP_Emulation all;
 import from GSUP_Types all;
@@ -458,6 +459,56 @@
 	vc_conn.done;
 }
 
+private function f_tc_lu_and_mo_call(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
+	g_pars := pars;
+	f_perform_lu(false, true, true);
+
+	f_establish_fully(valueof(ts_MI_IMSI_LV(g_pars.imsi)), false);
+
+	var hexstring called := '12345'H;
+	var integer tid := 0;
+	var MNCC_PDU mncc;
+	f_create_mncc_expect(hex2str(called));
+
+	BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_SETUP(tid, called)));
+	MNCC.receive(tr_MNCC_SETUP_ind(?, tr_MNCC_number(hex2str(called)))) -> value mncc;
+	/* FIXME: extract call_id */
+
+	/* Call Proceeding */
+	MNCC.send(ts_MNCC_CALL_PROC_req(mncc.u.signal.callref, ts_MNCC_bcap_voice));
+	BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_CALL_PROC(tid)));
+
+	/* Alerting */
+	MNCC.send(ts_MNCC_ALERT_req(mncc.u.signal.callref));
+	BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_ALERTING(tid)));
+
+	/* Answer. This causes TCH assignment in case of "late assignment" */
+	MNCC.send(ts_MNCC_SETUP_COMPL_req(mncc.u.signal.callref));
+
+	f_sleep(3.0);
+
+	/* Hangup by "B" side */
+	MNCC.send(ts_MNCC_DISC_req(mncc.u.signal.callref, valueof(ts_MNCC_cause(23))));
+	BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(tid)));
+
+	/* Release of call */
+	MNCC.send(ts_MNCC_REL_req(mncc.u.signal.callref, valueof(ts_MNCC_cause(42))));
+	BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(tid)));
+
+	/* clearing of radio channel */
+	BSSAP.receive(tr_BSSMAP_ClearCommand);
+	BSSAP.send(ts_BSSMAP_ClearComplete);
+	BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND);
+
+	f_sleep(5.0);
+}
+testcase TC_lu_and_mo_call() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_tc_lu_and_mo_call), testcasename(), 1);
+	vc_conn.done;
+}
 
 
 
@@ -467,6 +518,7 @@
 	//execute( TC_lu_imsi_noauth_notmsi() );
 	execute( TC_lu_imsi_reject() );
 	execute( TC_lu_imsi_timeout_gsup() );
+	execute( TC_lu_and_mo_call() );
 }
 
 

-- 
To view, visit https://gerrit.osmocom.org/6022
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: If32cb359b3cf732c4752856538552595dbbf2a8a
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list