[OpenSIPS-Users] re-INVITE from external gateway

Daniel Goepp dan at goepp.net
Fri Apr 23 05:07:59 CEST 2010


Was it really this simple, am I really that stupid?  After looking into the
nat_uac_test more, it's just testing for RFC 1918 the way we have it
configured, so I put into the reply_route:

        if ($ct.fields(uri)=~"10\.*|^192\.168\.*|^172\.16\.*") {
                xlog ("Found a response from a private address! -
$ct.fields(uri)");
                fix_nated_contact();
        }

And my calls are now staying up past the UPDATE messages, with the correct
Contact information.  I'm sure this will break something else.  Is this the
correct / recommended way to do this?  I also took out the INVITE test in
the routes.  Why wouldn't you treat all messages the same once it reaches
that routing logic, be it an UPDATE, INFO, etc...?

-dg


On Thu, Apr 22, 2010 at 6:43 PM, Daniel Goepp <dan at goepp.net> wrote:

> To further clarify this, what I could just be looking for is the reverse of
> the nat_uac_test, which tests if the request is coming from a NAT'd
> endpoint.  What if the call was sent _to_ a NAT'd endpoint, and we need to
> appropriately handle the contact in the response, not the request?  I have a
> 200 OK coming back in response to an UPDATE message, but the contact is a
> private address.  After looking deeper into the dialog module, I'm not even
> sure it can help me with this one.  I'm sure I can't be the first person
> dealing with responses sent to a NAT'd endpoint :)  But I'm not seeing a
> clear way to identify these, so again any thoughts are much appreciated.
>
> Thanks
>
> -dg
>
>
>
> On Thu, Apr 22, 2010 at 4:20 PM, Daniel Goepp <dan at goepp.net> wrote:
>
>> I have two questions, one specific and one general, but I have a feeling
>> the answers might be similar to both.
>>
>> First, we are having an issue with a gateway that does a re-INVITE.  The
>> call scenario is like this, registered user X calls out via a carrier to the
>> PSTN, we identify that the customer is behind NAT, and do the proper contact
>> rewrite.  However then the carrier then re-INVITEs at 15 minutes to make
>> sure the call is up, everything goes through fine, except we are not
>> rewriting the contact in the 200 OK back, because the carrier was not behind
>> NAT.  So my thought is that this would be a situation for an AVP (of which
>> my knowledge is limited and I can't wait for the next webinar on the
>> topic).  That when the call gets setup, I set a variable to identify that I
>> should act differently for this call when I see that re-INVITE.  Or would
>> the more appropriate solution be to just bit the bullet and use the dialog
>> module?  Or perhaps there is yet another better solution I'm not aware of.
>> I haven't implemented the dialog module so far due to concerns regarding
>> resource consumption.  So I guess the bigger question is, do most of the
>> folks out there use the dialog module?
>>
>> My next question is related to the fact that the default route for a call
>> that has a totag (existing transaction) is route 1.  However the initial
>> call might well have been routed using a different route in the first
>> place.  Again, I was thinking would I use AVP here to put into the has totag
>> section of the script to go to the same route used the first time, or should
>> I again be looking to the dialog module to just make sure I'm keeping track
>> of all calls more completely, and then can make sure that a subsequent
>> messages coming in with a totag, that was let's say originally routed using
>> route 3, again goes to route 3.
>>
>> I sort of feel I have answered my own question here, that dialog is my
>> only solution, but any feedback regarding other people experiences is
>> handing in call re-signaling would be greatly appreciated.
>>
>> Thanks
>>
>> -dg
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20100422/7c415b30/attachment.htm 


More information about the Users mailing list