The UseRegistration property on the ApplicationEndpointSettings object is one of those critical details that you always forget, much the same way you always forget your checkbook or library card at home the one time you actually need it. UseRegistration determines whether an ApplicationEndpoint will register with Office Communications Server, allowing it to publish and subscribe to presence information. By default, the property is set to false, and the ApplicationEndpoint does not register with the server.
UserEndpoints always register, so with those you can publish and subscribe presence with gleeful abandon; but if you want to do the same with an ApplicationEndpoint, you need to sneak in something like the following when building your ApplicationEndpointSettings, before instantiating the ApplicationEndpoint:
appEndpointSettings.UseRegistration = true;
Note that the ApplicationEndpoint itself has a UseRegistration property, but it’s read-only, so you have to set it on the settings object.
Unlike the library, which might trust you with a couple books even if you left your card on the kitchen table, Office Communications Server won’t cut you any slack if you miss that one little setting. Try to subscribe to the presence of another endpoint without it, and your subscription will go into WaitingToRetry status and however much it tries and tries it will never succeed. Bit of a downer, huh?
Show some compassion for those poor, hapless ApplicationEndpoints. Use Registration.
This long-awaited volume on Unified Communications development, which covers the Office Communicator Automation API and the Unified Communications Managed API (both Core and Workflow SDKs), has been released and is shipping. You can get your copy at Amazon.com, and check out some excerpts while you’re waiting for it to arrive. The book was written by Microsoft employees with intimate knowledge of the APIs and their insides, and promises to be an informative read.