[SR-Users] 100rel without direct reachability

Daniel-Constantin Mierla miconda at gmail.com
Sat Jun 18 23:35:32 CEST 2011


Hello,


On 6/18/11 11:05 PM, Alex Balashov wrote:
> (Sorry for cross-posting from Sip-Implementors;  however, upon some 
> reflection this is really more of a Kamailio mechanics question.)
>
> Greetings,
>
> I have a scenario where endpoint A is calling endpoint B through proxy
> P.  Endpoints A and B are on different networks that are not directly
> reachable--A is on the public Internet, to which proxy P is connected,
> but NAT'd, and B is on a private RFC1918 network on which the proxy P
> has an interface as well.
>
> The purpose of proxy P is to make calling A <-> B possible, while
> providing the appropriate far-end NAT traversal functionality for A
> and so on and so on.  It does this by inserting the correct
> Record-Route headers into the INVITE from A, and otherwise by staying
> in the signaling path;  both A and B can reach the proxy, so all
> requests and replies go through it.
>
> The problem I'm having is prior to full dialog establishment.  Upon
> receipt of INVITE from A by way of proxy P, B replies with 183 + SDP
> and also:
>
>    Require: 100rel
>
> In the 183 it provides a Contact on its private network that A
> obviously cannot reach:
>
>    Contact: <sip:xxxxx at 192.168.0.10:5060>
>
> As a result, A attempts to send PRACKs to sip:xxxxx at 192.168.0.10,
> which are obviously not going to go anywhere.  After not receiving a
> few of these expected PRACKs, B replies to the call with a final
> negative failure.
>
> The question is, is there anything I can twiddle on the proxy to make
> this work?  The problem with PRACKs is that although they are
> sequential requests, they arise (in this case) prior to the point at
> which RR can be used to guide them through the proxy.
>
> The most obvious answer is, "Make B not Require: 100rel", of course.
> However, that is not an option here.
iirc, the PRACK should follow the record-routing as part of its early 
dialog state. At least, from my experience the PRACKs I saw so far were 
sent to the proxy address due to record routing, not directly to contact 
address in 183. Without following the record routing, I see no way to go 
even for cases with NAT. For me looks like A is buggy, but I haven't 
checked actually the specs at this time.

Cheers,
Daniel

-- 
Daniel-Constantin Mierla -- http://www.asipto.com
http://linkedin.com/in/miconda -- http://twitter.com/miconda




More information about the sr-users mailing list