TSPI_lineCompleteTransfer 函数 (tspi.h)

TSPI_lineCompleteTransfer函数完成对咨询呼叫中连接的方的指定呼叫的转移。 如果 dwTransferMode LINETRANSFERMODE_CONFERENCE,则原始呼叫句柄将更改为电话会议。 否则,服务提供商应发送将呼叫更改为 空闲的呼叫状态消息。

语法

LONG TSPIAPI TSPI_lineCompleteTransfer(
  DRV_REQUESTID dwRequestID,
  HDRVCALL      hdCall,
  HDRVCALL      hdConsultCall,
  HTAPICALL     htConfCall,
  LPHDRVCALL    lphdConfCall,
  DWORD         dwTransferMode
);

参数

dwRequestID

异步请求的标识符。

hdCall

服务提供商对要转移的调用的句柄。 hdCall 的调用状态可以是 onHoldPendingTransfer

hdConsultCall

调用的句柄,表示与传输目标的连接。 hdConsultCall 的调用状态可以是连接回拨忙碌继续

htConfCall

仅当 dwTransferMode 指定为LINETRANSFERMODE_CONFERENCE时,此参数才有效。 服务提供商必须保存此参数值,并在对 LINEEVENT 过程报告调用事件的所有后续调用中使用它。 否则,将忽略此参数。

lphdConfCall

指向 HDRVCALL 的指针,表示服务提供商的调用标识符。 仅当 dwTransferMode 指定为LINETRANSFERMODE_CONFERENCE时,此参数才有效。 服务提供商在从此函数返回之前,必须使用新电话会议呼叫的句柄填充此位置。

dwTransferMode

指定如何解析发起的传输请求。 此参数使用 LINETRANSFERMODE_常量之一。

返回值

如果发生错误,则返回 dwRequestID 或错误号。 如果函数成功,相应ASYNC_COMPLETIONlResult 实际参数为零;如果发生错误,则为错误号。 可能的返回值如下所示:

LINEERR_INVALCALLHANDLE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCALLSTATE、LINEERR_OPERATIONFAILED、LINEERR_NOMEM、LINEERR_RESOURCEUNAVAIL。

注解

此函数完成将原始调用 hdCall 转移到当前通过 hdConsultCall 连接的一方。 咨询呼叫通常在 TSPI_lineSetupTransfer分配的咨询呼叫上拨打,但它可以是交换机能够将 hdCall 转移到的任何呼叫。

转移请求可以作为转移或三方电话会议解决。 解析为传输时,通过 hdCallhdConsultCall 连接的参与方相互连接, hdCallhdConsultCall 将转换为空闲状态。

解析为会议后,所有三方都进入电话会议。 这两个现有呼叫句柄仍然有效,但转换为 会议 状态。 创建并返回会议呼叫句柄,并转换为 连接 状态。

还可以使用 TSPI_lineBlindTransfer 执行调用的盲转。

此函数不同于相应的 TAPI 函数,因为它遵循 TSPI 模型,以开始调用的生存期。 TAPI 和服务提供商交换不透明的句柄,表示相互调用。 此外,允许服务提供商在从此过程返回之前对新调用执行回调。 在任何情况下,服务提供商还必须将其返回的句柄视为“无效”,直到匹配 ASYNC_COMPLETION 消息报告成功。 换句话说,它不得为新调用发出任何 LINEEVENT 消息,也不得将其包含在该行的消息或状态数据结构中的呼叫计数中。

要求

要求
目标平台 Windows
标头 tspi.h

另请参阅

ASYNC_COMPLETION

LINEEVENT

LINETRANSFERMODE_常量

LINE_CALLSTATE

TSPI_lineBlindTransfer

TSPI_lineCloseCall

TSPI_lineSetupTransfer