diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2024-07-12 17:24:09 +0200 |
---|---|---|
committer | pespin <pespin@sysmocom.de> | 2024-07-16 17:40:32 +0000 |
commit | 0f55834fe9835b80d3f733c6501df4aa1078d0d8 (patch) | |
tree | 80b603f53a402e49f774690b706ccafea088c4bd | |
parent | 4b80b4ada46378be5fca2e31188f22a89ace6d62 (diff) |
asterisk: Move Via generation to helper function
Change-Id: Id49222928980e1fc5ab006719688b4fa0849d391
-rw-r--r-- | asterisk/IMS_ConnectionHandler.ttcn | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/asterisk/IMS_ConnectionHandler.ttcn b/asterisk/IMS_ConnectionHandler.ttcn index 3e4e3e97..6a1328df 100644 --- a/asterisk/IMS_ConnectionHandler.ttcn +++ b/asterisk/IMS_ConnectionHandler.ttcn @@ -1107,6 +1107,19 @@ altstep as_IMS_unregister(boolean fail_others := true) runs on IMS_ConnHdlr [fail_others] as_SIP_fail_req(sip_expect_str); } +private function f_IMS_gen_new_Via() runs on IMS_ConnHdlr return Via +{ + var charstring branch_value; + var Via via := g_pars.local_via; + + branch_value := f_sip_gen_branch(f_sip_Addr_Union_to_str(g_pars.subscr.cp.from_addr.addressField), + f_sip_Addr_Union_to_str(valueof(g_pars.subscr.cp.to_addr.addressField)), + g_pars.subscr.cp.sip_call_id, + g_pars.subscr.cp.sip_seq_nr); + via.viaBody[0].viaParams := f_sip_param_set(via.viaBody[0].viaParams, "branch", branch_value); + return via; +} + /* IMS Core starts a call towards the peer: 3GPP TS 24.229 5.1.3.1 */ function f_IMS_mt_call_setup() runs on IMS_ConnHdlr { @@ -1122,7 +1135,6 @@ function f_IMS_mt_call_setup() runs on IMS_ConnHdlr var OptionTag_List supported_list := {}; var charstring tx_sdp; var default d_trying, d_ringing; - var charstring branch_value; var Contact calling_contact, called_contact; var integer sip_seq_nr; @@ -1132,12 +1144,7 @@ function f_IMS_mt_call_setup() runs on IMS_ConnHdlr g_pars.subscr.cp.to_addr := valueof(ts_To(g_pars.subscr.cp.called.addr, g_pars.subscr.cp.called.params)); from_addr_exp := tr_From(tr_Addr_Union_from_val(g_pars.subscr.cp.from_addr.addressField), *); to_addr_exp := tr_To(tr_Addr_Union_from_val(g_pars.subscr.cp.to_addr.addressField), *); - branch_value := f_sip_gen_branch(f_sip_Addr_Union_to_str(g_pars.subscr.cp.from_addr.addressField), - f_sip_Addr_Union_to_str(valueof(g_pars.subscr.cp.to_addr.addressField)), - g_pars.subscr.cp.sip_call_id, - g_pars.subscr.cp.sip_seq_nr); - via := g_pars.local_via; - via.viaBody[0].viaParams := f_sip_param_set(via.viaBody[0].viaParams, "branch", branch_value); + via := f_IMS_gen_new_Via(); calling_contact := valueof(ts_Contact({ ts_ContactAddress(g_pars.subscr.cp.calling.addr, omit) @@ -1359,16 +1366,7 @@ function f_IMS_do_call_hangup() runs on IMS_ConnHdlr { var template (value) PDU_SIP_Request req; var template (present) PDU_SIP_Response exp_resp; - var Via via; - var charstring branch_value; - - branch_value := f_sip_gen_branch(f_sip_Addr_Union_to_str(g_pars.subscr.cp.from_addr.addressField), - f_sip_Addr_Union_to_str(valueof(g_pars.subscr.cp.to_addr.addressField)), - g_pars.subscr.cp.sip_call_id, - g_pars.subscr.cp.sip_seq_nr); - - via := g_pars.local_via; - via.viaBody[0].viaParams := f_sip_param_set(via.viaBody[0].viaParams, "branch", branch_value); + var Via via := f_IMS_gen_new_Via(); /* Transmit ACK */ req := ts_SIP_BYE(g_pars.subscr.cp.sip_call_id, |