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.ivo...@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.jer...@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});
>>     $var(id_label) = $(var(hjoin){s.select,1,:}{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@lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to