Use registration for presence operations with ApplicationEndpoints
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.