NAT traversal: how send/receive remote candidates?

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

 



On Wed, Jul 16, 2008 at 7:28 PM, katjusha KATJUSHA <katjusham at gmail.com>
wrote:

> Hi all!
>
> I've studied the ice_strans.c source code, in order to retreive the
> informations to develop my own
> NAT traversal solution.
> I've understood that:
> - the ICE stream transport can be kept-alive as long as I need,
> - instead the ICE session is temporary (and relative to a call);
> - the ICE connectivity check starts when both peers have the remode
> candidate list.
>
> The question is: how can I send my candidate list? How can I receive the
> remote candidate list?
>

That's up to you. ICE doesn't handle this, it just assumes that there is a
signaling protocol between the two endpoints to exchange the candidate list
(it can be, e.g. SIP, Jingle, or something else depending on the
application).


>
> I haven't seen these functions in the code... where I've to look? Should
> I've to look deeply in the pjsua application?
> All I need to do is to send a simple message among 2 clients....
>

With pjsip (or SIP in general), this is done by encoding the ICE information
in SDP. This is done by pjmedia's transport_ice.c.


>
> When the ICE connectivity checks end, all I have to do is call the
> pj_ice_strans_sendto() for exchange data between 2 peers?
>

Yep. To make programming a bit easier, you can call pj_ice_strans_sendto()
even before connectivity checks complete, these data will be discarded until
connectivity checks complete successfully.

Cheers
 Benny
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20080716/e1e66fac/attachment-0001.html 


[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