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 CANCEL’s 200 OK you can’t 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
INVITE’s 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 UAC’s
CANCEL after sending UAS’s 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 UAC’s
CANCEL after sending UAS’s 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

Reply via email to