# Cooperative call processing

Natural Access provides the capability for two or more applications to cooperate in processing a call. In this type of cooperative environment, one application can create a call object, and a second application can release it. Each application obtains its own call handles to use when sharing call objects.

A call object is created when an outbound call is placed with nccPlaceCall, or when an inbound call generates NCCEVN_SEIZURE_DETECTED. Applications use call handles to reference call objects.

For more information on shared objects, refer to the Natural Access Developer's Reference Manual.

## Obtaining call handles

An application can obtain call handles by

- Invoking nccPlaceCall to initiate an outbound call.

- Receiving any NCC event associated with a call. The objHd field contains the call handle.

- Invoking ctaAttachObject and passing the object descriptor.

- Specifying a sufficiently sized buffer when invoking nccGetLineStatus.

## Releasing call handles

When a call enters the disconnected state, the application can invoke nccReleaseCall to release the call. NCCEVN_CALL_RELEASED is passed to the application and the call handle on the application side is destroyed. Function calls that are passed a released call handle or an uninitialized call handle return CTA_INVALID_HANDLE.