}
}
transmit_response_reliable(p, "491 Request Pending", req);
+ p->pendinginvite = seqno;
+ check_via(p, req);
+ copy_request(&p->initreq, req);
ast_debug(1, "Got INVITE on call where we already have pending INVITE, deferring that - %s\n", p->callid);
/* Don't destroy dialog here */
res = INV_REQ_FAILED;
if (p->owner) {
ast_debug(3, "INVITE w Replaces on existing call? Refusing action. [%s]\n", p->callid);
transmit_response_reliable(p, "400 Bad request", req); /* The best way to not not accept the transfer */
+ p->pendinginvite = seqno;
+ check_via(p, req);
+ copy_request(&p->initreq, req);
/* Do not destroy existing call */
res = INV_REQ_ERROR;
goto request_invite_cleanup;
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
p->invitestate = INV_COMPLETED;
res = INV_REQ_ERROR;
+ p->pendinginvite = seqno;
+ check_via(p, req);
+ copy_request(&p->initreq, req);
goto request_invite_cleanup;
}
refer_locked = 0;
p->invitestate = INV_COMPLETED;
res = INV_REQ_ERROR;
+ p->pendinginvite = seqno;
+ check_via(p, req);
+ copy_request(&p->initreq, req);
goto request_invite_cleanup;
}
}