]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fixes issue with undefined audio codecs in chan_iax2
authorDavid Vossel <dvossel@digium.com>
Fri, 20 Feb 2009 20:34:11 +0000 (20:34 +0000)
committerDavid Vossel <dvossel@digium.com>
Fri, 20 Feb 2009 20:34:11 +0000 (20:34 +0000)
During iax2 call negotiation, supported codecs are passed in an Information Element containing a 2 byte field where each bit correlates to a specific codec.  In 1.6 only audio codec bits 0-12 are defined, leaving bits 13-14 undefined.  By default all bits are enabled unless specified otherwise.  Since its a 2 byte field and 13-14 are not defined, these bits are never turned off.  In trunk, bits 13-14 are defined, which means 1.6 is advertising support for codecs it does not have when talking to trunk.  I fixed this by adding #define for undefined audio codec bits.  These bits are then removed from iax2's full bandwidth capabilities.

(closes issue #14283)
Reported by: jcovert

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@177700 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c
include/asterisk/frame.h

index 83c33ee0b4bd5eade4f4091fe902bc29f1f0ca3b..9a65680c8a636046300b5f8bbd61033fe825a62b 100644 (file)
@@ -184,7 +184,7 @@ static int defaultsockfd = -1;
 int (*iax2_regfunk)(const char *username, int onoff) = NULL;
 
 /* Ethernet, etc */
-#define IAX_CAPABILITY_FULLBANDWIDTH   0xFFFF
+#define IAX_CAPABILITY_FULLBANDWIDTH   (0xFFFF & ~AST_FORMAT_AUDIO_UNDEFINED)
 /* T1, maybe ISDN */
 #define IAX_CAPABILITY_MEDBANDWIDTH    (IAX_CAPABILITY_FULLBANDWIDTH &         \
                                         ~AST_FORMAT_SLINEAR &                  \
index 2f3c7851f922325ace246ab1b423792da5d8b2f4..d7d895b2516acfcedee7b8038649124580e8c4b7 100644 (file)
@@ -267,6 +267,8 @@ extern struct ast_frame ast_null_frame;
 #define AST_FORMAT_G726                (1 << 11)
 /*! G.722 */
 #define AST_FORMAT_G722                (1 << 12)
+/*! Unsupported audio bits */
+#define AST_FORMAT_AUDIO_UNDEFINED     ((1 << 13) | (1 << 14))
 /*! Raw 16-bit Signed Linear (16000 Hz) PCM */
 #define AST_FORMAT_SLINEAR16   (1 << 15)
 /*! Maximum audio mask */