# nccTransferCall

Performs a supervised transfer or a two channel transfer.

#### Prototype

DWORD nccTransferCall ( NCC_CALLHD callhd1, NCC_CALLHD callhd2, void *transferparms )

Argument | Description
callhd1 | Handle of a call to be transferred.
callhd2 | Handle of a call to be transferred.
transferparms | A pointer to a protocol-dependent Natural Access call transfer parameter structure. Protocol-independent applications can pass NULL for this argument to use the defaults. See the protocol-specific documentation for details. If you are doing a supervised transfer for SIP, set transferparms to SIP_SUPERVISED_TRANSFER.

#### Return values

Return value | Description
SUCCESS |
CTAERR_INVALID_HANDLE | A call handle is not valid. It may have been released.
CTAERR_INVALID_STATE | The line is not in the appropriate state to invoke this function Returned only in supervised transfer.
CTAERR_SVR_COMM | A server communication error occurred.
NCCERR_INVALID_CALL_STATE | In supervised transfer, one call must be in the connected state and be on hold. The other call must be in the connected state and not be on hold. If these conditions are not satisfied, this error code is returned.
NCCERR_NO_CALLID | Could not find a call identifier for a two channel transfer.
NCCERR_NOT_CAPABLE | The protocol does not support the capability to perform a supervised transfer or a two channel transfer.

#### Events

Event | Description
--- | ---
NCCEVN_CALL_DISCONNECTED | In a supervised transfer, this event is received twice: once for each call. In a two channel transfer, this event is received twice if the transfer is successful.
NCCEVN_PROTOCOL_ERROR | In a two channel transfer, this event is received if call transfer fails. The value field contains NCC_PROTERR_TCT_FAILED. The size field contains the protocol-specific reason code. For more information, refer to the protocol-specific documentation.

#### Details

nccTransferCall performs a supervised call transfer or a two channel call transfer. For details, refer to Supervised transfer and Two channel transfer.

Not all protocols support supervised transfer or two channel transfer. The application can determine if the protocol supports this state by examining the NCC_CAP_SUPERVISED_TRANSFER bit or the NCC_CAP_TWOCHANNEL_TRANSFER bit in the capabilitymask returned by nccQueryCapability.

#### See also

nccAutomaticTransfer