[asterisk-dev] chan_sip 1.8 & 1.6: Can't CANCEL a call attempt if MESSAGE has been sent back

Pavel Troller patrol at sinus.cz
Thu Sep 1 06:37:13 CDT 2011


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 ?

  With regards, Pavel Troller




More information about the asterisk-dev mailing list