使用 lineSetTerminal 函数,应用程序可以控制或禁止将指定的低级别事件(在交换机和工作站之间交换)路由到设备。 使用 lineSetTerminal,应用程序指定将这些事件(如线路、地址或调用媒体流事件)路由到的终端设备。
可以单独控制不同类事件的路由,从而允许为每个事件类指定单独的终端。 事件类包括灯、按钮、显示、响铃、挂钩开关和媒体流。
例如,如果服务提供商和硬件能够这样做,呼叫(例如语音)的媒体流可以发送到任何传感器设备。 一般来说, 意味着与 TAPI 中的 挂钩开关 设备相同,这是麦克风和扬声器。 从开关到手机的响铃事件可以映射到计算机的屏幕上的视觉警报,也可以将其路由到手机设备。 灯事件和显示事件可以忽略或路由到手机设备(它似乎充当普通手机集)。 最后,在手机设备上按下按钮可能会或可能不会传递到线路。 在任何情况下,来自该线的低级别信号路由不会影响 TAPI 的线条部分的作,后者始终将低级别事件映射到其功能等效项。 若要确定线路设备具有可用的终端(及其功能),请使用 lineGetDevCaps咨询线路设备的功能。
假设应用程序已禁止路由所有事件(lineSetTerminal),并且用户选择头戴显示设备作为当前 I/O 设备。 传入呼叫发送 LINE_CALLSTATE 消息,以及带有 响铃 指示的 LINE_LINEDEVSTATE 消息。 由于所有事件的路由都已取消,因此不会将响铃事件路由到手机,因此将取消响铃。 相反,应用程序会在头戴显示设备中向用户发出弹出对话框和系统蜂鸣声通知用户。
用户决定接听呼叫。 由于用户的当前 I/O 设备是头戴显示设备,因此电话应用程序在传入呼叫上调用 lineSetTerminal,以便将呼叫的媒体路由到头戴显示设备并接听呼叫。 应用程序还可以调用 lineSetTerminal 来路由灯并将信息事件显示到手机集,以便它将像往常一样运行。
作为第二个示例,假定传入呼叫在用户的计算机上发出警报。 用户决定只拿起手机接听电话来接听呼叫,而不是使用鼠标选择应答选项。 手机的 offhook 状态向应用程序发送消息。 应用程序可以将此状态解释为用户请求,以选择手机进行对话。 然后,应用程序调用 lineSetTerminal,以将呼叫中的语音数据路由到电话集。