[OpenSIPS-Users] EC2 and rapidly repeated invites

Kurtis Heimerl kheimerl at endaga.com
Thu Jun 12 02:14:42 CEST 2014


Thanks so much Bogdan, that line is super helpful.

I can't yet figure out why it's looping though. Here's what the log now
shows:

Jun 11 23:59:32 ip-172-31-27-53 /usr/sbin/opensips[5836]: [Script
Trace][line 149][me][route 4] -> (INVITE from IP, ruri=sip:NAME at HOST)
Jun 11 23:59:32 ip-172-31-27-53 /usr/sbin/opensips[5836]: [Script
Trace][line 273][me][core if] -> (INVITE from IP, ruri=sip:NAME at HOST)
Jun 11 23:59:32 ip-172-31-27-53 /usr/sbin/opensips[5836]: [Script
Trace][line 270][me][module do_routing] -> (INVITE from IP,
ruri=sip:NAME at HOST)
Jun 11 23:59:32 ip-172-31-27-53 /usr/sbin/opensips[5836]: [Script
Trace][line 273][me][core if] -> (INVITE from IP, ruri=sip:NAME at HOST)
Jun 11 23:59:32 ip-172-31-27-53 /usr/sbin/opensips[5836]: [Script
Trace][line 270][me][module do_routing] -> (INVITE from IP,
ruri=sip:NAME at HOST)
... (repeated dozens of times)
Jun 11 23:59:32 ip-172-31-27-53 /usr/sbin/opensips[5836]:
CRITICAL:core:eval_expr: too many expressions (101)
Jun 11 23:59:32 ip-172-31-27-53 /usr/sbin/opensips[5836]:
WARNING:core:do_action: error in expression (l=273)

This seems to indicate an issue with my routing logic. However, I can't see
where I'm infinitely recursing. Here's the dialplan:

route{
        script_trace( 1, "$rm from $si, ruri=$ru", "me");

        if (!mf_process_maxfwd_header("70")) {
                sl_send_reply("483","Too Many Hops");
                exit;
        }

        #kurtis

        if (is_method("INVITE")) {
           setflag(1); # do accounting

           route(4); # Call our dynamic route.

        }

        if (has_totag()) {
... (default from here)

and my custom route 4, which i've tried to poke at to remove the recursion,
but failed.

route[4] {
  if (!do_routing("0")) {
    send_reply("503", "No Rules matching the URI");
  }
  exit;

#  route(relay);

}

Any guidance? I can't see how I'm causing it to recurse, but I've done this
in opensips before so I'm not surprised.

Thanks for all of your help!




On Tue, Jun 10, 2014 at 6:08 AM, Bogdan-Andrei Iancu <bogdan at opensips.org>
wrote:

>  Hi Kurtis,
>
> On a first look, it seems your script doing doing a kind of looping (maybe
> a recursive call of a route or so) - at least this is what the log errors
> tell.
>
> You can try the script_trace() function to understand how your script is
> executed:
>     http://www.opensips.org/Documentation/Script-CoreFunctions-1-11#toc42
>
> Regards,
>
> Bogdan-Andrei Iancu
> OpenSIPS Founder and Developerhttp://www.opensips-solutions.com
>
> On 09.06.2014 01:37, Kurtis Heimerl wrote:
>
> Hello mailing list,
>
>  I've been working on setting up OpenSIPS on an EC2 instance, routing
> traffic between nexmo and our gateway, a FS instance on a public IP. I was
> kindly directed to an earlier thread on OpenSIPs and EC2 (
> http://lists.opensips.org/pipermail/users/2010-April/012393.html) but
> have come to an issue I think is unrelated.
>
>  Here's the current architecture:
> Nexmo -> EC2 NAT -> OpenSIPs -> EC2 NAT -> FS
>
>  I started with a walkthrough on the website (
> http://www.unixnews.net/2010/09/dynamic-routing-with-opensips.html) which
> roughly seems to be working. I've configured the gateway, the routes, and
> so on. When I call my Nexmo number, it successfully routes to FS and rings
> but, when answered, never connects, failing after 30 seconds. This is, as
> expected, the OK never reaching Nexmo and the RTP negotiation never
> starting. I started poking around in wireshark and ran into another issue:
> OpenSIPs is forwarding 9 invites in rapid succession (less than a second)
> rather than just the one it received! FS *seems* to handle this correctly
> (482 Request Merged) but it makes the SIP trace an enormous mess and
> completely unreadable.
>
>  The opensips log is a mess, but isn't particularly useful:
>  Jun  8 21:55:51 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> ERROR:signaling:sig_send_reply_mod: failed to send reply with tm module
> Jun  8 21:55:51 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> ERROR:tm:add_uac: maximum number of branches exceeded
> Jun  8 21:55:51 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> ERROR:tm:t_forward_nonack: failure to add branches
> Jun  8 21:55:51 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> ERROR:tm:w_t_relay: t_forward_nonack failed
> Jun  8 21:55:51 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> ERROR:tm:_reply_light: failed to generate 500 reply when a final 500 was
> sent out
> Jun  8 21:55:51 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> ERROR:signaling:sig_send_reply_mod: failed to send reply with tm module
> Jun  8 21:55:51 ip-172-31-27-53 /usr/sbin/opensips[18082]: incoming reply
> Jun  8 21:55:51 ip-172-31-27-53 /usr/sbin/opensips[18082]: incoming reply
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> CRITICAL:core:eval_expr: too many expressions (101)
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> WARNING:core:do_action: error in expression (l=272)
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> CRITICAL:core:eval_expr: too many expressions (101)
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> WARNING:core:do_action: error in expression (l=283)
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> CRITICAL:core:eval_expr: too many expressions (101)
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18082]:
> WARNING:core:do_action: error in expression (l=285)
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18082]: new branch at
> sip:18178184971 at gadogado.banatao.berkeley.edu
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18083]: message
> repeated 5 times: [ incoming reply]
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18083]:
> CRITICAL:tm:t_should_relay_response: pick_branch failed (lowest==-1) for
> code 482
> Jun  8 21:56:55 ip-172-31-27-53 /usr/sbin/opensips[18083]: incoming reply
>
>  Does anyone have any idea what would cause OpenSIPs to forward an invite
> 9 times in less than a second? Fixing that should allow me to move onto
> figuring out why it's not forwarding the 200 OK back to Nexmo.
>
>  Thanks!
>
>
> _______________________________________________
> Users mailing listUsers at lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20140611/16fd0103/attachment.htm>


More information about the Users mailing list