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

Jonathan Rosenberg <jdrosen@dynamicsoft.com> Wed, 22 August 2001 21:48 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 RAA24769 for <sip-archive@odin.ietf.org>; Wed, 22 Aug 2001 17:48:36 -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 RAA02799; Wed, 22 Aug 2001 17:32:36 -0400 (EDT)
Received: from ietf.org (odin [132.151.1.176]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id RAA02768 for <sip@ns.ietf.org>; Wed, 22 Aug 2001 17:32:34 -0400 (EDT)
Received: from mail1.dynamicsoft.com ([63.113.40.10]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id RAA24474 for <sip@ietf.org>; Wed, 22 Aug 2001 17:31:13 -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 f7MLVBrN019741 for <sip@ietf.org>; Wed, 22 Aug 2001 17:31:11 -0400 (EDT)
Received: by DYN-EXCH-001.dynamicsoft.com with Internet Mail Service (5.5.2653.19) id <RBX3AW13>; Wed, 22 Aug 2001 17:31:59 -0400
Message-ID: <B65B4F8437968F488A01A940B21982BF020D662A@DYN-EXCH-001.dynamicsoft.com>
From: Jonathan Rosenberg <jdrosen@dynamicsoft.com>
To: "'sip@ietf.org'" <sip@ietf.org>
Date: Wed, 22 Aug 2001 17:31:50 -0400
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain; charset="iso-8859-1"
Subject: [Sip] Open Issue #7: CANCEL for non-INVITE
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

Folks,

This is the first of a series of emails I am going to send in an attempt to
resolve the open issues in bis. Time is running short, and we need to
resolve these things in the next few months. So, I would strongly encourage
active participants on the list to give priority to these threads, rather
than the many other interesting, but ultimately unimportant ones. I myself
am guilty of being baited all the time with these things....

I will start with those issues discussed at IETF 51. I will send notes for
the ones we both agreed upon, and those we didn't. The agreed upon ones
serve the important purpose of making sure the list itself concurs, since
IETF policy is that decisions cannot get made at meetings, only on the
lists. I suspect there will be no controversy on these.

So, here is the first. Issue #7: CANCEL for non-INVITE.

Issue description: Currently, bis allows for CANCEL for all methods, not
just INVITE. This made sense way back when, before we recognized that all
non-INVITE methods really need to complete immediately. However, if all
INVITEs are supposed to complete right away (i.e., the server immediately
generates a response, and shouldn't wait for user input), the usage of
CANCEL becomes a race condition. Whether the response is cancelled or not
depends on whether or not the CANCEL beats the server's generation of a
response. The argument has been made, and its a good one, that specifying a
mechanism thats ALWAYS a race condition is futile.

What is the cost? Some have argued that its nothing, since its harder to
special case INVITE. However, I suspect there is a real cost on the server
side. It now must have logic that tells it how to undo anything it might
have done for a particular method before sending the final response. Yuck.

The one point of contention at the meeting was whether CANCEL is useful for
stopping timed-out transactions. That is, I send a SUBSCRIBE, and never get
a response. After 16s (or whatever it is), I send CANCEL to terminate it,
because I never got a response. However, I think that this is not a good
argument. Since the server is supposed to respond immediately anway, sending
CANCEL won't help trigger a response, since there is clearly some big error
thats preventing the response from coming anyway. Others argued that errors
can happen for lots of reasons, so perhaps the CANCEL will help.

My proposal was that we should deprecate CANCEL for non-INVITE. The benefit
is not even quantifiable, at best, and the cost seems high. Of course, for
backwards compatibility, a server should not complain if it gets a CANCEL
for a non-invite, just respond 200 OK (or even 405 is OK) and thats it. It
should have responded to the request anyway. 

There was mild consensus on this, but some key participants disagreed.
Please, speak up and lets resolve this.

-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