Merged revisions 126789 via svnmerge from
authorOlle Johansson <oej@edvina.net>
Tue, 1 Jul 2008 11:58:17 +0000 (11:58 +0000)
committerOlle Johansson <oej@edvina.net>
Tue, 1 Jul 2008 11:58:17 +0000 (11:58 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r126789 | oej | 2008-07-01 13:51:38 +0200 (Tis, 01 Jul 2008) | 6 lines

Report 200 OK to all in-dialog OPTIONs requests (to confirm that the dialog
exist). Don't bother checking the request URI.

(closes issue #11264)
Reported by: ibc

........

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

channels/chan_sip.c

index 64c9e9e..cc861e7 100644 (file)
@@ -17280,6 +17280,13 @@ static int handle_request_options(struct sip_pvt *p, struct sip_request *req)
                \todo Fix handle_request_options device handling with optional authentication
                        (this needs to be fixed in 1.4 as well)
        */
+
+       if (p->lastinvite) {
+               /* if this is a request in an active dialog, just confirm that the dialog exists. */
+               transmit_response_with_allow(p, "200 OK", req, 0);
+               return 0;
+       }
+
        res = get_destination(p, req);
        build_contact(p);
 
@@ -17295,8 +17302,7 @@ static int handle_request_options(struct sip_pvt *p, struct sip_request *req)
 
        /* Destroy if this OPTIONS was the opening request, but not if
           it's in the middle of a normal call flow. */
-       if (!p->lastinvite)
-               sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
+       sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
 
        return res;
 }