|
|
@ -11189,14 +11189,13 @@ static void check_pendings(struct sip_pvt *p)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (ast_test_flag(&p->flags[0], SIP_PENDINGBYE)) {
|
|
|
|
if (ast_test_flag(&p->flags[0], SIP_PENDINGBYE)) {
|
|
|
|
/* if we can't BYE, then this is really a pending CANCEL */
|
|
|
|
/* 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);
|
|
|
|
transmit_request_with_auth(p, SIP_CANCEL, p->ocseq, 1, 0);
|
|
|
|
/* Actually don't destroy us yet, wait for the 487 on our original
|
|
|
|
/* 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. */
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
sip_scheddestroy(p, SIP_TRANS_TIMEOUT);
|
|
|
|
} else if (ast_test_flag(&p->flags[0], SIP_NEEDREINVITE)) {
|
|
|
|
} else if (ast_test_flag(&p->flags[0], SIP_NEEDREINVITE)) {
|
|
|
|
if (option_debug)
|
|
|
|
if (option_debug)
|
|
|
|