summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2005-10-04 22:09:23 +0000
committerKevin P. Fleming <kpfleming@digium.com>2005-10-04 22:09:23 +0000
commita0a478a72c7ab854ff486b9fe276277636f50586 (patch)
treeefae582b074d4d74feef06d84e1e72e8feb004bc /channels
parentdea1d768f9edb3a01a8d9de2815422ae93301f13 (diff)
don't destroy calls when re-INVITE messages ask for things we can't do (issue #5384)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6714 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_sip.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 97f5c6784..4895a1786 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -10103,7 +10103,8 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
if (required_profile) { /* They require something */
/* At this point we support no extensions, so fail */
transmit_response_with_unsupported(p, "420 Bad extension", req, required);
- ast_set_flag(p, SIP_NEEDDESTROY);
+ if (!p->lastinvite)
+ ast_set_flag(p, SIP_NEEDDESTROY);
return -1;
}
@@ -10136,7 +10137,8 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
if (!strcasecmp(get_header(req, "Content-Type"), "application/sdp")) {
if (process_sdp(p, req)) {
transmit_response(p, "488 Not acceptable here", req);
- ast_set_flag(p, SIP_NEEDDESTROY);
+ if (!p->lastinvite)
+ ast_set_flag(p, SIP_NEEDDESTROY);
return -1;
}
} else {