]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
move the processing of SDP data to after determining the user (bug #3660)
authorRussell Bryant <russell@russellbryant.com>
Sun, 27 Feb 2005 02:37:23 +0000 (02:37 +0000)
committerRussell Bryant <russell@russellbryant.com>
Sun, 27 Feb 2005 02:37:23 +0000 (02:37 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@5096 65c4cc65-6c06-0410-ace0-fbb531ad65f3

CHANGES
channels/chan_sip.c

diff --git a/CHANGES b/CHANGES
index 09e8040381d488baf5d7658d358b362954e353e6..6c8f96a732b3e975fc7360c99051406157e6503d 100755 (executable)
--- a/CHANGES
+++ b/CHANGES
@@ -18,6 +18,9 @@ Asterisk 1.0.6
     -- Asterisk was not sending the same From: line in SIP messages during certain times.
        Fixed to make sure it stays the same. This makes some providers happier, to a working state.
     -- Certain circumstances involving a blank callerid caused asterisk to segmentation fault.
+    -- There was a problem incorrectly matching codec availablity when global preferences were 
+       different from that of the user.  To fix this, processing of SDP data has been moved 
+       to after determining who the call is coming from.
  -- chan_zap:
     -- During a certain scenario when using flash and '#' transfers you would hear the
        other person and the music they were hearing. This has been fixed.
index 6873dce625b8ea8bd20bbdb7c2c2d5865c21cdfc..e0c94e6199df1c6e7c14c22cb5d22a9fac035ff2 100755 (executable)
@@ -7257,7 +7257,6 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
                        /* We do NOT destroy p here, so that our response will be accepted */
                        return 0;
                }
-               /* Process the SDP portion */
                if (!ignore) {
                        /* Use this as the basis */
                        if (debug)
@@ -7269,16 +7268,6 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
                        p->pendinginvite = seqno;
                        copy_request(&p->initreq, req);
                        check_via(p, req);
-                       if (!ast_strlen_zero(get_header(req, "Content-Type"))) {
-                               if (process_sdp(p, req))
-                                       return -1;
-                       } else {
-                               p->jointcapability = p->capability;
-                               ast_log(LOG_DEBUG, "Hm....  No sdp for the moment\n");
-                       }
-                       /* Queue NULL frame to prod ast_rtp_bridge if appropriate */
-                       if (p->owner)
-                               ast_queue_frame(p->owner, &af);
                } else if (debug)
                        ast_verbose("Ignoring this request\n");
                if (!p->lastinvite && !ignore && !p->owner) {
@@ -7295,6 +7284,17 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
                                }
                                return 0;
                        }
+                       /* Process the SDP portion */
+                       if (!ast_strlen_zero(get_header(req, "Content-Type"))) {
+                               if (process_sdp(p, req))
+                                       return -1;
+                       } else {
+                               p->jointcapability = p->capability;
+                               ast_log(LOG_DEBUG, "Hm....  No sdp for the moment\n");
+                       }
+                       /* Queue NULL frame to prod ast_rtp_bridge if appropriate */
+                       if (p->owner)
+                               ast_queue_frame(p->owner, &af);
                        /* Initialize the context if it hasn't been already */
                        if (ast_strlen_zero(p->context))
                                strncpy(p->context, default_context, sizeof(p->context) - 1);