]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
chan_sip: be more tolerant of whitespace between attributes in SDP fmtp line
authorMatthew Jordan <mjordan@digium.com>
Mon, 30 Jun 2014 03:25:59 +0000 (03:25 +0000)
committerMatthew Jordan <mjordan@digium.com>
Mon, 30 Jun 2014 03:25:59 +0000 (03:25 +0000)
This patch is essentially a backport of a small portion of r397526 from
ASTERISK-21981. In that patch, pass through support and format attribute
negotiation was added for Opus. Part of that included being more tolerant to
whitespace in the fmtp line of an SDP; that part of the patch is being
applied here.

As the author of the backport pointed out, in SDP, the fmtp line is allowed to
include whitespace between attributes. RFC 3267 chapter 8.3 (from 2001)
includes an example for this. This was not removed in the updated RFC 4867 in
2007.

Review: https://reviewboard.asterisk.org/r/3658

#ASTERISK-23916 #close
Reported by: Alexander Traud
patches:
  sdpFMTPspace_Asterisk11.patch uploaded by Alexander Traud (License 6520)
........

Merged revisions 417587 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 417588 from http://svn.asterisk.org/svn/asterisk/branches/11

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

channels/chan_sip.c

index a1c0d788ce2f5ffa1d8ce1179c56502bfce04c93..fa03591bcce7374b5110d5a1a8828dee47517a23 100644 (file)
@@ -11319,7 +11319,7 @@ static int process_sdp_a_video(const char *a, struct sip_pvt *p, struct ast_rtp_
                        if (debug)
                                ast_verbose("Discarded description format %s for ID %u\n", mimeSubtype, codec);
                }
-       } else if (sscanf(a, "fmtp: %30u %255s", &codec, fmtp_string) == 2) {
+       } else if (sscanf(a, "fmtp: %30u %255[^\t\n]", &codec, fmtp_string) == 2) {
                struct ast_format *format;
 
                if ((format = ast_rtp_codecs_get_payload_format(newvideortp, codec))) {