pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37493?usp=email )

Change subject: asterisk: Introduce test TC_ims_call_mt_local_uas_inacall
......................................................................

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(-)

Approvals:
  pespin: Looks good to me, approved
  Jenkins Builder: Verified




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 https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37493?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I8a407993f37d18a0bf4c96f5228c0b5ce696053a
Gerrit-Change-Number: 37493
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to