It is perfectly acceptable for a BYE to be sent on a disconnected
session. This occurs when we respond to a challenge to the BYE
for authentication credentials.
ASTERISK-26363
Change-Id: I6ef0ddece812fea6665a1dd2549ef44fb9d90045
{
pjsip_inv_session *inv_session = session->inv_session;
- if (inv_session->state == PJSIP_INV_STATE_DISCONNECTED) {
- /* Don't try to do anything with a hung-up call */
+ /* For every request except BYE we disallow sending of the message when
+ * the session has been disconnected. A BYE request is special though
+ * because it can be sent again after the session is disconnected except
+ * with credentials.
+ */
+ if (inv_session->state == PJSIP_INV_STATE_DISCONNECTED &&
+ tdata->msg->line.req.method.id != PJSIP_BYE_METHOD) {
return;
}