diff options
author | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-08-30 19:01:55 +0000 |
---|---|---|
committer | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-08-30 19:01:55 +0000 |
commit | e462921982553adb0910ecddf52d3556b35ef056 (patch) | |
tree | 3dd64cab62772b956f1d96f534bdc4a53b6a5d28 | |
parent | 08c0676027867a231168802e1ce5c98c03562d1c (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.c | 3 |
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 |