Hello,
have you run with debug=3 in kamailio.cfg? You should see more log
messages about what happens, maybe the transaction is destroyed for some
reason, there are debug messages when that happens.
Cheers,
Daniel
On 07.01.21 17:58, Jeremy McNamara wrote:
Hi -
route[RELAY] {
if (!t_relay()) {
sl_reply_error();
}
}
I also call SETUP_ROUTES separately before RELAY:
route[SETUP_ROUTES] {
# enable additional event routes for forwarded requests
if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {
if (!t_is_set("branch_route")) {
t_on_branch("MANAGE_BRANCH");
}
}
if (is_method("INVITE|SUBSCRIBE|UPDATE")) {
if (!t_is_set("onreply_route")) {
t_on_reply("MANAGE_REPLY");
}
}
}
On Thu, Jan 7, 2021 at 11:48 AM Jurijs Ivolga <jurijs.ivolga(a)gmail.com
<mailto:jurijs.ivolga@gmail.com>> wrote:
Hi,
What happens in the route[RELAY]?
Maybe code after "route(RELAY)" is not executed?
When there is only 1 device what value is inside $var(hstored)
when the register hits Kamailio?
Jurijs
On Wed, Jan 6, 2021 at 4:27 AM Jeremy McNamara
<mcnamara.jeremy(a)gmail.com <mailto:mcnamara.jeremy@gmail.com>> wrote:
Hi Folks - I am attempting to set up a mobile push
configuration, by following the published example(s).
If we have more than one endpoint registered, this
configuration works as expected (via the ts_store() path below).
If we do not have another registered endpoint the transaction
seems to be suspended but then cannot be resumed (t_suspend)
after REGISTER arrives.
INFO: <script>: [R-LOG]: INVITE from IP:[24.XXX.XXX.XXX:62665]
[sip:jeremy2@stage][<null>]
NFO: <script>: [R-SUSPEND]: Suspended transaction
[41359:415220139]
INFO: <script>: [R-SUSPEND]: fU:[jeremy] rU:[jeremy2] tU:[jeremy2]
INFO: <script>: [R-SUSPEND]: fU:[jeremy] => tU:[jeremy2]
INFO: <script>: [R-SUSPEND]: vtp:[41359:415220139]
INFO: <script>: [R-SENDPUSH]: Push sent
[(55516cc061038f1283104abb39072a59107b7d8e13a1fd166b1704a315d07f78][com][hq01gt5utegi18ipkh1b]
[Node-Push]: About to push:
55516cc061038f1283104abb39072a59107b7d8e13a1fd166b1704a315d07f78
INFO: <script>: R-REGISTER]: jeremy2 registered
INFO: <script>: [R-REGISTER]: Contact:
[<sip:ilyartjr@qjwhdafxlbtk.invalid;transport=ws>;expires=10;app-id=stage;pn-voip-tok=55516cc061038f1283104abb39072a59107b7d8e13a1fd166b1704a315d07f78]
INFO: <script>: [R-REGISTER]: App id: stage
INFO: <script>: [R-REGISTER]: Expires: 10
INFO: <script>: [R-JOIN]: jeremy2
INFO: <script>: [R-JOIN]: Resuming trasaction
[41359:415220139] jeremy2 (41359:415220139)
WARNING: tm [t_suspend.c:197]: t_continue_helper():
transaction is not suspended [41359:415220139]
WARNING: tmx [tmx_mod.c:847]: w_t_continue(): resuming the
processing of transaction [41359:415220139] failed
Relvant kamailio.cfg
[Note: I did notice we had to switch things up a bit if calls
come from a PSTN number via SBC]
modparam("htable", "htable",
"vtp=>size=10;autoexpire=300")
...
if (!lookup("location")) {
send_reply("100", "Suspending");
route(SUSPEND); // *testing this path here *
} else {
route(RELAY);
ts_store("$tu");
$sht(vtp=>stored::$tU) = 1;
xlog("L_INFO", "[R-LOCATION]: Stored transaction
[$T(id_index):$T(id_label)] $fU => $tU\n");
}
...
route[SUSPEND] {
if (!t_suspend()) {
xlog("L_ERROR", "[R-SUSPEND]: Failed to suspend
transaction [$T(id_index):$T(id_label)]\n");
send_reply("501", "Unknown Destinaton");
exit;
}
xlog("L_INFO", "[R-SUSPEND]: Suspended transaction
[$T(id_index):$T(id_label)]\n");
xlog("L_INFO", "[R-SUSPEND]: fU:[$fU] rU:[$rU]
tU:[$tU]\n");
if (isbflagset(FLB_PSTN)) {
$sht(vtp=>join::$rU) = "" + $T(id_index) + ":" +
$T(id_label);
xlog("L_INFO", "[R-SUSPEND]: fU:[$fU] =>
rU:[$rU]\n");
xlog("L_INFO", "[R-SUSPEND]:
vtp:[$sht(vtp=>join::$rU)]\n");
} else {
$sht(vtp=>join::$tU) = "" + $T(id_index) + ":" +
$T(id_label);
xlog("L_INFO", "[R-SUSPEND]: fU:[$fU] =>
tU:[$tU]\n");
xlog("L_INFO", "[R-SUSPEND]:
vtp:[$sht(vtp=>join::$tU)]\n");
}
}
route[REGISTER] {
if (!is_method("REGISTER")) {
return;
}
if (isflagset(FLT_NATS)) {
setbflag(FLB_NATB);
}
if (!save("location")) {
sl_reply_error();
}
route(JOIN);
}
# Append branches or resume the transaction
route[JOIN] {
xlog("L_INFO","[R-JOIN]: $tU\n");
$var(hjoin) = 0;
lock("$tU");
$var(hjoin) = $sht(vtp=>join::$tU);
$var(hstored) = $sht(vtp=>stored::$tU);
$sht(vtp=>join::$tU) = $null;
unlock("$tU");
if ($var(hjoin)==0) {
if ($var(hstored)) {
xlog("L_INFO","[R-JOIN]: Appending transaction
($tu)\n");
ts_append("location", "$tu");
exit;
}
xlog("L_INFO","[R-JOIN]: No INVITE to resume\n");
exit;
}
$var(id_index) = $(var(hjoin){s.select,0,:}{s.int
<http://s.int>});
$var(id_label) = $(var(hjoin){s.select,1,:}{s.int
<http://s.int>});
xlog("L_INFO", "[R-JOIN]: Resuming trasaction
[$var(id_index):$var(id_label)] $tU ($var(hjoin))\n");
t_continue("$var(id_index)", "$var(id_label)",
"RESUME");
exit;
}
# Lookup and relay after resuming transaction
route[RESUME] {
xlog("L_INFO", "[R-RESUME]: ru: [$ru] tu: [$tu]\n");
lookup("location");
route(SETUP_ROUTES);
route(RELAY);
ts_store("$tu");
$sht(vtp=>stored::$tU) = 1;
xlog("L_INFO", "[R-RESUME]: Stored transaction
[$T(id_index):$T(id_label)] $fU => $tU\n");
exit;
}
What did I miss?
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org <mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
<https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org <mailto:sr-users@lists.kamailio.org>
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
<https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users