This documentation is archived and is not being maintained.

Presence and Enhanced Presence

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

Presence, in general, indicates a user's availability, capability, and willingness to communicate with other users. The presence knowledge helps to facilitate users to participate in real-time communications with each other. A user's presence status provides contextual information to help others decide if and how they should contact the user, for example, by instant messaging, audio/video calls, or e-mail. Presence helps to encourages instant communication when it is possible and can provide additional information about why instant communications with a user is not possible. A user must publish his or her presence information to make it available to other users. The other users must subscribe to the specified presence to receive the published presence data.

In the Office Communications Server 2007-based unified communications system, an enhanced presence model is introduced and the delivery of the presence information is supported by a more robust and flexible publication and subscription framework. The main features of the enhanced presence model include:

  • Enhanced presence information. This includes enhanced presence status and other presence-related information, such as a user's contact information or calendar information. Enhanced presence status is determined by a combination of a user's availability and willingness to communicate with others. It can also indicate the user's capability and provide contextual information about the user's readiness to communicate. A user is available if the user is online and willing to communicate with others; an inactive user may or may not be available, whereas a user who is stepped out (or away) cannot be summoned to communicate and is, thus, unavailable. A user already busy in a call or in a meeting is less willing to accept invitation to new calls and can be effectively inactive. An unwilling user (who has put out a sign of Do Not Disturb) is definitely unavailable. The enhanced presence status helps other users make more informed decisions to initiate a new communication. Communicator show enhanced presence status as Available, Busy, in a Call, in a Conference call, in a Meeting, Do Not Disturb, Urgent interruption only, Away or Be Right Back, Inactive, Busy (Inactive), Offline, Presence Unknown, and Blocked.
  • Automatic sensing of activities. This is made possible by clients or devices publishing the presence status on behalf of a user whenever a user activity or machine state changes. Presence publication amounts to clients, including devices, pushing specified presence information to a specified container created and maintained by the server. The presence statuses from different sources are then aggregated to show the user's overall or effective presence status. The server distributes new publications to other users who have elected to subscribe to the published presence information, in accordance with the prescribed access control permissions enacted on the container.
  • Access control to published presence data. Access control to published enhanced presence is supported using containers. An enhanced presence container holds a list of presence data and a list of subscribers permitted to receive the contained (that is, published) presence data. A container, thus, prescribes a mapping to stipulate who can access which presence information and functions very much like an access control list. Containers provide a flexible authorization model for a user to control the amount of presence information that can be accessed by others. Each container has a container ID, which can be used to correlate with the level of access. For example, Communicator defines five access levels as Public, Company, Team, and Personal, and Blocked to control the access to the enhanced presence it publishes. These access levels correspond to five special containers with the container ID assigned to 100, 200, 300, 400, and 32000, respectively. A container is created and maintained by the server. For containers other than the special ones, the access level semantics (that is, the mapping details) are determined or can be modified by a client. Thus, if your client is to interoperate with Communicator, make sure you do not change the access level semantics of these containers. If your client is to interoperate another existing client, you need to understand access level semantics of the containers already used by the other client.
  • Interruption management. A user can set the presence status to Do Not Disturb if the user does not want to be disrupted by unwanted incoming invitations.
  • Multiple points of presence. A user can log on to a network using multiple endpoints by, for example, using desktop computer, a laptop computer, and an IP phone. In this case, an aggregation of the presence statuses of all the endpoints (including the situation in which there is only one endpoint) produces a single user presence status made available to other users. The aggregation is performed by the server and applies to the presence statuses published to container 2 or 3 specifically targeted by the server aggregation script. The server in turn publishes the resultant aggregated presence status to containers 100, 200, and 400 for the presence states originated from container 2 and publishes the aggregation result from container 3 to container 300.
  • Extensible presence status. Administrator can create as many as four custom presence status values and indicators specific to their deployment of Office Communications Server. For details about creating a custom presence status, see the Microsoft Office Communicator 2007 Deployment Guide (
  • Integration with Office applications. The enhanced presence model is becoming ubiquitous across Microsoft Office applications, so that users cannot only see each other's presence status while working in Office applications, but they can also initiate communication such as IM and phone calls from within the Office applications. For example, a user can right-click another user's presence icon from the To line in Office Outlook or from the Modified By column on a SharePoint Web site and then send an instant message or place a call to that user. Because presence is integrated throughout Office applications, users can initiate communication without leaving the application in which they are currently working.

The cornerstone of this enhanced presence system is a category-based data model supported by Office Communications Server 2007. A category prescribes an application-defined data type (ADT) that can be used to represent a type of presence data or any other application data. A category instance is characterized by the category name and the value as well as other attributes such as the instance ID, version number, holding container, and expiration time. Individual presence data is represented by the value of a category instance. The category instance value is an XML blob. The XML format is application specific. This document describes the XML format of the enhanced presence schemas defined and used by Office Communications Server 2007 and Office Communicator 2007. The category instance value is opaque to the server in the sense that it is never parsed by the server. An exception is the state category, which the server uses for aggregation.

The enhanced presence schemas discussed here represent the presence data defined and used by Office Communicator 2007 as well as those by the server management applications. Unless presence data is encapsulated by an underlying API, such as Microsoft Unified Communications Client API, any unified communications client must follow the schemas to create and parse the enhanced presence data if it is to interoperate with Communicator or to receive the configuration information through in-band provisioning from the server.