Platform SDK: TAPI |
The transfer operation allows an application to send a currently connected communications session to a different address.
TAPI provides two mechanisms for transferring a current session to a different address. Blind transfer allows an existing session to be transferred to a specified destination address in one phase. Consultation transfer requires the existence of a consultation session in addition to the current session to set up for the transfer, and then completion of the transfer.
The choice between these two types is frequently based on service provider capabilities because some service providers do not support blind transfer. In some cases, application needs may make the consultative transfer the preferred method even where blind transfer is possible.
The blind transfer operation is basically the same under TAPI 2 and TAPI 3, but consultative transfer follows slightly different patterns.
TAPI 2 consultative transfer starts with invoking lineSetupTransfer, which places the existing call on consultation hold, and identifies this call as the target for the next transfer-completion request. The lineSetupTransfer function also allocates a consultation call that can be used to establish the consultation call with the party to which the call will be transferred. The application can dial the extension of the destination party on the consultation call (using lineDial), or it can drop and deallocate the consultation call and instead activate an existing held call (using lineUnhold), if supported by the switch.
While the initial call is on consultation hold and the consultation call is active, the application can toggle between these calls using lineSwapHold.
Finally, a TAPI 2 application completes the transfer in one of two ways using lineCompleteTransfer:
In TAPI version 2.0 and later, applications can use the "one-step transfer" feature of many PBXs (a single button press to establish a consultation transfer) using LINECALLPARAMFLAGS_ONESTEPTRANSFER with lineSetupTransfer.
TAPI 3 consultative transfer starts with using ITAddress::CreateCall to create the consultation call to the new destination address. ITBasicCallControl::Transfer is used to set up the transfer. ITBasicCallControl::Finish completes the transfer.
The application must release session resources following the successful completion of a transfer operation.
Not all service providers support use of this operation.
TAPI 2: lineBlindTransfer, lineSetupTransfer, lineCompleteTransfer
TAPI 3: ITBasicCallControl::BlindTransfer, ITAddress::CreateCall, ITBasicCallControl::Transfer, ITBasicCallControl::Finish