From 2fbdd438d11f3cbd97cd24c92956f065fc438c3e Mon Sep 17 00:00:00 2001 From: Sam Whited Date: Sun, 28 Aug 2016 11:24:15 -0500 Subject: [PATCH 1/5] XEP-0369: Fix format of proxy JID in example --- xep-0369.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index f894d7ba..ce728ca5 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -500,7 +500,7 @@ id='5A9C7398-DB13-4BFA-A091-2D466C710AAF'> - + @@ -546,7 +546,7 @@ - + @@ -554,7 +554,7 @@ - + From dbf6c0c304d5aa1af565af23482c5e82277ee1d4 Mon Sep 17 00:00:00 2001 From: Sam Whited Date: Sun, 28 Aug 2016 11:34:27 -0500 Subject: [PATCH 2/5] XEP-0369: Minor grammatical fix --- xep-0369.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xep-0369.xml b/xep-0369.xml index ce728ca5..ff5ed87f 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -603,7 +603,7 @@ ]]>

A user can register a nick with the MIX service. Nick registration can be used ensure that a user is able to use the same nick in all channels in the service and to prevent other users from using a registered nick. This can help achieve a consistent experience across a set of channels and prevent user confusion. Support for nick registration by a MIX service is optional. Where nick registration is supported, nick registration may be optional or mandatory. - Where a user has registered a Nick with the MIX service, it may be used by each channel according to policy for the channel. A Nick is associated with the user's bare JID. + Where a user has registered a Nick with the MIX service, it may be used by each channel according to policy for the channel. A nick is associated with the user's bare JID.

In order to determine if a Nick may be registered, the user may use disco to determine capabilities of the MIX service. From 1c26c9f2edf49e457f79371157bf9d1de74e0ad2 Mon Sep 17 00:00:00 2001 From: Sam Whited Date: Sun, 28 Aug 2016 11:35:51 -0500 Subject: [PATCH 3/5] Let's not be redundant and repeat ourselves --- xep-0369.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index ff5ed87f..71f91482 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -570,7 +570,7 @@

  • The nick is registered with the user account in some way, for example as part of user provisioning with nick configured as an attribute in a directory service. This may be chosen by corporate services that wish to ensure consistent nick values for a set of users and channels.
  • The nick is registered with the MIX service, as described in Registering a Nick .
  • The user explicitly sets the nick, as described in this section.
  • -
  • The MIX service generates the nick. In this case it is recommended that the assigned nick is a UUID unique identifier following &rfc4122;.
  • +
  • The MIX service generates the nick. In this case it is recommended that the assigned nick is a UUID following &rfc4122;.
  • AUTHOR'S NOTE AND QUESTION: REVIEW use of UUID. Can it make sense for other algorithms, such as a string from the JID

    @@ -655,7 +655,7 @@ ]]> -

    If the register request does not contain a <nick/> element, then the MIX service assigns one. It is recommended that the assigned nick is a UUID unique identifier following &rfc4122;. +

    If the register request does not contain a <nick/> element, then the MIX service assigns one. It is recommended that the assigned nick is a UUID following &rfc4122;.

    From 7ecea1417b201591253853c6611a494b0e6a68ee Mon Sep 17 00:00:00 2001 From: Sam Whited Date: Sun, 28 Aug 2016 11:37:00 -0500 Subject: [PATCH 4/5] Remove some whitespace from a few examples --- xep-0369.xml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index 71f91482..d1073dc8 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -678,12 +678,11 @@

    A user setting status is now used as an example. Unlike in &xep0045; where coming online is a special action, coming online in MIX is implicit when presence status is set. Going offline is a achieved by setting presence status to unavailable, which removes the client full JID entry from the presence node. When a user sets a presence status, the user's server sends updated presence to the MIX channel, and the MIX server then publishes the user's availability to the "urn:xmpp:mix:nodes:presence" node. If there is not an item named by the full JID of the client with updated presence status, this item is created. If there is not an item named by the full JID of the client with updated presence status, then an item is created.

    - + + dnd Making a Brew - -]]> +]]>

    The user's presence information is then published by the service to the "urn:xmpp:mix:nodes:presence" node, with the 'publisher' attribute set to the user's participant identifier (the proxy JID. The MIX channel then broadcasts the presence change to all users who are subscribed to the "urn:xmpp:mix:nodes:presence" node. The presence message is sent from the proxy (anonymized) full JID of the user.

    Date: Sun, 28 Aug 2016 11:38:58 -0500 Subject: [PATCH 5/5] s/presence message/presence stanza/ --- xep-0369.xml | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/xep-0369.xml b/xep-0369.xml index d1073dc8..d97f6a41 100644 --- a/xep-0369.xml +++ b/xep-0369.xml @@ -243,7 +243,7 @@

    - The presence node contains the presence value for clients belonging to participants that choose to publish presence to the channel. A MIX channel MAY require that all participants publish presence. Each item in the presence node is identified by the full proxy JID, and contains the current presence value for that JID. The presence is encoded in the same way as data that would be sent in a presence message. The full JID is always used in this node. In MIX it is possible to have a 'presence-less channel' by not using this node. Access Control may be set to enforce that for each of the full JIDs in this list, the bare JID MUST be in the participants list. + The presence node contains the presence value for clients belonging to participants that choose to publish presence to the channel. A MIX channel MAY require that all participants publish presence. Each item in the presence node is identified by the full proxy JID, and contains the current presence value for that JID. The presence is encoded in the same way as data that would be sent in a presence stanza. The full JID is always used in this node. In MIX it is possible to have a 'presence-less channel' by not using this node. Access Control may be set to enforce that for each of the full JIDs in this list, the bare JID MUST be in the participants list.

    QUESTION: The current specification allows channels to be configured so that node subscription is not restricted to participants (although this restriction is the default). Is this flexibility desirable, or should we restrict to participants?

    @@ -645,8 +645,8 @@ ]]>

    If the requested nick is already taken, the MIX service returns a <conflict/> error:

    - + @@ -674,7 +674,7 @@ A channel may require that all channel members share presence information with the channel, which is represented in the "urn:xmpp:mix:nodes:presence" node. If sharing presences is required by the channel, an XMPP client conforming to this specification SHALL share presence with the channel by including the channel in the user's roster. Note that the MIX server cannot generally enforce this, but it can require and enforce that when a message is sent to the channel, that the sender of the message is in the presence list.

    - Presence status and availability is set in a MIX channel by standard presence messages sent to the MIX channel by the user's server. User's wishing to receive presence updates will subscribe to the MIX channel presence node. Presence updates are sent out to subscribing using standard XEP-0045 compatible presence messages. + Presence status and availability is set in a MIX channel by standard presence stanzas sent to the MIX channel by the user's server. User's wishing to receive presence updates will subscribe to the MIX channel presence node. Presence updates are sent out to subscribing using standard XEP-0045 compatible presence stanzas.

    A user setting status is now used as an example. Unlike in &xep0045; where coming online is a special action, coming online in MIX is implicit when presence status is set. Going offline is a achieved by setting presence status to unavailable, which removes the client full JID entry from the presence node. When a user sets a presence status, the user's server sends updated presence to the MIX channel, and the MIX server then publishes the user's availability to the "urn:xmpp:mix:nodes:presence" node. If there is not an item named by the full JID of the client with updated presence status, this item is created. If there is not an item named by the full JID of the client with updated presence status, then an item is created.

    @@ -683,27 +683,26 @@ dnd Making a Brew ]]>
    -

    The user's presence information is then published by the service to the "urn:xmpp:mix:nodes:presence" node, with the 'publisher' attribute set to the user's participant identifier (the proxy JID. The MIX channel then broadcasts the presence change to all users who are subscribed to the "urn:xmpp:mix:nodes:presence" node. The presence message is sent from the proxy (anonymized) full JID of the user.

    - The user's presence information is then published by the service to the "urn:xmpp:mix:nodes:presence" node, with the 'publisher' attribute set to the user's participant identifier (the proxy JID. The MIX channel then broadcasts the presence change to all users who are subscribed to the "urn:xmpp:mix:nodes:presence" node. The presence stanza is sent from the proxy (anonymized) full JID of the user.

    + + thirdwitch dnd Making a Brew - -]]> +]]>

    - The presence is distributed to those subscribing to the MIX channel presence node using a standard XMPP presence message. The presence change is recorded on the "urn:xmpp:mix:nodes:presence" node in the item for the full JID of the client to which the presence relates. The history of this node will be held as PubSub format in the MAM archive, so that presence history may be viewed. + The presence is distributed to those subscribing to the MIX channel presence node using a standard XMPP presence stanza. The presence change is recorded on the "urn:xmpp:mix:nodes:presence" node in the item for the full JID of the client to which the presence relates. The history of this node will be held as PubSub format in the MAM archive, so that presence history may be viewed.

    - The presence information for a channel is stored in the urn:xmpp:mix:nodes:presence node and distributed using standard presence messages to users subscribing to this presence node. The user's server will then pass this presence information on to all online clients. When a client goes offline, it will lose synchronization with the presence node. When the client comes online, the clients server will send a directed presence message to the MIX channel. This will happen as a consequence of the MIX channel being in the user's roster and the MIX channel sending a presence update to the MIX channel. When the MIX channel adds or modifies presence for a client to the roster, this presence change will be distributed to all users subscribing to the presence node. + The presence information for a channel is stored in the urn:xmpp:mix:nodes:presence node and distributed using standard presence stanzas to users subscribing to this presence node. The user's server will then pass this presence information on to all online clients. When a client goes offline, it will lose synchronization with the presence node. When the client comes online, the clients server will send a directed presence stanza to the MIX channel. This will happen as a consequence of the MIX channel being in the user's roster and the MIX channel sending a presence update to the MIX channel. When the MIX channel adds or modifies presence for a client to the roster, this presence change will be distributed to all users subscribing to the presence node.

    - When the full JID of a client is added to the MIX channel presence node and that full JID is not in the presence list, the MIX channel will send to the client presence for all of the items in the presence node using standard presence messages. This will give the client full current presence. + When the full JID of a client is added to the MIX channel presence node and that full JID is not in the presence list, the MIX channel will send to the client presence for all of the items in the presence node using standard presence stanzas. This will give the client full current presence.

    @@ -734,13 +733,12 @@ from='hag66@shakespeare.example/pda' to='coven@mix.shakespeare.example'/> ]]> -

    The MIX channel will retract (remove) the item in the presence node of the MIX channel identified by the client's full JID. The MIX channel will notify subscribers to the presence node of the user going offline using a presence message from the proxy JID of the client.

    - The MIX channel will retract (remove) the item in the presence node of the MIX channel identified by the client's full JID. The MIX channel will notify subscribers to the presence node of the user going offline using a presence stanza from the proxy JID of the client.

    + + -]]> + type='unavailable'/>]]>

    There is the possibility that the message associated with the user going offline will be lost. If this happens, "ghost" entries will appear in the presence node. A MIX server may take steps to address this, for example by probing client with a disco for presence items that remain unchanged for a long period.