[SR-Users] can kamailio send 183 to caller

赵国杰 zhaoguojie2010 at 163.com
Mon Dec 11 08:37:59 CET 2017


Hello Sammy,
    I followed your instructions,  the config is as follows:
...
route[http_async_things]{
        t_newtran();
        $http_req(hdr) = "Content-Type: application/json";
        $http_req(body) = $_s({"cmuid": "$var(cmuid)"});
        http_async_query("http://127.0.0.1:8080", "HTTP_REPLY");
}
...


kamailio returned 477,  here's the kamailio log:
Dec 11 07:23:44 kamailio-test-4 /usr/sbin/kamailio[2319]: CRITICAL: tm [timer.h:193]: _set_fr_retr(): already added: 0x7f0830995710 , tl=0x7f0830995730!!!
Dec 11 07:23:44 kamailio-test-4 /usr/sbin/kamailio[2319]: CRITICAL: tm [t_fwd.c:1587]: t_send_branch(): BUG: retransmission already started for: 0x7f0830995710
Dec 11 07:23:44 kamailio-test-4 /usr/sbin/kamailio[2319]: CRITICAL: tm [timer.h:193]: _set_fr_retr(): already added: 0x7f08309958c0 , tl=0x7f08309958e0!!!
Dec 11 07:23:44 kamailio-test-4 /usr/sbin/kamailio[2319]: CRITICAL: tm [t_fwd.c:1587]: t_send_branch(): BUG: retransmission already started for: 0x7f08309958c0
Dec 11 07:23:44 kamailio-test-4 /usr/sbin/kamailio[2319]: ERROR: sl [sl_funcs.c:362]: sl_reply_error(): stateless error reply used: Unfortunately error on sending to next hop occurred (477/SL)
Dec 11 07:23:54 kamailio-test-4 /usr/sbin/kamailio[2307]: WARNING: tm [t_suspend.c:191]: t_continue(): transaction is not suspended [4232:1719199494]
Dec 11 07:24:04 kamailio-test-4 /usr/sbin/kamailio[2306]: ERROR: http_async_client [async_http.c:198]: async_http_cb(): transaction not found 4232:1719199494


somehow the http_async_query doesn't work, any idea?


Thanks



在 2017-12-11 13:41:41,"SamyGo" <govoiper at gmail.com> 写道:

Hi, 
I'm not sure if I understood correctly, however, it seems like if UserB is dialed then send call to FreeSWITCH in parallel to doing an http_async_query ; once the http query returns a response then send call to that response.

If I'm correct then you need to make use of branch_route. 

route{
...

    append_branch("sip:prompt-tone at freeswitch");
    t_on_branch("api_query");
    route(RELAY);
}

Then create the branch route "api_query" and in there execute your HTTP async query. 
branch_route[api_query]{         
         if($rU != "freeswitch") 
             route(http_aysnc_things);
}

route[http_async_things]{
   Code example from here: https://www.kamailio.org/docs/modules/5.1.x/modules/http_async_client.html#http_async_client.f.http_async_query
}


route[HTTP_REPLY] {
    if ($http_ok) {
        xlog("L_INFO", "route[HTTP_REPLY]: status $http_rs body: $http_rb\n");
        # Assuming the HTTP server replies with a SIP URI
        $ru = $http_rb;
        route(RELAY);
    } else {
        xlog("L_INFO", "route[HTTP_REPLY]: error  $http_err)\n");
    }
}


Thats just my idea , the code might have syntax issues so correct accordingly. If above works then it should do both ringing and the API query in parallel. As I see it you're trying to append_branch and then doing a t_newtran->HTTP ASYNC query, causing the whole blockage and that explains if you remove the last 4 line it works.


Regards,

Sammy








On Fri, Dec 1, 2017 at 3:14 AM, 赵国杰 <zhaoguojie2010 at 163.com> wrote:

Hello,
      I forgot to add route(RELAY) after the append_branch(). This brings another problem. Say the original INVITE is from A to B, what I want is:
          1. fork 1 more INVITE to freeswitch 
          2. discard the original A to B INVITE and wait for the http_async_query returns. When returns, the final destiation is determined, say C. Then send the INVITE to C. 


     However, after append_branch(), then original INVITE is sent to B anyway. How do I block the A to B INVITE?


Thanks

At 2017-12-01 15:13:10, "赵国杰" <zhaoguojie2010 at 163.com> wrote:

Hello Sammy,
     Yes, I want the kamailio to play ring-back music immediately after it receive the INVITE.  My plan is to append a branch to freeswitch and let freeswitch to play the music. The problem is append_branch() does not work in the following context:


if(is_method("INVITE")) {
                append_branch("sip:prompt-tone at freeswitch");
                xlog("append branch");
                t_newtran();
                $http_req(hdr) = "Content-Type: application/json";
                $http_req(body) = $_s({"cmuid": "$var(cmuid)"});
                http_async_query("http://127.0.0.1:8080", "HTTP_REPLY");
}


if I remove the last 4 lines everything works fine. Otherwise, no forked INVITE will be sent to freeswitch. Unfortunately, I need the http_async_query to find the proper callee. Any suggestions?


Thanks

At 2017-11-30 23:49:59, "SamyGo" <govoiper at gmail.com> wrote:

Hi,
While Brandon is right, you can do absolutely do that but w/o any SDP or progress media in there. I'd ask why you want to do that! If you want to feed some ring-back music I'd advise you to append a branch to a media-server like asterisk and then let that do it for you.


So here's one way of doing that.

if(is_method("INVITE")){
         append_branch("sip:183 at 192.168.1.5:5060");
...
}


where IP is of asterisk and dialplan is configured to provider Progress() with media. 


Again, it depends on why you want it?


Regards,
Sammy


On Wed, Nov 29, 2017 at 11:13 PM, Brandon Armstead <brandon at cryy.com> wrote:

if(is_method(“INVITE”)){ .....


sl_send_reply(“183”, “Ringing”); ....


}


On Wed, Nov 29, 2017 at 6:44 PM 赵国杰 <zhaoguojie2010 at 163.com> wrote:

Hello guys, 
     Is it possible for kamailio to initiate a 183 to caller?


Thanks 




 

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users at lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

--

Sent from Gmail Mobile

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users at lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users








 





 


_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users at lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20171211/49f21048/attachment.html>


More information about the sr-users mailing list