Re: Controversial: Have SIMPLE reached is goal? Or is it an IETF failure?
Iñaki Baz Castillo <[email protected]> Mon, 15 Oct 2012 12:39:36 +0200
| Newsgroups | gmane.ietf.simple |
|---|---|
| Message-ID | <CALiegfm4A4SMJpRGW=3ri_38NuX7JxFU7_Gdmy2LPG0T7kUU5A@mail.gmail.com> |
2012/10/14 Olle E. Johansson <[email protected]>: > I've tested Zoiper, Bria, Jitsi and Blink (for Mac). > > On the server side you have Kamailio (which I used), OpenSIPS as well as a separate server for Xcap called OpenXCAP. We should assume that 99% of SIMPLE implementations in the "open internet" are buggy, but IMHO it makes sense taking into account the complexity of the so many RFC's required for implementing a not complete presence/permissions/buddylist platform. The only good implementation (AFAIK) is Blink and its related server stuff (after YEARS of work) and, finally, it can only interoperate *well* with other Blink instances. So we have really complex specs that use partial SIP subscription to partial XML documents distributed in HTTP/XCAP servers, with XML resource-list documents that can just store "display name" and "uri", and include *absolute* references (including HTTP schema, domain, path...) to other XML nodes within the *same* document (but they usually point to other XML documents in the same or *any* other HTTP/XCAP server). This is just annoying, nobody in the Internet world can deploy something like this and make it to properly work, but in the other side we have tons of XMPP clients and servers which interoperate very well when sharing buddy-list and permissions. What was the purpose of IETF in SIMPLE presence stuff? The specs are so ambiguous and complex that nobody knows what exactly to implement. We need a "Presence Profile" for the OPEN Internet ("implement exactly this and this and this in this exact way"), and not just for telcos private networks (OMA/RCS...). Let's be honest: the only environments in which SIMPLE presence stuff can "work" is within private networks or walled wardens, with their own clients and servers managing XML documents that will never be readable/writable by end users or open SIP clients. Then we have OMA that adds a layer on top of IETF SIMPLE specs (so we have stuf like "my-oma-PoC-users"...), and we also have RCS which is an extra layer on top of OMA specs... (¿?¿?¿?¿?). XMPP presence is defined in a single RFC and implementors make it to work without problems (at least basic presence and buddylist/authorization rules management). Why is SIMPLE-presence so difficult? Some keys: - A "presence" NOTIFY can contain multiple tuples for the same AoR, but there is no way to correlate them between different instances of the same AoR (GRUU??). - A PIDF body can contain exotic information (state basic: "close", contact: "mailto:[email protected]"). It is just imposssible to render it in client side. - The pres-rules document (according to OMA specs) contains HTTP absolute links to the resource-list document, but the resource-list document also contains HTTP links to XML nodes within the same document. This is really annoying, what would happen if the service provider has to change its domain or upgrades from HTTP to HTTPS? all the XCAP documents would get invalidated! Why a document must point to other document and that document to others? why does a URI list contain a link to other lists with links to others? it's really HARD to inspect both the pres-rules and resource-list documents and decide how to draw my buddylist and who is blocked and who is not. That should be a single task. The buddylist should be a SINGLE "document" in which each contact has attributes (i.e. presence watching allowed or not, visible in the buddy list or not, groups, tags, vcard info, and so on). A single "document" hopefully managed via SIP (we have TCP so why to add HTTP to the SIP ecosystem?). I don't want to subscribe to a XCAP server, receive notifications with *partial* XML diffs and/or retrieve the XML document new fragment via HTTP/XCAP. Too many points of failure and inconsistency. IMHO the keywords that define all the SIMPLE presence stuff are "weak", "fragile" and "complex", so complex. The most basic operation (so easy in any other IM/presence protocol) becomes the hardest task in SIP (see the lines of code in Blink for the presence stuff and the years it took to make it to work). Why so hard? take a look to RCS specs, they provide NOTHING that XMPP does not provide since years, why to build a so complex spec and infrastructure that provides less than MSN 10 years ago but in a much more complex and expensive way? So, is this a failure of the IETF? No idea, what I really don't know is *what* the purpose of the IETF was when it designed all those specifications that don't explain how to build a single addressbook to be shared by different SIP devices. It seems like SIMPLE presence RFC's are just a skeleton in which telcos or vendors can add their custom extra layers for their private networks, and it seems that nobody cared about the open Internet when writting SIMPLE presence specs. What should I implement in a generic open source SIP client for interoperating with others and sharing a full-featured addressbook? There is no response for this question yet. NOTE: I spent more than a year implementing all the RFCs/OMA specs in my own XCAP/XDMS server and SIMPLE/XCAP clients. After having a working and strict implementation of a XCAP/XDMS server and a client capable of rendering the info from both the pres-rules and resource-lists all together, I decided to drop all my effort. Too many lines of code and wasted weeks for implementing nothing cool or new. IMHO life should be easier. Regards. -- Iñaki Baz Castillo <[email protected]> _______________________________________________ Simple mailing list [email protected] https://www.ietf.org/mailman/listinfo/simple