On May 1, 2009, at 8:05 AM, Helge Heß wrote:

CalServer switched to use URNs/UIDs as ATTENDEE identifies. I think thats a really BIG mistake, I feel very strongly about it ;-) and would like to see that behaviour modified.

Currently:
 ATTENDEE;x-calendarserver-email=...@def.de:urn:uid:29838484...

should be
 ATTENDEE;X-CALENDARSERVER-UID=29838484:mailto:a...@def.de
or even
 ATTENDEE;X-CALENDARSERVER-UID=29838484:tel:+49-12234-233


Why? There are two big reasons:

a) Interoperability. I would claim that all iCalendar clients use mailto ids today. Plus plenty of other iCalendar infrastructure. Changing this will result in interop issues and breaks a lot of stuff for (IMO) no good reason.

  Well, I disagree with the assertion that there is no good reason.

b) The URN is completely opaque/proprietary to the client. It can't possibly resolve a URN to a contact database or other things which relate to attendees. This results in bad user experience and cross app integration at multiple levels.

The ATTENDEE value is a URI, and doesn't have to be a mailto: URI. I recognize that most agents have used mailto:, but iMIP is the primary transport for iTIP in most agents. I don't believe that it is reasonable for a CalDAV client to continue to assume that email addresses will always be used to identify attendees.

The ATTENDEE value is a primary key on the calendar server for identifying a user. An email address is a delivery address on an email server, which may be (and is, in our case) on a separate and unrelated server. It is not tenable to have the primary key in our system be controlled by a separate system that we have no visibility into.

Additionally, email addresses are not immutable. You might be he...@foo.com today and then due h...@foo.com tomorrow. Again, we have no visibility into that, and no way to know these are the same two people, and absolutely no way to know that he...@foo.com two days from now is actually Joe Helge, who just joined Foo Corp.

Note that my suggestion still includes a server specific UID which can be used for a stable resolution - as long as clients preserve it. And if not, its still sufficient for the far majority of real world deployments (reassigning email addresses is a no go, don't understand why people even consider that :-).

Cyrus claims that this is not viable because clients throw away X- attributes. Does iCal do that? I think Kontact, Evo, Moz are all preserving such (we certainly do).

Note: I'm fine with emitting URNs for stuff which can't possibly be resolved. Resources or locations _might_ be in that category, though I would still prefer an LDAP URL (+ UID X attr) if they are backed by something like OD. This still gives the client a way to learn about the ATTENDEE.

LDAP might work if the server was always bound to an LDAP service, and even then requires the client to implement another protocol, and still then assumes that the client has access to the LDAP server.

Instead, we provide a REPORT query that can resolve a calendar user address (including email, if we think we can uniquely identify a principal with it) into a principal URL and additional attributes, including full name, email, etc. so that you can do all of this via CalDAV.

For expediency, we also provide email as a parameter, as you note to clients, as we do with the full name. In the future, we may offer up a URL to a CardDAV record.

Both of these (the parameters and the new REPORT) need to be standardized for interoperability.

        -wsv

_______________________________________________
calendarserver-dev mailing list
calendarserver-dev@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/calendarserver-dev

Reply via email to