]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix regression introduced by SDP fixups
authorKinsey Moore <kmoore@digium.com>
Fri, 11 Nov 2011 20:14:30 +0000 (20:14 +0000)
committerKinsey Moore <kmoore@digium.com>
Fri, 11 Nov 2011 20:14:30 +0000 (20:14 +0000)
If capability is adjusted when switching to UDPTL during fax transmission, fax
teardown fails.  Make sure capability is only touched if RTP is active.  This
regression was introduced in R344385.
........

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

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

channels/chan_sip.c

index 34879fffb1f7cf0e8cc7adfd15dd83f71e1bcfac..61bd672830cfda2f080ac1352a656b3dcf172b2c 100644 (file)
@@ -9281,15 +9281,18 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
                            ast_rtp_lookup_mime_multiple2(s3, NULL, newnoncodeccapability, 0, 0));
        }
 
-       /* We are now ready to change the sip session and p->rtp and p->vrtp with the offered codecs, since
-          they are acceptable */
-       ast_format_cap_copy(p->jointcaps, newjointcapability);                /* Our joint codec profile for this call */
-       ast_format_cap_copy(p->peercaps, newpeercapability);                  /* The other sides capability in latest offer */
-       p->jointnoncodeccapability = newnoncodeccapability;     /* DTMF capabilities */
-
-       if (ast_test_flag(&p->flags[1], SIP_PAGE2_PREFERRED_CODEC)) { /* respond with single most preferred joint codec, limiting the other side's choice */
-               ast_codec_choose(&p->prefs, p->jointcaps, 1, &tmp_fmt);
-               ast_format_cap_set(p->jointcaps, &tmp_fmt);
+       if (portno != -1 || vportno != -1 || tportno != -1) {
+               /* We are now ready to change the sip session and p->rtp and p->vrtp with the offered codecs, since
+                  they are acceptable */
+               ast_format_cap_copy(p->jointcaps, newjointcapability);                /* Our joint codec profile for this call */
+               ast_format_cap_copy(p->peercaps, newpeercapability);                  /* The other sides capability in latest offer */
+               p->jointnoncodeccapability = newnoncodeccapability;     /* DTMF capabilities */
+       
+               /* respond with single most preferred joint codec, limiting the other side's choice */
+               if (ast_test_flag(&p->flags[1], SIP_PAGE2_PREFERRED_CODEC)) {
+                       ast_codec_choose(&p->prefs, p->jointcaps, 1, &tmp_fmt);
+                       ast_format_cap_set(p->jointcaps, &tmp_fmt);
+               }
        }
 
        /* Setup audio address and port */