Hi Kurtis,

Removing the routeid value does not affect at all the rule matching (routeid is not involved in the matching logic at all, it is something to be used after the matching was done). So, check the rules you have in DR (to be sure they serve your scope) - also check the debug log of OpenSIPS to understand why the matching fails (if still the case).

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 17.06.2014 03:18, Kurtis Heimerl wrote:
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; '
611$SERVERNAME0TEST20test 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 <kheim...@endaga.com <mailto:kheim...@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
    <bog...@opensips.org <mailto:bog...@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 Developer
        http://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@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@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@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@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@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
        <bog...@opensips.org <mailto:bog...@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 Developer
            http://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:18178184...@gadogado.banatao.berkeley.edu
            <mailto:sip%3a18178184...@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 list
            Users@lists.opensips.org  <mailto:Users@lists.opensips.org>
            http://lists.opensips.org/cgi-bin/mailman/listinfo/users






_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to