lineForwardA 函数 (tapi.h)

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

语法

LONG lineForwardA(
  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 目标地址,则该操作将充当不打扰。

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

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

此操作的成功或失败不取决于前面的转发指令集,在设置不同的转发指令时也是如此。 在设置新的转发说明之前,提供程序应“不先行一切”。 由于这可能需要在模拟电话环境中花费一些时间,因此提供商可能还需要将当前转发与新转发进行比较,并且只向开关发出指令以进入最终状态(不会受到影响的未更改转发)。

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

注意

tapi.h 标头将 lineForward 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
目标平台 窗户
标头 tapi.h
Tapi32.lib
DLL Tapi32.dll

另请参阅

转发概述

LINECALLPARAMS

LINEFORWARDLIST

LINE_ADDRESSSTATE

LINE_REPLY

补充线服务函数

TAPI 2.2 参考概述