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