I think you're mostly correct.

Request(CANCEL is not special) retransmission is first checked in server 
transaction layer based on server transaction match( RFC3261 sec 17.2.3.)
ACK for a non 2XX final response is special, since there's no client/server 
transaction for ACK for non-2xx, it is handled in INVITE client/server 
transaction.

And for ACK for 2xx response, there're no client/server transaction for ACK 
either.
Since UA core send/receive it to/from transport layer directly, moreover since 
it's a mid-dialog request, the retransmission is checked based on Cseq

FYI

-Rockson

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of I?aki Baz 
Castillo
Sent: Thursday, August 14, 2008 3:08 AM
To: [email protected]
Subject: [Sip-implementors] How to differenciate a CANCEL and a 
CANCELretransmission?

Hi, if a UAS/proxy receives a CANCEL this will match a current INVITE 
transaction (same branch), so how can the UAS know if the CANCEL is the first 
CANCEL or a CANCEL retransmission?
The same occurs with an ACK for a noon 2XX final response.

I think I have a idea of how to do it:

The CANCEL also creates a transaction so first the UAS should also check the 
method. If there is a transaction with same branch and method (CANCEL) then 
it's a CANCEL retransmission, if not it's the first one. Is it correct?

Thanks.

--
Iñaki Baz Castillo

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to