This document proposes an XMPP protocol extension to indicate the visual presence of an XMPP entity.
Introduction
Presence detection is a core part of the XMPP standard. The importance of locating co-workers and team members is critical in a distributed work environment; as anyone who has played phone tag or struggled with catching a co-worker in her office can confirm. XMPP has made activity tracking data available through presence messages, but this has not met the need for enhanced communication and collaboration among teams for a variety of reasons. In particular, its has not been very effective at enabling opportunistic or spontaneous interactions. XMPP presence is largely relied upon user, system or application input, rather than the natural tendency to strike up a conversation with someone you notice to not be otherwise engaged.This form of presence indicator does not provide any visual clues and cannot confirm if the user is actually at their deskl engaged in an exchange with someone else or otherwise engaged.
Studies of workplace communication show that most interaction occurs spontaneously for short periods of time. These unplanned interactions happen naturally when group members are co-located. Despite research from various disciplines showing the value of these informal interactions, evidence indicates that people in the workplace do not recognize their value. Workers tend to overuse formal meetings and underutilize impromptu communications relative to their value. Data indicates that without visual information about the availability of others, connection failure is high. More than 60% of business phone calls fail to reach their intended recipient. There is a need for visual presence detection for distributed collaboration networks.
Requirements
The Visual Presence extension is designed to meet the following requirements:
- Take a snapshot of a user's webcam and publish it via the <presence/> stanza as frequently as possible.
Protocol Description
User Publishes Visual Presence
Visual presence MUST be included as extended content within a standard XMPP presence stanza. This is consistent with the rule that presence stanzas must be related to the network availability or communication preferences of the entity that provides presence information.
Example 1. Contact Recieves Visual Presence from User
<presence from='juliet@capulet.com/balcony'>
<visual-presence xmlns='http://www.igniterealtime.org/xmlns/visual-presence'>
base64-encoded-jpeg-image
</visual-presence>
</presence>
The following rules apply to images:
The image SHOULD use less than eight kilobytes (8k) of data; this restriction is to be enforced by the publishing client.
The image height and width SHOULD be between thirty-two (32) and ninety-six (64) pixels; the recommended size is forty-eight (48) pixels high and sixty-four (64) pixels wide.
The image SHOULD be rectangular.
The image content type SHOULD be image/jpeg
The image data MUST conform to the base64Binary datatype and thus be encoded in accordance with Section 6.8 of RFC 2045, which recommends that base64 data should have lines limited to at most 76 characters in length. However, any whitespace characters (e.g., '\r' and '\n') MUST be ignored.
Deployment Notes
This specification applies exclusively to Jabber/XMPP clients and places no additional requirements on Jabber/XMPP servers.
Security Considerations
TODO
IANA Considerations
This document requires no interaction with the Internet Assigned Numbers Authority (IANA).
XMPP Registrar Considerations
Protocol Namespaces
The XMPP Registrar shall include 'http://www.igniterealtime.org/xmlns/visual-presence' in its registry of protocol namespaces.
XML Schemas
TODO
Notes
TODO