1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-21 16:55:07 -05:00

Merge commit 'refs/pull/661/head' of https://github.com/xsf/xeps

This commit is contained in:
Jonas Wielicki 2018-07-05 16:12:52 +02:00
commit f6112df50f

View File

@ -35,6 +35,15 @@
<shortname>MIX-CORE</shortname>
&ksmithisode;
&skille;
<revision>
<version>0.13.0</version>
<date>2018-06-06</date>
<initials>sek</initials>
<remark><p>
Make Nicks mandatory by default;
Add Nick Setting to Join;
</p></remark>
</revision>
<revision>
<version>0.12.0</version>
<date>2018-06-05</date>
@ -45,7 +54,8 @@
Remove recommendation to generate Nick as UUID;
Add guidance on Nick display;
</p></remark>
</revision> <revision>
</revision>
<revision>
<version>0.11.3</version>
<date>2018-05-24</date>
<initials>sek</initials>
@ -445,7 +455,7 @@
<li>MIX-PRESENCE. &xep0403;. This optional specification adds the ability for MIX online clients to share presence, so that this can be seen by other MIX clients. It also specifies relay of IQ stanzas through a channel.</li>
<li>MIX-PAM. &xep0405;. This specification defines how a server supporting MIX clients behaves, to support servers implementing MIX-CORE and MIX-PRESENCE.</li>
<li>MIX-ADMIN. &xep0406;. This specifies MIX configuration and administration of MIX.</li>
<li>MIX-ANON. &xep0404;. This specifies a mechanism to hide real JIDs from MIX clients and related privacy controls. </li>
<li>MIX-ANON. &xep0404;. This specifies a mechanism to hide real JIDs from MIX clients and related privacy controls. It also specifies private messages. </li>
<li>MIX-MISC. &xep0407;. This specifies a number of small MIX capabilities which are useful but do not need to be a part of MIX-CORE. </li>
<li>MIX-MUC. &xep0408;. This defines how MIX and MUC can be used together. </li>
<li>RELIABLE-DELIVERY. MIX-CORE needs messages to be distributed without loss. This specification is important for MIX, but may be useful in other places.</li>
@ -591,10 +601,13 @@
<p>Each channel participant is represented as an item of the 'urn:xmpp:mix:nodes:participants' channel node. Each item is named by the Stable Participant ID of the participant. For example '123456' might name the node item associated with participant 'hag66@shakespeare.example'. Information is stored in a &lt;participant/&gt; element qualified by the 'urn:xmpp:mix:core:0' namespace. The nick associated with the user is optional and is stored in a &lt;nick/&gt; child element of the &lt;participant/&gt; element. The nick for each channel participant MUST be different to the nick of other participants.
</p>
<p>
A Nick MAY be associated with a participant, which provides a user-oriented description of the participant. The nick associated with the user is stored in a &lt;nick/&gt; child element of the &lt;participant/&gt; element. The nick for each channel participant MUST be different to the nick of other participants.
A Nick MAY be associated with a participant, which provides a user-oriented description of the participant. The nick associated with the user is stored in a &lt;nick/&gt; child element of the &lt;participant/&gt; element. The nick for each channel participant MUST be different to the nick of other participants (where nicks have been assigned).
</p>
<p>
Where a nick is provided for a user, it is generally recommended to use this nick or the JID to display the user. This enables consistent representation of participants for all participants in the channel.
A channel MAY require nicks to be mandatory for all participants. This is the default behaviour, and nicks MUST only be optional when this is explicitly configured for a channel as specified in MIX-ADMIN.
</p>
<p>
Where a nick is provided for a user, it is generally recommended to use this nick to display the user. This enables consistent representation of participants for all participants in the channel.
</p>
<p>
The real JID of the user MAY be held in the participants node. When the real JID is not present, the procedures defined in MIX-ANON must be followed.
@ -937,7 +950,7 @@
</p>
</section3>
<section3 topic='Joining a Channel' anchor='usecase-user-join'>
<p>A user joins a channel by sending a MIX "join" command from one of the user's clients, which will be relayed to the server as specified in MIX-PAM. There is no default set of nodes, so the user MUST specify the set of nodes to be subscribed to. To achieve the equivalent service to MUC, a user would subscribe to both messages and presence nodes. A user will typically subscribe to at least the message and/or presence nodes but MAY join and not subscribe to any nodes. Note that the presence node is specified in MIX-PRESENCE. The &lt;join/&gt; is a child element of &lt;iq/&gt; element. The &lt;join/&gt; element is qualified by the 'urn:xmpp:mix:core:0' namespace. The requested nodes are encoded as &lt;subscribe/&gt; child elements of the &lt;join/&gt; element.</p>
<p>A user joins a channel by sending a MIX "join" command from one of the user's clients, which will be relayed to the server as specified in MIX-PAM. There is no default set of nodes, so the user MUST specify the set of nodes to be subscribed to. To achieve the equivalent service to MUC, a user would subscribe to both messages and presence nodes. A user will typically subscribe to at least the message and/or presence nodes but MAY join and not subscribe to any nodes. Note that the presence node is specified in MIX-PRESENCE. The &lt;join/&gt; is a child element of &lt;iq/&gt; element. The &lt;join/&gt; element is qualified by the 'urn:xmpp:mix:core:0' namespace. The requested nodes are encoded as &lt;subscribe/&gt; child elements of the &lt;join/&gt; element. A nick MAY be specified as a &lt;nick/&gt; child elements of the &lt;join/&gt; element. </p>
<p>The join leads to the server subscribing the user to each of the requested nodes associated with the channel. The MIX service will also add the user to the participant list by injecting a new item into the "urn:xmpp:mix:nodes:participants" node automatically.</p>
<p>The default MIX model is that only channel participants are allowed to subscribe to nodes. A MIX channel MAY allow non-participant subscription to some nodes. This will be handled by clients directly subscribing to the desired PubSub nodes.</p>
<p>The user's server needs to make roster changes as part of the join functionality, as specified in MIX-PAM. This means that the join request to the MIX service will come from the user's server from the user's bare JID.</p>
@ -951,6 +964,7 @@
<subscribe node='urn:xmpp:mix:nodes:presence'/>
<subscribe node='urn:xmpp:mix:nodes:participants'/>
<subscribe node='urn:xmpp:mix:nodes:info'/>
<nick>third witch</nick>
</join>
</iq>
]]></example>
@ -968,6 +982,7 @@
<subscribe node='urn:xmpp:mix:nodes:presence'/>
<subscribe node='urn:xmpp:mix:nodes:participants'/>
<subscribe node='urn:xmpp:mix:nodes:info'/>
<nick>third witch</nick>
</join>
</iq>
]]></example>
@ -988,6 +1003,7 @@
<subscribe node='urn:xmpp:mix:nodes:messages'/>
<subscribe node='urn:xmpp:mix:nodes:participants'/>
<subscribe node='urn:xmpp:mix:nodes:info'/>
<nick>third witch</nick>
</join>
</iq>
]]></example>
@ -1003,6 +1019,7 @@
<item id='123456'>
<participant xmlns='urn:xmpp:mix:core:0'>
<jid>hag66@shakespeare.example</jid>
<nick>third witch</nick>
</participant>
</item>
</items>
@ -1035,6 +1052,9 @@
</update-subscription>
</iq>
]]></example>
<p>
A user MAY specify a nick when joining the channel. Channels MAY have mandatory nicks, which is default behavior. Therefore it is will generally be necessary to include a nick when joining an channel. If nick is missing on a channel where nick is mandatory, the join MUST be rejected. Other error cases are dealt with below with the nick management commands. Where a nick is specified, the join will only complete if the nick is accepted. The nick used MUST be reported back in the join result.
</p>
</section3>
<section3 topic='Leaving a Channel' anchor='usecase-user-leaving'>
<p>Users generally remain in a channel for an extended period of time. In particular the user remains as a participant the channel when the user goes offline. Note that this is different to &xep0045;, where the client leaves a room when going offline. So, leaving a MIX channel is a permanent action for a user across all clients. In order to leave a channel, the user's server sends a MIX "leave" command to the channel, as specified in MIX-PAM. The leave command is encoded as a &lt;leave/&gt; child element of &lt;iq/&gt; element. The &lt;leave/&gt; element is qualified by the 'urn:xmpp:mix:core:0' namespace. The following example shows a leave request to a MIX channel. </p>