]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 239427 via svnmerge from
authorDavid Vossel <dvossel@digium.com>
Tue, 12 Jan 2010 16:21:09 +0000 (16:21 +0000)
committerDavid Vossel <dvossel@digium.com>
Tue, 12 Jan 2010 16:21:09 +0000 (16:21 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

........
  r239427 | dvossel | 2010-01-12 10:14:41 -0600 (Tue, 12 Jan 2010) | 14 lines

  fixes text support in sdp answer

  The code that handled setting 'm=text' in the sdp was not executing
  in the correct order.  The check to see if text was needed came after
  the check to add 'm=text' to the sdp, this resulted in 'm=text' always
  being set to 0 because it looked like text was never required.

  (closes issue #16457)
  Reported by: peterj
  Patches:
        textportinsdp.diff uploaded by peterj (license 951)
        issue16457.diff uploaded by dvossel (license 671)
  Tested by: peterj
........

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

channels/chan_sip.c

index 062e058981be447678cc7e10889ed71aa24d2787..e81871cce6a71b18c8de384d44bb3ef095dea87a 100644 (file)
@@ -8860,13 +8860,29 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
                        p->sessionversion++;
        }
 
-       /* Check if we need video in this call */
-       if (add_audio && (p->jointcapability & AST_FORMAT_VIDEO_MASK) && !p->novideo) {
-               if (p->vrtp) {
-                       needvideo = TRUE;
-                       ast_debug(2, "This call needs video offers!\n");
-               } else
-                       ast_debug(2, "This call needs video offers, but there's no video support enabled!\n");
+       if (add_audio) {
+               /* Check if we need video in this call */
+               if ((p->jointcapability & AST_FORMAT_VIDEO_MASK) && !p->novideo) {
+                       if (p->vrtp) {
+                               needvideo = TRUE;
+                               ast_debug(2, "This call needs video offers!\n");
+                       } else
+                               ast_debug(2, "This call needs video offers, but there's no video support enabled!\n");
+               }
+               /* Check if we need text in this call */
+               if ((p->jointcapability & AST_FORMAT_TEXT_MASK) && !p->notext) {
+                       if (sipdebug_text)
+                               ast_verbose("We think we can do text\n");
+                       if (p->trtp) {
+                               if (sipdebug_text) {
+                                       ast_verbose("And we have a text rtp object\n");
+                               }
+                               needtext = TRUE;
+                               ast_debug(2, "This call needs text offers! \n");
+                       } else {
+                               ast_debug(2, "This call needs text offers, but there's no text support enabled ! \n");
+                       }
+               }
        }
 
        get_our_media_address(p, needvideo, &sin, &vsin, &tsin, &dest, &vdest);
@@ -8901,19 +8917,6 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
                                ast_verbose("Video is at %s port %d\n", ast_inet_ntoa(p->ourip.sin_addr), ntohs(vdest.sin_port));       
                }
 
-               /* Check if we need text in this call */
-               if((capability & AST_FORMAT_TEXT_MASK) && !p->notext) {
-                       if (sipdebug_text)
-                               ast_verbose("We think we can do text\n");
-                       if (p->trtp) {
-                               if (sipdebug_text)
-                                       ast_verbose("And we have a text rtp object\n");
-                               needtext = TRUE;
-                               ast_debug(2, "This call needs text offers! \n");
-                       } else
-                               ast_debug(2, "This call needs text offers, but there's no text support enabled ! \n");
-               }
-               
                /* Ok, we need text. Let's add what we need for text and set codecs.
                   Text is handled differently than audio since we can not transcode. */
                if (needtext) {