mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-24 18:22:24 -05:00
659b8b11a0
git-svn-id: file:///home/ksmith/gitmigration/svn/xmpp/trunk@1124 4b5297f7-1745-476d-ba37-a9c6900126ab
155 lines
7.7 KiB
XML
155 lines
7.7 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<!DOCTYPE xep SYSTEM 'xep.dtd' [
|
|
<!ENTITY % ents SYSTEM 'xep.ent'>
|
|
%ents;
|
|
]>
|
|
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
|
|
<xep>
|
|
<header>
|
|
<title>Attention</title>
|
|
<abstract>This document defines an XMPP protocol extension for getting the attention of another user.</abstract>
|
|
&LEGALNOTICE;
|
|
<number>0224</number>
|
|
<status>Experimental</status>
|
|
<type>Standards Track</type>
|
|
<sig>Standards</sig>
|
|
<approver>Council</approver>
|
|
<dependencies>
|
|
<spec>XMPP Core</spec>
|
|
<spec>XEP-0030</spec>
|
|
</dependencies>
|
|
<supersedes/>
|
|
<supersededby/>
|
|
<shortname>NOT YET ASSIGNED</shortname>
|
|
<author>
|
|
<firstname>Andreas</firstname>
|
|
<surname>Monitzer</surname>
|
|
<email>andy@monitzer.com</email>
|
|
<jid>andy@monitzer.com</jid>
|
|
</author>
|
|
<revision>
|
|
<version>0.1</version>
|
|
<date>2007-08-08</date>
|
|
<initials>psa</initials>
|
|
<remark><p>Initial published version.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.0.1</version>
|
|
<date>2007-07-03</date>
|
|
<initials>am</initials>
|
|
<remark><p>Initial version.</p></remark>
|
|
</revision>
|
|
</header>
|
|
<section1 topic='Introduction' anchor='intro'>
|
|
<p>Even though a client might be available (as stated in the most recent presence stanza) the user this client belongs to might not have the focus on the client currently. &xep0132; defines a method for a physical test of user presence. Since this requires special hardware that can not be assumed to be available, this XEP defines a software-only implementation where no direct feedback is expected. This is known as 'nudge' or 'buzz' in some legacy IM protocols.</p>
|
|
<p>It was discussed whether this should be part of &xep0085;. However, the semantics are inherently different, since it describes the sender's state, not a request to change the receiver's. Thus, a separate extension is desirable.</p>
|
|
</section1>
|
|
<section1 topic='Requirements' anchor='reqs'>
|
|
<p>The specification addresses remotely getting the user's attention in a more assertive way than simple text messages.</p>
|
|
</section1>
|
|
<section1 topic='Protocol' anchor='protocol'>
|
|
<p>In the following conversation, a user talks to somebody, but this user doesn't respond. The second inquiry includes an attention extension.</p>
|
|
<example caption="User sends a regular message"><![CDATA[
|
|
<message from='calvin@usrobots.lit/lab' to='herbie@usrobots.lit/home' type='chat'>
|
|
<body>All right, then, Herbie, give! We're waiting.</body>
|
|
</message>
|
|
]]></example>
|
|
<p>When no reply is received, the sending user might want to grab the other's attention. This is done by sending a message that includes an <attention/> element qualified by the 'http://www.xmpp.org/extensions/xep-0224.html#ns' namespace &NSNOTE;. Note: The message may or may not include a &BODY; element.</p>
|
|
<example caption="User tries to capture the other's attention"><![CDATA[
|
|
<message from='calvin@usrobots.lit/lab' to='herbie@usrobots.lit/home' type='headline'>
|
|
<attention xmlns='http://www.xmpp.org/extensions/xep-0224.html#ns'/>
|
|
<body>Why don't you answer, Herbie?</body>
|
|
</message>
|
|
]]></example>
|
|
<p>Finally, the receiving user notices the urgency of the message and responds.</p>
|
|
<example caption="The user whose attention has been captured responds."><![CDATA[
|
|
<message from='herbie@usrobots.lit/home' to='calvin@usrobots.lit/lab' type='chat'>
|
|
<body>I cannot. You know I cannot! Dr. Bogert and Dr. Lanning don't want me to.</body>
|
|
</message>
|
|
]]></example>
|
|
</section1>
|
|
<section1 topic='Business Rules' anchor='rules'>
|
|
<p>The following rules apply to generating and processing of the attention extension.
|
|
<ol>
|
|
<li>Before sending an attention message stanza, the client MUST confirm support for it in the other client as described under <link url='#disco'>Determining Support</link>.</li>
|
|
<li>The message stanza containing the attention extension MAY contain a body and/or other extensions, which is to be displayed along with executing the attention event.</li>
|
|
<li>In message stanzas containing either &xep0203; data, attention extensions MUST be ignored, since this is an instant event which should not be replayed after a delay.</li>
|
|
<li>Messages containing an attention extension SHOULD use the headline message type to avoid offline storage.</li>
|
|
<li>Using the attention extension in &IQ; stanzas is not desirable, since this is part of the conversation.</li>
|
|
</ol>
|
|
</p>
|
|
</section1>
|
|
<section1 topic='Determining Support' anchor='disco'>
|
|
<p>If an entity supports receiving the attention extension, it MUST advertise that fact in its responses to &xep0030; information ("disco#info") requests by returning a feature of "http://www.xmpp.org/extensions/xep-0224.html#ns":</p>
|
|
<example caption='A disco#info query'><![CDATA[
|
|
<iq type='get'
|
|
from='calvin@usrobots.lit/lab'
|
|
to='herbie@usrobots.lit/home'
|
|
id='disco1'>
|
|
<query xmlns='http://jabber.org/protocol/disco#info'/>
|
|
</iq>
|
|
]]></example>
|
|
<example caption='A disco#info response'><![CDATA[
|
|
<iq type='result'
|
|
from='herbie@usrobots.lit/home'
|
|
to='calvin@usrobots.lit/lab'
|
|
id='disco1'>
|
|
<query xmlns='http://jabber.org/protocol/disco#info'>
|
|
...
|
|
<feature var='http://www.xmpp.org/extensions/xep-0224.html#ns'/>
|
|
...
|
|
</query>
|
|
</iq>
|
|
]]></example>
|
|
<p>In addition, support for receiving attention extensions in message stanzas can be determined through the dynamic profile of Service Discovery defined in &xep0115;.</p>
|
|
</section1>
|
|
<section1 topic='Implementation Notes' anchor='impl'>
|
|
<p>The implementation of the alert is up to the developer. Possible behavior is:</p>
|
|
<ul>
|
|
<li>Shaking the window.</li>
|
|
<li>Playing a specific sound not used for any other event.</li>
|
|
<li>Flashing the screen.</li>
|
|
<li>Enabling external hardware such as flashlights.</li>
|
|
<li>Let it be user customizable.</li>
|
|
</ul>
|
|
<p>However, since some users might not want this feature to disturb them, a client SHOULD enable the user to disable support. When the feature is disabled, it MUST NOT be advertised in disco#info.</p>
|
|
<p>Rate-limiting might be desirable in some implementations.</p>
|
|
<p>Formal feedback in response to the attention request to the requesting user is not specified, and so the request might be silently dropped.</p>
|
|
</section1>
|
|
<section1 topic='Security Considerations' anchor='security'>
|
|
<p>It is recommended that only message stanzas containing attention extensions from peers on the user's roster are accepted. Finer grained control might be implemented.</p>
|
|
</section1>
|
|
<section1 topic='IANA Considerations' anchor='iana'>
|
|
<p>This document requires no interaction with &IANA;.</p>
|
|
</section1>
|
|
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
|
<section2 topic='Protocol Namespaces' anchor='ns'>
|
|
<p>Until this specification advances to a status of Draft, its associated namespace shall be "http://www.xmpp.org/extensions/xep-0224.html#ns"; upon advancement of this specification, the ®ISTRAR; shall issue a permanent namespace in accordance with the process defined in Section 4 of &xep0053;.</p>
|
|
</section2>
|
|
</section1>
|
|
<section1 topic='XML Schema' anchor='schema'>
|
|
<code><![CDATA[
|
|
<?xml version='1.0' encoding='UTF-8'?>
|
|
|
|
<xs:schema
|
|
xmlns:xs='http://www.w3.org/2001/XMLSchema'
|
|
targetNamespace='http://www.xmpp.org/extensions/xep-0224.html#ns'
|
|
xmlns='http://www.xmpp.org/extensions/xep-0224.html#ns'
|
|
elementFormDefault='qualified'>
|
|
|
|
<xs:element name='attention' type='empty'/>
|
|
|
|
<xs:simpleType name='empty'>
|
|
<xs:restriction base='xs:string'>
|
|
<xs:enumeration value=''/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
</xs:schema>
|
|
]]></code>
|
|
</section1>
|
|
<section1 topic='Acknowledgements' anchor='ack'>
|
|
<p>The quotes have been taken from Isaac Asimov's short story "Liar!" as published in the book <cite>The Complete Robot</cite>.</p>
|
|
</section1>
|
|
</xep>
|