# 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 NaturalAccess 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.

Note: Supervised call transfer is not supported in all variants. The application can determine if the protocol supports this state by examining the NCC_CAP_SUPERVISED_TRANSFER bit in the capabilitymask returned by nccQueryCapability. For QSIG, set the CC_USE_PATH_REPLACEMENT out calls behavior bit so that nccTransferCall invokes the path replacement supplementary service instead of the transfer service.

#### See also

nccAutomaticTransfer