RE: [Sip] Open Issue #7: CANCEL for non-INVITE
Jonathan Rosenberg <jdrosen@dynamicsoft.com> Tue, 25 September 2001 06:39 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 CAA22867 for <sip-archive@odin.ietf.org>; Tue, 25 Sep 2001 02:39:39 -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 CAA27097; Tue, 25 Sep 2001 02:07:55 -0400 (EDT)
Received: from ietf.org (odin [132.151.1.176]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id CAA27064 for <sip@optimus.ietf.org>; Tue, 25 Sep 2001 02:07:53 -0400 (EDT)
Received: from mail1.dynamicsoft.com ([63.113.40.10]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id CAA20734 for <sip@ietf.org>; Tue, 25 Sep 2001 02:07:50 -0400 (EDT)
Received: from DYN-EXCH-001.dynamicsoft.com (dyn-exch-001 [63.113.44.7]) by mail1.dynamicsoft.com (8.12.0.Beta7/8.12.0.Beta7) with ESMTP id f8P65j8P010357; Tue, 25 Sep 2001 02:05:47 -0400 (EDT)
Received: by DYN-EXCH-001.dynamicsoft.com with Internet Mail Service (5.5.2653.19) id <TRZNF68Q>; Tue, 25 Sep 2001 02:06:46 -0400
Message-ID: <B65B4F8437968F488A01A940B21982BF020D6978@DYN-EXCH-001.dynamicsoft.com>
From: Jonathan Rosenberg <jdrosen@dynamicsoft.com>
To: "'Henning G. Schulzrinne'" <hgs@cs.columbia.edu>, James Undery <jundery@ubiquity.net>
Cc: sip@ietf.org
Subject: RE: [Sip] Open Issue #7: CANCEL for non-INVITE
Date: Tue, 25 Sep 2001 02:06:43 -0400
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain
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
> -----Original Message----- > From: Henning G. Schulzrinne [mailto:hgs@cs.columbia.edu] > Sent: Monday, September 24, 2001 12:45 PM > To: James Undery > Cc: sip@ietf.org > Subject: Re: [Sip] Open Issue #7: CANCEL for non-INVITE > > > James Undery wrote: > > > > > The problem I see here is the difference between complete > immidately, > > and the ability to cancel before completion. For example this all > > started because of REGISTER, sending 100 then attempting to do the > > database magic (possibly over a network) makes sense to restrict > > retransmission, yet providing full rollback semantics to allow the > > REGISTER to cancel is trickier. > > As I have tried to say numerous times before, nobody has to implement > CANCEL even under the current state of affairs. That might actually be a bad thing for INVITE. CANCEL is the preferred way to hang up a call before a final response since its the only reliable way to do so. However, if the server doesn't implement it, the call can't be hung up. I'd call that an interoperability failure. I think that if a UA implements INVITE, it probably needs to implement BYE and CANCEL. If CANCELing > REGISTER is > difficult (which seems likely), just don't do it. CANCEL is > advisory, an > optimization. Somehow the "doesn't work for all cases" seems to get > confused with "it's never useful". Indeed, that is the question. If it doesn't always work, is it still useful? To answer that, you have to think about what it means for cancel to "work". I can think of several dimensions to this: 1. it works because it causes the transaction to complete immediately 2. it works because it causes the transaction to generate a 487 response Even though CANCEL for INVITE doesn't always "work" for definition (2), it always works for definition (1) since it always results in immediate completion of the transaction one way or another, so long as the server supports CANCEL. Would CANCEL for INVITE be useful if it didn't always perform (1)? I'd say no. From a users perspective, it is not acceptable to hit "stop" and for nothing to happen. So, I would propose to define the CANCEL for a method "works" if it always (under reasonable network conditions) results in rapid completion of the transaction, whether it is success (because the 2xx and CANCEL pass on the wire), or failure (including 487). If this definition is suitable, then we can draw some conclusions: 1. If a non-INVITE transaction is protracted, CANCEL is only useful if all servers have to support cancel for that method. 2. If a non-INVITE transaction is not protracted, CANCEL is a no-op since sending it or not achieves the same result. So, let me propose the following compromise text based on these conclusions: "Servers that implement INVITE MUST support CANCEL for INVITE transactions. CANCEL is not defined for other methods in this specification. Extensions MAY define other methods for which CANCEL is useful; those extensions should specify that CANCEL is allowed and is mandatory if the extension method is supported". How is that? -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
- [Sip] Open Issue #7: CANCEL for non-INVITE Jonathan Rosenberg
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Rosen, Brian
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Vijay Gurbani
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Kim Liu
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Shail Bhatnagar
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Kim Liu
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Jonathan Rosenberg
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Brett Tate
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Drage, Keith (Keith)
- [Sip] Open Issue #7: CANCEL for non-INVITE Henning G. Schulzrinne
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Jonathan Rosenberg
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Christer Holmberg
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Henning Schulzrinne
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Rohan Mahy
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Suheel Hussain
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Bob Penfield
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Drage, Keith (Keith)
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Robert Sparks
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Drage, Keith (Keith)
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Robert Sparks
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Jonathan Rosenberg
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Christer Holmberg
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Henning G. Schulzrinne
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Henning G. Schulzrinne
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Gonzalo Camarillo
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Anders Kristensen
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE James Undery
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Henning G. Schulzrinne
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Bob Penfield
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Drage, Keith (Keith)
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Christer Holmberg
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Jonathan Rosenberg
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Bob Penfield
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE James Undery
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Jo Hornsby
- Re: [Sip] Open Issue #7: CANCEL for non-INVITE Henning Schulzrinne
- RE: [Sip] Open Issue #7: CANCEL for non-INVITE Drage, Keith (Keith)