Re: [Sip] Open Issue #7: CANCEL for non-INVITE

"Bob Penfield" <bpenfield@acmepacket.com> Mon, 10 September 2001 21:24 UTC

Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id RAA02235 for <sip-archive@odin.ietf.org>; Mon, 10 Sep 2001 17:24:44 -0400 (EDT)
Received: from optimus.ietf.org (localhost [127.0.0.1]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id RAA19195; Mon, 10 Sep 2001 17:02:19 -0400 (EDT)
Received: from ietf.org (odin [132.151.1.176]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id RAA19104 for <sip@optimus.ietf.org>; Mon, 10 Sep 2001 17:02:14 -0400 (EDT)
Received: from acmepacket.com (mail1.acmepacket.com [63.67.143.10]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id RAA01556 for <sip@ietf.org>; Mon, 10 Sep 2001 17:00:44 -0400 (EDT)
Received: from BobP [63.67.143.2] by acmepacket.com (SMTPD32-6.05) id AA4D7950142; Mon, 10 Sep 2001 17:02:05 -0400
Message-ID: <002501c13a3b$9eb184c0$2300000a@acmepacket.com>
From: Bob Penfield <bpenfield@acmepacket.com>
To: Suheel Hussain <ssh@cisco.com>, Christer Holmberg <christer.holmberg@lmf.ericsson.se>
Cc: Jonathan Rosenberg <jdrosen@dynamicsoft.com>, "'Henning G. Schulzrinne'" <hgs@cs.columbia.edu>, sip@ietf.org
References: <B65B4F8437968F488A01A940B21982BF020D6806@DYN-EXCH-001.dynamicsoft.com> <3B9C5895.AB292BD@lmf.ericsson.se> <3B9D0BFB.6050602@cisco.com>
Subject: Re: [Sip] Open Issue #7: CANCEL for non-INVITE
Date: Mon, 10 Sep 2001 17:00:27 -0400
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4133.2400
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
Content-Transfer-Encoding: 7bit
Sender: sip-admin@ietf.org
Errors-To: sip-admin@ietf.org
X-Mailman-Version: 1.0
Precedence: bulk
List-Id: Session Initiation Protocol <sip.ietf.org>
X-BeenThere: sip@ietf.org
Content-Transfer-Encoding: 7bit

----- Original Message -----
From: "Suheel Hussain" <ssh@cisco.com>
To: "Christer Holmberg" <christer.holmberg@lmf.ericsson.se>
Cc: "Jonathan Rosenberg" <jdrosen@dynamicsoft.com>; "'Henning G.
Schulzrinne'" <hgs@cs.columbia.edu>; <sip@ietf.org>
Sent: Monday, September 10, 2001 2:52 PM
Subject: Re: [Sip] Open Issue #7: CANCEL for non-INVITE


> Christer,
> By sending an error code for a CANCEL, does it mean that error-code
> should be sent only if I (UA) do not want to process non-INVITE CANCEL?
> If yes, then this could lead to backward compatibility problem -- i.e., an
> UA running a new version of SIP sending a non-INVITE CANCEL to and
> older version UA. For example:
>
> UA new                            UA old
>      -------- REFER ----------->
>                                        start processing REFER
> wait..wait
> I want to cancel
> REFER
>   --------- CANCEL ---------->
>                                        sorry I do not know why this cancel
>                                        Discard and keep processing REFER
> Whew...
> I got REFER cancelled -------- REFER processing complete
>                                           call transferred
>
I don't think we would change the requirement to still wait for a final
response to the request. The UA should not think the request is cancelled
unless it gets a 487 final response to the original request. This should not
change even if we allow responses other than 200-OK to a CANCEL. The
response to a CANCEL can tell you the CANCEL was rejected, it cannot tell
you it was successful. Only the 487 can tell you that. If you get a 200-OK,
or some other final response, the CANCEL did not work.

Remember, all transactions complete independently.

> In this case absence of an error-code signifies that CANCEL was
> successful; whereas UA-old does not cancels REFER.
>
> How do we handle such conditions?

We must still get 487 final response to original request to know that the
request has truly been cancelled.

>
> Christer Holmberg wrote:
>
> >Hi,
> >
> >My personal opinion is that we, like Henning said, simply should have a
> >error code telling "sorry, I can't cancel the specific request". Of
> >course we can, if needed, also have different error codes for request
> >that can't be cancelled because a final response has been sent, and
> >another code for requests that the UAS simply doesn't allow - for any
> >reason - the UAC to CANCEL.
> >
> >For example, even if we most likely always will accept a CANCEL for the
> >initial INVITE, there are many cases where we may not accept a CANCEL
> >for a re-INVITE.
> >
> >Eg, if I receive a re-INVITE to change some codecs, I may not accept a
> >CANCEL. EVEN if I would be smart enough to remember the previous codecs
> >it is not even sure that I have resources to change them back. In that
> >case we would need a code saying "well, I did CANCEL your re-INVITE, but
> >now I am not able to put the old codecs back, so it would probably be a
> >good idea to release the whole call". No, I don't think we want that...
> >Another thinkg would be for the UAS to send a BYE, since it can't put
> >the codecs back, but I don't think we want that either, so...
> >
> >Regards,
> >
> >Christer Holmberg
> >Ericsson Finland
> >
> >
> >
> >
> >Jonathan Rosenberg wrote:
> >
> >>
> >>
> >>>-----Original Message-----
> >>>From: Henning G. Schulzrinne [mailto:hgs@cs.columbia.edu]
> >>>Sent: Sunday, September 02, 2001 5:24 PM
> >>>To: sip@ietf.org
> >>>Subject: [Sip] Open Issue #7: CANCEL for non-INVITE
> >>>
> >>>
> >>>(Due to travel, I probably missed some of the discussion, so excuse me
> >>>for re-raising old issues.)
> >>>
> >>>A few notes:
> >>>
> >>>- I think the complexity of CANCEL for non-INVITE on the
> >>>server side is
> >>>essentially zero. If you don't implement it, you can either return 481
> >>>(i.e., the request has already been completed) or 405 (but see below).
> >>>
> >>Well, the proposal was pretty much that. It does nothing. Just respond
to
> >>it. The point is that a client MUSTNOT send it anymore (i.e., its
deprecated
> >>as it doesn't do anything useful).
> >>
> >>>- If we don't allow CANCEL for non-INVITE, we have to extend the
> >>>definition of 405 (or define a new status code), since the method *is*
> >>>supported for an INVITE for the same URL. To wit, the current
> >>>text says:
> >>>
> >>>"The method specified in the \header{Request-Line} is not allowed for
> >>>the
> >>>address identified by the \header{Request-URI}.  The response {\MUST}
> >>>include an \header{Allow} header field containing a list of valid
> >>>methods for the indicated address."
> >>>
> >>>Note that this defines the granularity of requests at the URI
> >>>level, not
> >>>at the method level.
> >>>
> >>Right. It wasn't the proposal to respond with a 405. Just a 200 OK, in
fact.
> >>
> >>>- Does anything else get simpler if we disallow CANCEL for non-INVITE?
> >>>
> >>The thing we want to get rid of is the usage in the client, and the
> >>processing that, in theory, would need to happen in the server if this
was
> >>more than a no-op. For example, cancelling a SUBSCRIBE or something
would
> >>cause the subscription state to be destroyed, and a 487 to the SUBSCRIBE
to
> >>be sent. With the proposal, the server just 200 OKs the CANCEL, and
> >>otherwise ignores it. No deletion of state. No generating of a special
> >>response to SUBSCRIBE.
> >>
> >>>- Under the current model, non-INVITE transactions can have non-zero
> >>>duration, if you return a 1xx response. Thus, it is at least
> >>>conceivable
> >>>that there are methods where the CANCEL could actually accomplish
> >>>something.
> >>>
> >>Well, except that you still need to cotninue retransmitting the request
at
> >>5s intervals to trigger a response. This is wasteful, and results in
slow
> >>transactions. I had thought that we had agreed as a group that
non-INVITE
> >>requests really needed to be responded to immediately to be effective.
> >>
> >>-Jonathan R.
> >>
> >>---
> >>Jonathan D. Rosenberg, Ph.D.                72 Eagle Rock Ave.
> >>Chief Scientist                             First Floor
> >>dynamicsoft                                 East Hanover, NJ 07936
> >>jdrosen@dynamicsoft.com                     FAX:   (973) 952-5050
> >>http://www.jdrosen.net                      PHONE: (973) 952-5000
> >>http://www.dynamicsoft.com
> >>
> >>_______________________________________________
> >>Sip mailing list  http://www1.ietf.org/mailman/listinfo/sip
> >>This list is for NEW development of the core SIP Protocol
> >>Use sip-implementors@cs.columbia.edu for questions on current sip
> >>Use sipping@ietf.org for new developments on the application of sip
> >>
> >>
>
> --
>
> Suheel Hussain
> ssh@cisco.com
> Cisco Work # (919) 392-2312
>
>
>


_______________________________________________
Sip mailing list  http://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors@cs.columbia.edu for questions on current sip
Use sipping@ietf.org for new developments on the application of sip