9 | | However, on the above case, B hangup and got delayed until ACK is received. |
10 | | When the timeout occur, the stack tried to hangup but still got delayed. |
11 | | This is because, BYE can only be sent on a confirmed dialog (see #1712) also the hangup cause cannot be changed due to this check on inv_set_cause |
| 9 | BYE will be delayed until ACK is received or the dialog is confirmed (see #1712). On a non confirmed dialog, BYE is only allowed to be sent when there's a timeout or transport error. |
| 10 | On the above case, B's manual hangup will have cause 603, hence BYE is delayed (until ACK is received or tsx timeout or transport error) . However when the timeout occur, The BYE won't be sent and still got delayed because the cause can not be set due to this check on inv_set_cause: |