

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

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

当您的代理使用Omnissa虚拟桌面基础架构 (VDI) 环境时，Connect Customer可以更轻松地提供高质量的语音体验。您的代理可以使用他们的Omnissa远程桌面应用程序（例如Omnissa Horizon Client）将音频处理工作卸载到代理的本地设备，并自动将音频重定向到Connect Customer，从而提高具有挑战性的网络上的音频质量。

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

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

本节描述了在 Connect Customer 中使用 Omnissa Horizon SDK 的系统要求。
+ **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**。
  + Create/Navigate 到以下注册表路径：

    ```
    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 进程正在运行。](https://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/omnissa-1.png)

  下图显示正在任务管理器中运行的 wsnm.exe 进程。  
![任务管理器，wsnm.exe 进程正在运行。](https://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服务器访问下图中提及的域的亚马逊连接 TCP/443 流量。有关此设置，请参阅[设置网络](ccp-networking.md)主题。
  + **座席工作站配置**

    此解决方案需要代理瘦客户机之间建立媒体连接才能连接客户。按照[设置网络](ccp-networking.md)主题允许代理计算机和 “连接客户软电话媒体 UDP 端口 3478” 之间的流量。

     下图说明了 UDP 端口 3478 的使用。  
![使用 UDP 端口 3478。](https://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 浏览器扩展程序处于启用状态时。](https://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. 确认您可以看到代理计算机和 Connect Customer 之间的媒体数据包流动。

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

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


1. 控制台日志记录

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

   1. 查找以下确认 Omnissa 初始化的 WebRTC-related 消息：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 平台检测，这导致媒体流通过虚拟机的浏览器进行路由，而不是经过优化的客户端音频处理。