RE: [Sip] SIP instance identifiers

"Brian Stucker" <bstucker@nortelnetworks.com> Mon, 16 February 2004 16:04 UTC

Received: from optimus.ietf.org (optimus.ietf.org [132.151.1.19]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id LAA28153 for <sip-archive@odin.ietf.org>; Mon, 16 Feb 2004 11:04:40 -0500 (EST)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AslEE-0000Yf-6V for sip-archive@odin.ietf.org; Mon, 16 Feb 2004 11:04:14 -0500
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id i1GG4E7K002145 for sip-archive@odin.ietf.org; Mon, 16 Feb 2004 11:04:14 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AslE2-0000XD-1B; Mon, 16 Feb 2004 11:04:02 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1AslDS-0000Ux-CR for sip@optimus.ietf.org; Mon, 16 Feb 2004 11:03:26 -0500
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id LAA27982 for <sip@ietf.org>; Mon, 16 Feb 2004 11:03:22 -0500 (EST)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 1AslDP-00006I-00 for sip@ietf.org; Mon, 16 Feb 2004 11:03:23 -0500
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1AslBD-0007QC-00 for sip@ietf.org; Mon, 16 Feb 2004 11:01:11 -0500
Received: from [47.81.138.65] (helo=zsc3s004.nortelnetworks.com) by ietf-mx with esmtp (Exim 4.12) id 1Asl8t-0006st-00 for sip@ietf.org; Mon, 16 Feb 2004 10:58:44 -0500
Received: from zrc2c011.us.nortel.com (zrc2c011.us.nortel.com [47.103.120.51]) by zsc3s004.nortelnetworks.com (Switch-2.2.6/Switch-2.2.0) with ESMTP id i1GFvhg10327; Mon, 16 Feb 2004 07:57:43 -0800 (PST)
Received: by zrc2c011.us.nortel.com with Internet Mail Service (5.5.2653.19) id <1FMV81S6>; Mon, 16 Feb 2004 09:57:28 -0600
Message-ID: <161AA64DA85DFC4BA4D2EB5629B5975304AB8D9D@zrc2c012.us.nortel.com>
From: Brian Stucker <bstucker@nortelnetworks.com>
To: Jonathan Rosenberg <jdrosen@dynamicsoft.com>, sip@ietf.org
Subject: RE: [Sip] SIP instance identifiers
Date: Mon, 16 Feb 2004 09:57:20 -0600
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C3F4A5.8EEE731E"
X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on ietf-mx.ietf.org
X-Spam-Status: No, hits=0.6 required=5.0 tests=AWL,HTML_20_30,HTML_MESSAGE autolearn=no version=2.60
Sender: sip-admin@ietf.org
Errors-To: sip-admin@ietf.org
X-BeenThere: sip@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=unsubscribe>
List-Id: Session Initiation Protocol <sip.ietf.org>
List-Post: <mailto:sip@ietf.org>
List-Help: <mailto:sip-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/sip>, <mailto:sip-request@ietf.org?subject=subscribe>

Johnathan,

I'm not opposed to the client ID being transported in the registration
contact,
but seeing as there were two drafts that already discuss that, I didn't see
much point in rehashing it again in my draft. =)

I believe there are some important points that you're leaving out. 

Besides being client generated (which reduces the requirements for
generating
the ID) there are advantages to NOT mandating that the ID be expressed only 
as a parameter in the contact of a registration. 

The idea behind the GUID (and hence the lack of a specific usecase in the
-00 version of the document) is that it can be used for other activities. 
I'm not opposed to communicating the ID in a contact parameter as well as
a regular header, I just don't view transporting it in a contact header
as being always necessary or desirable depending on what you want to do
with it.

Sending it as a header allows for some interesting behavior to occur on 
non-registration requests:

- Can be used to eliminate duplicate subscriptions due to client's state
being wiped out (ie. ignore the callid/tags of an existing subscription
if the client ID matches the client ID of that subscription [and the other
information about the subscription is the same]).
- Can be used to identify the client sending a request across networks
where no other identifier is easily obtainable (NATs and the such), or 
BBUAs are present in the network.
- Can be used to identify the source of state information being pushed
into the network (presence update, etc). This is one area where conveying
the information in a contact seems a little cumbersome. The request may 
not be sent to the registrar, and a contact may otherwise be completely 
unnecessary.

In the cases where registration behavior is controlled, it requires a change
to the registrar in order to capture the appropriate behavior that should be
taken wrt a client ID. Therefore, including the information as a header or
in the contact seems moot to me as either mechanism can easily be made to 
work. Perhaps there's a usecase I'm not considering?

Additionally, I believe that there needs to be some convergence on the
approach
taken by generating the identifier itself. The mechanism that is suggested 
in your draft seems to rely upon a server to generate the unique identifier,

whereas in the other two drafts, it is the client that generates the 
unique identifier. I believe there are advantages to each. 

Regards,

Brian

-----Original Message-----
From: Jonathan Rosenberg [mailto:jdrosen@dynamicsoft.com]
Sent: Sunday, February 15, 2004 7:48 PM
To: sip@ietf.org
Subject: [Sip] SIP instance identifiers


Folks,

We have three drafts this round that all propose a way to define an 
instance identifier for a UA:


http://www.jdrosen.net/papers/draft-ietf-sip-gruu-01.txt
http://www.ietf.org/internet-drafts/draft-jennings-sipping-instance-id-00.tx
t
http://www.ietf.org/internet-drafts/draft-stucker-sip-guid-00.txt

all three are similar. Mine uses a contact header field parameter, and 
uses the callee capabilities framework to enable caller preferences 
routing based on instance iDs. Cullen also uses a contact parameter, but 
not within the callee caps framework. Brian defines a header field.

I think we generally understand the requirement here, though it would 
probably be good to obtain use cases to be sure. The design choice is 
where to include this parameter, and this represents the difference 
between the three approaches.

I tend to prefer a Contact URI parameter over a header. My main reason 
for that is REGISTER requests. If a register request has multiple 
contacts, which contact does the instance identifier apply to? As a 
header field, it would be hard to know. If you make it a contact header 
field parameter, its no problem. Those header field parameters could 
also then be used in the Contact in INVITE/200 SUB/NOT, etc.

Then, the question is whether to use a regular Contact header field 
parameter as Cullen has done, or a callee cap parameter as I have done? 
The callee cap approach allows for caller preferences to be applied to 
routing to a specific instance. Now, a good question is whether such a 
thing is needed or even a good idea, if we have GRUU as the ideal way to 
route to a UA instance. I can go either way, but welcome thoughts on the 
topic.

Thanks,
Jonathan R.
-- 
Jonathan D. Rosenberg, Ph.D.                600 Lanidex Plaza
Chief Technology Officer                    Parsippany, NJ 07054-2711
dynamicsoft
jdrosen@dynamicsoft.com                     FAX:   (973) 952-5050
http://www.jdrosen.net                      PHONE: (973) 952-5000
http://www.dynamicsoft.com


_______________________________________________
Sip mailing list  https://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