]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 318331 via svnmerge from
authorTerry Wilson <twilson@digium.com>
Mon, 9 May 2011 20:23:15 +0000 (20:23 +0000)
committerTerry Wilson <twilson@digium.com>
Mon, 9 May 2011 20:23:15 +0000 (20:23 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r318331 | twilson | 2011-05-09 15:04:41 -0500 (Mon, 09 May 2011) | 12 lines

  Don't offer video to directmedia callee unless caller offered it as well

  Make sure that when directmedia is enabled, that video is not offered to the
  callee even if it supports it. p->vrtp will not exist since the caller didn't
  offer video.

  (closes issue #19195)
  Reported by: one47
  Patches:
        sip_cant_add_video_rtp uploaded by one47 (license 23)
........

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

channels/chan_sip.c

index d092e3bf3545e980dc8ee053b0062a245d7ef980..aa0720b58b637bcaa3295fc594902750ce92d731 100644 (file)
@@ -10829,11 +10829,14 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
                doing_directmedia = (!ast_sockaddr_isnull(&p->redirip) && p->redircodecs) ? TRUE : FALSE;
                /* Check if we need video in this call */
                if ((p->jointcapability & AST_FORMAT_VIDEO_MASK) && !p->novideo) {
-                       if (p->vrtp) {
+                       if (doing_directmedia && !(p->jointcapability & AST_FORMAT_VIDEO_MASK & p->redircodecs)) {
+                               ast_debug(2, "This call needs video offers, but caller probably did not offer it!\n");
+                       } else if (p->vrtp) {
                                needvideo = TRUE;
                                ast_debug(2, "This call needs video offers!\n");
-                       } else
+                       } 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) {