3CX WebHID 耳机集成 – 工作原理

新通用耳机驱动程序的背景

最近,3CX将耳机集成转移到 WebHID 标准。这篇博文解释了这个新标准的来龙去脉。

什么是 WebHID 通用耳机集成?

首先,它是什么? WebHID 通用耳机集成是一种标准,允许在 VoIP Web 客户端和支持电话的耳机设备之间实现无缝和通用的双向计算机电话集成 (CTI)。

根据 USB 规范 (https://www.usb.org/hid),耳机设备必须在 Chrome 浏览器上支持 WebHID API (https://wicg.github.io/webhid/)。 然后,客户端将通过标准 HID 电话页面 (0x0B) 向耳机设备发送/接收 HID 报告(即消息)。

工作原理

一旦耳机实现了 WebHID 标准并配置为与 3CX 一起使用,那么 3CX Web 客户端将在收到呼叫(例如响铃)时向连接的 hid 耳机设备发送输出 hid 报告(消息)。

然后,耳机设备通过启用其 LED 指示灯来响应该操作。 当按下耳机按钮时,设备会向 3CX Web 客户端发送输入隐藏报告,Web 客户端处理消息,更改呼叫状态并向耳机发送具有新呼叫状态的输出报告。

这允许 3CX 与任何符合标准 HID 电话的耳机设备实现计算机电话集成 (CTI)。明确推荐和工作的供应商耳机设备是 Jabra、Plantronics 和 Sennheiser。 这不仅为 3CX 节省了时间,也为相关供应商节省了时间,因为他们可以通过相同的 API 支持多个应用程序。另一个使用 WebHID 标准的著名应用程序是 Microsoft Teams。

从应用程序发送到耳机设备的消息

NameHexDecimalMeaning
OFF_HOOK0x080017524311True: An ongoing active call is present (turn on phone light on headset)
False: There is no active call present (turn off phone light on headset).
Note: When all calls are on hold there is no active call.
RING0x080018524312True: There is an incoming call (turn on headset ringing).
False: There are no incoming calls (turn off headset ringing).
MUTE0x080009524297True: The active call is muted (mute headset).
False: The active call is not muted (unmute headset).
HOLD0x080020524320True: There is a call on hold (turn on hold light on headset).
False: No calls on hold (turn off hold light on headset).

从耳机设备发送到应用程序的消息

NameHexDecimalMeaning
PROGRAMMABLE_BUTTON0x0b0007589831Reject button pressed (long press / double click depending on device).
Action:
Incoming call rejected (if there is an incoming call).
PROGRAMMABLE_TELEPHONY_BUTTON0x090007720903Reject button pressed (long press / double click depending on device).
Action:
Incoming call rejected (if there is an incoming call).
HOOK_SWITCH0x0b0020720928Call button pressed on headset.
Action:
True: If there is an incoming call answer.
False: If there is an active call terminate it.
FLASH0x0b0021720929User pressed hold (long press / double click depending on device).
Action:
Single call: hold/resume call.
Multiple calls: set current call on hold and resume the next call (switch between calls).
PHONE_MUTE0x0b002f720943Mute button is pressed on device.
Action:
Toggle mute state of active call.

将耳机与 3CX 配合使用时出现问题?

尽管某些耳机支持 WebHID API,但您可能仍会遇到问题。例如,特定模型可能有错误的实现。耳机供应商可能不遵循为 HID 电话指定的约定,他们需要另一条消息(十六进制代码)(例如振铃)。

让我们举个例子; HOOK_SWITCH = 0x0b0020,但我们收到 0x090020。

在这种情况下,3CX不会响应它,因为我们预计 HOOK_SWITCH 为 0x0b0020。

联系耳机供应商!

3CX建议您直接与耳机供应商联系,让他们解决问题。一些供应商(Jabra 或 Sennheiser)确实会向3CX提出问题,在这种情况下3CX可以努力修复它。但是,必须是 Jabra 或 Sennheiser 才能根据特定设备重现问题来启动问题。

3CX按原样提供此支持。 3CX不支持特定型号或耳机类型。供应商有责任针对上述 API 进行测试和支持。在大多数情况下,耳机的价格都在 200 美元以上。确保您购买的是供应商本身正确支持的产品。

哪些浏览器支持 WebHID?

只有 Google Chrome 和 Microsoft Edge 支持 WebHID。 Safari 和 Firefox 没有。 所以你不能在这些浏览器中使用你的耳机。

哪些耳机支持 WebHID 标准?

由于安全限制,桌面应用程序只能与这些耳机供应商集成:

  • 捷波朗
  • 森海塞尔
  • 缤特力
  • 亿联

我可以在同一台 PC 上使用带有多个应用程序的 WebHID 耳机吗?

是和不是。 一般来说,这会导致问题。 例如,如果您同时打开了 Teams 客户端和 3CX 客户端,并且您在这两个客户端上都收到了呼叫,那么您就是在自找麻烦。

如何使用 WebHID 配置耳机?

  1. 登录到 3CX 网络客户端。
  2. 转到“设置 > 音频/视频”。
  3. 从“耳机集成”下拉菜单中选择“通用耳机驱动程序(WebHID – 支持第 3 方)”
  4. 确保您的耳机已连接到您的设备,然后按“连接耳机”。
  5. 通知窗口将请求访问权限以连接到您的 HID 设备。 选择它并按“连接”。