Receiving In-Band Provisioning Data
The enhanced presence publication and subscription infrastructure is also used to roam configuration data via the so-called in-band provisioning. The data includes server configuration, location profile, various policies, as well as user settings. It is stored on the server but needed by a client at various stages in an application.
At the protocol level, receiving the provisioning data involves submitting a SUBSCRIBE request whose payload contains names of specified provisiong groups. The results are returned as the provisioning groups containing the specified provisioning data.
The unified communications API, such as Microsoft Unified Communications Managed API (UCMA) 3.0, exposes such in-band provisioning data through various API objects. This section discusses how some of the in-band provisioning data can be processed using UCMA.
In Microsoft Unified Communications Managed API (UCMA) 3.0, the provisioning data are encapsulated by a LocalEndpoint object. You can obtain the publication grammars by reading the ContainerManifest and CategoryPublicationManifest properties on the LocalOwnerPresence instance of the established endpoint.
LocalEndpoint endpoint = …;
string cpm = localEndpoint.LocalOwnerPresence.CategoryPublicationManifest;
string cm = localEndpoint.LocalOwnerPresence.ContainerManifest;
You can receive the cached values of the other provisioning data are accessible by calling the GetProvisioningData method on the LocalEndpoint instance.
ProvisionData provData = endpoint.GetProvisioningData();
To query the latest provisioning data on the server, you can make an asynchronous call to BeginGetProvisioningData/EndGetProvisioningData.
localEndpoint.EndGetProvisioningData(localEndpoint.BeginGetProvisioningData(null, null));