mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-21 08:45:04 -05:00
0.5
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@455 4b5297f7-1745-476d-ba37-a9c6900126ab
This commit is contained in:
parent
1774210e18
commit
2b65c5b21b
32
xep-0186.xml
32
xep-0186.xml
@ -22,6 +22,12 @@
|
||||
<supersededby>None</supersededby>
|
||||
<shortname>invisibility</shortname>
|
||||
&stpeter;
|
||||
<revision>
|
||||
<version>0.5</version>
|
||||
<date>2007-01-30</date>
|
||||
<initials>psa</initials>
|
||||
<remark><p>Modified XML namespace name to conform to XEP-0053 processes.</p></remark>
|
||||
</revision>
|
||||
<revision>
|
||||
<version>0.4</version>
|
||||
<date>2006-08-09</date>
|
||||
@ -62,7 +68,7 @@
|
||||
<section1 topic='Introduction' anchor='intro'>
|
||||
<p>Jabber instant messaging technologies have long supported the ability for IM users to be online but appear invisible. The existing protocols for doing so are:</p>
|
||||
<ul>
|
||||
<li><p>&xep0018; -- this protocol is not compatible with &xmppcore; and &xmppim;, and it does not provide reliable documentation of the protocol in use since many server implementations support presence of type "invisible" but not presence of type "visible".</p></li>
|
||||
<li><p>&xep0018; -- this protocol is not compatible with &xmppcore; and &xmppim;, and the speciifcation does not provide reliable documentation of the protocol in use since many server implementations support presence of type "invisible" but not presence of type "visible".</p></li>
|
||||
<li><p>&xep0126; -- this protocol is in many ways a mis-use of privacy lists for the temporary purpose of appearing invisible rather than the intended purpose of permanently blocking communications.</p></li>
|
||||
</ul>
|
||||
<p>In order to provide a standards-compliant protocol that can be used in the long term, this document defines an IQ-based protocol that enables an IM user to "go invisible" and "go visible" at will within the context of a given session.</p>
|
||||
@ -71,7 +77,7 @@
|
||||
<p>The requirements for invisible mode are straightforward:</p>
|
||||
<ol start='1'>
|
||||
<li>A user should be able to become visible or invisible at any time within an XMPP session.</li>
|
||||
<li>Invisible mode is active only for the current session; if the user ends that session and starts another session, the invisibility set for the previous session does not carry over to the new session.</li>
|
||||
<li>Invisible mode is active only for the current session; if the user ends that session and starts another session, the invisibility mode set for the previous session does not carry over to the new session.</li>
|
||||
<li>When in invisible mode, a user should be able to send directed presence to particular contacts.</li>
|
||||
</ol>
|
||||
</section1>
|
||||
@ -83,12 +89,12 @@
|
||||
<query xmlns='http://jabber.org/protocol/disco#info'/>
|
||||
</iq>
|
||||
]]></example>
|
||||
<p>If the server supports the protocol defined herein, it MUST return a feature of "http://jabber.org/protocol/invisibility":</p>
|
||||
<p>If the server supports the protocol defined herein, it MUST return a feature of "http://www.xmpp.org/extensions/xep-0186.html#ns":</p>
|
||||
<example caption='Service discovery response'><![CDATA[
|
||||
<iq from='bilbo@tolkien.lit/shire' to='tolkien.lit' type='get' id='disco1'>
|
||||
<query xmlns='http://jabber.org/protocol/disco#info'>
|
||||
...
|
||||
<feature var='http://jabber.org/protocol/invisibility'/>
|
||||
<feature var='http://www.xmpp.org/extensions/xep-0186.html#ns'/>
|
||||
...
|
||||
</query>
|
||||
</iq>
|
||||
@ -96,10 +102,10 @@
|
||||
<p>A client SHOULD complete this service discovery process before sending initial presence to its server.</p>
|
||||
</section2>
|
||||
<section2 topic='User Becomes Invisible' anchor='invisible'>
|
||||
<p>In order for a client to go invisible, it shall send an IQ-set with no 'to' address (thus handled by the user's server) containing an <invisible/> element qualified by the 'http://jabber.org/protocol/invisibility' namespace:</p>
|
||||
<p>In order for a client to go invisible, it shall send an IQ-set with no 'to' address (thus handled by the user's server) containing an <invisible/> element qualified by the 'http://www.xmpp.org/extensions/xep-0186.html#ns' namespace:</p>
|
||||
<example caption='Invisible command'><![CDATA[
|
||||
<iq type='set' id='inv1'>
|
||||
<invisible xmlns='http://jabber.org/protocol/invisibility'/>
|
||||
<invisible xmlns='http://www.xmpp.org/extensions/xep-0186.html#ns'/>
|
||||
</iq>
|
||||
]]></example>
|
||||
<p>If the server can successfully process the invisibility command, it MUST return an IQ-result:</p>
|
||||
@ -113,17 +119,17 @@
|
||||
<li><p>MUST NOT broadcast presence notifications as a result of receiving any subsequent undirected presence notifications from the client.</p></li>
|
||||
<li><p>MUST deliver directed presence stanzas generated by the client.</p></li>
|
||||
<li><p>MUST deliver inbound &PRESENCE; stanzas.</p></li>
|
||||
<li><p>SHOULD deliver inbound &MESSAGE; stanzas whose 'to' address is the bare JID of the user (subject to standard XMPP stanza handling rules).</p></li>
|
||||
<li><p>MUST deliver inbound &MESSAGE; and &IQ; stanzas whose 'to' address is the resource of the client.</p></li>
|
||||
<li><p>SHOULD deliver inbound &MESSAGE; stanzas whose 'to' address is the bare JID (&BAREJID;) of the user (subject to standard XMPP stanza handling rules).</p></li>
|
||||
<li><p>MUST deliver inbound &MESSAGE; and &IQ; stanzas whose 'to' address is the full JID (&FULLJID;) corresponding to the resource of the client.</p></li>
|
||||
<li><p>MUST deliver outbound &MESSAGE; and &IQ; stanzas generated by the client (for an important note regarding presence leaks, see the <link url='#security'>Security Considerations</link> section of this document).</p></li>
|
||||
</ol>
|
||||
<p>If after sending directed presence the client then sends &UNAVAILABLE;, the server MUST deliver that unavailable presence only to the entities to which the client sent directed presence after going invisible.</p>
|
||||
</section2>
|
||||
<section2 topic='User Becomes Visible' anchor='visible'>
|
||||
<p>In order for a client to become visible again, it shall send an IQ-set with no 'to' address (thus handled by the user's server) containing a <visible/> element qualified by the 'http://jabber.org/protocol/invisibility' namespace:</p>
|
||||
<p>In order for a client to become visible again, it shall send an IQ-set with no 'to' address (thus handled by the user's server) containing a <visible/> element qualified by the 'http://www.xmpp.org/extensions/xep-0186.html#ns' namespace:</p>
|
||||
<example caption='Visible command'><![CDATA[
|
||||
<iq type='set' id='vis1'>
|
||||
<visible xmlns='http://jabber.org/protocol/invisibility'/>
|
||||
<visible xmlns='http://www.xmpp.org/extensions/xep-0186.html#ns'/>
|
||||
</iq>
|
||||
]]></example>
|
||||
<p>If the server can successfully process the visibility command, it MUST return an IQ-result:</p>
|
||||
@ -141,7 +147,7 @@
|
||||
</section1>
|
||||
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
||||
<section2 topic='Protocol Namespaces' anchor='registrar-ns'>
|
||||
<p>The ®ISTRAR; shall include 'http://jabber.org/protocol/invisibility' in its registry of protocol namespaces (see &NAMESPACES;).</p>
|
||||
<p>The ®ISTRAR; shall include 'http://www.xmpp.org/extensions/xep-0186.html#ns' in its registry of protocol namespaces (see &NAMESPACES;).</p>
|
||||
</section2>
|
||||
</section1>
|
||||
<section1 topic='XML Schema' anchor='schema'>
|
||||
@ -150,8 +156,8 @@
|
||||
|
||||
<xs:schema
|
||||
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
||||
targetNamespace='http://jabber.org/protocol/invisibility'
|
||||
xmlns='http://jabber.org/protocol/invisibility'
|
||||
targetNamespace='http://www.xmpp.org/extensions/xep-0186.html#ns'
|
||||
xmlns='http://www.xmpp.org/extensions/xep-0186.html#ns'
|
||||
elementFormDefault='qualified'>
|
||||
|
||||
<xs:element name='invisible' type='empty'/>
|
||||
|
Loading…
Reference in New Issue
Block a user