[OpenSIPS-Users] problem with loose_route()/t_relay() across multiple interfaces

Jeff Pyle jpyle at fidelityvoice.com
Sun Jul 8 14:21:02 CEST 2012


Hi Duane,

I have captures now!  I also read through your thread.  The situation looks
to be the same.  I also have a missing username in the self-relayed ACK's
RURI.

And it's also driving my crazy.

I'm on 1.7 build 9142.  You?



- Jeff


On Sat, Jul 7, 2012 at 7:14 PM, <duane.larson at gmail.com> wrote:

> Almost sounds like you and I are having the same issue.
>
> Here's my issue
>
> http://opensips-open-sip-server.1449251.n2.nabble.com/Two-OpenSIPS-proxies-issue-td7580685.html
>
> Do you have a SIP trace? I'm just wondering if we are having the same
> problem. Does the ACK that gets relayed to ifself on the other IP have the
> username missing in the RURI?
>
>
>
>
> On , Jeff Pyle <jpyle at fidelityvoice.com> wrote:
> > Hello,
> >
> >
> >
> > I'm attempting to write a config to perform near-end NAT traversal on
> Opensips 1.7.  I'm having a problem with the loose_route of the ACK after
> the 200 OK, and if I wait long enough, the BYE as well.
> >
> >
> >
> >
> > Here's the scenario.  An INVITE comes in the WAN side and is t_relay'd
> to the LAN side.  The LAN-side UAS sends a 200 OK, and that is relayed back
> to the WAN-side UAC.  So far, so good.  Then the WAN-side UAC sends the ACK
> to the 200.  Opensips relays this from its own WAN IP to its own LAN IP - I
> found it with ngrep on the lo interface.  Eventually Opensips sends a 408
> back to the UAC.
> >
> >
> >
> >
> > Here's the relevant portion of the config, based largely on the included
> sample.  This works fine with single-interface configurations:
> >
> >
> >
> >
> >         if (has_totag()) {
> >                 if (loose_route()) {
> >                         if (method=="INVITE") record_route();
> >
> >
> >                         if (!t_relay()) sl_reply_error();
> >                         exit;
> >                 } else {
> >                         if (method == "ACK") {
> >                                 if (t_check_trans()) {
> >
> >
> >                                         if (!t_relay())
> sl_reply_error();
> >                                         exit;
> >                                 } else {
> >                                         exit;
> >
> >
> >                                 }
> >                         }
> >                         sl_send_reply("404", "Not Here");
> >                 }
> >                 exit;
> >
> >
> >         }
> >
> >
> > I've verified with xlogs the ACK hits in the loose_route() portion of
> the config.  It does hit t_relay, but it relays the message to itself on
> its 'other' IP.  I've tried to look the extended debugs but I'm not finding
> anything telling.  Unfortunately I don't have any experience with multiple
> interface configurations.  I suspect it has something to do with the double
> Via lines added, one from each interface.  Perhaps it's not detecting the
> second Via as its own?  (Even if that were the case, I can't explain why
> it's not responding to itself on the lo interface.)
> >
> >
> >
> >
> > I do have mhomed=1 enabled.  Without it the initial invite doesn't
> arrive at the LAN-side UAS.
> >
> >
> > I've experimented with check_via, aliases, etc.  No effect.  Any
> suggestions on where to go from here?
> >
> >
> >
> >
> >
> >
> >
> >
> > - Jeff
> >
> >
> >
> >
> >
> >
> >
> >
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20120708/dd837184/attachment.htm>


More information about the Users mailing list