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.
Categories are abstract data types supported by Microsoft Office Communications Server. They can be used to define data types for presence, contacts, and other application-specific data. A specific piece of data (such as the availability state of a user, a contact of the user, or a note that the user wants to display for a presence subscriber) is represented by an instance of a category. For a detailed description of categories and Enhanced Presence in Unified Communications, see [MS-PRES], section 18.104.22.168 “Publishing Categories.”
In general, a data provider is responsible for defining or choosing the schemas of categories used in a Unified Communications client. However, a data consumer must understand the schemas to interpret the data meaningfully and process the data correctly. The server, which manages and stores the data, treats the data as an opaque blob. The data provider is also known as a publisher of category instances and the data consumer is known as a subscriber of category instances.
The category name defines a type of data. It functions as an identifier of the contract between the publisher and subscriber of the given information type. The name describes the nature of the published data and implies an agreed-up schema for how the data should be interpreted. The category model is extensible in that categories are defined by a client and are not restricted by the server.
Category names are arbitrary strings in the same way an URI string is arbitrary. The category string can be thought of as the label of a category. In the case of a custom category containing GPS data, you can call the category something like GPSData. It is best to create a category name that relates in some way to the kind of data the category contains. Examples of well-known Office Communicator presence categories include:
- Status — the basic presence status [offline | away | busy | in a meeting | online].
- ContactInfo — information about how to contact the publisher, such as telephone numbers.
- OfflineNote — an offline presence note.
- OofMessage — an out-of-office message.
To avoid namespace collision, it is recommended that a publisher use a namespace prefix for custom-defined category names. For example, Office Communicator defines a contacts category for contact information. An application developer can use, for example, myApp.contacts, as the name of a category for custom contact information of a different schema.
Unified Communications Client API defines a category context as a collection of category instances of a specified category name, which are published by a given publisher and can be subscribed to by subscribers granted with a specific access level. The publisher is known as the presentity of the category context and the subscriber access level is determined by the container or containers of the category instances.
In Unified Communications Client API, category context is exposed by the IUccCategoryContext interface. This programming structure enables an application to deal with the abstract concept of category programmatically. For more information, see Category Subscription.
Categories must be registered with Office Communications Server before they can be published and subscribed to. For security reasons, the registration must be done by an administrator of the server.
Office Communications Server provisions a client with a collection of previously self-published categories in a special category named categories. A user can discover all of the categories of data he has previously published. For more information, see Category Subscription.
Access Control of Category Instances
A publisher might want certain users, but not others, to access the published category instances. Office Communications Server supports access control of category instances by means of containers. A container holds a collection of category instances and a list of members who are allowed to access the contained category instances. A publisher enables the access control by publishing category instances in specified containers.
Published containers are provided by Unified Communications Server in a strongly typed category. The name of this special category is containers and an instance of the containers category is the individual container. The set of container instances as a collection represents the currently available containers. The publishing user must choose an existing container from the set or the user can create a new custom container.
If a Unified Communications Client API client wants to interoperate with Microsoft Office Communicator, another Unified Communications Client API client, the client must understand and use the same category schema defined by Office Communicator. Unified Communications Client API also exposes more a strongly typed category instance API to help an application developer work with presence-related and contacts-related common categories defined by Office Communicator. Use of such interfaces still requires the knowledge of the corresponding category names. For more information, see Category Instances for Presence and Category Instances for Contacts and Groups.