Send 405 Method Not Allowed when message received outside of call (bug #3324, commite...
authorMark Spencer <markster@digium.com>
Wed, 12 Jan 2005 23:01:44 +0000 (23:01 +0000)
committerMark Spencer <markster@digium.com>
Wed, 12 Jan 2005 23:01:44 +0000 (23:01 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4771 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index a5fdc49..d8cc023 100755 (executable)
@@ -7912,14 +7912,17 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
                        ast_set_flag(p, SIP_NEEDDESTROY);       
                transmit_response(p, "200 OK", req);
        } else if (!strcasecmp(cmd, "MESSAGE")) {
-               if (!ignore) {
-                       if (debug)
-                               ast_verbose("Receiving message!\n");
-                       receive_message(p, req);
-               }
-               transmit_response(p, "200 OK", req);
-               if (!p->lastinvite)
+               if (p->lastinvite) {
+                       if (!ignore) {
+                               if (debug)
+                                       ast_verbose("Receiving message!\n");
+                               receive_message(p, req);
+                       }
+                       transmit_response(p, "200 OK", req);
+               } else {
+                       transmit_response(p, "405 Method Not Allowed", req);
                        ast_set_flag(p, SIP_NEEDDESTROY);
+               }
        } else if (!strcasecmp(cmd, "SUBSCRIBE")) {
                if (!ignore) {
                        /* Use this as the basis */