Package: asterisk Version: 1:1.8.4.3-1 Severity: important Tags: upstream patch
Upstream bugzilla: https://issues.asterisk.org/jira/browse/ASTERISK-18086 Any phone that uses INVITE to 0.0.0.0 to place a call on hold fails with asterisk 1.8. This feature works in asterisk 1.6, so this is a feature regression. The problem looks to have been introduced by replacing the hold check for 0.0.0.0 with ast_sockaddr_isnull() which dosn't return true on 0.0.0.0. Fix attached works by making ast_sockaddr_resolve_first_af() explicitly set zero length on the 0.0.0.0 address case. -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (500, 'testing'), (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.38-2-686 (SMP w/1 CPU core) Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages asterisk depends on: ii adduser 3.113 add and remove users and groups ii asterisk-config 1:1.8.4.3-1 Configuration files for Asterisk ii asterisk-modules 1:1.8.4.3-1 loadable modules for the Asterisk ii asterisk-sounds-mai 1:1.6.2.9-2+squeeze2 Core Sound files for Asterisk (Eng ii libc6 2.13-7 Embedded GNU C Library: Shared lib ii libcap2 1:2.21-1 support for getting/setting POSIX. ii libgcc1 1:4.6.0-10 GCC support library ii libncurses5 5.9-1 shared libraries for terminal hand ii libssl1.0.0 1.0.0d-3 SSL shared libraries ii libstdc++6 4.6.0-10 The GNU Standard C++ Library v3 ii libxml2 2.7.8.dfsg-3 GNOME XML library Versions of packages asterisk recommends: ii asterisk-moh-opsound-gsm 2.03-1 asterisk extra sound files - Engli ii asterisk-voicemail 1:1.8.4.3-1 simple voicemail support for the A ii sox 14.3.2-1 Swiss army knife of sound processi Versions of packages asterisk suggests: ii asterisk-dahdi 1:1.8.4.3-1 DAHDI devices support for the Aste ii asterisk-dev 1:1.8.4.3-1 Development files for Asterisk ii asterisk-doc 1:1.8.4.3-1 Source code documentation for Aste pn asterisk-ooh323 <none> (no description available) -- Configuration Files: /etc/default/asterisk changed [not included] -- no debconf information
--- channels/chan_sip.c.old 2011-07-02 12:11:56.000000000 -0500 +++ channels/chan_sip.c 2011-07-02 21:10:05.000000000 -0500 @@ -28439,7 +28439,14 @@ ast_debug(1, "Multiple addresses, using the first one only\n"); } - ast_sockaddr_copy(addr, &addrs[0]); + if (addrs[0].ss.ss_family == AF_INET && + ((struct sockaddr_in *)&addrs[0].ss)->sin_addr.s_addr + == INADDR_ANY) + /* treat 0.0.0.0 as NULL address; needed to get + * hold to work in some circumstances */ + addr->len = 0; + else + ast_sockaddr_copy(addr, &addrs[0]); ast_free(addrs); return 0;