[OpenSIPS-Users] EC2 and rapidly repeated invites
Kurtis Heimerl
kheimerl at endaga.com
Tue Jun 17 02:18:57 CEST 2014
Hello!
Here's the followup issue. Removing the routeid from the rule is causing
opensips to return a 503 "No rules matching the URI" code to the Invite. It
does not repeat the invite though, so this may be progress.
Here's the cmd for adding the rule that I'm using:
opensipsctl dr addrule 0 $MSISDN '' 1 '' 1 '' 'Route to testbox'
Gateway 1 is defined correctly as:
pgsql_query: /usr/bin/psql -A -q -t -P fieldsep=' ' -h localhost -U
postgres opensips -c 'select * FROM dr_gateways ORDER BY gwid; '
6 1 1 $SERVERNAME 0 TEST 2 0 test box
So it seems routeid must be set in order to forward the message?
On Sun, Jun 15, 2014 at 9:09 PM, Kurtis Heimerl <kheimerl at endaga.com> wrote:
> Hi Bogdan,
>
> This was indeed the issue. I guess setting a routeid *and* a gw causes it
> to send out route in two different directions?
>
> Anyhow, thanks so much for the direction. I'm sure I'll come back with new
> issues.
>
>
> On Wed, Jun 11, 2014 at 10:48 PM, Bogdan-Andrei Iancu <bogdan at opensips.org
> > wrote:
>
>> Hi Kurtis,
>>
>> Do you use any routeid in the rule definitions ? maybe that's the looping
>> cause.....Be sure it is set to NULL.
>>
>> Regards,
>>
>> Bogdan-Andrei Iancu
>> OpenSIPS Founder and Developerhttp://www.opensips-solutions.com
>>
>> On 12.06.2014 03:14, Kurtis Heimerl wrote:
>>
>> 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/20140616/942899c7/attachment-0001.htm>
More information about the Users
mailing list