Re: [Ekiga-devel-list] IPv6 Support



On Sat, 12 Aug 2006 01:50:22 -0700
"Loren M. Lang" <lorenl north-winds org> wrote:

> I am looking at adding IPv6 support to Ekiga.  It appears this partial
> support for IPv6 in opal and pwlib, but none in Ekiga itself.  I have
> also heard mention of IPv6 with gnomemeeting, did it ever have working
> IPv6?

GnomeMeeting had support for IPV6, as it was based on OpenH323 which was
fully IPV6 enabled. OPAL has not been fully IPV6 enabled as yet, although
I have done a few tweaks around the edges :)

> Well, as an experiment I decided to play with the gconf configuration
> and change the auto-detected interface from "eth0 [192.168.1.37]" to
> "eth0 [fe80::1]" and discovered the first problem in endpoints/sip.cpp
> in StartListener which loops around the interfaces looking for an
> address match.  It calls GetAddress which returns an IPv4 address only.
> My question is what the best way is to solve this, make GetAddress
> support returning both kinds of addresses, possibly something like IPv4
> embedded in IPv6.  This might simplify some somethings, but also cause
> more headaches than it's worth.  

All of PWLib handles both IPV4 and IPV6 addresses through the
PIPSocket::Address class, and this was tested as this code is used in
OpenH323. In string form, IPV6 addresses always have "[]" characters and
should be supported throughout OPAL wherever PIPSocket::Address is used.

> Another option it to just duplicate all
> checks with the similar code for IPv6 using GetIP6Address instead.
> Another problem appears to be with this loop is that it assumes each
> interface only has 1 address, where IPv6 alone can easily get up to 4
> addresses or more.

I'm not familiar with this. ipconfig on my FC5 box only shows one IPV6
address per interface, and the ipv6test test program supplied with PWLib
extracts these just fine.

I recommend the first approach you describe - use the HasIPV6Address()
member function on PIPSocket::InterfaceEntry::InterfaceEntry to see if
each interface has an IPV6 address, and then use
PIPSocket::InterfaceEntry::GetIP6Address to get the address.

> When the function finds a match, it generates a listen_to string
> starting with udp$ which as far as I can tell is only internal to ekiga
> and has nothing to do with the SIP protocol.  When IPv6 support is
> added, should it generate a different prefix like udp6$ to differentiate
> it from the existing IPv4 addresses.  This could also help tracking down
> errors when debugging.

There is no need to use a different prefix because IPV6 addresses look
different to IPV4 addresses.
 
> Just a few thoughts I had about IPv6...

I'm more than happy to help you with OPAL support for IPV6, but I am not
an IPV6 expert. Please feel free to email me if you have any suggestions
or questions

   Craig

-----------------------------------------------------------------------
 Craig Southeren          Post Increment ? VoIP Consulting and Software
 craigs postincrement com au                   www.postincrement.com.au

 Phone:  +61 243654666      ICQ: #86852844
 Fax:    +61 243673140      MSN: craig_southeren hotmail com
 Mobile: +61 417231046      

 "It takes a man to suffer ignorance and smile.
  Be yourself, no matter what they say."   Sting




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