IMO it's correct for proxy to reply with '200 CANCEL', evne incase it has already forwarded a final response. Here, since the UAC will receive the final response of INVITE, then it will send a BYE.
We can relate its similarity to handling of CANCEL at UAS after being sent an INVITE 2xx, as per 3261 itself - If the transaction for the original request still exists, the behavior of the UAS on receiving a CANCEL request depends on whether it has already sent a final response for the original request. Also, similar race might happen when there are multiple stateful proxies in path and CANCEL and INVITE 2xx are converging towards each other from different UA ends. Thus as said below, it simply means "Ok, I got the request". Regards, Harbhanu **************************************************************************** *********** This e-mail and attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient's) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it! -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Iñaki Baz Castillo Sent: Monday, May 24, 2010 6:31 PM To: Christer Holmberg Cc: [email protected]; Paul Kyzivat Subject: Re: [Sip] Possible improvement in draft-ietf-sipcore-invfix (CANCELprocessing) 2010/5/24 Christer Holmberg <[email protected]>: > > Hi, > > My understanding is that 200 OK for the CANCEL only means "Ok, I got the request". > > It is the INVITE response that matters. If the INVITE transaction was cancelled, the UAC would not have received a 200 OK for the INVITE. Hi, let me re-explain my example (assuming the proxy implements invfix draft: - alice sends INVITE to the proxy. - The proxy relays it to bob. - bob replies 200. - The proxy relays the 200 to alice. The INVITE transaction in the proxy remains in "Accepted" state (invfix addition). - alice sends now a CANCEL (before receiving the 200 for the INVITE). - The proxy receives the CANCEL and matches the existing INVITE transaction (in "Accepted" state), what should it reply? "200 Canceled"? there is nothing to cancel right now as a 200 was already received by the proxy. -- Iñaki Baz Castillo <[email protected]> _______________________________________________ Sip mailing list https://www.ietf.org/mailman/listinfo/sip This list is essentially closed and only used for finishing old business. Use [email protected] for questions on how to develop a SIP implementation. Use [email protected] for new developments on the application of sip. Use [email protected] for issues related to maintenance of the core SIP specifications. _______________________________________________ Sip mailing list https://www.ietf.org/mailman/listinfo/sip This list is essentially closed and only used for finishing old business. Use [email protected] for questions on how to develop a SIP implementation. Use [email protected] for new developments on the application of sip. Use [email protected] for issues related to maintenance of the core SIP specifications.
