Subject: CANCEL question

From: Manuel Sanchez Cabas <[email-masked]>
Date: Wed, 08 Dec 1999 16:55:28 +0200

I would appreciate a lot if someone could solve this questio about
CANCEL processing in a proxy.

A proxy receives an INVITE request from the UAC for a new call and
forwards it. Immediately after, the proxy receives a CANCEL request from
the UAC for this call. What should the proxy do??:

1) Return a 200 OK for the CANCEL to the UAC. Issue a new CANCEL request
downstream initializing the Via header to the proxy.

If the proxy receives a 200 OK for the INVITE after it has sent the
CANCEL downstream, what should it do? the new draft suggests to ACK as
if no CANCEL had been sent, but in this situation, the caller assumes
call is cancelled while the callee thinks that a call has been
established. Should the callee respond to the CANCEL as well even though
it had sent a 200 final response for that transaction?

2)Send the CANCEL request downstream and wait for a response either for
the INVITE or the CANCEL.

Thanks a lot.

Manuel.

---

From: Igor Slepchin <[email-masked]>
Date: Wed, 08 Dec 1999 22:11:25 -0500

> downstream initializing the Via header to the proxy.

This is the correct behavior.
 
> CANCEL downstream, what should it do? 

It should forward 200OK to the next hop specified in the Via header.

> the new draft suggests to ACK as
> established. 

ACKs to 200 responses are end to end so a proxy would never ACK a 200OK,
it would just forward the 200OK upstream. The draft says that UACs and
proxies should be prepared to receive a final response even after
receiving the response to CANCEL, thus resolving the ambiguous situation
you describe.

> Should the callee respond to the CANCEL as well even though

Yes, otherwise the upstream proxy would keep retransmitting the CANCEL.
 
---
Igor Slepchin