lineCompleteTransfer 函数 (tapi.h)
lineCompleteTransfer 函数完成对咨询呼叫中连接的方的指定调用的转移。
语法
LONG lineCompleteTransfer(
HCALL hCall,
HCALL hConsultCall,
LPHCALL lphConfCall,
DWORD dwTransferMode
);
参数
hCall
要转移的调用的句柄。 应用程序必须是此调用的所有者。 hCall 的调用状态必须为 onHold 或 onHoldPendingTransfer。
hConsultCall
表示与传输目标的连接的调用的句柄。 应用程序必须是此调用的所有者。 hConsultCall 的调用状态必须是已连接、回拨、忙碌或继续。
lphConfCall
指向可以返回 hCall 句柄的内存位置的指针。 如果 dwTransferMode LINETRANSFERMODE_CONFERENCE,则会在 lphConfCall 中返回新创建的电话会议,并且应用程序将成为会议呼叫的唯一所有者。 否则,TAPI 将忽略此参数。
dwTransferMode
如何解决发起的转移请求。 此参数使用 LINETRANSFERMODE_常量之一。
返回值
如果函数以异步方式完成,则返回一个正请求标识符;如果发生错误,则返回负错误号。 如果函数成功,则相应LINE_REPLY消息的 dwParam2 参数为零;如果发生错误,则为负错误数。 可能的返回值为:
LINEERR_INVALCALLHANDLE、LINEERR_NOTOWNER、LINEERR_INVALCALLSTATE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCONSULTCALLHANDLE、LINEERR_OPERATIONFAILED、LINEERR_INVALTRANSFERMODE、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALPOINTER、LINEERR_UNINITIALIZED、LINEERR_NOMEM。
注解
为响应 对 lineCompleteTransfer 函数的调用而发送的LINE_REPLY消息基于 hCall 参数指定的调用的状态。
此操作完成将原始调用 hCall 转移到当前由 hConsultCall 连接的一方。 咨询呼叫通常在 作为 lineSetupTransfer 的一部分分配的咨询呼叫上拨号,但它可以是交换机能够转移 hCall 的任何呼叫。
转移请求可以作为转移或三方电话会议解决。 解析为传输时, hCall 和 hConsultCall 连接的参与方相互连接, hCall 和 hConsultCall 通常会从应用程序的行中清除并转换为 空闲 状态。 传输完成后,应用程序的调用句柄将保持有效。 当应用程序不再对转移的调用感兴趣时,必须使用 lineDeallocateCall 解除分配其句柄。
解析为会议后,所有三方都进入电话会议。 两个现有呼叫句柄都保持有效,但转换为 会议 状态。 创建并返回会议呼叫句柄,并转换为 连接 状态。
如果 lineGetConfRelatedCalls 在 lineCompleteTransfer 之后立即调用,结果呼叫已召开, 则 lineGetConfRelatedCalls 可能不会返回相关调用的完整列表。 这是因为 TAPI 等待接收 LINE_CALLSTATE 消息,指示呼叫已进入LINECALLSTATE_CONFERENCED,然后才认为呼叫实际上是会议的一部分。 也就是说,它等待服务提供商确认会议状态。 应用程序收到LINE_CALLSTATE消息后, lineGetConfRelatedCalls 将返回完整信息。
还可以使用 lineBlindTransfer 执行呼叫的盲转。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | tapi.h |
Library | Tapi32.lib |
DLL | Tapi32.dll |