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;