mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-28 04:02:20 -05:00
1.1pre3
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1390 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
parent
32380067c6
commit
535ae14637
275
xep-0100.xml
275
xep-0100.xml
@ -29,10 +29,10 @@
|
|||||||
&stpeter;
|
&stpeter;
|
||||||
&dizzyd;
|
&dizzyd;
|
||||||
<revision>
|
<revision>
|
||||||
<version>1.1pre2</version>
|
<version>1.1pre3</version>
|
||||||
<date>2007-08-15</date>
|
<date>2007-11-19</date>
|
||||||
<initials>psa</initials>
|
<initials>psa</initials>
|
||||||
<remark>Clarified that username used for registration is legacy user address; added optional support for specifying roster group name for contact list items sent via roster item exchange.</remark>
|
<remark>Clarified that username used for registration is legacy user address; added optional support for specifying roster group name for contact list items sent via roster item exchange, either directly for legacy services that do not support groups or indirectly via a group name modifier and location (prefix or suffix) for legacy services that support groups.</remark>
|
||||||
</revision>
|
</revision>
|
||||||
<revision>
|
<revision>
|
||||||
<version>1.0</version>
|
<version>1.0</version>
|
||||||
@ -163,7 +163,7 @@
|
|||||||
<p>Jabber User sends IQ-get qualified by the &xep0030; information namespace to the Gateway, and/or IQ-get qualified by the &xep0094; namespace to the Gateway's parent (the latter method is deprecated but still in use).</p>
|
<p>Jabber User sends IQ-get qualified by the &xep0030; information namespace to the Gateway, and/or IQ-get qualified by the &xep0094; namespace to the Gateway's parent (the latter method is deprecated but still in use).</p>
|
||||||
<example caption="User Queries Gateway Regarding Service Discovery Identity"><![CDATA[
|
<example caption="User Queries Gateway Regarding Service Discovery Identity"><![CDATA[
|
||||||
<iq type='get'
|
<iq type='get'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='aim.shakespeare.lit'
|
to='aim.shakespeare.lit'
|
||||||
id='disco1'>
|
id='disco1'>
|
||||||
<query xmlns='http://jabber.org/protocol/disco#info'/>
|
<query xmlns='http://jabber.org/protocol/disco#info'/>
|
||||||
@ -171,7 +171,7 @@
|
|||||||
]]></example>
|
]]></example>
|
||||||
<example caption="User Queries Gateway's Parent Regarding Agent Information"><![CDATA[
|
<example caption="User Queries Gateway's Parent Regarding Agent Information"><![CDATA[
|
||||||
<iq type='get'
|
<iq type='get'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='shakespeare.lit'
|
to='shakespeare.lit'
|
||||||
id='agent1'>
|
id='agent1'>
|
||||||
<query xmlns='jabber:iq:agents'/>
|
<query xmlns='jabber:iq:agents'/>
|
||||||
@ -184,7 +184,7 @@
|
|||||||
<example caption="Gateway Returns Service Discovery Identity"><![CDATA[
|
<example caption="Gateway Returns Service Discovery Identity"><![CDATA[
|
||||||
<iq type='result'
|
<iq type='result'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='disco1'>
|
id='disco1'>
|
||||||
<query xmlns='http://jabber.org/protocol/disco#info'>
|
<query xmlns='http://jabber.org/protocol/disco#info'>
|
||||||
<identity category='gateway'
|
<identity category='gateway'
|
||||||
@ -199,7 +199,7 @@
|
|||||||
]]></example>
|
]]></example>
|
||||||
<example caption="Gateway's Parent Returns Agent Information"><![CDATA[
|
<example caption="Gateway's Parent Returns Agent Information"><![CDATA[
|
||||||
<iq type='result'
|
<iq type='result'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='shakespeare.lit'
|
to='shakespeare.lit'
|
||||||
id='agent1'>
|
id='agent1'>
|
||||||
<query xmlns='jabber:iq:agents'>
|
<query xmlns='jabber:iq:agents'>
|
||||||
@ -218,7 +218,7 @@
|
|||||||
<p>Jabber User sends IQ-get qualified by the &xep0077; (jabber:iq:register) namespace to Gateway.</p>
|
<p>Jabber User sends IQ-get qualified by the &xep0077; (jabber:iq:register) namespace to Gateway.</p>
|
||||||
<example caption="User Queries Gateway Regarding Registration Requirements"><![CDATA[
|
<example caption="User Queries Gateway Regarding Registration Requirements"><![CDATA[
|
||||||
<iq type='get'
|
<iq type='get'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='aim.shakespeare.lit'
|
to='aim.shakespeare.lit'
|
||||||
id='reg1'>
|
id='reg1'>
|
||||||
<query xmlns='jabber:iq:register'/>
|
<query xmlns='jabber:iq:register'/>
|
||||||
@ -230,7 +230,7 @@
|
|||||||
<example caption="Gateway Returns Registration Requirements"><![CDATA[
|
<example caption="Gateway Returns Registration Requirements"><![CDATA[
|
||||||
<iq type='result'
|
<iq type='result'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='reg1'>
|
id='reg1'>
|
||||||
<query xmlns='jabber:iq:register'>
|
<query xmlns='jabber:iq:register'>
|
||||||
<instructions>
|
<instructions>
|
||||||
@ -246,7 +246,7 @@
|
|||||||
<p>Jabber User sends IQ-set qualified by the 'jabber:iq:register' namespace to Gateway, containing information required to register.</p>
|
<p>Jabber User sends IQ-set qualified by the 'jabber:iq:register' namespace to Gateway, containing information required to register.</p>
|
||||||
<example caption="User Provides Registration Information"><![CDATA[
|
<example caption="User Provides Registration Information"><![CDATA[
|
||||||
<iq type='set'
|
<iq type='set'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='aim.shakespeare.lit'
|
to='aim.shakespeare.lit'
|
||||||
id='reg2'>
|
id='reg2'>
|
||||||
<query xmlns='jabber:iq:register'>
|
<query xmlns='jabber:iq:register'>
|
||||||
@ -262,7 +262,7 @@
|
|||||||
<example caption="Gateway Informs Jabber User of Success"><![CDATA[
|
<example caption="Gateway Informs Jabber User of Success"><![CDATA[
|
||||||
<iq type='result'
|
<iq type='result'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='reg2'/>
|
id='reg2'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -271,7 +271,7 @@
|
|||||||
<p>Optionally, Jabber User sends IQ-set qualified by the 'jabber:iq:roster' namespace to its server (see &rfc3921;), containing a roster item for Gateway.</p>
|
<p>Optionally, Jabber User sends IQ-set qualified by the 'jabber:iq:roster' namespace to its server (see &rfc3921;), containing a roster item for Gateway.</p>
|
||||||
<example caption="User Creates Roster Entry"><![CDATA[
|
<example caption="User Creates Roster Entry"><![CDATA[
|
||||||
<iq type='set'
|
<iq type='set'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
id='roster1'>
|
id='roster1'>
|
||||||
<query xmlns='jabber:iq:roster'>
|
<query xmlns='jabber:iq:roster'>
|
||||||
<item jid='aim.shakespeare.lit' name='AIM Gateway'/>
|
<item jid='aim.shakespeare.lit' name='AIM Gateway'/>
|
||||||
@ -280,7 +280,7 @@
|
|||||||
]]></example>
|
]]></example>
|
||||||
<example caption="Server Response"><![CDATA[
|
<example caption="Server Response"><![CDATA[
|
||||||
<iq type='result'
|
<iq type='result'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='roster1'/>
|
id='roster1'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -289,14 +289,14 @@
|
|||||||
<example caption="Gateway Subscribes to User's Presence"><![CDATA[
|
<example caption="Gateway Subscribes to User's Presence"><![CDATA[
|
||||||
<presence type='subscribe'
|
<presence type='subscribe'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Jabber User's client SHOULD approve the subscription request (i.e., by sending a presence stanza of type "subscribed" to Gateway).</p>
|
<p>Jabber User's client SHOULD approve the subscription request (i.e., by sending a presence stanza of type "subscribed" to Gateway).</p>
|
||||||
<example caption="Jabber User Approves Subscription Request"><![CDATA[
|
<example caption="Jabber User Approves Subscription Request"><![CDATA[
|
||||||
<presence type='subscribed'
|
<presence type='subscribed'
|
||||||
from='romeo@montague.net'
|
from='romeo@montague.lit'
|
||||||
to='aim.shakespeare.lit'/>
|
to='aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
<p>Note: As specified in <cite>RFC 3921</cite>, Jabber User's server will generate a "roster push" at this point if client did not previously perform a roster set to add Gateway to user's roster (as mentioned above).</p>
|
<p>Note: As specified in <cite>RFC 3921</cite>, Jabber User's server will generate a "roster push" at this point if client did not previously perform a roster set to add Gateway to user's roster (as mentioned above).</p>
|
||||||
@ -305,7 +305,7 @@
|
|||||||
<p>Jabber User sends subscription request to Gateway (i.e., by sending a presence stanza of type "subscribe" to Gateway).</p>
|
<p>Jabber User sends subscription request to Gateway (i.e., by sending a presence stanza of type "subscribe" to Gateway).</p>
|
||||||
<example caption="Jabber User Subscribes to Gateway's Presence"><![CDATA[
|
<example caption="Jabber User Subscribes to Gateway's Presence"><![CDATA[
|
||||||
<presence type='subscribe'
|
<presence type='subscribe'
|
||||||
from='romeo@montague.net'
|
from='romeo@montague.lit'
|
||||||
to='aim.shakespeare.lit'/>
|
to='aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -314,7 +314,7 @@
|
|||||||
<example caption="Gateway Approves Subscription Request"><![CDATA[
|
<example caption="Gateway Approves Subscription Request"><![CDATA[
|
||||||
<presence type='subscribed'
|
<presence type='subscribed'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li><p>Execute "Log In" use case.</p></li>
|
<li><p>Execute "Log In" use case.</p></li>
|
||||||
@ -331,7 +331,7 @@
|
|||||||
<example caption="Gateway Informs Jabber User of Registration Error"><![CDATA[
|
<example caption="Gateway Informs Jabber User of Registration Error"><![CDATA[
|
||||||
<iq type='error'
|
<iq type='error'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='reg2'>
|
id='reg2'>
|
||||||
<query xmlns='jabber:iq:register'>
|
<query xmlns='jabber:iq:register'>
|
||||||
<username>RomeoMyRomeo</username>
|
<username>RomeoMyRomeo</username>
|
||||||
@ -358,7 +358,7 @@
|
|||||||
<p>Jabber User sends IQ-get qualified by the 'jabber:iq:register' namespace to Gateway.</p>
|
<p>Jabber User sends IQ-get qualified by the 'jabber:iq:register' namespace to Gateway.</p>
|
||||||
<example caption="User Queries Gateway Regarding Registration Requirements"><![CDATA[
|
<example caption="User Queries Gateway Regarding Registration Requirements"><![CDATA[
|
||||||
<iq type='get'
|
<iq type='get'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='aim.shakespeare.lit'
|
to='aim.shakespeare.lit'
|
||||||
id='edit1'>
|
id='edit1'>
|
||||||
<query xmlns='jabber:iq:register'/>
|
<query xmlns='jabber:iq:register'/>
|
||||||
@ -370,7 +370,7 @@
|
|||||||
<example caption="Gateway Returns Registration Information of Record"><![CDATA[
|
<example caption="Gateway Returns Registration Information of Record"><![CDATA[
|
||||||
<iq type='result'
|
<iq type='result'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='edit1'>
|
id='edit1'>
|
||||||
<query xmlns='jabber:iq:register'>
|
<query xmlns='jabber:iq:register'>
|
||||||
<registered/>
|
<registered/>
|
||||||
@ -384,7 +384,7 @@
|
|||||||
<p>Jabber User sends IQ-set qualified by the 'jabber:iq:register' namespace to Gateway, containing all information (i.e., not just the "delta").</p>
|
<p>Jabber User sends IQ-set qualified by the 'jabber:iq:register' namespace to Gateway, containing all information (i.e., not just the "delta").</p>
|
||||||
<example caption="User Provides Registration Information"><![CDATA[
|
<example caption="User Provides Registration Information"><![CDATA[
|
||||||
<iq type='set'
|
<iq type='set'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='aim.shakespeare.lit'
|
to='aim.shakespeare.lit'
|
||||||
id='edit2'>
|
id='edit2'>
|
||||||
<query xmlns='jabber:iq:register'>
|
<query xmlns='jabber:iq:register'>
|
||||||
@ -399,7 +399,7 @@
|
|||||||
<example caption="Gateway Informs Jabber User of Success"><![CDATA[
|
<example caption="Gateway Informs Jabber User of Success"><![CDATA[
|
||||||
<iq type='result'
|
<iq type='result'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='edit2'/>
|
id='edit2'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -414,7 +414,7 @@
|
|||||||
<example caption="Gateway Informs Jabber User of Registration Error"><![CDATA[
|
<example caption="Gateway Informs Jabber User of Registration Error"><![CDATA[
|
||||||
<iq type='error'
|
<iq type='error'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='edit2'>
|
id='edit2'>
|
||||||
<query xmlns='jabber:iq:register'>
|
<query xmlns='jabber:iq:register'>
|
||||||
<username>RomeoMyRomeo</username>
|
<username>RomeoMyRomeo</username>
|
||||||
@ -441,7 +441,7 @@
|
|||||||
<p>Jabber User sends IQ-set in 'jabber:iq:register' namespace to Gateway, containing empty <remove/> element.</p>
|
<p>Jabber User sends IQ-set in 'jabber:iq:register' namespace to Gateway, containing empty <remove/> element.</p>
|
||||||
<example caption="User Unregisters"><![CDATA[
|
<example caption="User Unregisters"><![CDATA[
|
||||||
<iq type='set'
|
<iq type='set'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='aim.shakespeare.lit'
|
to='aim.shakespeare.lit'
|
||||||
id='unreg1'>
|
id='unreg1'>
|
||||||
<query xmlns='jabber:iq:register'>
|
<query xmlns='jabber:iq:register'>
|
||||||
@ -457,7 +457,7 @@
|
|||||||
<example caption="Gateway Informs Jabber User of Success"><![CDATA[
|
<example caption="Gateway Informs Jabber User of Success"><![CDATA[
|
||||||
<iq type='result'
|
<iq type='result'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'
|
to='romeo@montague.lit/orchard'
|
||||||
id='unreg1'/>
|
id='unreg1'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -466,11 +466,11 @@
|
|||||||
<example caption="Gateway Cancels Subscriptions"><![CDATA[
|
<example caption="Gateway Cancels Subscriptions"><![CDATA[
|
||||||
<presence type='unsubscribe'
|
<presence type='unsubscribe'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
|
|
||||||
<presence type='unsubscribed'
|
<presence type='unsubscribed'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
@ -478,7 +478,7 @@
|
|||||||
<example caption="Gateway Logs User Out"><![CDATA[
|
<example caption="Gateway Logs User Out"><![CDATA[
|
||||||
<presence type='unavailable'
|
<presence type='unavailable'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li><p>Jabber User's client SHOULD delete from the user's roster (1) the gateway itself, and (2) all legacy Contacts associated with the gateway.</p></li>
|
<li><p>Jabber User's client SHOULD delete from the user's roster (1) the gateway itself, and (2) all legacy Contacts associated with the gateway.</p></li>
|
||||||
@ -499,9 +499,9 @@
|
|||||||
<presence/>
|
<presence/>
|
||||||
]]></example>
|
]]></example>
|
||||||
<example caption="Jabber User's Server Broadcasts Available Presence"><![CDATA[
|
<example caption="Jabber User's Server Broadcasts Available Presence"><![CDATA[
|
||||||
<presence from='romeo@montague.net/orchard'
|
<presence from='romeo@montague.lit/orchard'
|
||||||
to='juliet@aim.shakespeare.lit'/>
|
to='juliet@aim.shakespeare.lit'/>
|
||||||
<presence from='romeo@montague.net/orchard'
|
<presence from='romeo@montague.lit/orchard'
|
||||||
to='aim.shakespeare.lit'/>
|
to='aim.shakespeare.lit'/>
|
||||||
...
|
...
|
||||||
]]></example>
|
]]></example>
|
||||||
@ -511,7 +511,7 @@
|
|||||||
<p>Gateway sends presence stanza to Jabber User expressing availability.</p>
|
<p>Gateway sends presence stanza to Jabber User expressing availability.</p>
|
||||||
<example caption="Gateway Sends Presence to Jabber User"><![CDATA[
|
<example caption="Gateway Sends Presence to Jabber User"><![CDATA[
|
||||||
<presence from='aim.shakespeare.lit'
|
<presence from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li><p>Optionally, Gateway handles Legacy Service contact list; see the <link url="#rosters">Contact Lists</link> section of this document.</p></li>
|
<li><p>Optionally, Gateway handles Legacy Service contact list; see the <link url="#rosters">Contact Lists</link> section of this document.</p></li>
|
||||||
@ -519,7 +519,7 @@
|
|||||||
<p>Gateway forwards current presence information from Legacy Users to Jabber User, if possible mapping availability status (e.g., "away").</p>
|
<p>Gateway forwards current presence information from Legacy Users to Jabber User, if possible mapping availability status (e.g., "away").</p>
|
||||||
<example caption="Gateway Sends Presence from Legacy Users to Jabber User"><![CDATA[
|
<example caption="Gateway Sends Presence from Legacy Users to Jabber User"><![CDATA[
|
||||||
<presence from='juliet@aim.shakespeare.lit'
|
<presence from='juliet@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'>
|
to='romeo@montague.lit'>
|
||||||
<show>away</show>
|
<show>away</show>
|
||||||
</presence>
|
</presence>
|
||||||
]]></example>
|
]]></example>
|
||||||
@ -528,7 +528,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<p>Gateway forwards all subsequent presence stanzas to Legacy Users (except those of type "probe" and those addressed to the Gateway itself).</p>
|
<p>Gateway forwards all subsequent presence stanzas to Legacy Users (except those of type "probe" and those addressed to the Gateway itself).</p>
|
||||||
<example caption="Jabber User Modifies Presence"><![CDATA[
|
<example caption="Jabber User Modifies Presence"><![CDATA[
|
||||||
<presence from='romeo@montague.net/orchard'
|
<presence from='romeo@montague.lit/orchard'
|
||||||
to='juliet@aim.shakespeare.lit'>
|
to='juliet@aim.shakespeare.lit'>
|
||||||
<show>dnd</show>
|
<show>dnd</show>
|
||||||
<status>Wooing Juliet</status>
|
<status>Wooing Juliet</status>
|
||||||
@ -572,7 +572,7 @@
|
|||||||
]]></example>
|
]]></example>
|
||||||
<example caption="Jabber User's Server Broadcasts Unavailable Presence"><![CDATA[
|
<example caption="Jabber User's Server Broadcasts Unavailable Presence"><![CDATA[
|
||||||
<presence type='unavailable'
|
<presence type='unavailable'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='aim.shakespeare.lit'/>
|
to='aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -583,7 +583,7 @@
|
|||||||
<example caption="Gateway Logs User Out"><![CDATA[
|
<example caption="Gateway Logs User Out"><![CDATA[
|
||||||
<presence type='unavailable'
|
<presence type='unavailable'
|
||||||
from='aim.shakespeare.lit'
|
from='aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'/>
|
to='romeo@montague.lit/orchard'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li><p>Use Case Ends.</p></li>
|
<li><p>Use Case Ends.</p></li>
|
||||||
@ -597,7 +597,7 @@
|
|||||||
<p>Gateway passes through directed unavailable presence to Legacy User.</p>
|
<p>Gateway passes through directed unavailable presence to Legacy User.</p>
|
||||||
<example caption="Jabber User Becomes Unavailable"><![CDATA[
|
<example caption="Jabber User Becomes Unavailable"><![CDATA[
|
||||||
<presence type='unavailable'
|
<presence type='unavailable'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='juliet@aim.shakespeare.lit'/>
|
to='juliet@aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -615,7 +615,7 @@
|
|||||||
<p>Jabber User sends presence stanza of type "subscribe" to Legacy User.</p>
|
<p>Jabber User sends presence stanza of type "subscribe" to Legacy User.</p>
|
||||||
<example caption="Jabber User Sends Subscription Request to Legacy User"><![CDATA[
|
<example caption="Jabber User Sends Subscription Request to Legacy User"><![CDATA[
|
||||||
<presence type='subscribe'
|
<presence type='subscribe'
|
||||||
from='romeo@montague.net'
|
from='romeo@montague.lit'
|
||||||
to='CapuletNurse@aim.shakespeare.lit'/>
|
to='CapuletNurse@aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
<p>Note: As specified in <cite>RFC 3921</cite>, sending this packet will result in a "roster push" from the Server to all of the Jabber User's available resources.</p>
|
<p>Note: As specified in <cite>RFC 3921</cite>, sending this packet will result in a "roster push" from the Server to all of the Jabber User's available resources.</p>
|
||||||
@ -626,14 +626,14 @@
|
|||||||
<example caption="Gateway Approves Subscription Request on Behalf of Legacy User"><![CDATA[
|
<example caption="Gateway Approves Subscription Request on Behalf of Legacy User"><![CDATA[
|
||||||
<presence type='subscribed'
|
<presence type='subscribed'
|
||||||
from='CapuletNurse@aim.shakespeare.lit'
|
from='CapuletNurse@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Gateway sends available presence stanza to Jabber User on behalf of Legacy User.</p>
|
<p>Gateway sends available presence stanza to Jabber User on behalf of Legacy User.</p>
|
||||||
<example caption="Gateway Sends Legacy User's Current Presence Information to Jabber User"><![CDATA[
|
<example caption="Gateway Sends Legacy User's Current Presence Information to Jabber User"><![CDATA[
|
||||||
<presence from='CapuletNurse@aim.shakespeare.lit'
|
<presence from='CapuletNurse@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'/>
|
to='romeo@montague.lit/orchard'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
@ -641,14 +641,14 @@
|
|||||||
<example caption="Gateway Sends Subscription Request to Jabber User on Behalf of Legacy User"><![CDATA[
|
<example caption="Gateway Sends Subscription Request to Jabber User on Behalf of Legacy User"><![CDATA[
|
||||||
<presence type='subscribe'
|
<presence type='subscribe'
|
||||||
from='CapuletNurse@aim.shakespeare.lit'
|
from='CapuletNurse@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Jabber User sends presence stanza of type "subscribed" to Legacy User.</p>
|
<p>Jabber User sends presence stanza of type "subscribed" to Legacy User.</p>
|
||||||
<example caption="Jabber User Approves Subscription Request"><![CDATA[
|
<example caption="Jabber User Approves Subscription Request"><![CDATA[
|
||||||
<presence type='subscribed'
|
<presence type='subscribed'
|
||||||
from='romeo@montague.net'
|
from='romeo@montague.lit'
|
||||||
to='CapuletNurse@aim.shakespeare.lit'/>
|
to='CapuletNurse@aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -665,7 +665,7 @@
|
|||||||
<example caption="Legacy User Denies Subscription Request"><![CDATA[
|
<example caption="Legacy User Denies Subscription Request"><![CDATA[
|
||||||
<presence type='unsubscribed'
|
<presence type='unsubscribed'
|
||||||
from='juliet@aim.shakespeare.lit'
|
from='juliet@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li><p>Use Case Ends unsuccessfully.</p></li>
|
<li><p>Use Case Ends unsuccessfully.</p></li>
|
||||||
@ -682,7 +682,7 @@
|
|||||||
<p>Jabber User sends IQ-set qualified by the 'jabber:iq:roster' namespace, containing subscription attribute with value of "remove".</p>
|
<p>Jabber User sends IQ-set qualified by the 'jabber:iq:roster' namespace, containing subscription attribute with value of "remove".</p>
|
||||||
<example caption="User Removes Roster Entry for Legacy User"><![CDATA[
|
<example caption="User Removes Roster Entry for Legacy User"><![CDATA[
|
||||||
<iq type='set'
|
<iq type='set'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
id='remove1'>
|
id='remove1'>
|
||||||
<query xmlns='jabber:iq:roster'>
|
<query xmlns='jabber:iq:roster'>
|
||||||
<item jid='CapuletNurse@aim.shakespeare.lit'
|
<item jid='CapuletNurse@aim.shakespeare.lit'
|
||||||
@ -695,15 +695,15 @@
|
|||||||
<p>Server sends normal "roster push" to Jabber User (see <cite>RFC 3921</cite>) and sends presence stanzas of type "unsubscribe", "unsubscribed", and "unavailable" to Legacy User.</p>
|
<p>Server sends normal "roster push" to Jabber User (see <cite>RFC 3921</cite>) and sends presence stanzas of type "unsubscribe", "unsubscribed", and "unavailable" to Legacy User.</p>
|
||||||
<example caption="Server Sends Presence Changes to Legacy User"><![CDATA[
|
<example caption="Server Sends Presence Changes to Legacy User"><![CDATA[
|
||||||
<presence type='unsubscribe'
|
<presence type='unsubscribe'
|
||||||
from='romeo@montague.net'
|
from='romeo@montague.lit'
|
||||||
to='CapuletNurse@aim.shakespeare.lit'/>
|
to='CapuletNurse@aim.shakespeare.lit'/>
|
||||||
|
|
||||||
<presence type='unsubscribed'
|
<presence type='unsubscribed'
|
||||||
from='romeo@montague.net'
|
from='romeo@montague.lit'
|
||||||
to='CapuletNurse@aim.shakespeare.lit'/>
|
to='CapuletNurse@aim.shakespeare.lit'/>
|
||||||
|
|
||||||
<presence type='unavailable'
|
<presence type='unavailable'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='CapuletNurse@aim.shakespeare.lit'/>
|
to='CapuletNurse@aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -722,7 +722,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<p>Jabber User sends message stanza to Legacy User.</p>
|
<p>Jabber User sends message stanza to Legacy User.</p>
|
||||||
<example caption="Jabber User Sends Message to Legacy User"><![CDATA[
|
<example caption="Jabber User Sends Message to Legacy User"><![CDATA[
|
||||||
<message from='romeo@montague.net/orchard'
|
<message from='romeo@montague.lit/orchard'
|
||||||
to='juliet@aim.shakespeare.lit'
|
to='juliet@aim.shakespeare.lit'
|
||||||
type='chat'>
|
type='chat'>
|
||||||
<body>Neither, fair saint, if either thee dislike.</body>
|
<body>Neither, fair saint, if either thee dislike.</body>
|
||||||
@ -761,14 +761,14 @@
|
|||||||
<example caption="Gateway Sends Subscription Request on Behalf of Legacy User"><![CDATA[
|
<example caption="Gateway Sends Subscription Request on Behalf of Legacy User"><![CDATA[
|
||||||
<presence type='subscribe'
|
<presence type='subscribe'
|
||||||
from='CapuletNurse@aim.shakespeare.lit'
|
from='CapuletNurse@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Jabber User approves subscription request by sending presence stanza of type "subscribed" to Legacy User [A1].</p>
|
<p>Jabber User approves subscription request by sending presence stanza of type "subscribed" to Legacy User [A1].</p>
|
||||||
<example caption="Jabber User Approves Subscription Request"><![CDATA[
|
<example caption="Jabber User Approves Subscription Request"><![CDATA[
|
||||||
<presence type='subscribed'
|
<presence type='subscribed'
|
||||||
from='romeo@montague.net'
|
from='romeo@montague.lit'
|
||||||
to='CapuletNurse@aim.shakespeare.lit'/>
|
to='CapuletNurse@aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -777,7 +777,7 @@
|
|||||||
<p>Jabber User's Client sends presence stanza of type "subscribe" to Legacy User.</p>
|
<p>Jabber User's Client sends presence stanza of type "subscribe" to Legacy User.</p>
|
||||||
<example caption="Jabber User Sends Subscription Request to Legacy User"><![CDATA[
|
<example caption="Jabber User Sends Subscription Request to Legacy User"><![CDATA[
|
||||||
<presence type='subscribe'
|
<presence type='subscribe'
|
||||||
from='romeo@montague.net'
|
from='romeo@montague.lit'
|
||||||
to='CapuletNurse@aim.shakespeare.lit'/>
|
to='CapuletNurse@aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -786,14 +786,14 @@
|
|||||||
<example caption="Gateway Approves Subscription Request on Behalf of Legacy User"><![CDATA[
|
<example caption="Gateway Approves Subscription Request on Behalf of Legacy User"><![CDATA[
|
||||||
<presence type='subscribed'
|
<presence type='subscribed'
|
||||||
from='CapuletNurse@aim.shakespeare.lit'
|
from='CapuletNurse@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Gateway sends Legacy User's presence information to Jabber User.</p>
|
<p>Gateway sends Legacy User's presence information to Jabber User.</p>
|
||||||
<example caption="Gateway Sends Legacy User's Current Presence Information to Jabber User"><![CDATA[
|
<example caption="Gateway Sends Legacy User's Current Presence Information to Jabber User"><![CDATA[
|
||||||
<presence from='CapuletNurse@aim.shakespeare.lit'
|
<presence from='CapuletNurse@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'/>
|
to='romeo@montague.lit/orchard'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li><p>Use Case Ends.</p></li>
|
<li><p>Use Case Ends.</p></li>
|
||||||
@ -807,7 +807,7 @@
|
|||||||
<p>Jabber User sends presence stanza of type "unsubscribed" to Legacy User.</p>
|
<p>Jabber User sends presence stanza of type "unsubscribed" to Legacy User.</p>
|
||||||
<example caption="Jabber User Denies Subscription Request"><![CDATA[
|
<example caption="Jabber User Denies Subscription Request"><![CDATA[
|
||||||
<presence type='unsubscribed'
|
<presence type='unsubscribed'
|
||||||
from='romeo@montague.net'
|
from='romeo@montague.lit'
|
||||||
to='CapuletNurse@aim.shakespeare.lit'/>
|
to='CapuletNurse@aim.shakespeare.lit'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
@ -828,15 +828,15 @@
|
|||||||
<example caption="Gateway Cleans Up Subscription on Behalf of Legacy User"><![CDATA[
|
<example caption="Gateway Cleans Up Subscription on Behalf of Legacy User"><![CDATA[
|
||||||
<presence type='unsubscribe'
|
<presence type='unsubscribe'
|
||||||
from='CapuletNurse@aim.shakespeare.lit'
|
from='CapuletNurse@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
|
|
||||||
<presence type='unsubscribed'
|
<presence type='unsubscribed'
|
||||||
from='CapuletNurse@aim.shakespeare.lit'
|
from='CapuletNurse@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'/>
|
to='romeo@montague.lit'/>
|
||||||
|
|
||||||
<presence type='unavailable'
|
<presence type='unavailable'
|
||||||
from='CapuletNurse@aim.shakespeare.lit'
|
from='CapuletNurse@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net/orchard'/>
|
to='romeo@montague.lit/orchard'/>
|
||||||
]]></example>
|
]]></example>
|
||||||
</li>
|
</li>
|
||||||
<li><p>Jabber User's server performs defined functionality for handling presence stanzas of type "unsubscribe" and "unsubscribed" (see <cite>RFC 3921</cite>).</p></li>
|
<li><p>Jabber User's server performs defined functionality for handling presence stanzas of type "unsubscribe" and "unsubscribed" (see <cite>RFC 3921</cite>).</p></li>
|
||||||
@ -856,7 +856,7 @@
|
|||||||
<p>Gateway transforms message and routes to Jabber User.</p>
|
<p>Gateway transforms message and routes to Jabber User.</p>
|
||||||
<example caption="Legacy User Sends Message to Jabber User"><![CDATA[
|
<example caption="Legacy User Sends Message to Jabber User"><![CDATA[
|
||||||
<message from='juliet@aim.shakespeare.lit'
|
<message from='juliet@aim.shakespeare.lit'
|
||||||
to='romeo@montague.net'>
|
to='romeo@montague.lit'>
|
||||||
<body>Art thou not Romeo, and a Montague?</body>
|
<body>Art thou not Romeo, and a Montague?</body>
|
||||||
</message>
|
</message>
|
||||||
]]></example>
|
]]></example>
|
||||||
@ -960,11 +960,51 @@
|
|||||||
</section2>
|
</section2>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='Contact Lists' anchor='rosters'>
|
<section1 topic='Contact Lists' anchor='rosters'>
|
||||||
|
<section2 topic='Adding Items by the Gateway' anchor='rosters-add'>
|
||||||
<p>Some legacy services maintain server-side contact lists, which are sent to the gateway when it logs in to the legacy service on behalf of the user. The gateway MAY initiate adding of the legacy contact list items to the user's Jabber roster. Some existing gateways do this by sending a presence stanza of type "subscribed" from the legacy contact's JID (e.g., <LegacyUser@gateway.jabberserver.com>) to the Jabber user; unfortunately, this behavior violates the presence stanza handling rules specified in <cite>RFC 3921</cite>. Therefore, a gateway SHOULD instead send the legacy contact list items to the Jabber User via the &xep0144; protocol.</p>
|
<p>Some legacy services maintain server-side contact lists, which are sent to the gateway when it logs in to the legacy service on behalf of the user. The gateway MAY initiate adding of the legacy contact list items to the user's Jabber roster. Some existing gateways do this by sending a presence stanza of type "subscribed" from the legacy contact's JID (e.g., <LegacyUser@gateway.jabberserver.com>) to the Jabber user; unfortunately, this behavior violates the presence stanza handling rules specified in <cite>RFC 3921</cite>. Therefore, a gateway SHOULD instead send the legacy contact list items to the Jabber User via the &xep0144; protocol.</p>
|
||||||
<p>In order to inform the gateway of the user's desired roster group for the contacts to be sent, the user's client MAY include a field of "group" in the data form it sends when registering with the gateway (if the gateway provides a data form in the registration requirements stanza).</p>
|
<example caption='Suggesting Addition of a Roster Item'><![CDATA[
|
||||||
<example caption="User Provides Registration Information"><![CDATA[
|
<message from='aim.shakespeare.lit' to='romeo@montague.lit'>
|
||||||
|
<x xmlns='http://jabber.org/protocol/rosterx'>
|
||||||
|
<item action='add' jid='CapuletNurse@aim.shakespeare.lit'/>
|
||||||
|
</x>
|
||||||
|
</message>
|
||||||
|
]]></example>
|
||||||
|
</section2>
|
||||||
|
<section2 topic='Group Names' anchor='rosters-groups'>
|
||||||
|
<p>There are two scenarios for gateway handling of roster groups: either (1) the legacy service does not support groups or (2) the legacy service supports groups.</p>
|
||||||
|
<p>If the legacy service does not support categorization of contact list items into groups (equivalent to XMPP roster groups), then a gateway that handles communications with such a legacy service SHOULD enable the user to specify his or her desired roster group for those items by providing a field of "group" in the data form it provides to the user on registration.</p>
|
||||||
|
<example caption="Gateway Provides Registration Form With Group Name Field"><![CDATA[
|
||||||
|
<iq from='aim.shakespeare.lit'
|
||||||
|
id='reg1'
|
||||||
|
to='romeo@montague.lit/orchard'
|
||||||
|
type='result'>
|
||||||
|
<query xmlns='jabber:iq:register'>
|
||||||
|
<instructions>
|
||||||
|
Use the enclosed form to register. If your Jabber client does
|
||||||
|
not support Data Forms, visit http://www.shakespeare.lit/
|
||||||
|
</instructions>
|
||||||
|
<x xmlns='jabber:x:data' type='form'>
|
||||||
|
<instructions>
|
||||||
|
Please provide the following information
|
||||||
|
to register with the AIM gatway.
|
||||||
|
</instructions>
|
||||||
|
<field type='hidden' var='FORM_TYPE'>
|
||||||
|
<value>jabber:iq:register</value>
|
||||||
|
</field>
|
||||||
|
<field type='text-single' label='AIM User Name' var='username'>
|
||||||
|
<required/>
|
||||||
|
</field>
|
||||||
|
<field type='text-private' label='Password' var='password'>
|
||||||
|
<required/>
|
||||||
|
</field>
|
||||||
|
<field type='text-single' label='Roster Group Name' var='groupname'/>
|
||||||
|
</x>
|
||||||
|
</query>
|
||||||
|
</iq>
|
||||||
|
]]></example>
|
||||||
|
<example caption="User Provides Registration Information With Group Name Field"><![CDATA[
|
||||||
<iq type='set'
|
<iq type='set'
|
||||||
from='romeo@montague.net/orchard'
|
from='romeo@montague.lit/orchard'
|
||||||
to='aim.shakespeare.lit'
|
to='aim.shakespeare.lit'
|
||||||
id='reg2'>
|
id='reg2'>
|
||||||
<query xmlns='jabber:iq:register'>
|
<query xmlns='jabber:iq:register'>
|
||||||
@ -978,13 +1018,98 @@
|
|||||||
<field var='password'>
|
<field var='password'>
|
||||||
<value>ILoveJuliet</value>
|
<value>ILoveJuliet</value>
|
||||||
</field>
|
</field>
|
||||||
<field var='group'>
|
<field var='groupname'>
|
||||||
<value>AIM (Work)</value>
|
<value>AIM (Home)</value>
|
||||||
</field>
|
</field>
|
||||||
</x>
|
</x>
|
||||||
</query>
|
</query>
|
||||||
</iq>
|
</iq>
|
||||||
]]></example>
|
]]></example>
|
||||||
|
<p>When the gateway sends roster items to the user, it SHOULD then include the specified group.</p>
|
||||||
|
<example caption='Suggesting Addition of a Roster Item'><![CDATA[
|
||||||
|
<message from='aim.shakespeare.lit' to='romeo@montague.lit'>
|
||||||
|
<x xmlns='http://jabber.org/protocol/rosterx'>
|
||||||
|
<item action='add' jid='CapuletNurse@aim.shakespeare.lit'>
|
||||||
|
<group>AIM (Home)</group>
|
||||||
|
</item>
|
||||||
|
</x>
|
||||||
|
</message>
|
||||||
|
]]></example>
|
||||||
|
<p>However, if the legacy service supports groups, then a gateway that handles communications with such a legacy service SHOULD enable the user to specify his or her desired roster group prefix or suffix for those items by providing fields of both "group" and "groupmodify" in the data form it provides to the user on registration.</p>
|
||||||
|
<example caption="Gateway Provides Registration Form With Group Name and Group Modify Fields"><![CDATA[
|
||||||
|
<iq from='msn.shakespeare.lit'
|
||||||
|
id='reg3'
|
||||||
|
to='romeo@montague.lit/orchard'
|
||||||
|
type='result'>
|
||||||
|
<query xmlns='jabber:iq:register'>
|
||||||
|
<instructions>
|
||||||
|
Use the enclosed form to register. If your Jabber client does
|
||||||
|
not support Data Forms, visit http://www.shakespeare.lit/
|
||||||
|
</instructions>
|
||||||
|
<x xmlns='jabber:x:data' type='form'>
|
||||||
|
<instructions>
|
||||||
|
Please provide the following information
|
||||||
|
to register with the MSN gateway.
|
||||||
|
</instructions>
|
||||||
|
<field type='hidden' var='FORM_TYPE'>
|
||||||
|
<value>jabber:iq:register</value>
|
||||||
|
</field>
|
||||||
|
<field type='text-single' label='AIM User Name' var='username'>
|
||||||
|
<required/>
|
||||||
|
</field>
|
||||||
|
<field type='text-private' label='Password' var='password'>
|
||||||
|
<required/>
|
||||||
|
</field>
|
||||||
|
<field type='text-single' label='Roster Group Modifier' var='groupmodifier'/>
|
||||||
|
<field type='list-single' label='Location of Roster Group Modifier' var='groupmodifylocation'>
|
||||||
|
<option label='Prefix'>
|
||||||
|
<value>prefix</value>
|
||||||
|
</option>
|
||||||
|
<option label='Suffix'>
|
||||||
|
<value>suffix</value>
|
||||||
|
</option>
|
||||||
|
</field>
|
||||||
|
</x>
|
||||||
|
</query>
|
||||||
|
</iq>
|
||||||
|
]]></example>
|
||||||
|
<example caption="User Provides Registration Information With Group Name and Group Modify Fields"><![CDATA[
|
||||||
|
<iq type='set'
|
||||||
|
from='romeo@montague.lit/orchard'
|
||||||
|
to='msn.shakespeare.lit'
|
||||||
|
id='reg2'>
|
||||||
|
<query xmlns='jabber:iq:register'>
|
||||||
|
<x xmlns='jabber:x:data' type='submit'>
|
||||||
|
<field var='FORM_TYPE'>
|
||||||
|
<value>jabber:iq:register</value>
|
||||||
|
</field>
|
||||||
|
<field var='username'>
|
||||||
|
<value>RomeoMyRomeo</value>
|
||||||
|
</field>
|
||||||
|
<field var='password'>
|
||||||
|
<value>ILoveJuliet</value>
|
||||||
|
</field>
|
||||||
|
<field var='groupmodifier'>
|
||||||
|
<value>(MSN Home)</value>
|
||||||
|
</field>
|
||||||
|
<field var='groupmodifylocation'>
|
||||||
|
<value>suffix</value>
|
||||||
|
</field>
|
||||||
|
</x>
|
||||||
|
</query>
|
||||||
|
</iq>
|
||||||
|
]]></example>
|
||||||
|
<p>When the gateway sends roster items to the user, it SHOULD then include the group name from the legacy service, prepended or appended with the groupmodify value.</p>
|
||||||
|
<example caption='Suggesting Addition of a Roster Item'><![CDATA[
|
||||||
|
<message from='msn.shakespeare.lit' to='romeo@montague.lit'>
|
||||||
|
<x xmlns='http://jabber.org/protocol/rosterx'>
|
||||||
|
<item action='add' jid='CapuletNurse@msn.shakespeare.lit'>
|
||||||
|
<group>Servants (MSN Home)</group>
|
||||||
|
</item>
|
||||||
|
</x>
|
||||||
|
</message>
|
||||||
|
]]></example>
|
||||||
|
</section2>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='Business Rules' anchor='bizrules'>
|
<section1 topic='Business Rules' anchor='bizrules'>
|
||||||
<p>The following business rules apply:</p>
|
<p>The following business rules apply:</p>
|
||||||
@ -1024,6 +1149,32 @@
|
|||||||
<section2 topic='Protocol Namespaces' anchor='registrar-ns'>
|
<section2 topic='Protocol Namespaces' anchor='registrar-ns'>
|
||||||
<p>The ®ISTRAR; includes 'jabber:iq:gateway' in its registry of protocol namespaces.</p>
|
<p>The ®ISTRAR; includes 'jabber:iq:gateway' in its registry of protocol namespaces.</p>
|
||||||
</section2>
|
</section2>
|
||||||
|
<section2 topic='Field Standardization' anchor='registrar-formtypes'>
|
||||||
|
<p>The following fields shall be added to the "jabber:iq:register" FORM_TYPE originally created per <cite>XEP-0077</cite>.</p>
|
||||||
|
<code><![CDATA[
|
||||||
|
<form_type>
|
||||||
|
<name>jabber:iq:register</name>
|
||||||
|
<field
|
||||||
|
var='groupmodifier'
|
||||||
|
type='text-single'
|
||||||
|
label='The text that shall modify legacy service group names'/>
|
||||||
|
<field label='Location of Roster Group Modifier'
|
||||||
|
type='list-single'
|
||||||
|
var='groupmodifylocation'>
|
||||||
|
<option label='Prefix'>
|
||||||
|
<value>prefix</value>
|
||||||
|
</option>
|
||||||
|
<option label='Suffix'>
|
||||||
|
<value>suffix</value>
|
||||||
|
</option>
|
||||||
|
</field>
|
||||||
|
<field
|
||||||
|
var='groupname'
|
||||||
|
type='text-single'
|
||||||
|
label='The group name for roster item exchanges'/>
|
||||||
|
</form_type>
|
||||||
|
]]></code>
|
||||||
|
</section2>
|
||||||
</section1>
|
</section1>
|
||||||
<section1 topic='XML Schema' anchor='schema'>
|
<section1 topic='XML Schema' anchor='schema'>
|
||||||
<code><![CDATA[
|
<code><![CDATA[
|
||||||
|
Loading…
Reference in New Issue
Block a user