Just thought of putting it all in a mature way. Hope it would help clear the pic
Q1: Can CANCEL be sent for requests other than INVITE? Ans: Yes and No J. The RFC states "The CANCEL request, as the name implies, is used to cancel a previous request sent by a client. It is most useful to CANCEL requests to which it can take a server long time to respond. For this reason, CANCEL is best for INVITE requests, which can take a long time to generate a response. Where it suggests that CANCEL might just come in, for other requests as well. However in section 9.1 where it also states 9.1 Client Behavior A CANCEL request SHOULD NOT be sent to cancel a request other than INVITE. This combined with another quote from the RFC below makes you believe that indeed it will never come for requests other than INVITE. proxy SHOULD NOT initiate a CANCEL request. Q2: Can CANCEL be sent after 100 trying? Or when can be write a CANCEL to the network? Ans: Yes. J If no provisional response has been received, the CANCEL request MUST NOT be sent; rather, the client MUST wait for the arrival of a provisional response before sending the request. Ex: Figure 4.4 Race condition in call cancellation of The SIP Book. Q3: When should I free my Invite transaction? Obviously not just after sending CANCEL cause you need to be sure that it has been received by the next hop. But even after getting the CANCELs 200 OK you cant just free you INVITE transaction. Only and only a final response to the INVITE can free it. So you should always wait for the FINAL response or the WAIT FOR FINAL RESPONSE TIMER to expire. Please note that if the final response received is a SUCCESS (200 OK) you may or may not decide to BYE. Otherwise send an ACK and free the INVITE response. Below is for further read: UAC canceling a request cannot rely on receiving a 487 (Request Terminated) response for the original request, as an RFC 2543- compliant UAS will not generate such a response. If there is no final response for the original request in 64*T1 seconds (T1 is defined in Section 17.1.1.1), the client SHOULD then consider the original transaction cancelled and SHOULD destroy the client transaction handling the original request. A proxy MUST cancel any pending client transactions associated with a response context when it receives a matching CANCEL request. A stateful proxy MAY generate CANCEL requests for pending INVITE client transactions based on the period specified in the INVITEs Expires header field elapsing. However, this is generally unnecessary since the endpoints involved will take care of signaling the end of the transaction. Q4: What happens when server receives a CANCEL for unidentified transaction? Ans4: The UAS replies with 481 (Call Leg/Transaction Does Not Exist) and a stateful proxy just acts stateless i.e. it just gives it to its transport layer. And also >From sip rfc3261:\ If the UAS has not issued a final response for the original request, its behavior depends on the method of the original request. If the original request was an INVITE, the UAS SHOULD immediately respond to the INVITE with a 487 (Request Terminated). A CANCEL request has no impact on the processing of transactions with any other method defined in this specification (RFC 3261). So we follow these lines, CANCEL can be issued for other methods also but will have no effect on processing.So it is useless to send CANCEL for other request except INVITE. Please correct me if I am wrong. :-) Cheers! Vivek Talwar -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rastogi, Vipul (Vipul) Sent: Wednesday, June 11, 2008 12:31 AM To: ·ù ¿µÁØ; [email protected] Subject: Re: [Sip-implementors] When proxy received CANCEL after sending 200OK I wonder there are any guides that proxy how-to act when it received UACs CANCEL after sending UASs 200 OK, [VR] I think proxy should pass CANCEL to next hop and send back 200 OK (of CANCEL). What behavior you proxy has ? -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of ? ?? Sent: Wednesday, June 11, 2008 7:24 AM To: [email protected] Subject: [Sip-implementors] When proxy received CANCEL after sending 200 OK Hello SIP implementers. I wonder there are any guides that proxy how-to act when it received UACs CANCEL after sending UASs 200 OK, Thanks. ---------------------------------------------------------------------- Alex Ryu, Team Manager Core Development Team, Nable Communications, Inc. Tel : +82-2-3288-4334 (Ext:236) Mobile: +82-10-7701-8853 Fax: +82-2-558-8325 Email : [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> http://www.nablecomm.com <http://www.nablecomm.com/> ----------------------------------------------------------- _______________________________________________ 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 _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
