Sorting out direct/indirect

This commit is contained in:
Steve Kille 2017-01-30 16:17:04 +00:00 committed by Sam Whited
parent 2abd93327e
commit 494a0adf76
1 changed files with 10 additions and 9 deletions

View File

@ -44,6 +44,7 @@
Ensure all RFC 2119 keywords are capitalized and used correctly;
Use MAM ID to identify message;
Clarify use of the various channel names;
Require all client operations to be direct or indirect (choice is just confusing);
</p></remark>
</revision>
<revision>
@ -580,7 +581,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa
<section1 topic='Discovery' anchor='discovery'>
<section2 topic='Discovering a MIX service' anchor='disco-service'>
<p>
An entity MAY discover a MIX service or MIX services by sending a Service Discovery items ("disco#items") request to its own server.
An entity MAY discover a MIX service or MIX services by sending a Service Discovery items ("disco#items") request to its own server. This MUST come directly from a MIX client.
</p>
<example caption="Entity queries Server for associated services" ><![CDATA[
<iq from='hag66@shakespeare.example/intibo24'
@ -638,7 +639,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa
<p>A MIX service MUST NOT advertise support for &xep0313;, as MAM is supported by the channels and not by the service. A MIX service MUST NOT advertise support for generic &xep0060;, as although MIX makes use of PubSub it is not a generic PubSub service.</p>
</section2>
<section2 topic='Discovering the Channels on a Service' anchor='disco-channel-list'>
<p>The list of channels supported by a MIX service is obtained by a disco#items command. The MIX service MUST only return channel that exist and that the user making the query has rights to subscribe to. This query MAY be made directly by and XMPP client or indirectly by the user's server.</p>
<p>The list of channels supported by a MIX service is obtained by a disco#items command. The MIX service MUST only return channel that exist and that the user making the query has rights to subscribe to. This query MUST be made dindirectly by the user's server.</p>
<example caption='User&apos;s Server Queries for Channels on MIX Service'><![CDATA[
<iq from='hag66@shakespeare.lit'
id='kl2fax27'
@ -661,7 +662,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa
]]></example>
</section2>
<section2 topic='Discovering Channel Information' anchor='disco-channel-info'>
<p>In order to find out more information about a given channel, a user can send a disco#info query to the channel. This query MUST be made by the user's server and not the end client.</p>
<p>In order to find out more information about a given channel, a user can send a disco#info query to the channel. This query MUST be made indirectly by the user's server and not the end client.</p>
<example caption='Entity Queries for Information about a Specific Channel'><![CDATA[
<iq from='hag66@shakespeare.lit'
id='ik3vs715'
@ -718,7 +719,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa
]]></example>
</section2>
<section2 topic="Determining Information about a Channel" anchor="find-channel-info">
<p>The Information Node contains various information about the channel that can be useful to the user. This can be read by the XMPP Client directly or by the user's server.</p>
<p>The Information Node contains various information about the channel that can be useful to the user. This query MUST be made indirectly by the user's server using the user's bare JID.</p>
<example caption='User&apos;s Server Requests Channel Information'><![CDATA[
<iq from='hag66@shakespeare.lit'
id='kl2fax27'
@ -753,7 +754,7 @@ This approach enables flexible support of multiple clients for a MIX channel pa
</section2>
<section2 topic='Determining the Participants in a Channel' anchor='find-channel-participants'>
<p>
Online clients in the channel are determined from the presence node. Participants in the channel are determined from the Participants Node which will give proxy JID and nick. The jidmap node is used to map to real JIDs. An operation is provided to list channel participants. For JID Hidden channels, only the nicks are returned. For JID Visible channels, nicks and real JIDs are returned.</p>
Online clients in the channel are determined from the presence node. Participants in the channel are determined from the Participants Node which will give proxy JID and nick. The jidmap node is used to map to real JIDs. An operation is provided to list channel participants. For JID Hidden channels, only the nicks are returned. For JID Visible channels, nicks and real JIDs are returned. This query MUST be made indirectly by the user's server using the user's bare JID.</p>
<example caption='User&apos;s Server Requests Participant List'><![CDATA[
<iq from='hag66@shakespeare.lit'
id='kl2fax27'
@ -2154,7 +2155,7 @@ A client creates a channel by sending a simple request to the MIX service. A c
<p>
The MIX specification requires that some IQ messages MUST or MAY come from the participant's server, and not directly from the client.
This indirect operation enables the participant's server to use information from the client to improve the service provided to the client.
The following table shows which IQs are direct from client, indirect through the local server or MAY be either.
The following table shows which IQs are direct from client, indirect through the local server.
</p>
<table caption="IQ Direct vs Indirect">
@ -2162,11 +2163,11 @@ A client creates a channel by sending a simple request to the MIX service. A c
<tr><td>MIX Service Discovery</td><td>Direct</td></tr>
<tr><td>MIX Service Information Discovery</td><td>Direct</td></tr>
<tr><td>MIX Channel Discovery</td><td>Either</td></tr>
<tr><td>MIX Channel Discovery</td><td>Indirect</td></tr>
<tr><td>Discovering Channel Information</td><td>Indirect</td></tr>
<tr><td>Discovering Channel Nodes</td><td>Indirect</td></tr>
<tr><td>Determining Channel Information from Information Node</td><td>Either</td></tr>
<tr><td>Determining Channel Participants</td><td>Either</td></tr>
<tr><td>Determining Channel Information from Information Node</td><td>Indirect</td></tr>
<tr><td>Determining Channel Participants</td><td>Indirect</td></tr>
<tr><td>Joining a Channel</td><td>Indirect</td></tr>
<tr><td>Preference Setting</td><td>Indirect</td></tr>
<tr><td>Leaving MIX Channel</td><td>Indirect</td></tr>