Re: [sipcore] Dialog state - Scope in draft-ietf-sipcore-reinvite

Paul Kyzivat <pkyzivat@cisco.com> Tue, 13 July 2010 14:35 UTC

Return-Path: <pkyzivat@cisco.com>
X-Original-To: sipcore@core3.amsl.com
Delivered-To: sipcore@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 79CA23A6890 for <sipcore@core3.amsl.com>; Tue, 13 Jul 2010 07:35:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.402
X-Spam-Level:
X-Spam-Status: No, score=-10.402 tagged_above=-999 required=5 tests=[AWL=0.197, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OpLbGzo6UG3l for <sipcore@core3.amsl.com>; Tue, 13 Jul 2010 07:35:11 -0700 (PDT)
Received: from rtp-iport-2.cisco.com (rtp-iport-2.cisco.com [64.102.122.149]) by core3.amsl.com (Postfix) with ESMTP id 064653A686D for <sipcore@ietf.org>; Tue, 13 Jul 2010 07:35:09 -0700 (PDT)
Authentication-Results: rtp-iport-2.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAK8WPExAZnwM/2dsb2JhbACfZXGkRJpqgl+CSASITQ
X-IronPort-AV: E=Sophos;i="4.55,195,1278288000"; d="scan'208";a="131831457"
Received: from rtp-core-1.cisco.com ([64.102.124.12]) by rtp-iport-2.cisco.com with ESMTP; 13 Jul 2010 14:35:18 +0000
Received: from [161.44.174.142] (dhcp-161-44-174-142.cisco.com [161.44.174.142]) by rtp-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o6DEZIro020669; Tue, 13 Jul 2010 14:35:18 GMT
Message-ID: <4C3C79AC.4050502@cisco.com>
Date: Tue, 13 Jul 2010 10:35:24 -0400
From: Paul Kyzivat <pkyzivat@cisco.com>
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
To: Gonzalo Camarillo <Gonzalo.Camarillo@ericsson.com>
References: <4C317D02.2030307@ericsson.com>
In-Reply-To: <4C317D02.2030307@ericsson.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: SIPCORE <sipcore@ietf.org>
Subject: Re: [sipcore] Dialog state - Scope in draft-ietf-sipcore-reinvite
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sipcore>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 13 Jul 2010 14:35:14 -0000

Gonzalo,

Gonzalo Camarillo wrote:
> Hi,
> 
> the re-INVITE draft talks about modifications in the session state,
> dialog state, and the dialog's remote target. While it is relatively
> well understood what we mean by session state and the dialog's remote
> target, we do not really have a good definition for dialog state.
> 
> We have discussed it in the past and what people had in mind were things
> such as called party identity. However, the draft is too vague at this
> point; it should be more precise regarding which piece of "dialog state"
> the rules in the draft apply to.
> 
> My suggestion would be to have the draft talk only about session state
> and the dialog's remote target, and forget about any other dialog state.
> New extensions whose parameters can be modified by re-INVITEs can
> specify their own rules, possibly referring to this draft and using the
> rules defined in it by reference. In this way, the applicability of this
> draft would be much clearer.

This is one of those areas that has bugged me for a long time.
3261 defines dialog state, but the definitions are spread through the 
text, and subject to interpretation. Things identifiable in 3261:

- remote URI
- local URI
- dialog id
   * local tag
   * remote tag
   * call-id
- local sequence number
- remote sequence number
- route set
- secure flag

- early / final
- local SDP
- remote SDP

(I just coined terms local/remote SDP. AFAIK its never mentioned as 
state, but clearly it is.) Of course there is no distinction between 
dialog state and dialog usage state - that distinction was made later. 
But based on subsequent refinements we now know that most of the above 
is generic dialog state, *except* for the local/remote SDP and the 
early/final attribute. (Early dialogs can only arise with INVITE.)

Clearly *reinvite* cannot really affect non-invite usages. So I think 
attributes of non-invite usages are out of scope for this draft.

I don't know of an exhaustive list of dialog state or invite-usage state 
that has been introduced in other documents. And in fact its not 
especially clear which things should be considered dialog/dialog-usage 
state, vs. just being transient/transaction state.

I do think it would be a good thing if an exhaustive list of dialog and 
dialog-usage state was documented, and possibly made an IANA registry. 
But the information certainly doesn't change much, or often, so maybe we 
can get by without that.

Its interesting that the "rollback" we have been so concerned with 
regarding reinvite in fact does not impact *any* of the *dialog* state - 
only some of the invite-usage state, and not all of that. So the 
rollback is really very limited, and should probably be described in 
terms of what it *does* affect rather than what it does not affect.

The modifications to the remote target discussed in this draft are 
indeed about *dialog* state, which affects other usages. But the 
*issues* about the remote target change are only applicable to INVITE, 
because only it can use provisional responses. The update of remote and 
local targets in other (i.e. subscribe) usages is straightforward.

You mention p-called-party, to which one might add p-asserted-id, 
p-preferred-id, etc. Its not at all clear to me whether those are even 
intended to be stateful. If they are, then they are dialog state, not 
invite-usage state.

	Thanks,
	Paul