The last I knew, it was *legal* to send a CANCEL for messages other than 
INVITE - however it is *futile* to do so.

So sending a CANCEL with a CSeq that matches some request other than an 
INVITE is not an error. It should just return a 200 and then it can then 
do nothing else. If you acutally had the means to cancel an incomplete 
non-INVITE transaction you could do that too, but you would probably be 
the first.

Sending a CANCEL for a prior request that has already completed, and for 
which no record remains should return a 481. Any CSeq less that the 
current cseq, for which no transaction remains, should probably be 
treated that way. It could also mean the request being canceled was 
lost, for which 481 is also appropriate. A CANCEL with a CSeq greater 
than the current cseq can also mean the request was lost and so a 481 is 
appropriate. So here I am agreeing with Iñaki.

        Thanks,
        Paul

Iñaki Baz Castillo wrote:
> El Tuesday 17 June 2008 13:28:42 Iñaki Baz Castillo escribió:
>> El Tuesday 17 June 2008 13:12:09 Suganya D escribió:
>>> Hi,
>>>
>>> Yes, a CANCEL is valid only for an INVITE method.
>>>
>>> Hence when a CANCEL arrives with a CSeq number that does not match
>>> INVITE can it not be considered that a mis-behaving entity is
>>> attempting to CANCEL a non-INVITE transaction?
>> No UAC will send a CANCEL for a non-INVITE transaction. Of course it could
>> occur, and also a UAC could send a request with method CHICKEN  XDDD
>>
>> But if I receive a not-matching CANCEL I will consider that the INVITE
>> associated to that CANCEL hasn't arrived yet. So the reply would be 484.
> 
> Sorry, I mean 481.
> 
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to