Does PJSIP implement the *new* STUN RFC 5389

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2011/10/19 Benny Prijono <bennylp at teluu.com>:
> On Tue, Oct 18, 2011 at 3:12 PM, I?aki Baz Castillo <ibc at aliax.net> wrote:
>> Hi Benny, why don't you implement UDP Outbound? it has no mistery for
>> the client, it just does the same as in case of TCP (adding ;ob to
>> Contact URI for non-REGISTER and ;reg-id Contact header param for
>> REGISTER). And then instead of sending double CRLF for NAT keep-alive,
>> the SIP UDP client must send STUN Binding Requests (RFC 5389) to the
>> SIP UDP port of the proxy/server. That's all :)
>>
>
> I know. That means our SIP transport must be able to multiplex STUN
> traffic, which means to bring pjnath dependency into pjsip library.
> Something that I'm hesitant to do as that would increase the footprint
> of non-NAT embedded apps.

Right, but that is the way in which RFC 5626 states that a SIP UDP
client MUST mantain the keep-alive. How does PJSIP mantain the NAT
keep-alive when using UDP?


> For now we only need outbound for its NAT traversal capability, not
> for its reliability feature (i.e. the multiple flows thing).

So then what does it mean the announcement of RFC 5626 support in PJSIP? :)


> So in this case the existing UDP + STUN works just fine.

The STUN test (RFC 3489) has been deprecated in the new STUN RFC 5389
since it does not work in many cases (some routers change the NAT type
dynamically, it's documented in RFC 5389). This means that STUN can
only be used for knowing our public IP:port when we use the *same*
source port as the used for sending the STUN Binding Request.


>> PS: I've a SIP proxy implementing Outbound for SIP UDP/TCP/TLS
>> clients. Ask me if you want to test.
>>
>
> Have you tested with TCP yet?

Yes. And it works with CSipSimple and Blink (both using PJSIP).


Regards.


-- 
I?aki Baz Castillo
<ibc at aliax.net>



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux