Bug#602764: ekiga: listens to wrong ip
David Fries
david at fries.net
Sun Nov 7 21:19:01 UTC 2010
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
More information about the pkg-gnome-maintainers
mailing list