[Ekiga-devel-list] Basic IPv6 support for H.323 calls



Hello,

I tried to implement IPv6 support for H.323 calls so that people with
IPv6 could talk directly to each other over Internet.

There seems to be be an easy way to do it, patches follow. Calls to
h323:ipv6.host.name or h323:[ip:v6:address] seem to work (tested it only
on Linux so far). It does not seem to affect IPv4 connectivity (direct
calls over LAN continue to work as usual).

What about adding this kind of functionality to Ekiga (maybe also
for direct SIP calls)?

Arseniy

--- ekiga-3.2.6.orig/lib/engine/components/opal/opal-call-manager.cpp
+++ ekiga-3.2.6/lib/engine/components/opal/opal-call-manager.cpp
@@ -101,7 +101,7 @@ CallManager::CallManager (Ekiga::Service
   : core (_core)
 {
   /* Initialise the endpoint paramaters */
-  PIPSocket::SetDefaultIpAddressFamilyV4();
+  PIPSocket::SetDefaultIpAddressFamilyV6();
   SetAutoStartTransmitVideo (true);
   SetAutoStartReceiveVideo (true);
   SetUDPPorts (5000, 5100);


--- opal-3.6.6.orig/src/rtp/rtp.cxx
+++ opal-3.6.6/src/rtp/rtp.cxx
@@ -1647,8 +1647,8 @@ PBoolean RTP_UDP::Open(PIPSocket::Addres
     }
 
     if (dataSocket == NULL || controlSocket == NULL) {
-      dataSocket = new PUDPSocket(dataQos);
-      controlSocket = new PUDPSocket(ctrlQos);
+      dataSocket = new PUDPSocket(dataQos, 0, bindingAddress.GetVersion() == 6 ? AF_INET6 : AF_INET);
+      controlSocket = new PUDPSocket(ctrlQos, 0, bindingAddress.GetVersion() == 6 ? AF_INET6 : AF_INET);    
       while (!   dataSocket->Listen(bindingAddress, 1, localDataPort) ||
              !controlSocket->Listen(bindingAddress, 1, localControlPort)) {
         dataSocket->Close();


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