lineForward 函数 (tapi.h)

lineForward 函数根据指定的转发指令转发指定行上指定地址的转发调用。 当转发源地址 (dwAddressID) 时,该地址的指定传入呼叫将通过开关偏转到另一个号码。 此函数提供向前和请勿打扰功能的组合。 此函数还可以取消当前生效的转发。

语法

LONG lineForward(
  HLINE                   hLine,
  DWORD                   bAllAddresses,
  DWORD                   dwAddressID,
  LPLINEFORWARDLIST const lpForwardList,
  DWORD                   dwNumRingsNoAnswer,
  LPHCALL                 lphConsultCall,
  LPLINECALLPARAMS const  lpCallParams
);

参数

hLine

线路设备的句柄。

bAllAddresses

指定是转发行上的所有发源地址还是仅转发指定的地址。 如果 为 TRUE,则转发行上的所有地址并忽略 dwAddressID ;如果 为 FALSE,则仅转发指定为 dwAddressID 的地址。

dwAddressID

要转发其传入呼叫的指定行上的地址。 如果 bAllAddressesTRUE,则忽略此参数。

地址标识符与地址永久关联;标识符在操作系统升级中保持不变。

lpForwardList

指向可更改大小的数据结构的指针,该结构描述 LINEFORWARDLIST 类型的特定转发指令。

dwNumRingsNoAnswer

呼叫被视为“无应答”之前的响铃数。如果 dwNumRingsNoAnswer 在范围外,则实际值设置为允许范围内最接近的值。

lphConsultCall

指向 HCALL 位置的指针。 在某些电话环境中,此位置加载了咨询呼叫的句柄,该句柄用于咨询要转接的一方,应用程序将成为此呼叫的初始唯一所有者。 即使在呼叫转接不需要咨询呼叫的环境中,此指针也必须有效。 如果未创建咨询调用,则此句柄设置为 NULL

lpCallParams

指向 LINECALLPARAMS 类型的结构的指针。 除非 lineForward 要求建立对转发目标 (调用并返回 lphConsultCall ,否则将忽略此指针,在这种情况下 ,lpCallParams 是可选的) 。 如果 为 NULL,则使用默认调用参数。 否则,指定的调用参数用于建立 hConsultCall

返回值

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

LINEERR_INVALLINEHANDLE、LINEERR_NOMEM、LINEERR_INVALADDRESSID、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALADDRESS、LINEERR_OPERATIONFAILED、LINEERR_INVALCOUNTRYCODE、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALPOINTER、LINEERR_STRUCTURETOOSMALL、LINEERR_INVALPARAM、LINEERR_UNINITIALIZED。

注解

成功转发仅表示服务提供商已接受请求,而不是在交换机上设置了转发。 LINE_ADDRESSSTATE (转发) 消息确认已在交换机上设置转发。

) 地址 (转发一直有效,直到再次调用此函数。 最新的转发列表将替换旧的转发列表。 可以通过将 NULL 指针指定为 lpForwardList 来取消转发。 如果为转发列表中的某个条目指定 NULL 目标地址,则该操作将充当 do-not-打扰。

地址的转发状态也可能受到外部影响;例如,通过交换机上的管理操作,或者由另一个工作站中的用户执行。 服务提供商可能无法意识到此状态更改,并且可能无法与交换机已知的转发状态保持同步。

由于服务提供商可能不知道地址“肯定” (的转发状态,因此它可能已以未知方式转发或未转发) ,因此 lineForward 会成功,除非它未能设置新的转发指令。 换句话说,请求在实际上没有转发时取消所有转发是成功的。 这是因为没有“不可预知”,只能更改上一组转发指令。

此操作的成功或失败不取决于前一组转发指令,在设置不同的转发指令时也是如此。 在设置新的转发指令之前,提供程序应“不预知一切”。 由于这在模拟电话环境中可能需要一些时间,因此提供商可能还希望将当前转发与新转发进行比较,并且仅向交换机发出指令以进入最终状态, (使未更改的转发不受影响) 。

LINEFORWARDLISTdwNumEntries 设置为零时调用 lineForward 与提供 NULLlpForwardList 参数的效果相同。 它取消当前生效的所有转发。

要求

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

另请参阅

转发概述

LINECALLPARAMS

LINEFORWARDLIST

LINE_ADDRESSSTATE

LINE_REPLY

补充行服务函数

TAPI 2.2 参考概述