summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
Diffstat (limited to 'channels')
-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 efc89caaa..a7b7bf81c 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -2987,6 +2987,7 @@ static int hangup_sip2cause(int cause)
case 401: /* Unauthorized */
return AST_CAUSE_CALL_REJECTED;
case 403: /* Not found */
+ case 487: /* Call cancelled */
return AST_CAUSE_CALL_REJECTED;
case 404: /* Not found */
return AST_CAUSE_UNALLOCATED;
@@ -11827,6 +11828,8 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
break;
case 487: /* Response on INVITE that has been CANCELled */
/* channel now destroyed - dec the inUse counter */
+ if (owner)
+ ast_queue_hangup(p->owner);
update_call_counter(p, DEC_CALL_LIMIT);
break;
case 482: /*