From ede3a1111d6ea9ee87f703d9d4b6fe9093e60ee7 Mon Sep 17 00:00:00 2001 From: "Matthew A. Miller" Date: Mon, 28 Apr 2014 10:07:19 -0600 Subject: [PATCH] ProtoXEP: Buddycloud Channels --- inbox/buddycloud-channels.xml | 232 ++++++++++++++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 inbox/buddycloud-channels.xml diff --git a/inbox/buddycloud-channels.xml b/inbox/buddycloud-channels.xml new file mode 100644 index 00000000..76d9b137 --- /dev/null +++ b/inbox/buddycloud-channels.xml @@ -0,0 +1,232 @@ + + +%ents; + + + +]> + + +
+ Buddycloud Channels + This document describes a profile and conventions for usage + of the PubSub protocol in the context of a new type of communication. + + This XMPP Extension Protocol is copyright (c) 1999 - 2014 + by the XMPP Standards Foundation (XSF). + + Permission is hereby granted, free of charge, to any + person obtaining a copy of this specification (the + "Specification"), to make use of the Specification without + restriction, including without limitation the rights to implement + the Specification in a software program, deploy the Specification in + a network service, and copy, modify, merge, publish, translate, + distribute, sublicense, or sell copies of the Specification, and to + permit persons to whom the Specification is furnished to do so, + subject to the condition that the foregoing copyright notice and + this permission notice shall be included in all copies or + substantial portions of the Specification. Unless separate + permission is granted, modified works that are redistributed shall + not contain misleading information regarding the authors, title, + number, or publisher of the Specification, and shall not claim + endorsement of the modified works by the authors, any organization + or project to which the authors belong, or the XMPP Standards + Foundation. + + ## NOTE WELL: This Specification is provided on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, express or implied, including, without limitation, any + warranties or conditions of TITLE, NON-INFRINGEMENT, + MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. In no event + shall the XMPP Standards Foundation or the authors of this + Specification be liable for any claim, damages, or other liability, + whether in an action of contract, tort, or otherwise, arising from, + out of, or in connection with the Specification or the + implementation, deployment, or other use of the Specification. ## + + In no event and under no legal theory, whether in tort + (including negligence), contract, or otherwise, unless required by + applicable law (such as deliberate and grossly negligent acts) or + agreed to in writing, shall the XMPP Standards Foundation or any + author of this Specification be liable for damages, including any + direct, indirect, special, incidental, or consequential damages of + any character arising out of the use or inability to use the + Specification (including but not limited to damages for loss of + goodwill, work stoppage, computer failure or malfunction, or any and + all other commercial damages or losses), even if the XMPP Standards + Foundation or such author has been advised of the possibility of + such damages. + + + This XMPP Extension Protocol has been contributed in full + conformance with the XSF's Intellectual Property Rights Policy (a + copy of which may be found at < + http://www.xmpp.org/extensions/ipr-policy.shtml + > or obtained by writing to XSF, P.O. Box 1641, Denver, CO 80201 + USA). + + + xxxx + ProtoXEP + Standards Track + Standards + Council + + XMPP Core + XEP-0059 + XEP-0060 + XEP-0313 + XEP-0255 + XEP-0107 + + + + NOT_YET_ASSIGNED + + Simon + Tennant + simon@buddycloud.com + simon@buddycloud.com + + + Ashley + Ward + ashley.ward@surevine.com + ashley.ward@surevine.com + + + Lloyd + Watkin + lloyd@evilprofessor.co.uk + lloyd@evilprofessor.co.uk + + + 0.0.1 + 2014-01-29 + sdt + +

First draft.

+
+
+
+ + +

Buddycloud is a collection of servers, running as XMPP components + that enable rich, federated communications for groups and individual + users. users uses and groups. Buddycloud builds on XMPP's native + federation and pub-sub principles to connect to and synchronise + updates with other Buddycloud servers. +

+
+ +

Channels are a bundle of pub-sub nodes that have the same owner, + folllowers and access permissions. There are two types of channel: + user channels (named after the user's JID), for example + romeo@montagu.lit) and topic channels, for example + balcony-speeches@topics.montague.lit) which are owned by the channel + creator. Content posted into channels is automatically synchronised to + the correct followers on other Buddycloud servers. +

+
+

Service discovery happens per domain, and is a multi step process. +

+

To discover the channels component for a domain, the entity first + sends an items discovery request to the domain to discover all the + available components. +

+ + + + + ]]> + +

The server replies with the list of available components, along with + their associated JIDs. +

+ + + + + + + + ]]> + +

The entity then iterates through the <item/> elements, sending + an info discovery request to each jid. +

+ + + + + ]]> + +

Each component replies with its identity. The channels component has + an identity of category 'pubsub' and type 'channels'. +

+

A domain MUST only host one component with an identity of category + 'pubsub' and type 'channels'. +

+ + + + + + + + + + + ]]> + + +

Buddycloud components can also be discovered using a DNS SRV record + formatted as follows. +

+ + + +
+ +

In the case of conflicting answers, the DNS result is + authoritative. This permits domain owners to run Buddycloud on domains on "chat only" domains such as google hosted apps. +

+
+
+ +

Upon connection to the buddycloud server a user should send a register + stanza.

+ + + + + + ]]> + + +

The register request creates the user's personal channels on first use + and has the additional benefit of creating additional new channel nodes + as they become available on the server (e.g. 'status' node, 'geoloc' nodes). +

+ +
+