

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 针对 Omnissa 云桌面优化 Amazon Connect 音频
<a name="using-ccp-vdi-omnissa-step-by-step"></a>

当您的座席使用 Omnissa 虚拟桌面基础架构（VDI）环境时，Amazon Connect 使其可以更轻松地提供高质量的语音体验。您的座席可以利用其 Omnissa 远程桌面应用程序（例如 Omnissa Horizon Client），将音频处理任务卸载到座席的本地设备，并自动将音频重定向到 Amazon Connect，从而在具有挑战性的网络条件下也能实现音频质量的提升。

首先，您可以使用 [Amazon Connect 开源库](https://github.com/amazon-connect/amazon-connect-streams)创建新的座席用户界面或更新现有的座席用户界面，例如自定义联系人控制面板（CCP）。

## 系统要求
<a name="using-ccp-vdi-omnissa-step-by-step-requirements"></a>

本节描述将 Omnissa Horizon SDK 与 Amazon Connect 结合使用时的系统要求。
+ **Omnissa Horizon 客户端版本**
  + 最低要求版本：座席和客户端均需 8.15.0（Horizon 2503）
  + 目前，Omnissa 仅支持运行 Windows 的座席工作站使用此功能。
  + 下载最新的 Omnissa 客户端
**重要**  
2503 版本将是首个支持 ICE 重启功能的版本。早期版本不支持此功能。
Omnissa Horizon Client 版本 2503 将通过 [Omnissa Customer Connect](https://customerconnect.omnissa.com/downloads/info/slug/desktop_end_user_computing/omnissa_horizon_clients/8) 提供。请查看 Customer Connect 以获取最新版本。
+ **Omnissa 扩展程序和 SDK 要求**
  + Horizon WebRTC Web App 同时支持扩展程序和 SDK 8.15.0 或更高版本。
  + 此浏览器扩展程序使网页应用能够支持 Horizon Agent 内部的 WebRTC SDK，可在[此处](https://chromewebstore.google.com/detail/horizon-webrtc-web-app-su/emildoafpcgihdmhphelfhghioccllfi?pli=1)从 Chrome 应用商店下载该程序。
+ **浏览器支持（最新 3 个版本）**
  + Google Chrome
  + Microsoft Edge (Chromium)
+ **Omnissa 服务器设置**：Omnissa Horizon SDK 默认情况下不启用。系统管理员需要在 Omnissa Horizon Agent 虚拟机内部配置以下注册表设置 [建议通过注册表编辑器（regedit）配置]。
  + **打开注册表编辑器**
    + 对于 Windows：
      + 按 **Windows \+ R**
      + 键入 **regedit** 并按 **Enter**。
  + 创建/导航到以下注册表路径：

    ```
    Key Path: Computer\HKLM\SOFTWARE\Policies\Omnissa\Horizon\WebRTCRedirSDKWebApp
    Key Names and Values:
    chrome_enabled (REG_DWORD) = 1
    edge_chrome_enabled (REG_DWORD) = 1
    enabled (REG_DWORD) = 1
    ```

    ```
    Key Path: Computer\HKLM\SOFTWARE\Policies\Omnissa\Horizon\WebRTCRedirSDKWebApp\UrlAllowList
    Key Name: https://*.connect.aws/*
    Key Name: https://*.connect.aws.a2z.com/* 
    Key Type: REG_SZ
    ```

  在安装 Omnissa Agent 之后，无论 SDK 启用状态如何，html5server.exe 和 wsnm.exe 进程将始终在任务管理器中运行。下图显示正在任务管理器中运行的 html5server.exe 进程。  
![任务管理器，html5server.exe 进程正在运行。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/omnissa-1.png)

  下图显示正在任务管理器中运行的 wsnm.exe 进程。  
![任务管理器，wsnm.exe 进程正在运行。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/omnissa-2.png)
+ **故障排查**
  + 可从以下位置找到 Omnissa 日志文件：

    ` %tmp%\omnissa-{username}\horizon-html5Client-{pid}.log`
**注意**  
`{pid}` 指 Horizon 客户端“horizon-protocol.exe”进程 ID，可以在任务管理器中找到该 ID。
  + 用于增强日志记录的注册表设置

    要为故障排查启用详细日志记录，请添加以下注册表项：

    ```
    HKEY_LOCAL_MACHINE\SOFTWARE\Omnissa\Horizon\Html5mmr: - "html5mmr.log.noThrottle" = dword:00000001
    ```

    ```
    HKEY_LOCAL_MACHINE\SOFTWARE\Omnissa\Horizon\Html5mmr\WebrtcRedir:
     - "html5mmr.log.webrtc.allowFullText" = dword:00000001
     - "html5mmr.log.webrtc.allowThrottle" = dword:00000000
     - "html5mmr.log.webrtc.sharedlib.internal" = dword:00000001
     - "html5mmr.log.webrtc.sharedlib.network" = dword:00000001
     - "html5mmr.log.webrtc.sharedlib.media" = dword:00000001
     - "html5mmr.log.webrtc.shim.logToConsole" = dword:00000001
     - "html5mmr.log.webrtc.sharedlib.signal" = dword:00000001
     - "html5mmr.log.noThrottle" = dword:00000001
     - "html5mmr.log.webrtc.tracelevel" = dword:00000001
    ```

    这些注册表设置能够启用详细日志记录，这有助于诊断与 Omnissa VDI 集成相关的问题。
+ **网络/防火墙配置**
  + **Omnissa VDI 配置**

    管理员需要允许 Omnissa 服务器访问下图中所提及域的 Amazon Connect TCP/443 流量。有关此设置，请参阅[设置网络](ccp-networking.md)主题。
  + **座席工作站配置**

    此解决方案要求座席的瘦客户端与 Amazon Connect 之间建立媒体连接。请按照[设置网络](ccp-networking.md)主题允许座席机器与 Amazon Connect Softphone Media UDP 端口 3478 之间的通信。

     下图说明了 UDP 端口 3478 的使用。  
![示图显示 UDP 端口 3478 的使用。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/omnissa-3.png)

## 您的自定义 CCP 上必要的代码更改
<a name="omnissa-required-initccp-changes"></a>

要在 Omnissa VDI 环境中启用音频优化，您必须使用以下更改配置您的自定义 CCP。

1. 在 CCP 初始化之前添加以下代码片段。它有助于管理 CCP 的窗口标识，这在座席打开多个窗口时尤其重要。它添加了一个时间戳和“Active Softphone Tab”标记，以帮助识别活动的 CCP 窗口。

   ```
   const ACTIVE_SOFTPHONE_TAB = "Active Softphone Tab";
   
       window.addEventListener('message', (event) => {
   
           if (event.data.type === 'get_horizon_window_title') {
               let title = document.title;
              const currentTime = new Date();
               if (!title.endsWith(ACTIVE_SOFTPHONE_TAB)) {
                   title += ` ${currentTime.getHours()}${currentTime.getMinutes()}${currentTime.getSeconds()} ` + ACTIVE_SOFTPHONE_TAB;
                   document.title += ` ${currentTime.getHours()}${currentTime.getMinutes()}${currentTime.getSeconds()} ` + ACTIVE_SOFTPHONE_TAB;
               }
   
               event.source.postMessage(
                   { type: 'horizon_window_title_response', title: title, source: 'parent' },
                   event.origin
               );
           }
       });
   ```

1. 在您的 initCCP 配置中添加 VDI 平台参数。这是为了启用音频重定向功能。

   ```
   softphone: {
       allowFramedSoftphone: true,  
       VDIPlatform: "OMNISSA"
   }
   ```
**重要**  
设置 `VDIPlatform: "OMNISSA"` 后，如果 Omnissa 音频优化失败，CCP 将不会回退到标准的 Web 浏览器音频。这意味着：  
如果座席在 Omnissa 虚拟机之外访问 CCP，则呼叫将失败。
在设置此参数之前，CCP 开发人员必须确定 CCP 是否正在 Omnissa 虚拟机内运行。
**实施选项**：  
使用单独的 URL 路径访问 Omnissa 和非 Omnissa。
使用 URL 参数来确定环境。
实现一个 API 以根据用户上下文确定正确的配置。

## 在通话期间如何确认瘦客户端和 Amazon Connect 之间的媒体流
<a name="verify-omnissa"></a>

1. 确保 Omnissa Horizon WebRTC 扩展程序已启用并处于“就绪”状态。

1. 检查浏览器工具栏中的扩展程序图标：

   1. 蓝色图标表示“就绪”状态且功能正常。

   1. 灰色图标表示“未就绪”状态且存在潜在问题。

   下图显示 Omnissa Horizon WebRTC 浏览器扩展程序处于启用及“就绪”状态时的样子。  
![Omnissa Horizon WebRTC 浏览器扩展程序处于启用状态时。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/omnissa-4.png)

1. 查看进程状态：

   1. 打开任务管理器。

   1. 验证 html5server.exe 和 wsnm.exe 进程是否正在运行。

   1. 确保这些进程在呼叫期间保持运行。如果任一进程崩溃，VDI 功能都将失败。

1. 测试音频流：

   1. 拨打测试电话

   1. 通过在虚拟机的浏览器中禁用麦克风访问来验证音频优化 - 在本地处理音频时，呼叫应继续工作

   1. 检查是否存在任何音频延迟或质量问题。

1. 使用 Wireshark 来验证：

   Wireshark 是一款免费的开源网络数据包分析器。有关更多信息，请访问 Wireshark [网站](https://www.wireshark.org/)。

   1. 从[此处](https://www.wireshark.org/download.html)下载 Wireshark。

   1. 安装 Wireshark 后，在瘦客户端上打开 Wireshark，开始监控您的本地网络。

   1. 连接到呼叫，在顶部的筛选栏中输入以下过滤器：

      ```
      (udp.srcport == 3478 or udp.dstport == 3478) and ((ip.dst_host = "15.193.6.0/24"))
      ```

   1. 确认您能看到座席计算机和 Amazon Connect 之间的媒体数据包流。

   1. 如果看不到任何数据包：
      + 检查网络连接和防火墙规则。
      + 验证音频优化设置。
**注意**  
上面显示的 IP 范围适用于美国东部（弗吉尼亚州北部） AWS 区域。有关其他区域的 IP 范围，请参阅[设置网络](ccp-networking.md)。  
下图显示 IP 范围。  

![Omnissa Horizon WebRTC 浏览器扩展程序处于启用状态时。](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/omnissa-5.png)


1. 控制台日志记录

   1. 对于 Windows：打开浏览器开发者工具（按 F12）。

   1. 查找以下与 WebRTC 相关的用来确认 Omnissa 初始化的消息：R`TC.js is using OmnissaVDIStrategy`

      配置消息类似如下示例。

      ```
      {
              "component": "softphone",
              "level": "LOG",
              "text": " RTC.js is using OmnissaVDIStrategy",
              "time": "2025-04-03T20:47:40.460Z",
              "exception": null,
              "objects": [],
              "line": 64,
              "agentResourceId": "20c6b5a3-259e-4e18-a8a7-b962d54a6344",
              "loggerId": "1743713238678-pz6yp1q4n9s",
              "contextLayer": "CRM"
          },
      ```

## 限制
<a name="omnissa-limitations"></a>

不支持以下 CCP 配置：
+ 原生 CCP：原生 CCP 不支持音频优化功能。使用原生 CCP 处理的通话，其媒体流将继续通过虚拟机内部的浏览器进行传输。
+ Salesforce CTI 适配器：不支持 VDI 平台检测，这导致媒体流通过虚拟机的浏览器进行路由，而不是经过优化的客户端音频处理。