TSPI_lineSetupTransfer 函数 (tspi.h)

TSPI_lineSetupTransfer 函数启动由 hdCall 指定的调用的传输。 它建立了一个咨询电话 ,lphdConsultCall,可以拨打该方,可以成为转移目的地。

语法

LONG TSPIAPI TSPI_lineSetupTransfer(
  DRV_REQUESTID          dwRequestID,
  HDRVCALL               hdCall,
  HTAPICALL              htConsultCall,
  LPHDRVCALL             lphdConsultCall,
  LPLINECALLPARAMS const lpCallParams
);

参数

dwRequestID

异步请求的标识符。

hdCall

要转移的调用的句柄。 hdCall 的呼叫状态可以连接

htConsultCall

新的临时咨询呼叫的 TAPI 句柄。 服务提供商必须保存此内容,并将其用于对新咨询呼叫中 LINEEVENT 过程报告事件的所有后续调用。

lphdConsultCall

指向 HDRVCALL 的指针,表示新咨询呼叫的服务提供商标识符。 在此过程返回之前,服务提供商必须使用新咨询呼叫的句柄填充此位置。 如果函数导致错误,TAPI 将忽略此句柄。 hdConsultCall 的调用状态不适用。

设置呼叫转接时,系统会自动分配另一个呼叫 (咨询呼叫) ,使应用程序能够通过 TAPI) (使用呼叫转接方 TSPI_lineDial) ( 拨打地址。 发起方可以在完成转移之前通过此咨询电话进行对话。

此传输过程对某些线路设备可能无效。 TAPI 可能需要使用TSPI_lineUnhold) 来取消保留现有的保留呼叫 (以标识转移的目标,而不是调用此过程。 在支持跨地址呼叫转移的交换机上,咨询呼叫可以存在于与要转移的呼叫不同的地址上。 可能还需要使用TSPI_lineMakeCall将咨询呼叫设置为使用 接目的地的全新呼叫。

LINEADDRESSCAPS 数据结构中的 transferHeldtransferMake 标志报告服务提供商使用的模型。

lpCallParams

指向 LINECALLPARAMS 结构的指针,该结构包含建立咨询调用时要使用的调用参数。 如果不需要特殊调用设置参数,则此参数可以设置为 NULL , (服务提供商使用默认值) 。

返回值

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

LINEERR_INVALCALLHANDLE、LINEERR_INVALBEARERMODE、LINEERR_INVALCALLSTATE、LINEERR_INVALRATE、LINEERR_CALLUNAVAIL、LINEERR_INVALCALLPARAMS、LINEERR_NOMEM、LINEERR_INVALLINESTATE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALMEDIAMODE、LINEERR_OPERATIONFAILED、LINEERR_INUSE、LINEERR_RESOURCEUNAVAIL、LINEERR_NOMEM、LINEERR_BEARERMODEUNAVAIL、LINEERR_RATEUNAVAIL、LINEERR_INVALADDRESSMODE、LINEERR_USERUSERINFOTOOBIG。

注解

如果要转移的调用未处于有效状态,则服务提供商将返回LINEERR_INVALCALLSTATE。

此操作设置 由 hdCall 指定的呼叫的转移。 转移的设置阶段会建立一个咨询呼叫,以将目标 (要转移到) 的一方发送到交换机,同时保留要转接的呼叫。 此新呼叫称为 hdConsultCall) (咨询呼叫,可以 (操作,例如,独立于原始呼叫丢弃) 。

当咨询呼叫达到 拨号 呼叫状态时,TAPI 可以通过拨打目标地址并跟踪其进度或取消保留现有呼叫来继续转移呼叫。 使用 TSPI_lineCompleteTransfer 完成对所选目标的原始调用的转移。

虽然存在咨询呼叫,但原始调用通常转换为 onholdPendingTransfer 状态。

TSPI_lineUnhold函数可以恢复调用状态为 onHoldPendingTransfer 的调用。 如果完成此操作,任何咨询呼叫通常会进入 空闲 状态。

在遵循 transferHeldtransferMake 转接模型的电话环境中,此过程返回LINEERR_OPERATIONFAILED且不分配咨询呼叫句柄。

可以通过调用 TSPI_lineDrop 来取消咨询呼叫。 在放弃咨询呼叫后,原始呼叫通常会转换回 连接 状态。

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

要求

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

另请参阅

LINEADDRESSCAPS

LINECALLPARAMS

LINE_CALLSTATE

TSPI_lineBlindTransfer

TSPI_lineCompleteTransfer

TSPI_lineDial

TSPI_lineDrop

TSPI_lineSwapHold

TSPI_lineUnhold