TSPI_lineSetTerminal 函数 (tspi.h)

TSPI_lineSetTerminal 函数使 TAPI 能够指定要路由到与指定线路、地址或呼叫相关的终端信息。 此操作可以在线路上进行调用时使用,以便根据需要将事件路由到不同的设备。

语法

LONG TSPIAPI TSPI_lineSetTerminal(
  DRV_REQUESTID dwRequestID,
  HDRVLINE      hdLine,
  DWORD         dwAddressID,
  HDRVCALL      hdCall,
  DWORD         dwSelect,
  DWORD         dwTerminalModes,
  DWORD         dwTerminalID,
  DWORD         bEnable
);

参数

dwRequestID

异步请求的标识符。

hdLine

线条的句柄。

dwAddressID

给定开行设备上的地址。 地址标识符与地址永久关联;标识符在操作系统升级中保持不变。 调用此函数时,TAPI 不会验证此参数。

hdCall

调用的句柄。 如果 dwSelect 为LINECALLSELECT_CALL) ,则调用状态可以是 (的任何状态。

dwSelect

指定是针对线路、地址还是仅针对指定的呼叫请求终端设置。 如果指定了线路或地址,则事件要么应用于线路或地址本身,要么充当线路或地址上所有新调用的默认初始设置。 此参数使用 LINECALLSELECT_常量之一。

dwTerminalModes

类 (es) 要路由到给定终端的低级别事件。 对此参数使用 LINETERMMODE_常量 之一。

dwTerminalID

要路由给定事件的终端设备的设备标识符。 终端标识符是介于 0 到 dwNumTerminals 减 1 之间的小整数,其中 dwNumTerminals 和每个终端能够处理的终端模式由 LINEDEVCAPS 中的服务提供商指示。

注意 这些终端标识符与其他设备标识符无关,由服务提供商通过设备功能定义。 调用此函数时,TAPI 不会验证此参数。
 

bEnable

如果 为 TRUE则 dwTerminalID 有效,并且指定的事件类将路由到该终端或从该终端路由。 如果 为 FALSE,则不会将这些事件路由到 dwTerminalID 或从 dwTerminalID 路由这些事件。 调用此函数时,TAPI 不会验证此参数。

返回值

如果发生错误,则返回 dwRequestID 或错误号。 如果函数成功,则相应ASYNC_COMPLETIONlResult 实际参数为零;如果发生错误,则为错误号。 可能的返回值如下所示:

LINEERR_INVALLINEHANDLE、LINEERR_INVALTERMINALID、LINEERR_INVALADDRESSID、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALCALLHANDLE、LINEERR_NOMEM、LINEERR_INVALCALLSELECT、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALTERMINALMODE、LINEERR_OPERATIONFAILED。

注解

如果由于资源过度使用而无法完成操作,或者由于硬件限制或服务提供程序/设备驱动程序限制而设置了过多的终端,则服务提供商将返回LINEERR_RESOURCEUNAVAIL。

TAPI 可以使用此操作将某些类的低级别行事件路由到指定的终端设备,或完全禁止这些事件的路由。 例如,语音可以路由到单独的音频 I/O 设备 (头戴显示设备) ,灯和显示事件可以路由到本地电话设备,按钮事件和铃声事件可以完全抑制。

呼叫进度音和/或消息将路由到媒体所在的同一位置。 例如,如果音频信号将发送到电话,则忙碌信号 (模拟) 或 Q.931 消息也指示忙碌 (数字) 。

服务提供商必须确定 dwSelectdwTerminalModes 的组合是否合法。

可以随时调用此操作,即使在给定线路设备上调用处于活动状态时也是如此。 例如,这允许用户从使用本地手机集切换到另一个音频 I/O 设备。

可以多次调用此函数,以将相同的事件同时路由到多个终端。 若要将事件重新路由到其他终端,TAPI 建议应用程序首先禁用到现有终端的路由,然后将事件路由到新终端。 但是,服务提供商应尽最大努力以任何顺序适应应用程序的请求。

终端标识符分配由服务提供商进行, LINEDEVCAPS 指示服务提供商可用的终端标识符。 不支持此类事件路由的服务提供商指示它们没有终端设备, (LINEDEVCAPS 中的 dwNumTerminals 设置为零) 。

线路或地址上的 LineSetTerminal 会影响该线路或地址上的所有现有呼叫,但不会影响其他地址上的呼叫。 它还设置该线路或地址上将来调用的默认值。 某个线路或地址在任意时间有多个连接呼叫处于活动状态,对于每个呼叫,其路由可能不同。

如果当前未将这些事件路由到该终端或从该终端路由,则禁用低级别事件到终端的路由,就不需要生成错误,只要函数成功后,指定的事件就不会路由到该终端或从该终端路由。

要求

要求
目标平台 Windows
标头 tspi.h

另请参阅

ASYNC_COMPLETION

LINECALLSELECT_常量

LINETERMMODE_常量