You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We reply 200 Cancelling and 487 and receive ACK as usual.
After that, and forever and ever, the corresponding CANCEL non INVITE transaction remains forever on ua.transactions.nist.
This prevents UA.stop() to work because it relies on nist to be 0 before it disconnects the transport:
/*
* If the remaining transactions are all INVITE transactions, there is no need to
* wait anymore because every session has already been closed by this method.
* - locally originated sessions where terminated (CANCEL or BYE)
* - remotely originated sessions where rejected (4XX) or terminated (BYE)
* Remaining INVITE transactions belong tho sessions that where answered. This are in
* 'accepted' state due to timers 'L' and 'M' defined in [RFC 6026]
*/
if (this.nistTransactionsCount === 0 && this.nictTransactionsCount === 0) {
this.transport.disconnect();
} else {
this.on('transactionDestroyed', transactionsListener);
}
The text was updated successfully, but these errors were encountered:
ibc
changed the title
UA.stop() does not work when an INVITE server transaction still exists but already ended
Incoming CANCEL transaction are never removed from ua.transactions.nist
Sep 26, 2014
The problem is that IncomingRequest.prototype.reply_sl() is used to reply the 200 to the CANCEL, and reply_sl does not notify the server transaction so it remains in nist forever.
After that, and forever and ever, the corresponding CANCEL non INVITE transaction remains forever on
ua.transactions.nist
.This prevents
UA.stop()
to work because it relies onnist
to be 0 before it disconnects the transport:The text was updated successfully, but these errors were encountered: