msc: new test: TC_lu_and_mt_csd
Related: OS#4394
Change-Id: Ie1701546e3dc18a5b0da4608b44a580237c979a6
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 3d7dc07..039a97d 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -1057,10 +1057,17 @@
/* Allocate a call reference and send SETUP via MNCC to MSC */
function f_mt_call_initiate(inout CallParameters cpars)
runs on BSC_ConnHdlr {
+ var template MNCC_bearer_cap bcap := ts_MNCC_bcap_voice;
+
+ if (cpars.csd) {
+ bcap := ts_MNCC_bcap_data;
+ }
+
cpars.mo_call := false;
cpars.mncc_callref := f_rnd_int(2147483648);
+
MNCC.send(ts_MNCC_SETUP_req(cpars.mncc_callref, hex2str(g_pars.msisdn),
- hex2str(cpars.called_party), hex2str(g_pars.imsi)));
+ hex2str(cpars.called_party), hex2str(g_pars.imsi), bcap));
}
private template (value) SDP_Message ts_SDP_CRCX_CN(CallParameters cpars) :=
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 9650b3e..22b308e 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -7202,6 +7202,21 @@
vc_conn.done;
}
+friend function f_tc_lu_and_mt_csd(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
+ f_init_handler(pars);
+ var CallParameters cpars := valueof(t_CallParams);
+ cpars.csd := true;
+ f_perform_lu();
+ f_mt_call(cpars);
+}
+testcase TC_lu_and_mt_csd() runs on MTC_CT {
+ var BSC_ConnHdlr vc_conn;
+ f_init();
+
+ vc_conn := f_start_handler(refers(f_tc_lu_and_mt_csd), 7);
+ vc_conn.done;
+}
+
control {
execute( TC_cr_before_reset() );
execute( TC_lu_imsi_noauth_tmsi() );
@@ -7381,6 +7396,7 @@
execute( TC_auth_options_11() );
execute( TC_lu_and_mo_csd() );
+ execute( TC_lu_and_mt_csd() );
}