lineSetupTransfer 函数 (tapi.h)

lineSetupTransfer 函数启动由 hCall 参数指定的调用的传输。 它建立了一个咨询呼叫 lphConsultCall,该呼叫方可以成为转移目的地。 应用程序获取 lphConsultCall 参数的所有者权限。

语法

LONG lineSetupTransfer(
  HCALL                  hCall,
  LPHCALL                lphConsultCall,
  LPLINECALLPARAMS const lpCallParams
);

参数

hCall

要转移的调用的句柄。 应用程序必须是呼叫的所有者。 hCall 的调用状态必须已连接

lphConsultCall

指向 hCall 句柄 的指针。 然后,此位置会加载一个标识临时咨询呼叫的句柄。 设置转接呼叫时,将自动分配咨询呼叫,使 lineDial 能够拨打与呼叫的新转接目标关联的地址。 发起方可以在完成转移之前通过此咨询呼叫进行对话。 hConsultCall 的调用状态不适用。

此传输过程对于某些线路设备可能无效。 应用程序可能需要忽略新的咨询呼叫,并使用 lineUnhold) 取消现有保留呼叫 (以标识转移目标。 在支持跨地址呼叫转移的交换机上,咨询呼叫可以存在于与要转移的呼叫不同的地址上。 可能还需要将咨询呼叫设置为一个全新的呼叫,通过 lineMakeCall 到转移目的地。 呼叫的地址功能中指定了可用的传输形式。

lpCallParams

指向 LINECALLPARAMS 结构的指针,该结构包含建立咨询调用时要使用的调用参数。 如果不需要特殊的调用设置参数,则可以将此参数设置为 NULL

返回值

如果函数以异步方式完成,则返回一个正请求标识符;如果发生错误,则返回负错误号。 如果函数成功,则相应LINE_REPLY消息的 dwParam2 参数为零;如果发生错误,则为负错误数。 可能的返回值为:

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

注解

lineSetupTransfer 函数设置 hCall 指定的调用的传输。 转移的设置阶段会建立一个咨询呼叫,使应用程序能够发送目标地址 (要转移到交换机的一方) ,同时保留要转移的呼叫。 此新呼叫称为 (hConsultCall) 的咨询呼叫,可以独立于原始呼叫删除或以其他方式操作。

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

虽然存在咨询调用,但原始调用通常会转换为 onholdPendingTransfer 状态。 应用程序可以使用 lineSwapHold 在咨询呼叫和原始呼叫之间切换。 可以通过调用 lineDrop 来取消咨询呼叫。 在放弃咨询呼叫后,原始呼叫通常会转换回 连接 状态。 如果原始调用的调用状态为 onholdPendingTransfer,则 lineUnhold 函数可用于恢复调用。 在这种情况下,咨询呼叫的呼叫状态设置为 空闲

应用程序还可以使用 lineBlindTransfer 在一个步骤中转移呼叫,而无需处理干预的咨询呼叫。

要求

   
目标平台 Windows
标头 tapi.h
Library Tapi32.lib
DLL Tapi32.dll

另请参阅

LINECALLPARAMS

LINE_REPLY

补充行服务函数

TAPI 2.2 参考概述

传输概述

lineBlindTransfer

lineCompleteTransfer

lineDial

lineDrop

lineMakeCall

lineSwapHold

lineUnhold