pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37480?usp=email )
Change subject: asterisk: IMS: MT call: Move Tx INVITE to helper function
......................................................................
asterisk: IMS: MT call: Move Tx INVITE to helper function
This helper function will be used by another function expecting an
INVITE reject in a follow-up patch.
Change-Id: If9657e88304fd7b3558737fdc807bae59cddc8a2
---
M asterisk/IMS_ConnectionHandler.ttcn
1 file changed, 45 insertions(+), 15 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/80/37480/1
diff --git a/asterisk/IMS_ConnectionHandler.ttcn b/asterisk/IMS_ConnectionHandler.ttcn
index 6a1328d..d4c9da2 100644
--- a/asterisk/IMS_ConnectionHandler.ttcn
+++ b/asterisk/IMS_ConnectionHandler.ttcn
@@ -1120,32 +1120,21 @@
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
+private function f_IMS_mt_call_tx_invite(Via via) runs on IMS_ConnHdlr
{
var template (value) PDU_SIP_Request req;
- var template (present) PDU_SIP_Response exp;
var template (present) From from_addr_exp;
var template (present) To to_addr_exp;
- var Via via;
- var template (omit) Require require := omit;
var template (omit) Min_SE min_SE := omit;
var template (omit) Session_expires session_expires := omit;
var template (omit) Supported supported := omit;
var OptionTag_List supported_list := {};
var charstring tx_sdp;
- var default d_trying, d_ringing;
- var Contact calling_contact, called_contact;
- var integer sip_seq_nr;
+ var Contact calling_contact;
/* RFC 3261 8.1.1.3 From */
- g_pars.subscr.cp.from_addr := valueof(ts_From(g_pars.subscr.cp.calling.addr,
g_pars.subscr.cp.calling.params));
- g_pars.subscr.cp.from_addr.fromParams :=
f_sip_param_set(g_pars.subscr.cp.from_addr.fromParams, "tag",
f_sip_rand_tag());
- 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), *);
- via := f_IMS_gen_new_Via();
-
calling_contact := valueof(ts_Contact({
ts_ContactAddress(g_pars.subscr.cp.calling.addr, omit)
}));
@@ -1172,13 +1161,12 @@
supported := ts_Supported(supported_list);
}
- sip_seq_nr := g_pars.subscr.cp.sip_seq_nr;
req := ts_SIP_INVITE(g_pars.subscr.cp.sip_call_id,
g_pars.subscr.cp.from_addr,
g_pars.subscr.cp.to_addr,
via,
calling_contact,
- sip_seq_nr,
+ g_pars.subscr.cp.sip_seq_nr,
accept := ts_Accept({ ts_AcceptBody("application/sdp"),
ts_AcceptBody("application/3gpp-ims+xml") }),
min_SE := min_SE,
session_expires := session_expires,
@@ -1186,6 +1174,36 @@
body := tx_sdp);
SIP.send(req);
+}
+
+/* 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
+{
+ var template (value) PDU_SIP_Request req;
+ var template (present) PDU_SIP_Response exp;
+ var template (present) From from_addr_exp;
+ var template (present) To to_addr_exp;
+ var Via via;
+ var template (omit) Require require := omit;
+ var charstring tx_sdp;
+ var default d_trying, d_ringing;
+ var Contact calling_contact, called_contact;
+ var integer sip_seq_nr;
+
+ /* RFC 3261 8.1.1.3 From */
+ g_pars.subscr.cp.from_addr := valueof(ts_From(g_pars.subscr.cp.calling.addr,
g_pars.subscr.cp.calling.params));
+ g_pars.subscr.cp.from_addr.fromParams :=
f_sip_param_set(g_pars.subscr.cp.from_addr.fromParams, "tag",
f_sip_rand_tag());
+ 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), *);
+ calling_contact := valueof(ts_Contact({
+ ts_ContactAddress(g_pars.subscr.cp.calling.addr, omit)
+ }));
+ via := f_IMS_gen_new_Via();
+
+ f_IMS_mt_call_tx_invite(via);
+
+ sip_seq_nr := g_pars.subscr.cp.sip_seq_nr;
/* Conditionally match and accept 100 Trying. */
exp := tr_SIP_Response_Trying(g_pars.subscr.cp.sip_call_id,
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37480?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: If9657e88304fd7b3558737fdc807bae59cddc8a2
Gerrit-Change-Number: 37480
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange