msc: Rewrite TC_lu_and_mo_call() to be more modular
All relevant parameters are passed in in form of a CallParameters
record, and the bulk of the work has been moved to
BSC_ConnectionHandler.
Change-Id: I932c6c9f7a48b6a1f1ec399e8bba6a413c8bc69e
diff --git a/msc_tests/MSC_Tests.ttcn b/msc_tests/MSC_Tests.ttcn
index 83ad17c..5afa93a 100644
--- a/msc_tests/MSC_Tests.ttcn
+++ b/msc_tests/MSC_Tests.ttcn
@@ -534,60 +534,13 @@
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);
+ var CallParameters cpars := valueof(t_CallParams('12345'H, 0));
+ cpars.bss_rtp_port := 1110;
+ cpars.mgcp_connection_id_bss := '22222'H;
+ cpars.mgcp_connection_id_mss := '33333'H;
- f_establish_fully(valueof(ts_MI_IMSI_LV(g_pars.imsi)), false, false);
-
- var hexstring called := '12345'H;
- var integer tid := 0;
- var MNCC_PDU mncc;
- var MgcpCommand mgcp_cmd;
- f_create_mncc_expect(hex2str(called));
- f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit});
-
- BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_SETUP(tid, called)));
- interleave {
- [] 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)));
- };
- [] MGCP.receive(tr_CRCX) -> value mgcp_cmd {
- var SDP_Message sdp := valueof(ts_SDP("127.0.0.2", "127.0.0.1", "23", "42", 1234,
- { "98" },
- { valueof(ts_SDP_rtpmap(98, "AMR/8000")),
- valueof(ts_SDP_ptime(20)) }));
- MGCP.send(ts_CRCX_ACK(mgcp_cmd.line.trans_id, '1234'H, sdp));
- }
- }
-
- /* Alerting */
- MNCC.send(ts_MNCC_ALERT_req(mncc.u.signal.callref));
- BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_ALERTING(tid)));
-
- BSSAP.receive(tr_BSSMAP_AssignmentReq);
- BSSAP.send(ts_BSSMAP_AssignmentComplete);
-
- /* 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);
+ f_perform_lu(cpars.expect_auth, true, true);
+ f_mo_call(cpars);
}
testcase TC_lu_and_mo_call() runs on MTC_CT {
var BSC_ConnHdlr vc_conn;