diff options
-rw-r--r-- | channels/chan_sip.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 468da78c1..d419b2fdd 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -11189,14 +11189,13 @@ static void check_pendings(struct sip_pvt *p) { if (ast_test_flag(&p->flags[0], SIP_PENDINGBYE)) { /* if we can't BYE, then this is really a pending CANCEL */ - if (!ast_test_flag(&p->flags[0], SIP_CAN_BYE)) { + if (!ast_test_flag(&p->flags[0], SIP_CAN_BYE)) transmit_request_with_auth(p, SIP_CANCEL, p->ocseq, 1, 0); /* Actually don't destroy us yet, wait for the 487 on our original INVITE, but do set an autodestruct just in case we never get it. */ - } else { + else transmit_request_with_auth(p, SIP_BYE, 0, 1, 1); - ast_clear_flag(&p->flags[0], SIP_CAN_BYE); - } + ast_clear_flag(&p->flags[0], SIP_PENDINGBYE); sip_scheddestroy(p, SIP_TRANS_TIMEOUT); } else if (ast_test_flag(&p->flags[0], SIP_NEEDREINVITE)) { if (option_debug) |