[SR-Users] serial forking calls using TSILO

Tomas Zanet tzanet at came.com
Fri Jan 20 11:05:51 CET 2017


Hello,
I'm using Kamailio 4.4.4 with TSILO module in order to support Push Notifications used by our voip app on Apple ios10.
So far, everything works fine:  Kamailio can get an incoming call, suspend it, then send push notification with an external script, receive a new app registration and then call it after resuming the invite.
To do so, thanks to Mr, Cabiddu, I used all the functions described here
http://www.kamailio.org/events/2015-KamailioWorld/Day2/20-Federico.Cabiddu-Kamailio-In-A-Mobile-World.pdf


Right now, I would like to support serial forking calls using push notification because it was already supported with legacy voip.
To do so, I used failure_route function where, after getting the call destinations and setting them into an avp, I set the new SIP request uri $ru.
Here is my failure_route:
failure_route[MANAGE_FAILURE]
        route(NATMANAGE);
        if (t_is_canceled())
                exit;


#!ifdef WITH_BLOCK3XX
        # block call redirect based on 3xx replies.
        if (t_check_status("3[0-9][0-9]"))
                t_reply("404","Not found");
                exit;

#!endif

       if (is_avp_set("$avp(group_members_db)"))
                $ru ="sip:"+$avp(group_members_db)+"@"+$fd;
                $avp(group_members_db) = $null;
                route(LOCATION);
                exit;



I am troubleshooting this scenario and this is what I see:
1) Kamailio receives incoming call
2) Suspend it
3) Send Push notification to account1
4) Kamailio receives account1 registration -> INVRESUME route is now called
5) Then call account1
6) Nobody answers the call
7) failure_route[MANAGE_FAILURE] is now called -> set $ru with next sipaccount: account2
8) suspend invite
9) send push notification to account2
10) account2 sends its sip registration -> INVRESUME route is now called
11) Kamailio calls account1 instead of account2 -> this is my issue

On step 10: despite account2 is registered, I checked it using "kamctl ul show", the second call is forwarded all'account1 and not to account2.
I also checked the TSILO logs and everything seems ok. Here is the logs:
First call:
      suspended transaction [53945:1648394094] asterisk => account1
      htable key value [53945:1648394094]
      resuming trasaction [53945:1648394094] account1 53945:1648394094)
second call:
      suspended transaction [53945:1648394094] asterisk => account2
      htable key value [53945:1648394094]
      resuming trasaction [53945:1648394094] account2 53945:1648394094)

In order to find out the issue I put some xlogs, printing $ru value: what I see is the $ru value is set correctly on failure_route but as soon as the t_continue is called, the ru overwritten back to account1

Can anyone address me to find out the solution?
Thanks in advance

T.



Tomas Zanet
Software Design Department
tzanet at came.com



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20170120/20d9a6d1/attachment.html>


More information about the sr-users mailing list