[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:

> 
> Hi!
>  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 ?

Yes please.

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.

Cheers,
/O


More information about the asterisk-dev mailing list