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
要转发其传入呼叫的指定行上的地址。 如果 bAllAddresses 为 TRUE,则忽略此参数。
地址标识符与地址永久关联;标识符在操作系统升级中保持不变。
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 会成功,除非它未能设置新的转发指令。 换句话说,请求在实际上没有转发时取消所有转发是成功的。 这是因为没有“不可预知”,只能更改上一组转发指令。
此操作的成功或失败不取决于前一组转发指令,在设置不同的转发指令时也是如此。 在设置新的转发指令之前,提供程序应“不预知一切”。 由于这在模拟电话环境中可能需要一些时间,因此提供商可能还希望将当前转发与新转发进行比较,并且仅向交换机发出指令以进入最终状态, (使未更改的转发不受影响) 。
当 LINEFORWARDLIST 的 dwNumEntries 设置为零时调用 lineForward 与提供 NULLlpForwardList 参数的效果相同。 它取消当前生效的所有转发。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | tapi.h |
Library | Tapi32.lib |
DLL | Tapi32.dll |