aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2024-07-12 17:24:09 +0200
committerpespin <pespin@sysmocom.de>2024-07-16 17:40:32 +0000
commit0f55834fe9835b80d3f733c6501df4aa1078d0d8 (patch)
tree80b603f53a402e49f774690b706ccafea088c4bd
parent4b80b4ada46378be5fca2e31188f22a89ace6d62 (diff)
asterisk: Move Via generation to helper function
-rw-r--r--asterisk/IMS_ConnectionHandler.ttcn32
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,