[SR-Users] Kamailio propagates 180 and 200 OK OUT OF ORDER

Luis Rojas G. luis.rojas at sixbell.com
Tue Apr 14 21:20:38 CEST 2020


Hello, Alex,

How specifically did you solve that scenario (ACK-Re-Invite)? Would you 
mind sharing that part of your script? I have been trying to do that, 
but can't make it work. I was working on the requests, to see how Async 
works.

If I put it just in request_route, for instance, where record_route is put :

         if (is_method("INVITE|SUBSCRIBE")) {
                 if (is_method("INVITE")) {
                   async_ms_sleep(20);
                 }
                 record_route();
         }

I get this error :

1(18720) ERROR: async [async_mod.c:246]: w_async_ms_sleep(): cannot be 
executed as last action in a route block

I tried in route[DISPATCH]

route[DISPATCH] {
         # round robin dispatching on gateways group '1'
         if(!ds_select_dst("1", "0")) {
                 send_reply("404", "No destination");
                 exit;
         }
         xdbg("--- SCRIPT: going to <$ru> via <$du> (attrs: 
$xavp(_dsdst_=>attrs))\n");
         t_on_failure("RTF_DISPATCH");
         async_ms_sleep(10);
         forward();
#       route(RELAY);
         exit;
}


I get this error :

17(18736) WARNING: <core> [core/async_task.c:244]: async_task_push(): 
async task pushed, but no async workers - ignoring

No async workers? Why? I have this at the beginning of file :

loadmodule "async.so"
modparam("async", "workers", 4)
modparam("async", "ms_timer", 5)


Please, any advice.

Luis



On 4/9/20 9:49 AM, Alex Balashov wrote:
> On Thu, Apr 09, 2020 at 08:14:02AM -0400, Luis Rojas G. wrote:
>
>> Yes, I know that specifically in this case, from the point fo view of
>> SIP, it's not "much" important. It's just a symptom than I can't rely
>> on Kamailio to keep the ordering of messages when they are very very
>> close in time. With this customer (a Brazilian mobile operator) I have
>> seen scenarios where they send Re-Invite immediately after ACK, and
>> sometimes it caused us problems. I can't think right now in other
>> scenario,, but I'm afraid to find out in production. For what I see
>> the Async module, as it is now, could help me to deal with requests.
>> However, even though it's not a problem for SIP, the operator will
>> complain, I know them. And also, they will not like to just drop the
>> 180, because there will be scenarios with interworking, so it needs to
>> propagate the ACM ISUP body, with parameters as backward call
>> indicators.
> Agreed that you need to conserve signalling messages end-to-end, as a
> matter of principle; can't just drop things.
>
> As I mentioned earlier, we had the same problem--ironically, with a
> major mobile operator--sending reinvites and e2e ACKs almost
> contemporaneously. We solved it with 'async' by delaying all reinvites
> by 50 ms, and haven't had a single complaint since.
>
> Aside from that specific scenario, we haven't seen ordering problems,
> and have never had cause to call into question whether we can 'rely' on
> Kamailio to conserve ordering.
>
> There are valid questions raised in this thread about whether any
> user-space SIP element subject to the vicissitudes and realities of
> packet-switched networking can be relied upon to preserve ordering in a
> consistent and universal way.
>
> At the end of the day, this is a network problem. PSTN interworking is
> imperfect; it imposes synchronous assumptions upon asynchronous media,
> and we see this play out in many areas, e.g. fax. Not much you can do
> about it, but thankfully the corner cases are relatively few.
>
> -- Alex
>

-- 
Luis Rojas
Software Architect
Sixbell
Los Leones 1200
Providencia
Santiago, Chile
Phone: (+56-2) 22001288
mailto:luis.rojas at sixbell.com
http://www.sixbell.com

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


More information about the sr-users mailing list