Subject: [Sip] updated GRUU spec

From: Jonathan Rosenberg <[email-masked]>
Date: Thu, 09 Mar 2006 17:54:12 -0500

I've submitted an update to the GRUU spec. Until it appears, you can 
pick it up at:

http://www.jdrosen.net/papers/draft-ietf-sip-gruu-07.txt

There are some major changes in here. They are:

* removal of the instance contact parameter definition, which now lives 
in sip-outbound. I think this was a huge improvement because of this; 
gruu works much better now with the dependencies reversed

* elimination of the edge proxy record-route munging mess. In its place, 
the home proxy will rewrite the r-uri of mid-dialog requests (which will 
have the gruu) to equal the registered contact. This is simple to do, 
eliminates the spiraling problem completely, and requires no complicated 
procedures to detemrine when to apply it. UA's do not record-route. The 
mechanism does not address HA and failover for mid-dialog requests (nor 
does sip-outbound). We are pushing that off, since neither gruu nor 
sip-outbound was targeted at meeting that as a requirement. This was the 
conclusion a small group of us came to in some off-line discussions.

* addition of a "gruu" URI parameter, to flag a URI as being a gruu. I 
have argued against this a lot up till now. However, seems I was in the 
minority so in part this reflects group consensus. When reviewing though 
the handling of the opaque parameter, it turned out things really fell 
apart in depending on supported as a clue to gruu-ness. Really the root 
need here is that we have a backwards compatibility issue; it would 
probably not have been necessary to have a 'gruu' uri param if the 
Contact URI had the gruu property all along. But the fact that it doesnt 
is a big driver here. Thus, 'gruu' is similar to 'lr' - both are URI 
flags meant to address this backwards compatibility issue.

* as a consequence of the point above, there is virtually no mention of 
supported header field and its interactions with gruu

* Removed requirement for inserting Require in 200 OK to REGISTER; a
UA doesnt HAVE to include gruu in contacts anymore (though its still
SHOULD)

* removed bit about future specifications dealing with the fact that
mid-dialog requests never go e2e, but always through proxies. No one
is ever going to "fix" this.

* gruu mechanism doesn't require the sip-outbound mechanisms to be USED 
with gruu; there is a normative spec dependency, which is different. 
gruu requires sip-outbound to be used ONLY if you are trying to register 
multiple contacts to the same instance, for this redundancy feature

Assuming folks are happy with these changes, there are no open issues 
I'm aware of.

Thanks,
Jonathan R.

-- 
Jonathan D. Rosenberg, Ph.D.                   600 Lanidex Plaza
Cisco Fellow                                   Parsippany, NJ 07054-2711
Cisco Systems
[email-masked]                              FAX:   (973) 952-5050
http://www.jdrosen.net                         PHONE: (973) 952-5000
http://www.cisco.com

_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: "Jeroen van Bemmel" <[email-masked]>
Date: Fri, 10 Mar 2006 21:32:08 +0100

Jonathan,

Nice to see this work progressing

Some minor remarks:
- section 7.1.1.1 : Contacts provided by the UA should probably also not
contain the "gruu" URI parameter, as it should not be a GRUU
- section 7.1.2.1 : should the REGISTER response contain a Supported or
Require header?

I suppose even if the UA is not requesting GRUUs, the registrar could still
indicate support for them, such that the UA knows it can request them. So a
suggestion might be: if REGISTER contains Supported: gruu, response MUST
have Require, else it SHOULD have Supported

- section 14.3 : This text still refers to Supported: gruu as the mechanism
to indicate that Contact is a GRUU

Regards,

jeroen

----- Original Message ----- 
From: "Jonathan Rosenberg" <[email-masked]>
To: "IETF SIP List" <[email-masked]>
Sent: Thursday, March 09, 2006 11:54 PM
Subject: [Sip] updated GRUU spec

> I've submitted an update to the GRUU spec. Until it appears, you can pick 
> it up at:
>
> * removal of the instance contact parameter definition, which now lives in 
> sip-outbound. I think this was a huge improvement because of this; gruu 
> works much better now with the dependencies reversed
>
> probably not have been necessary to have a 'gruu' uri param if the Contact 
> URI had the gruu property all along. But the fact that it doesnt is a big 
> driver here. Thus, 'gruu' is similar to 'lr' - both are URI flags meant to 
> address this backwards compatibility issue.
>
> with gruu; there is a normative spec dependency, which is different. gruu 
> requires sip-outbound to be used ONLY if you are trying to register 
> Assuming folks are happy with these changes, there are no open issues I'm 
> aware of.
>
> Thanks,
> Jonathan R.
>
> --

---

From: Jonathan Rosenberg <[email-masked]>
Date: Mon, 13 Mar 2006 11:52:35 -0500

> contain the "gruu" URI parameter, as it should not be a GRUU

Ah, good comment. I had this restriction in the document, but then 
removed it. The reason is, it is actually possible to register a gruu 
from one domain to the registrar in another. Its weird, but would work.

> - section 7.1.2.1 : should the REGISTER response contain a Supported or

No. The draft used to say that REGISTER response had to have Require, 
but no longer. Thats because we're not depending on the UA using the 
gruu to make the spiral prevention properly work.

> have Require, else it SHOULD have Supported

Require/Supported don't work that way. If a client puts Supported in a 
request, and the server needs the client to process the response, it 
puts Require. Supported is not placed in a response to indicate that a 
gruu was provided. Rather, the UA simply looks for the gruu parameter in 
the contact.

> to indicate that Contact is a GRUU

Right, fixed. Now reads:

<list style="hanging">
<t hangText="Name:"> gruu </t>
<t hangText="Description:"> This option tag is used to identify the
Globally Routable User Agent URI (GRUU) extension. When used in a
Supported header, it indicates that a User Agent understands the
extension. When used in a Require header field of a REGISTER request,
it indicates that the registrar shouldn't process the registration
unless it supports the GRUU extension.</t>
</list>

Thanks,
Jonathan R.