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

"Ian Elz" <ian.elz@ericsson.com> Tue, 18 August 2009 21:20 UTC

Return-Path: <ian.elz@ericsson.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 9950E3A6938 for <sipcore@core3.amsl.com>; Tue, 18 Aug 2009 14:20:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.582
X-Spam-Level:
X-Spam-Status: No, score=-5.582 tagged_above=-999 required=5 tests=[AWL=0.667, BAYES_00=-2.599, HELO_EQ_SE=0.35, RCVD_IN_DNSWL_MED=-4]
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 rIta8Pb-63nS for <sipcore@core3.amsl.com>; Tue, 18 Aug 2009 14:20:49 -0700 (PDT)
Received: from mailgw3.ericsson.se (mailgw3.ericsson.se [193.180.251.60]) by core3.amsl.com (Postfix) with ESMTP id 238A73A6ADF for <sipcore@ietf.org>; Tue, 18 Aug 2009 14:20:48 -0700 (PDT)
X-AuditID: c1b4fb3c-b7c01ae000002aae-e5-4a8b1b34ea10
Received: from esealmw128.eemea.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw3.ericsson.se (Symantec Mail Security) with SMTP id AB.B8.10926.43B1B8A4; Tue, 18 Aug 2009 23:20:52 +0200 (CEST)
Received: from esealmw118.eemea.ericsson.se ([153.88.200.77]) by esealmw128.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.3959); Tue, 18 Aug 2009 23:20:20 +0200
x-mimeole: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 18 Aug 2009 23:20:19 +0200
Message-ID: <C0E80510684FE94DBDE3A4AF6B968D2D0634799B@esealmw118.eemea.ericsson.se>
In-Reply-To: <4A89B264.5060003@nostrum.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: draft-roach-sipcore-rfc3265bis-00 - Record-Route and tranaction state model.
Thread-Index: AcofcrYq3bRncNJaScmaoCVAlAtU5wA030yw
References: <C0E80510684FE94DBDE3A4AF6B968D2D06311DBD@esealmw118.eemea.ericsson.se> <4A85C195.4060903@nostrum.com> <C0E80510684FE94DBDE3A4AF6B968D2D06312609@esealmw118.eemea.ericsson.se> <4A89B264.5060003@nostrum.com>
From: Ian Elz <ian.elz@ericsson.com>
To: Adam Roach <adam@nostrum.com>
X-OriginalArrivalTime: 18 Aug 2009 21:20:20.0064 (UTC) FILETIME=[B0938600:01CA2049]
X-Brightmail-Tracker: AAAAAA==
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: Tue, 18 Aug 2009 21:20:50 -0000

Adam,

I think that I understand what you are trying to simplify and why. I
just think that we need to ensure that the new draft does not leave open
the interpretations which are possible from RFC3265.

"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] Yes - I think that it is necessary to describe the differences
from RFC 3261.

"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] OK - any proxy which fails to do this does so at its own peril.
The requirement to record-route subsequent SUBSCRIBE and NOTIFY is I
assume for simplicity in implementation, so the proxy does not have to
wok out which are for new dialogs and which for existing.

Ian

-----Original Message-----
From: Adam Roach [mailto:adam@nostrum.com] 
Sent: 17 August 2009 20:41
To: Ian Elz
Cc: sipcore@ietf.org; Christer Holmberg
Subject: Re: draft-roach-sipcore-rfc3265bis-00 - Record-Route and
tranaction state model.


[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