Issue #7572 (Boesl) - hangup channel that get buggy 487 response (imported from 1.2)
[asterisk/asterisk.git] / channels / chan_sip.c
index efc89ca..a7b7bf8 100644 (file)
@@ -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: /*