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
