pespin has uploaded this change for review.

View Change

asterisk: Introduce test TC_ims_call_mt_local_uas_inacall

Change-Id: I8a407993f37d18a0bf4c96f5228c0b5ce696053a
---
M asterisk/Asterisk_Tests.ttcn
M asterisk/expected-results.xml
2 files changed, 87 insertions(+), 0 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/93/37493/1
diff --git a/asterisk/Asterisk_Tests.ttcn b/asterisk/Asterisk_Tests.ttcn
index d202c05..a97f2a4 100644
--- a/asterisk/Asterisk_Tests.ttcn
+++ b/asterisk/Asterisk_Tests.ttcn
@@ -1080,6 +1080,82 @@
f_shutdown();
}

+/* Validate incoming IMS MT call is rejected if no UAs are available due to being busy in an internall call. */
+testcase TC_ims_call_mt_local_uas_inacall() runs on test_CT {
+ var SIPConnHdlrPars sip_pars[2];
+ var IMS_ConnHdlrPars ims_pars;
+ var SIPConnHdlr vc_conn_sip[2];
+ var IMS_ConnHdlr vc_conn_ims;
+ var AMI_Msg ami_msg;
+ const charstring c_ext_msisdn := "90829";
+
+ f_init();
+
+ sip_pars[0] := f_init_ConnHdlrPars(idx := 1);
+ sip_pars[1] := f_init_ConnHdlrPars(idx := 2);
+ ims_pars := f_init_IMS_ConnHdlrPars();
+
+ sip_pars[0].cp.calling := sip_pars[0].registrar_sip_record;
+ sip_pars[0].cp.called := sip_pars[1].registrar_sip_record;
+
+ sip_pars[1].cp.calling := sip_pars[0].registrar_sip_record;
+ sip_pars[1].cp.called := sip_pars[1].local_sip_record;
+
+ ims_pars.subscr.cp.calling := valueof(ts_SipAddr(ts_HostPort(ims_pars.realm),
+ ts_UserInfo(c_ext_msisdn)));
+ ims_pars.subscr.cp.called := valueof(ts_SipAddr(ts_HostPort(ims_pars.realm),
+ ts_UserInfo(ims_pars.subscr.msisdn)));
+
+ vc_conn_sip[0] := f_start_handler(refers(f_TC_internal_call_mo), sip_pars[0]);
+ vc_conn_sip[1] := f_start_handler(refers(f_TC_internal_call_mt), sip_pars[1]);
+
+ vc_conn_ims := f_start_handler_IMS(refers(f_TC_ims_call_mt_IMS_ConnHdlr_603_Decline), ims_pars);
+ f_AMI_IMS_register(ims_pars);
+
+ interleave {
+ [] COORD.receive(COORD_CMD_REGISTERED) from vc_conn_sip[0];
+ [] COORD.receive(COORD_CMD_REGISTERED) from vc_conn_sip[1];
+ [] IMS_COORD.receive(IMS_COORD_CMD_REGISTERED) from vc_conn_ims;
+ }
+
+ COORD.send(COORD_CMD_START) to vc_conn_sip[0];
+
+ interleave {
+ [] COORD.receive(COORD_CMD_CALL_ESTABLISHED) from vc_conn_sip[0];
+ [] COORD.receive(COORD_CMD_CALL_ESTABLISHED) from vc_conn_sip[1];
+ }
+
+ /* Call on-going, now IMS MT call is attempted: */
+ f_sleep(1.0);
+ IMS_COORD.send(IMS_COORD_CMD_START) to vc_conn_ims;
+ ami_msg := f_ami_wait_rx_msg(AMI_CLIENT,
+ tr_AMI_Event_Newchannel(mp_volte_ims_outbound_registration),
+ fail_others := false);
+ g_asterisk_chan_name := valueof(f_ami_msg_get_value(ami_msg, AMI_FIELD_CHANNEL));
+ f_ami_action_DedicatedBearerStatus(AMI_CLIENT,
+ g_asterisk_chan_name,
+ "Up", fail_others := false);
+ IMS_COORD.receive(IMS_COORD_CMD_CALL_REJECTED) from vc_conn_ims;
+ AMI_CLIENT.clear;
+ f_ami_action_DedicatedBearerStatus(AMI_CLIENT,
+ g_asterisk_chan_name,
+ "Down", fail_others := false);
+
+
+ COORD.send(COORD_CMD_HANGUP) to vc_conn_sip[0];
+ COORD.receive(COORD_CMD_CALL_FINISHED) from vc_conn_sip[1];
+
+ COORD.send(COORD_CMD_UNREGISTER) to vc_conn_sip[0];
+ COORD.send(COORD_CMD_UNREGISTER) to vc_conn_sip[1];
+ AMI_CLIENT.clear;
+ f_AMI_IMS_unregister(ims_pars);
+
+ vc_conn_sip[0].done;
+ vc_conn_sip[1].done;
+ vc_conn_ims.done;
+ f_shutdown();
+}
+
control {
execute( TC_internal_registration() );
execute( TC_internal_call_momt() );
@@ -1104,6 +1180,7 @@
execute( TC_ims_call_mt() );
execute( TC_ims_call_mt_noprecondition() );
execute( TC_ims_call_mt_no_local_uas_registered() );
+ execute( TC_ims_call_mt_local_uas_inacall() );
}

}
diff --git a/asterisk/expected-results.xml b/asterisk/expected-results.xml
index 3be281c..dd665e4 100644
--- a/asterisk/expected-results.xml
+++ b/asterisk/expected-results.xml
@@ -23,4 +23,5 @@
<testcase classname='Asterisk_Tests' name='TC_ims_call_mt' time='MASKED'/>
<testcase classname='Asterisk_Tests' name='TC_ims_call_mt_noprecondition' time='MASKED'/>
<testcase classname='Asterisk_Tests' name='TC_ims_call_mt_no_local_uas_registered' time='MASKED'/>
+ <testcase classname='Asterisk_Tests' name='TC_ims_call_mt_local_uas_inacall' time='MASKED'/>
</testsuite>

To view, visit change 37493. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I8a407993f37d18a0bf4c96f5228c0b5ce696053a
Gerrit-Change-Number: 37493
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-MessageType: newchange