2.4.2.10 Call Transfer
The Telephony SPI provides two mechanisms for call transfer: blind transfer and consultation transfer. In blind transfer (or single-step transfer), an existing call is transferred to a specified destination address in one phase using TSPI_lineBlindTransfer. Under a consultation transfer, the existing call is first prepared for transfer using TSPI_lineSetupTransfer. This places the existing call on consultation hold, and identifies the call as the target for the next transfer completion request. TSPI_lineSetupTransfer also allocates a consultation call that can be used to establish the consultation call with the party to be transferred to. The TAPI DLL can dial the extension of the destination party on the consultation call (using TSPI_lineDial), or it can drop and deallocate the consultation call and instead activate an existing held call (using TSPI_lineUnhold), if supported by the switch.
While the initial call is on consultation hold and the consultation call is active, the TAPI DLL can toggle between these calls via TSPI_lineSwapHold.
Finally, the TAPI DLL completes the transfer in one of two ways using TSPI_lineCompleteTransfer:
- Transfer the call on transfer hold to the destination party. Both calls are cleared from the line (i.e., they transition to the idle state) but remain valid.
- Enter a three-way conference. A new call handle is created to represent the conference and this handle is returned to the TAPI DLL.
TSPI_lineSetupTransfer
Prepares a specified call for transfer to another address.
TSPI_lineCompleteTransfer
Transfers a call that was set up for transfer to another call, or enter a three-way conference.
TSPI_lineBlindTransfer
Transfers a call that was set up for transfer to another call.
TSPI_lineSwapHold
Swaps the active call with the call currently on consultation hold.