[SR-Users] problem with relaying after t_susped() and t_continue()
Uri Shacked
ushacked at gmail.com
Wed Mar 9 16:50:49 CET 2016
I have a problem when using t_suspend() and t_continue().
Let's say I would like to have a 5 sec delay before relaying an INVITE.
For example the following code:
* route[MYROUTE] {*
* t_newtran();*
* if (is_method("INVITE")) {*
* t_reply("100", "Trying");*
* t_reply("180", "In
Queue");*
* $sht(a=>$ci::t_index) =
$T(id_index);*
* $sht(a=>$ci::t_label) =
$T(id_label);*
* $sht(a=>$ci::t_suspended)
= 1;*
* xlog("L_WARN","SUSPENDING
t_index = $sht(a=>$ci::t_index) and t_label = $sht(a=>$ci::t_label)");*
* t_suspend();*
* sleep(5);*
* if (t_is_canceled()) drop;*
* $sht(a=>$ci::t_suspended)
= 0;*
*
t_continue("$avp(t_index)","$avp(t_label)","1");*
* }*
* route(RELAY);*
* exit;*
* }*
* route[1] {*
* xlog("L_WARN","After transaction
continue\n");*
* route(RELAY);*
* exit;*
* }*
When using this code, I get the following error:
Mar 9 16:49:32 mysip /usr/local/sbin/kamailio[5260]: WARNING: <script>:
After transaction continue
Mar 9 16:49:32 mysip /usr/local/sbin/kamailio[5260]: ERROR: <core>
[resolve.c:1693]: sip_hostport2su(): could not resolve hostname: "mysip"
Mar 9 16:49:32 mysip /usr/local/sbin/kamailio[5260]: ERROR: tm [ut.h:319]:
uri2dst2(): failed to resolve "mysip"
Mar 9 16:49:32 mysip /usr/local/sbin/kamailio[5260]: ERROR: tm
[t_fwd.c:1711]: t_forward_nonack(): ERROR: t_forward_nonack: failure to add
branches
Mar 9 16:49:32 mysip /usr/local/sbin/kamailio[5260]: ERROR: sl
[sl_funcs.c:363]: sl_reply_error(): ERROR: sl_reply_error used:
Unresolvable destination (478/SL)
Mar 9 16:49:32 mysip /usr/local/sbin/kamailio[5260]: BUG: tm
[t_lookup.c:1481]: t_unref(): tm: t_unref: REQ_ERR DELAYED should have been
caught much earlier for 0x7fd4e727a468: 27 (hex 1b)
If I try to t_continue() without any route:
t_continue("$avp(t_index)","$avp(t_label)","");
The call is working great and the following error pops up:
Mar 9 17:10:36 mysip /usr/local/sbin/kamailio[5830]: ERROR: tmx
[tmx_mod.c:635]: w_t_continue(): empty action lists in route block []
Am I doing something wrong?
My other question is regarding CANCEL.
Let's assume I suspended the INVITE and in these 5 sec I received CANCEL
for it.
Is there a short and elegant way to remove the transaction from suspension?
For now I do:
* if (is_method("CANCEL")) {*
* if (t_check_trans()) {*
*
if($sht(a=>$ci::t_suspended) == 1) {*
*
t_continue("$sht(a=>$ci::t_index)","$sht(a=>$ci::t_label)","");*
*
xlog("L_WARN","After transaction continue\n");*
* }*
* route(RELAY);*
* }*
* exit;*
* }*
Thanks,
Uri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20160309/2be23d6d/attachment.html>
More information about the sr-users
mailing list