aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authoroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-11-10 20:46:25 +0000
committeroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-11-10 20:46:25 +0000
commit9b3e49ea799d2ff34c750f038de009223fa5d39b (patch)
tree3790487162deb39191c0c4d072806f65f62259fe /channels/chan_sip.c
parent3d83cfe7d5c3f6d903f8785ab750bb2ad3ed9ccd (diff)
Clear dialog on loop (backport from 1.4 by mistake)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@47470 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r--channels/chan_sip.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index a3b8af2e5..c2a05bdeb 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -10518,8 +10518,9 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
/* This is a call to ourself. Send ourselves an error code and stop
processing immediately, as SIP really has no good mechanism for
being able to call yourself */
- transmit_response(p, "482 Loop Detected", req);
- /* We do NOT destroy p here, so that our response will be accepted */
+ transmit_response_reliable(p, "482 Loop Detected", req, 1);
+ if (!p->lastinvite)
+ ast_set_flag(p, SIP_NEEDDESTROY);
return 0;
}
if (!ignore) {