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.

  1. 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.

  2. 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 terminate a Playerunless a specific media provider guarantees this using other means.

  3. 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.

  4. 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.

  5. 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.

  6. BeginTerminateon an object can complete synchronously if it is called after the object is already terminated.