This commit is contained in:
stpeter 2012-01-10 12:27:16 -07:00
parent 115c188d2e
commit 668990211c
1 changed files with 19 additions and 12 deletions

View File

@ -9,7 +9,7 @@
<title>Service Directories</title>
<abstract>This specification shows how to combine and extend a number of existing XMPP protocols for improved sharing of information about XMPP servers.</abstract>
&LEGALNOTICE;
<number>xxxx</number>
<number>0309</number>
<status>Experimental</status>
<type>Standards Track</type>
<sig>Standards</sig>
@ -21,6 +21,12 @@
<supersededby/>
<shortname>NOT_YET_ASSIGNED</shortname>
&stpeter;
<revision>
<version>0.1</version>
<date>2012-01-10</date>
<initials>psa</initials>
<remark><p>Initial published version.</p></remark>
</revision>
<revision>
<version>0.0.3</version>
<date>2012-01-09</date>
@ -52,6 +58,7 @@
<li>A server directory: xmpp.net</li>
<li>A public XMPP service: jabber.org</li>
</ul>
<p>Note: Although the entity that gathers information for a directory could be a client or a component, here we assume that it is a server ("xmpp.net").</p>
<p>These two entities use &xep0267;, &xep0030;, and &xep0292; in the following ways.</p>
<code><![CDATA[
Directory Server
@ -82,7 +89,7 @@ Directory Server
| |
]]></code>
<section2 topic='Server Discovers Directory' anchor='gather-disco'>
<p>In order to determine the exact identity of the aggregator, the server sends a service discovery information request to the aggregator.</p>
<p>In order to determine the exact identity of the directory, the server sends a service discovery information request to the directory.</p>
<example caption='Server Queries Directory'><![CDATA[
<iq type='get'
from='jabber.org'
@ -107,19 +114,19 @@ Directory Server
</section2>
<section2 topic='Server Subscribes to Directory' anchor='gather-buddy'>
<p>If the server wishes to have its information aggregated, it sends a presence subscription request to the aggregator as described in XEP-0267.</p>
<p>If the server wishes to have its information aggregated, it sends a presence subscription request to the directory as described in XEP-0267.</p>
<example caption="Server Sends Subscription Request to Directory"><![CDATA[
<presence from='jabber.org'
to='xmpp.net'
type='subscribe'/>
]]></example>
<p>Upon receiving such the presence subscription request, the aggregator approves it.</p>
<p>Upon receiving such the presence subscription request, the directory approves it.</p>
<example caption="Directory Sends Approval to Server"><![CDATA[
<presence from='xmpp.net'
to='jabber.org'
type='subscribed'/>
]]></example>
<p>The aggregator also sends a subscription request to the server.</p>
<p>The directory also sends a subscription request to the server.</p>
<example caption="Directory Sends Subscription Request to Server"><![CDATA[
<presence from='xmpp.net'
to='jabber.org'
@ -207,9 +214,9 @@ Directory Server
</section2>
<section2 topic='Directory Queries Server' anchor='gather-query'>
<p>After the subscription handshake has been completed, the aggregator queries the server for information. There are two aspects: service discovery information and vCard information.</p>
<p>After the subscription handshake has been completed, the directory queries the server for information. There are two aspects: service discovery information and vCard information.</p>
<section3 topic='Disco Query' anchor='gather-query-disco'>
<p>In order to determine the exact identity of the server, the aggregator sends a service discovery information request to the server.</p>
<p>In order to determine the exact identity of the server, the directory sends a service discovery information request to the server.</p>
<example caption='Directory Queries Server'><![CDATA[
<iq type='get'
from='xmpp.net'
@ -235,10 +242,10 @@ Directory Server
]]></example>
<p>Note: If the server is a public node on the XMPP network, it includes a service discovery feature of "urn:xmpp:public-server". This feature is defined below.</p>
<p>Note: If the server allows &xep0077;, it includes a service discovery feature of "jabber:iq:register". If the server does not allow in-band registration but allows account registration at a website, it includes the registration URL in its vCard as described below.</p>
<p>The foregoing examples show the gathering of disco#info data (identity and supported features). An aggregator MAY also gather disco#items data about components and other services associated with the base XMPP server at a domain.</p>
<p>The foregoing examples show the gathering of disco#info data (identity and supported features). An directory MAY also gather disco#items data about components and other services associated with the base XMPP server at a domain.</p>
</section3>
<section3 topic='vCard Query' anchor='gather-query-vcard'>
<p>In order to gather additional information about the server, the aggregator sends a vCard information request to the server.</p>
<p>In order to gather additional information about the server, the directory sends a vCard information request to the server.</p>
<p>Note: Because vCard4 enables the XMPP community to more easily define extensions to vCard (e.g., for registration URLs), it is RECOMMENDED for servers to support &xep0292; in addition to, or instead of, &xep0054;.</p>
<example caption="Directory Requests vCard Data from Server"><![CDATA[
<iq from='xmpp.net'
@ -338,9 +345,9 @@ Directory Server
</section1>
<section1 topic='Security Considerations' anchor='security'>
<p>Because a network information aggregator does not know about an XMPP server unless the administrator of the server initiates a presence subscription to the aggregator, information leakage is minimized.</p>
<p>Because a service directory does not know about an XMPP server unless the administrator of the server initiates a presence subscription to the directory, information leakage is minimized.</p>
<p>Use of the "urn:xmpp:public-server" service discovery feature provides a way for an XMPP server to explicitly indicate that its information is public.</p>
<p>Use of the "directory/server" service discovery identity provides a way for a network information aggregator to explicitly indicate that it aggregates information obtained from XMPP servers that contact it.</p>
<p>Use of the "directory/server" service discovery identity provides a way for a service directory to explicitly indicate that it gathers service information obtained from XMPP servers that contact it.</p>
</section1>
<section1 topic='IANA Considerations' anchor='iana'>
@ -353,7 +360,7 @@ Directory Server
<p>The XMPP Registrar shall add this namespace to its registry at &NAMESPACES;.</p>
</section2>
<section2 topic='Service Discovery Category/Type' anchor='registrar-discocat'>
<p>This document specifies that a network information aggregator is identified by the "directory" category and the "server" type within XMPP Service Discovery.</p>
<p>This document specifies that a service directory is identified by the "directory" category and the "server" type within XMPP Service Discovery.</p>
<p>The XMPP Registrar shall add the "server" type to the "directory" category already listed in the registry at &DISCOCATEGORIES;. The registration is as follows.</p>
<code caption='Registry Submission'><![CDATA[
<category>