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