I wanted to share an approach you can use to find out your endpoint’s capabilities and policy settings through UCMA code. To give you an example of where this can be useful, imagine you have an application that creates conferences or provides services to conferences, and in order to work it needs to be able to invite anonymous participants. If the endpoint has this capability turned off in meeting policy, the application will fail or exhibit strange behaviour. You might already have exception handling to deal with the situations where the application tries to do something that’s prohibited by policy, but by that time your application is already running. By querying policy information, you can confirm that the necessary settings are there when your application starts and avoid unpleasant surprises later.

All of this policy information is included in a single class called ProvisioningData. This class has a few different properties which expose dictionaries packed full of key/value pairs with useful details on what the endpoint can and can’t do.

To get a ProvisioningData object, all you need to do is call GetProvisioningData on your endpoint, like so:

ProvisioningData provisioningData = _endpoint.GetProvisioningData();

Whether it’s an application endpoint or user endpoint doesn’t matter; it works the same way.

Next, you can examine the dictionaries attached to the different policy objects, such as ProvisioningData.MeetingPolicy, to get the information you’re looking for:

Using these many policy settings that are included in the provisioning data, you can check that all the capabilities you need are enabled for your application, and show a meaningful error message if they aren’t.

Leave a Reply

Note: Comment moderation is in use because of excessive spam. Your comment may not appear immediately.