]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
chan_sip: Fix an issue where an incompatible audio format may be added to SDP.
authorJoshua Colp <jcolp@digium.com>
Wed, 23 Oct 2013 11:10:19 +0000 (11:10 +0000)
committerJoshua Colp <jcolp@digium.com>
Wed, 23 Oct 2013 11:10:19 +0000 (11:10 +0000)
If preferred codecs included any non-audio format the code would
mistakenly add the audio format, even if it was not a joint capability
with the remote side.

(closes issue ASTERISK-21131)
Reported by: nbougues
Patches:
patch_unsupported_codec_1.8.patch uploaded by nbougues (license 6470)

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

channels/chan_sip.c

index f1271fb80b43f8fdfd018080ee254f3983923fb0..2289fab93a462b2e9826898814cd9afb549f3b9a 100644 (file)
@@ -11949,7 +11949,7 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
                /* Prefer the audio codec we were requested to use, first, no matter what
                   Note that p->prefcodec can include video codecs, so mask them out
                */
-               if (capability & p->prefcodec) {
+               if ((capability & p->prefcodec) & AST_FORMAT_AUDIO_MASK) {
                        format_t codec = p->prefcodec & AST_FORMAT_AUDIO_MASK;
 
                        add_codec_to_sdp(p, codec, &m_audio, &a_audio, debug, &min_audio_packet_size);