[asterisk-dev] chan_sip 1.8 & 1.6: Can't CANCEL a call attempt if MESSAGE has been sent back
Olle E. Johansson
oej at edvina.net
Thu Sep 1 06:53:06 CDT 2011
1 sep 2011 kl. 13:37 skrev Pavel Troller:
> It seems that a bug is present in the current SIP stack in 1.6 & 1.8.
> The call flow is like this:
> A (a phone) B (Asterisk)
> INVITE ->
> <- 100 Trying
> <- 183 Session Progress
> <- MESSAGE
> 200 Ok ->
> CANCEL ->
> <- 481 Call/Transaction Does Not Exist
> <- Whatever else (like 404 Not Found etc.).
> The verbal description is: When an A-party is making a connection attempt,
> which is not yet answered, but already progressed, and Asterisk sends back
> a message in this state, which is properly OK'ed by the caller, the caller
> cannot cancel the attempt, because his CANCEL method is refused by 481
> response. The call remains active in Asterisk (dialplan execution continues)
> and when a final response is determined, it's sent back to the caller by
> the Asterisk (so the 481 response to CANCEL was a lie :-) ) but of course
> this response is not ACKed by the caller anymore so Asterisk retransmits it
> until it finally times out.
> When a MESSAGE/200 Ok dialog is not present, CANCEL is of course correctly
> accepted and the call immediately cleared.
> I can supply a SIP debug output or a tcpdump capture if requested.
> Is it worth creating a bug report ?
Important is to get a FULL sip debug with debug=5 verbose=5 and sip debug turned on. We need to know whether the MESSAGE is within the early dialog or not.
More information about the asterisk-dev