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
Playerwill not be terminated when a conversation is
terminated. It is the responsibility of the application to
Playerunless a specific media provider guarantees this using
- 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.
BeginTerminatewill 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
BeginTerminatemultiple times. However, a second call to
BeginTerminatewhile a previous call is pending will not
complete until the component is actually terminated.
BeginTerminateon an object can complete synchronously if it
is called after the object is already terminated.