aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-08-30 19:01:55 +0000
committeroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-08-30 19:01:55 +0000
commite462921982553adb0910ecddf52d3556b35ef056 (patch)
tree3dd64cab62772b956f1d96f534bdc4a53b6a5d28
parent08c0676027867a231168802e1ce5c98c03562d1c (diff)
Issue #7572 - Hangup when receiving a buggy 487 response to an INVITE
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@41423 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_sip.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 2e0a662ef..cd7583b8d 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -2299,6 +2299,7 @@ static int hangup_sip2cause(int cause)
switch(cause) {
case 603: /* Declined */
case 403: /* Not found */
+ case 487: /* Call cancelled */
return AST_CAUSE_CALL_REJECTED;
case 404: /* Not found */
return AST_CAUSE_UNALLOCATED;
@@ -10073,6 +10074,8 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
break;
case 487:
/* channel now destroyed - dec the inUse counter */
+ if (owner)
+ ast_queue_hangup(p->owner);
update_call_counter(p, DEC_CALL_LIMIT);
break;
case 482: /* SIP is incapable of performing a hairpin call, which