The Network endpoints are the agents that Microsoft Lync uses internally in the UCMA applications to represent the users’ agents in code by creating instances or objects of the UserEndpoint class or the ApplicationEndpoint class and can handle all operations that concern a single user agent with the assistant of other related classes.
UCMA application can run without any endpoints, but it would not be able to do any useful services or tasks because the application would have no SIP user agents to send or receive messages. Therefore, any useful UCMA application must when starting up initialize and establish at least one user endpoint or application endpoint.
The UserEndpoint class allows an application to perform communication operations on behalf of a single Lync Server user. When established, the user endpoint always registers with Lync Server and retrieves presence and contact information for specific user. Through the UserEndpoint class, you can perform contact and contact group operations as well as publish a presence, but because the user endpoint represents a single user, an application cannot use it to perform trusted operations such as impersonating another Lync Server user.
The UserEndpoint class is best suited for an application that acts on behalf of a number of different existing users simultaneously such as Web – based client applications (like Communicator Web Access)
We can use it also in Contact and Group Operations to perform contact list operations and Publishing presence information for a user which automatically assigns access control information and instance IDs to presence elements.
The user endpoint is not as robust in recovering from connection failures as the application endpoint, so it is less appropriate for server applications that must be highly available. When a user endpoint loses connectivity with Lync Server, it attempts to re-register with Lync Server once, but if this attempt fails it gives up and makes no further attempts to recover the connection.
The ApplicationEndpoint class is acts for highly available server applications that provide a service to many different users simultaneously. It does not represent an individual user, it has a separate identity defined by a Contact object in Active Directory such as Automatic call distributors and Message broadcasting
Because an application endpoint is automatically trusted by Lync Server, it is able to “impersonate” any individual user in order to perform communications operations on behalf of that user.
The ApplicationEndpoint class is able to load – balance connections across several frontend servers. In addition, it is more persistent than the UserEndpoint class in recovering connectivity with Lync Server. When an application endpoint loses its connection to Lync Server, it goes into the Reestablishing state and tries to regain its connection with the server until it succeeds, regardless of how long it remains without a connection.
The application endpoint ’ s trusted status with Lync server allows it to perform conference operations that would otherwise be restricted to conference leaders, as well as some special operations that cannot be performed at all through the Lync client. It can also join conferences as a trusted participant; in this state, it is not shown in the conference roster and has the same rights as a conference leader.
Application endpoints are not able to perform any contact operations, nor can they publish presence.