Re: [sipcore] draft-roach-sipcore-rfc3265bis-00 - Record-Route and tranaction state model.

Adam Roach <adam@nostrum.com> Mon, 17 August 2009 19:41 UTC

Return-Path: <adam@nostrum.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 4B52628C322 for <sipcore@core3.amsl.com>; Mon, 17 Aug 2009 12:41:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.783
X-Spam-Level:
X-Spam-Status: No, score=-2.783 tagged_above=-999 required=5 tests=[AWL=-0.183, BAYES_00=-2.599, SPF_PASS=-0.001]
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 QTlesHqdNT-K for <sipcore@core3.amsl.com>; Mon, 17 Aug 2009 12:41:27 -0700 (PDT)
Received: from nostrum.com (nostrum-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) by core3.amsl.com (Postfix) with ESMTP id 6F0D028C2FE for <sipcore@ietf.org>; Mon, 17 Aug 2009 12:41:25 -0700 (PDT)
Received: from [172.16.3.231] (vicuna-alt.estacado.net [75.53.54.121]) (authenticated bits=0) by nostrum.com (8.14.3/8.14.3) with ESMTP id n7HJfOEX035364 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 17 Aug 2009 14:41:24 -0500 (CDT) (envelope-from adam@nostrum.com)
Message-ID: <4A89B264.5060003@nostrum.com>
Date: Mon, 17 Aug 2009 14:41:24 -0500
From: Adam Roach <adam@nostrum.com>
User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605)
MIME-Version: 1.0
To: Ian Elz <ian.elz@ericsson.com>
References: <C0E80510684FE94DBDE3A4AF6B968D2D06311DBD@esealmw118.eemea.ericsson.se> <4A85C195.4060903@nostrum.com> <C0E80510684FE94DBDE3A4AF6B968D2D06312609@esealmw118.eemea.ericsson.se>
In-Reply-To: <C0E80510684FE94DBDE3A4AF6B968D2D06312609@esealmw118.eemea.ericsson.se>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Received-SPF: pass (nostrum.com: 75.53.54.121 is authenticated by a trusted mechanism)
Cc: sipcore@ietf.org
Subject: Re: [sipcore] draft-roach-sipcore-rfc3265bis-00 - Record-Route and tranaction state model.
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: Mon, 17 Aug 2009 19:41:30 -0000

[I've elided some of the original message because it was based on a 
misunderstanding. Instead of citing RFC 3265 section 3.1.5 several 
times, I've cited it once and removed the other paragraphs that related 
to this misunderstanding]

Ian Elz wrote:
> RFC3265 does not include anything about how the subscriber (I will use
> subscriber and notifier as UAC/UAS reverse for the SUBSCRIBE and
> NOTIFY.) obtains his route set. If the new RFC does not explicitly state
> that the subscriber route set is obtained from the Record-Route header
> contained in the NOTIFY then RFC3261 applies the subscriber route set is
> obtained form the 2xx to the SUBSCRIBE. This will make for an
> interesting dialog if the 2xx to the SUSCRIBE is never received.
>   

So what you'd really like to see is explicit language describing when 
and how the subscriber and notifier form their route sets. That seems 
useful to add. I'll try to get some language explicitly describing this 
in the next draft.

> [ige] The problem we have is backward compatibility. If the subscriber
> and notifier support the proposed new functionality but an intermediate
> proxies does not then this may result in an asymmetric route sets. The
> SUBSCRIBE will be seen by the proxy as a dialog initiating request and
> will add itself to the Record-Route in the SUBSCRIBE. When the NOTIFY is
> handled however there is no requirement in RFC3261 to include itself in
> the Record-route as RFC3261 is explicit in the fact that any
> Record-route added to the NOTIFY will NOT update the route set. Thus
> asymmetric route sets will result.

You've missed some important text in section 3.1.5 of RFC 3265:

   If a proxy wishes to see all of the SUBSCRIBE
   and NOTIFY requests for a given dialog, it MUST record-route the
   initial SUBSCRIBE and any dialog-establishing NOTIFY requests.  Such
   proxies SHOULD also record-route all other SUBSCRIBE and NOTIFY
   requests.


> [ige] Agree that with forking only a single 200 OK will mean that NOTIFY
> will be used to establish other SUBSCRIBE dialogs. This appears to be an
> issue with forking and RFC3261 where only a single 2xx response is
> returned. If I subscribe and multiple nodes accept the subscription e.g.
> I subscribe to the dialog-event mechanism for all dialogs for a user,
> why shouldn't multiple 2xx responses to the SUBSCRIBE be returned to
> establish multiple dialogs and to set up the route sets for each of
> those dialogs.
>   

Because 3261 forbids it. We really can't require proxies to treat 
extension methods as special cases: proxies treating SUBSCRIBE as an 
arbitrary non-INVITE message must do the right thing.


> [ige] Is what you are saying is that for one dialog you may take the
> route set from the 2xx to the SUBSCRIBE, depending upon whether the
> NOTIFY or 2xx arrives first, and for other dialogs it is taken from the
> NOTIFY.

No.

That's what 3265 said, and it proved too confusing. We're simplifying 
that. In 3265bis, the client never uses a SUBSCRIBE 200 to establish a 
dialog. Now it always uses the NOTIFY.


/a