[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Linphone-developers] Linphone and IPv6 - Important... please respond
From: |
Frederick Lefebvre |
Subject: |
[Linphone-developers] Linphone and IPv6 - Important... please respond |
Date: |
Thu, 20 May 2004 10:37:03 -0400 |
Simon, Jamey,
Last week, I sent both of you a patch to fix and IPv6 related problem in
linphone. I haven't heard back from any of you but I saw that it was
included in the latest ARM package available form handhelds.org. The
problem was that the code to support IPv6 in oRTP was never used because of
a missing define in mediastreamer.
Well, to make a long story short, I just figured a few minutes ago that the
IPv6 related code in linphone has a more fundamental problem. Problems
occur when using linphone over an IPv4 network if IPv6 was enabled at
compile time. The following explanation assume that linphone was compiled
with "--enable-ipv6":
Linphone only uses one socket (UDPv6:5060) to listen for incoming IPv4 and
IPv6 requests.
This 'works' because when an IPv4 packet is received, it is seen by the
system as an IPv4-mapped IPv6 address. This is were it gets complicated...
The SIP session still works fine so, the RTP socket is opened (UDPv6:7078).
But the sendto/recvfrom are done with the address taken from the SIP
exchange which was an IPv4 address... you see the picture? Internally the
packets receive on the RTP socket are seen as having an IPv6 address
(something like 0:0:0:0:0:FFFF:192.168.1.1) which really do not match the
parameter given to sendto/recvfrom... so that the RTP session do not work.
2 fixes are possible for this situation:
1- Add logic to deal with IPv4-mapped addresses
2- Open 2 SIP sockets (one V4 and one V6)
Solution '2' is usually seen as better and is more portable because the
default behavior in Kame (BSD) is to disable IPv4-mapped addresses support
(V6 only socket option) on IPv6 socket.
I will be travelling next weekend and so, I should have some time to work
on a patch. I will be happy to submit/commit it as soon as possible. In
the meantime, IPv6 support is best left disable in Linphone for users that
use is with IPv4.
I hope my explanation was clear as it is sometime hard to explain that
stuff in writing. Let me know if you have any questions.
Regards,
Frederick Lefebvre
--
System and Network administrator
Hexago Inc.
------------------------------------------------
http://www.freenet6.net : Free IPv6 Connectivity
------------------------------------------------
- [Linphone-developers] Linphone and IPv6 - Important... please respond,
Frederick Lefebvre <=