Call Transfer
The Telephony SPI provides two mechanisms for call transfer: blind transfer and consultation transfer.
-
Blind transfer (or single-step transfer) An existing call is transferred to a specified destination address in one phase using TSPI_lineBlindTransfer. This function transfers a call that was set up for transfer to another call.
-
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 tapi32.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, tapi32.dll can toggle between these calls with TSPI_lineSwapHold. It swaps the active call with the call currently on consultation hold.
Finally, tapi32.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; they transition to the idle state, but they remain valid.
-
Enter a three-way conference. A new call handle is created to represent the conference and this handle is returned to tapi32.dll.