diff options
Diffstat (limited to 'channels')
-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 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: /* |