TSPI_lineCompleteTransfer (Compact 2013)
3/26/2014
This function completes the transfer of the specified call to the party connected in the consultation call. If the dwTransferMode parameter is LINETRANSFERMODE_CONFERENCE, the original call handle is changed to a conference call. Otherwise, the service provider should send call state messages changing the calls to idle.
Syntax
LONG TSPIAPI TSPI_lineCompleteTransfer(
DRV_REQUESTID dwRequestID,
HDRVCALL hdCall,
HDRVCALL hdConsultCall,
HTAPICALL htConfCall,
LPHDRVCALL lphdConfCall,
DWORD dwTransferMode
);
Parameters
- dwRequestID
Identifier of the asynchronous request.
- hdCall
Service provider's handle to the call to be transferred. The call state of hdCall can be onHoldPendingTransfer*.*
- hdConsultCall
Handle to the call that represents a connection to the destination of the transfer. The call state of hdConsultCall can be connected, ringback, busy, or proceeding.
- htConfCall
This parameter is only valid if dwTransferMode is specified as LINETRANSFERMODE_CONFERENCE. The service provider must save this parameter value and use it in all subsequent calls to the LINEEVENT procedure reporting events on the call. Otherwise this parameter is ignored.
- lphdConfCall
A pointer to an HRDVCALL representing the service provider's identifier for the call. This parameter is only valid if dwTransferMode is specified as LINETRANSFERMODE_CONFERENCE. The service provider must fill this location with its handle for the new conference call before returning from this function.
- dwTransferMode
Value that specifies how the initiated transfer request is to be resolved. This parameter uses one of the LINETRANSFERMODE_ constants.
Return Value
Returns dwRequestID or an error number if an error occurs. The lResult actual parameter of the corresponding ASYNC_COMPLETION is zero if the function succeeds or an error number if an error occurs. The following table shows the return values for this function.
Value |
Description |
---|---|
LINEERR_INVALCALLHANDLE |
The handle to the call is invalid. |
LINEERR_OPERATIONUNAVAIL |
The operation is unavailable. |
LINEERR_INVALCALLSTATE |
The call state is invalid. |
LINEERR_OPERATIONFAILED |
The operation failed. |
LINEERR_NOMEM |
Not enough memory is available. |
LINEERR_RESOURCEUNAVAIL |
The resource is unavailable. |
Remarks
This function completes the transfer of the original call, hdCall, to the party currently connected through hdConsultCall. The consultation call is typically dialed on the consultation call allocated as part of the TSPI_lineSetupTransfer function but it can be any call to which the switch is capable of transferring hdCall.
The transfer request can be resolved either as a transfer or as a three-way conference call. When resolved as a transfer, the parties connected through hdCall and hdConsultCall are connected to each other, and both hdCall and hdConsultCall transition to the idle state.
When resolved as a conference, all three parties enter into a conference call. Both existing call handles remain valid, but transition to the conferenced state. A conference call handle is created and returned, and it transitions to the connected state.
It may also be possible to perform a blind transfer of a call using the TSPI_lineBlindTransfer function.
This function differs from the corresponding TAPI function in that it follows the TSPI model for beginning the lifetime of a call. TAPI and the service provider exchange opaque handles representing the call with one another. In addition, the service provider is permitted to do callbacks for the new call before it returns from this procedure. In any case, the service provider must also treat the handle it returned as "not yet valid" until after the matching ASYNC_COMPLETION function reports success. In other words, it must not issue any LINEEVENT message for the new call or include it in call counts in messages or status data structures for the line.
Requirements
Header |
tspi.h |
Library |
CellTSP.dll |
See Also
Reference
TSPI Line Device Functions
LINEEVENT
TSPI_lineBlindTransfer
TSPI_lineCloseCall
TSPI_lineSetupTransfer