This documentation is archived and is not being maintained.

Managing 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.

Enhanced Presence includes basic presence availability plus extended contact information, Additional telephone numbers, and location. Enhanced Presence management tasks include publishing presence, subscribing to presence, and querying for presence. These tasks support the collaboration functionality on which a Unified Communications Client (UCC) API platform is built. Collaboration depends on the availability of user presence information. To collaborate with a remote user, a local user first needs to know that the remote user is available for collaboration as well as the best way to reach the remote user. This presence availability can only be seen by a remote user when the local user has published presence.

A subscriber is a user who has made a one-time query for the publishing user's presence or subscribed to the publishing user's presence.

A UCC API Platform client such as a custom client or Microsoft Office Communicator is provisioned with a local user's presence categories when the client is registered with Office Communications Server. For more information about provisioning, see In-Band Provisioning.

A local user can control the viewing audience for this published presence using the Access Control List (ACL) container associated with the published presence category. By default, some of the presence information discussed previously is available to all users. When subscribing users are given higher presence access levels, more presence information is granted. For more information about presence access levels, see Container as Access Control List.

A presence entity (also known as a "presentity") is the owner of a presence category. A presence category owner is a user who published a given presence category. When creating a subscription request, a client must specify a presence category owner so that OCS can provide that owner's enhanced categories in the subscription response. This is done by adding a presentity to the subscription object's collection of presentities. An instance of IUccPresentity encapsulates a presentity. OCS returns presence categories by presentity, for each presentity added to the collection.

The local user's own presentity can be added to a special subscription known as a "self-subscription". In this case, the presentity collection of the self-subscription can only contain a single presentity, that of the local user. The returned categories are those published by the local user.

With self-subscribing functionality, a client receives individual roaming configuration data, a user contact list, and groups. The contact list received in a self-subscription contains only the identities of remote users but does not contain enhanced presence. See Managing Remote Contacts for information about obtaining the enhanced presence of contact list members.

The request for presence categories can be either a one-time request or a long-lived request. The long-lived request is known as a Subscribe request and the one-time request is known as a Query. The long-lived request expires when the local endpoint is signed out of OCS. As long as a subscription is active, the client continues to receive updates to the subscribed user's presence.

A subscription consists of a list of "what" and "who" objects. That is, to make a subscription requests, the IUccSubscription object must contain a list of categories of interest and a list of the publishers of interest. Each publisher is represented by a IUccPresentity object. The asynchronous response to a subscription request is a set of category data for each presentity in the presentity collection of the subscription object.

For more information about subscription, see Category Subscription. To learn about creating a subscription request, see Subscribe to Category Instances for a detailed look at the process.

A query for published category data is a one-time request for self-published or published data. Unlike the subscription, which is a static request, the query is a request on Office Communications Server made a single time and responded to once. If the queried category data is modified by the publisher after the query response is returned, the local client must make the query again to see updated category data. The query is normally used when a local client requests to be provisioned with static server configuration category data. A client can also use the query to receive published presence of a remote user a single time without adding the remote user to the contact list. The asynchronous response to a query raises the same events as the subscribe request. For this reason, the programming pattern to handle a query response is the same as a subscription response. It is not necessary to create a separate set of callback functions for the query on the subscription object.

For information about performing a query against Office Communications Server, see Query Category Instances

Publication involves adding or removing a publishable category instance to a publication object and calling the Publish method. The Office Communications Server API platform implicitly assigns the enabled endpoint URI as the publishing user. To make his presence known to remote users, a user must publish personal presence data to at least one container. In addition to collaborative presence information, the user must publish personal categories to receive them as roaming data later. This is known as self-publishing.

One of the typical features implemented by a client is the contact list. This list is filled whenever a user logs on to Office Communications Server because the client has subscribed to the self-published contacts category. Subscriptions are created by the client and sent to the server using a subscription manager represented by the IUccSubscriptionManager interface.