<?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>Last User Interaction in Presence</title>
  <abstract>This specification defines a way to communicate time of last user interaction with her system using XMPP presence notifications.</abstract>
  &LEGALNOTICE;
  <number>0319</number>
  <status>Experimental</status>
  <type>Standards Track</type>
  <sig>Standards</sig>
  <dependencies>
    <spec>XMPP Core</spec>
    <spec>XMPP IM</spec>
    <spec>XEP-0082</spec>
  </dependencies>
  <supersedes>
    <spec>XEP-0256</spec>
  </supersedes>
  <supersededby/>
  <shortname>idle</shortname>
  &tobias;
  <revision>
    <version>0.2</version>
    <date>2013-08-27</date>
    <initials>tobias</initials>
    <remark><p>Fix issues raised in XMPP Council meeting.</p></remark>
  </revision>
  <revision>
    <version>0.1</version>
    <date>2013-03-04</date>
    <initials>psa</initials>
    <remark><p>Initial published version approved by the XMPP Council.</p></remark>
  </revision>
  <revision>
    <version>0.0.1</version>
    <date>2013-02-17</date>
    <initials>tobias</initials>
    <remark><p>Initial version.</p></remark>
  </revision>
</header>
<section1 topic='Introduction' anchor='intro'>
  <p>This protocol describes a way to communicate time of last user interaction with other XMPP entities over presence stanzas. User interaction refers to a human end user interacting with her device by means of keyboard, mouse, touch and so on. Based on this information XMPP clients can display the time a contact went idle or how for how long a contact has been idle. Thereby end users can get a hunch on the expected responsiveness of their contacts.</p>
  <p>The described protocol uses absolute timestamps indicated as value of the 'since'-attribute in the <![CDATA[<idle>]]>-tag. The time, represented in the 'since'-attribute, is to be formatted according to &xep0082;.</p>
</section1>
<section1 topic='Use Cases' anchor='usecases'>
  Generally there are two main use cases for this extension explained in more detail in the following sections.
  <section2 topic='Presence with Last Interaction' anchor='last-interact'>
  <p>After a user has not interacted with her device for some amount of time the user wants to inform her contacts about this fact. For this the client sends a presence stanza with time of last interaction.</p>
  <example caption='Time of Last User Interaction in Auto-Away'><![CDATA[
<presence from='juliet@capulet.com/balcony'>
  <show>away</show>
  <idle xmlns='urn:xmpp:idle:1' since='1969-07-21T02:56:15Z'/>
</presence>
    ]]></example>
  <p>The amount of time after a client sends this enhanced presence is not set in stone but 5 minutes is suggested as a sensible default value.</p> 
  </section2>
  <section2 topic='Presence Indicating User Coming Back From Idle' anchor='back-from-idle'>
    The moment a user comes back and uses her device again the client can inform user's contacts by sending a normal presence stanza like shown in the following example.
    <example caption='Presence Indicating Return to Device'><![CDATA[
<presence from='juliet@capulet.com/balcony' />
    ]]></example>
  </section2>
</section1>
<section1 topic='Security Considerations' anchor='security'>
  <p>Including a last user interaction notation in presence notifications can enable those who receive such notifications to determine exactly when a user has stopped interacting with his or her XMPP client or even their system, but this information is in essence already available if the user publishes timely presence updates. Therefore, this specification introduces no new vulnerabilities.</p>
  <p>It's worth to note that the security considerations of <cite>XEP-0082</cite> apply here.</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'>
  <p>This document requires no interaction with the &REGISTRAR;.</p>
</section1>
</xep>
