Package: ekiga Version: 3.2.7-2 Severity: important Tags: patch
Ekiga/opal initially listens to each individual ip:port on the system. When a call is started it is picking the first non-localhost ip address and binding to that one, which is a very bad guess as to which IP the remote system is going to send RPT packets to. This means if the system has multiple ip addresses it either works, or all the incoming UDP packets get rejected with an ICMP error because ekiga is listening to a different ip and port. Capture ekiga -d 4, and search for "Initial interface list:" for the interface order. Also, on startup not only does ekiga bind to each ip address it sends out the initial subscribe SIP requests from each to the remote server. In my case only one ip address is on the network which has a default route, the other networks are in the 192.168.0.0 and 172.20.0.0 ranges, which is causing packets to be routed to internet with local non-routable ip addresses. If it isn't going to look at the routing tables to figure out which local ip addresses can get to the route system, it should just call connect, let the kernel assign the local ip address, and read what that local ip address is. Until some more sane algorithm is picked, here is a hack listen to all of them. I'm not going to call this the right solution, but it does let me hear the other end. diff --git a/src/opal/rtpconn.cxx b/src/opal/rtpconn.cxx index 499f58b..ae007d9 100644 --- a/src/opal/rtpconn.cxx +++ b/src/opal/rtpconn.cxx @@ -138,6 +138,11 @@ RTP_Session * OpalRTPConnection::CreateSession(const OpalTransport & transport, WORD firstPort = manager.GetRtpIpPortPair(); WORD nextPort = firstPort; + // Ekiga/opal is picking the first non-localhost ip address and binding to + // that one, which is a very bad guess as to which ip the remote system is + // going to connect with. Until some more sane algorithm is picked, listen + // to all of them. + localAddress=PIPSocket::GetDefaultIpAny(); while (!rtpSession->Open(localAddress, nextPort, nextPort, manager.GetRtpIpTypeofService(), natMethod, rtpqos)) { nextPort = manager.GetRtpIpPortPair(); if (nextPort == firstPort) { -- 1.7.2.3 -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (500, 'testing') Architecture: i386 (x86_64) Kernel: Linux 2.6.36-rc7+ (SMP w/4 CPU cores) Locale: LANG=C, LC_CTYPE=en_US.ISO-8859-15 (charmap=ISO-8859-15) Shell: /bin/sh linked to /bin/dash Versions of packages ekiga depends on: ii evolution-data-server 2.30.3-2 evolution database backend server ii gconf2 2.28.1-5 GNOME configuration database syste ii libatk1.0-0 1.30.0-1 The ATK accessibility toolkit ii libavahi-client3 0.6.27-2 Avahi client library ii libavahi-common3 0.6.27-2 Avahi common library ii libavahi-glib1 0.6.27-2 Avahi glib integration library ii libc6 2.11.2-6+squeeze1 Embedded GNU C Library: Shared lib ii libdbus-glib-1-2 0.88-2 simple interprocess messaging syst ii libebook1.2-9 2.30.3-2 Client library for evolution addre ii libedataserver1.2-13 2.30.3-2 Utility library for evolution data ii libgcc1 1:4.4.5-4 GCC support library ii libgconf2-4 2.28.1-5 GNOME configuration database syste ii libglib2.0-0 2.24.2-1 The GLib library of C routines ii libgtk2.0-0 2.20.1-2 The GTK+ graphical user interface ii libldap-2.4-2 2.4.23-6 OpenLDAP libraries ii libnotify1 [libnotify1 0.5.0-2 sends desktop notifications to a n ii libopal3.6.8 3.6.8~dfsg-2 Open Phone Abstraction Library - s ii libpango1.0-0 1.28.3-1 Layout and rendering of internatio ii libpt2.6.7 2.6.7-1 Portable Tools Library ii libsasl2-2 2.1.23.dfsg1-6 Cyrus SASL - authentication abstra ii libsigc++-2.0-0c2a 2.2.4.2-1 type-safe Signal Framework for C++ ii libstdc++6 4.4.5-4 The GNU Standard C++ Library v3 ii libx11-6 2:1.3.3-3 X11 client-side library ii libxext6 2:1.1.2-1 X11 miscellaneous extension librar ii libxml2 2.7.7.dfsg-4 GNOME XML library ii libxv1 2:1.0.5-1 X11 Video extension library Versions of packages ekiga recommends: ii gvfs 1.6.4-2 userspace virtual filesystem - ser ii yelp 2.30.1+webkit-1 Help browser for GNOME Versions of packages ekiga suggests: pn asterisk <none> (no description available) pn gnugk <none> (no description available) pn mediaproxy <none> (no description available) pn rtpproxy <none> (no description available) pn ser <none> (no description available) pn siproxd <none> (no description available) pn yate <none> (no description available) -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org