In computer and telecommunications networks, presence information is a status indicator that conveys ability and willingness of a potential communication partner—for example a user—to communicate. A user's client provides presence information (presence state) via a network connection to a presence service, which is stored in what constitutes his personal availability record (called a presentity) and can be made available for distribution to other users (called watchers) to convey his availability for communication. Presence information has wide application in many communication services and is one of the innovations driving the popularity of instant messaging or recent implementations of voice over IP clients.
A user client may publish a presence state to indicate its current communication status. This published state informs others that wish to contact the user of his availability and willingness to communicate. The most common use of presence today is to display an indicator icon on instant messaging clients, typically from a choice of graphic symbols with easy-to-convey meanings, and a list of corresponding text descriptions of each of the states. Even when technically not the same, the "on-hook" or "off-hook" state of called telephone is an analogy, as long as the caller receives a distinctive tone indicating unavailability or availability.
Common states on the user's availability are "free for chat", "busy", "away", "do not disturb", "out to lunch". Such states exist in many variations across different modern instant messaging clients. Current standards support a rich choice of additional presence attributes that can be used for presence information, such as user mood, location, or free text status.
The analogy with free/busy tone on PSTN is inexact, as the "on-hook" telephone status reflects the ability of the network to reach the recipient after the requester has initiated the conversation. The requester must commit to the connection method before discovering the recipient's availability state. Conversely, Presence shows the availability state before a conversation is initiated. A similar comparison might be the requester needing to know if the recipient is at work. The most straightforward way of checking if the recipient is available is to walk to the desk, which requires the commitment of the walk regardless of the outcome and usually requires some interaction if the recipient is at the desk. The requester can call first to save the walk, but now must commit to an interaction via phone. Presence gives the state of the recipient to the requester and the requester has the choice to interact with the recipient or use that information for non-interactive purposes (such as taking roll).
Presence becomes interesting for communication systems when it spans a number of different communication channels. The idea that multiple communication devices can combine state, to provide an aggregated view of a user's presence has been termed Multiple Points of Presence (MPOP). MPOP becomes even more powerful when it is automatically inferred from passive observation of a user's actions. This idea is already familiar to instant messaging users who have their status set to "Away" (or equivalent) if their computer keyboard is inactive for some time. Extension to other devices could include whether the user's cell phone is on, whether they are logged into their computer, or perhaps checking their electronic calendar to see if they are in a meeting or on vacation. For example, if a user's calendar was marked as out of office and their cell phone was on, they might be considered in a "Roaming" state.
MPOP status can then be used to automatically direct incoming messages across all contributing devices. For example, "Out of office" might translate to a system directing all messages and calls to the user's cell phone. The status "Do not disturb" might automatically save all messages for later and send all phone calls to voicemail.
XMPP, discussed below, allows for MPOP by assigning each client a "resource" (a specific identifier) and a priority number for each resource. A message directed to the user's ID would go to the resource with highest priority, although messaging a specific resource is possible by using the form user@domain/resource.
Presence is highly sensitive information and in non-trivial systems a presentity may define limits to which its presence information may be revealed to different watchers. For example, a worker may only want colleagues to see detailed presence information during office hours. Basic versions of this idea are already common in instant messaging clients as a "Blocking" facility, where users can appear as unavailable to selected watchers.
Presence, particularly MPOP, requires collaboration between a number of electronic devices (for example IM client, home phone, cell phone, and electronic calendar) and the presence services each of them are connected with. To date, the most common and wide-scale implementations use closed systems, with a SPOP (Single Point of Presence, where a single device publishes state). Some vendors have upgraded their services to automatically log out connected clients when a new login request reaches the server from a newly connecting different device. For presence to universally work with MPOP support, multiple devices must be able to not only intercommunicate among each other, the status information must also be appropriately handled by all other interoperable, connected presence services and the MPOP scheme for their clients.
2.5G and, even more so, 3G cell phone networks can support management and access of presence information services for mobile users cell phone handsets.
In the workplace, private messaging servers offer the possibility of MPOP within a company or work team.
Presence information is a growing tool towards more effective and efficient communication within a business setting. Presence information allows you to instantly see who is available in your corporate network, giving more flexibility to set up short-term meetings and conference calls. The result is precise communication that all but eliminates the inefficiency of phone tag or email messaging. An example of the time-saving aspect of presence information is a driver with a GPS; he/she can be tracked and sent messages on upcoming traffic patterns that, in return, save time and money.
According to IDC surveys, employees "often feel that IM gives their workdays the kind of 'flow' that they feel when sitting directly among their colleagues, being able to ask questions of them, and getting the kind of quick responses that allow them to drive on to the next task". This phenomenon has been called the "Presence Effect" in contrast to its predecessor the "water cooler" effect, whereby this level of flow was only thought to be achieved in person.
With presence information, privacy of the users can become an issue. For example, when an employee is on his/her day off they are still connected to the network and have greater ability to be tracked down. Therefore, a concern of presence information is to determine how far the companies want to go with staying connected.
There was, and still is, significant work done in several working groups on achieving a standardization for presence-related protocols.
In 1999, a group called the Instant Message and Presence Protocol (IMPP) working group (WG), was formed within the Internet Engineering Task Force organization (IETF) in order to develop protocols and data formats for simple presence and instant messaging services. Unfortunately, IMPP WG was not able to come to consensus on a single protocol for presence. Instead it issued a common profile for presence and instant messaging (CPP) which defined semantics for common services of presence to facilitate the creation of gateways between presence services. Thus any two CPP-compatible presence protocol suites are automatically interoperable.
In 2001, the SIMPLE working group was formed within IETF to develop a suite of CPP-compliant standards for presence and instant messaging applications over the Session Initiation Protocol (SIP). The SIMPLE activity specifies extensions to the SIP protocol which deal with a publish and subscribe mechanism for presence information and sending instant messages. These extensions include rich presence document formats, privacy control, "partial publications" and notifications, past and future presence, watcher information and more. Despite its name, SIMPLE is far from simple. It is described in about 30 documents on more than 1,000 pages. This is in addition to the complexity of the SIP protocol stack on which SIMPLE is based.
At the end of 2001, Nokia, Motorola, and Ericsson formed the Wireless Village (WV) initiative to define a set of universal specifications for mobile Instant Messaging and Presence Services (IMPS) and presence services for wireless networks. In October 2002, Wireless Village was consolidated into the Open Mobile Alliance (OMA) and a month later released the first version of the XML-based OMA Instant Messaging and Presence Service (IMPS). IMPS defines a system architecture, syntax, and semantics for representation of presence information and a set of protocols for the four primary features: presence, IM, groups, and shared content. Presence is the key, enabling technology for the IMPS.
The XML-based XMPP or Extensible Messaging and Presence Protocol was designed and is currently maintained by the XMPP Standards Foundation. This IM protocol, which is a robust and widely extended protocol, is also the protocol used in the commercial implementation of Google Talk and Facebook Chat. In October 2004, the XMPP working group at IETF published the documents RFC 3920, RFC 3921, RFC 3922 and RFC 3923, to standardize the core XMPP protocol.