Shutdown and Termination
This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.
This topic discusses general behavior when components in the Unified Communications Managed API 2.0 Core SDK are terminated, as well as behavior that is expected in applications written using the UCMA 2.0 Core SDK.
When a component is terminated, it is responsible for terminating all contained subcomponents. For example, terminating the platform causes all endpoints to be terminated. Terminating an endpoint terminates all conversations. Terminating a conversation terminates all calls, conference sessions, media flows, and any pending conference invitations. Terminating a conference session terminates all MCU sessions.
Terminating a conversation may not result in the termination of components that serve the conversation but might be shared with other conversations. For example, a Player will not be terminated when a conversation is terminated. It is the responsibility of the application to terminate a Player unless a specific media provider guarantees this using other means.
A component will not complete a terminate operation until all contained components and pending operations are completed. The component is responsible for maintaining the pending operations to be terminated when the component is terminated.
BeginTerminate will not throw an exception unless it is passed an invalid argument. For example, the signaling headers collection passed may contain invalid or disallowed headers and an exception is thrown even before the operation can start.
It is permissable to call BeginTerminate multiple times. However, a second call to BeginTerminate while a previous call is pending will not complete until the component is actually terminated.
BeginTerminate on an object can complete synchronously if it is called after the object is already terminated.