diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-01-12 23:01:44 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-01-12 23:01:44 +0000 |
commit | 894fe420fcdc865a392454fe0e529bb52b2a1211 (patch) | |
tree | eb42633c555f517faebd84526180a049e5096c18 /channels | |
parent | e234ddbf1fd9d54f6280810e6cf684585b8fe0e2 (diff) |
Send 405 Method Not Allowed when message received outside of call (bug #3324, commited from within the plane to huntsville)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4771 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_sip.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index a5fdc4980..d8cc023cf 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -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 */ |