A registration-based endpoint can publish data so that other registration-based endpoints can subscribe to that data. In addition to signaling sessions, Unified Communications Managed API version 1.0 also supports a low-level subscription session used by one entity to receive data or updates published by another entity.
A subscription session is represented by a SipSubscription class. The data can be any of the schemas agreed on by the publisher and subscriber. The publication and subscription protocol is hidden from the signaling layer, and the data is opaque to the server. A client application is responsible for processing publication or subscription data.
In Microsoft Office Communications Server 2007, publishable data is represented by a programming concept known as categories, and the data values are represented by category instances. The metadata for the category includes the category’s instance number, version, expiration type, and other information.
Categories are intended to help a client organize and manage published or subscribed data. A client can use category instances for publishing and subscribing to data when Office Communications Server 2007 is used as the SIP proxy or for interoperating with Microsoft Office Communicator 2007 or other compatible clients.
In Unified Communications Managed API version 1.0, publication involves making a service request containing the to-be-published data as the message body. A service request is encapsulated by the SipServiceRequest class. Making the request is equivalent to sending a message of the Service type as defined in MessageType.
Subscription involves specifying what kind of published data the application is interested in receiving, implementing the ISipSubscriptionProcessor interface, creating a SipSubscription class, and sending the SUBSCRIBE method to the SIP proxy by calling Subscribe or BeginSubscribe.