Restart ICE session when issuing a re-INVITE message

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

 



Hi,

Given the SIP support of the ALG in the routing hardware I'm using (D-LINK
DIR-635) seems to mess with the m= header in the INVITE's SDP files and
given also that ALG in general is not the best NAT traversal approach I'm
trying to use PJSIP's ICE implementation (PJNATH) through PJSUA sample
application to perform a proper VoIP/SIP session establishment and handover
between two private wireless networks while the other user agent remains in
a fixed public IP assigned box.

I launch PJSUA (pjproject 1.2, Debian Lenny) like this:

Box with public IP acting as a 'server':
# ./pjsua-i686-pc-linux-gnu --play-file
/home/dulceangustia/Desktop/file2.wav --auto-answer 200 --auto-play --no-tcp
--use-ice

Box performing a handover between two private wireless LANs:
# ./pjsua-i686-pc-linux-gnu sip:147.83.47.178:5060 --add-codec=pcma
--null-audio --use-ice --no-tcp


The problem appears when I want to change the interface/private network from
where I receive the stream, once the new network is up and my interface is
attached to it (I have 2 interfaces in the 'client' box, so one interface
always attaches to WLAN1 and the other interface always attaches to WLAN2 as
the box moves from one to another) and this new network is defined as the
default one in my routing table. When issuing a re-INVITE in this situation
(connected to both networks and the new one configured as the default one
for the moving box) the sent SDP file includes the ICE remote-candidates
attribute header and the two candidates for the local box (both RTP and RTCP
addr/port previously validated when the first ICE session was performed).
However, the contact/account data of the 'client' remains the same (the
private IP is not updated) so I think this is the cause that no new ICE
session is triggered in order to select the new path through the new router.

I've read this<http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2007-September/000056.html>old
thread where Benny suggested to update contact data prior to send the
re-INVITE message, but I would like to know if this can be actually done
with any PJSUA command. I thought that '!a' option of PJSUA menu could be
useful to modify the account data and then be able to trigger a new ICE
session to choose the new path, but this options is not implemented yet.
Note all my tests are very simple regarding a real VoIP environment, so I
don't have any PBX or Registrar elements because I don't need them. All I
need to check is that I can achieve a network handover withouth losing any
packet of the audio stream within a VoIP/SIP session. That's why I think I
wouldn't need to issue a re-register process.


Any idea about this issue? Is it possible to force a new ICE session to take
into account the new available path in my environment?

Any suggestion will be welcome. Thank you very much for your time and
attention.


Regards,
Javi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20090612/4971c963/attachment.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