Citrix Virtual Apps and Desktops

Microsoft Teams 的优化

Citrix 使用 Citrix Virtual Apps and Desktops 和 Citrix Workspace 应用程序为基于桌面的 Microsoft Teams(1.2.00.31357 或更高版本)提供优化。默认情况下,我们将所有必要的组件绑定到 Citrix Workspace 应用程序和 Virtual Delivery Agent (VDA) 中。

我们针对 Microsoft Teams 的优化包含一个 VDA 端 HDX 服务和 API,用于与 Microsoft Teams 托管的应用程序进行交互以接收命令。这些组件将向 Citrix Workspace 应用程序端媒体引擎打开控制虚拟通道 (CTXMTOP)。端点在本地解码并呈现多媒体,将 Citrix Workspace 应用程序窗口移回托管的 Microsoft Teams 应用程序中。

身份验证和发出信号在本地发生在 Microsoft Teams 托管的应用程序上,就像其他 Microsoft Teams 服务(例如聊天或协作)一样。音频/视频重定向不会对其产生影响。

CTXMTOP 是一个命令和控制虚拟通道。这意味着在 Citrix Workspace 应用程序与 VDA 之间不交换媒体。

仅客户端提取/客户端呈现可用。

此视频演示让您了解 Microsoft Teams 如何在 Citrix 虚拟环境中工作。

Microsoft Teams 演示版的优化

Microsoft Teams 安装

注意:

我们建议先安装 VDA,然后在黄金映像中安装 Microsoft Teams。需要采用此安装顺序,才能使 ALLUSER=1 标志生效。如果您先在虚拟机中安装了 Microsoft Teams 再安装 VDA,请卸载并重新安装 Microsoft Teams。如果您使用的是 App Layering,请参阅面向 App Layering 了解更多详细信息。

我们建议您遵循 Microsoft Teams 计算机范围的安装准则,并避免使用在 AppData 中安装 Microsoft Teams 的 .exe 安装程序。而是通过使用命令行中的 ALLUSER=1 标志来安装 C:\Program Files (x86)\Microsoft\Teams

msiexec /i <path_to_msi> /l*v <install_logfile_name> ALLUSER=1 ALLUSERS=1

此示例还使用 ALLUSERS=1 参数。设置此参数时,Teams 计算机范围内的安装程序将显示在“控制面板”的程序和功能中,以及计算机的所有用户的 Windows 设置的应用程序和功能中。如果所有用户都有管理员凭据,则可以卸载 Microsoft Teams。

了解 ALLUSERS=1ALLUSER=1 之间的区别非常重要。可以在非 VDI 和 VDI 环境中使用 ALLUSERS=1 参数。请仅在 VDI 环境中使用 ALLUSERS=1 参数以指定每计算机安装。

ALLUSER=1 模式下,只要有新版本,Microsoft Teams 应用程序就不会自动更新。我们建议对非持久性环境应用此模式,例如,Windows Server 或 Windows 10 随机/池目录中的托管共享应用程序或桌面。有关详细信息,请参阅使用 MSI 安装 Microsoft Teams(VDI 安装部分)。

假设您有 Windows 10 专用的永久 VDI 环境。您希望 Microsoft Teams 应用程序自动更新,并希望 Microsoft Teams 在 Appdata/Local 下执行每用户安装。在这种情况下,请使用 .exe 安装程序或不带 ALLUSER=1 的 MSI。

对于 Remote PC

我们建议您先安装 VDA,然后安装 Microsoft Teams 版本 1.4.00.22472 或更高版本。否则,您需要注销并重新登录,Microsoft Teams 才能按预期检测 VDA。版本 1.4.00.22472 或更高版本包括在 Microsoft Teams 启动时执行的增强逻辑以及用于 VDA 检测的登录时间。这些版本还包括活动会话类型标识(HDX、RDP 或本地连接到客户端计算机)。如果您在本地连接,Microsoft Teams 的早期版本可能无法检测并禁用某些功能或 UI 元素。例如,分组讨论会议室、用于会议和聊天的弹出窗口或会议反应。

在某些 Remote PC 场景中,当您从支持 HDX 优化的新端点重新连接到以前未优化的会话时,可能需要重新启动 Microsoft Teams 才能支持 HDX 优化。

面向 App Layering

如果使用 Citrix App Layering 管理不同层中的 VDA 和 Microsoft Teams 安装,请在使用 ALLUSER=1 安装 Microsoft Teams 之前在 Windows VDA 上部署此注册表项。有关信息,请参阅通过注册表管理的功能列表中的借助 Citrix App Layering 优化 Microsoft Teams

Profile Management 建议

我们建议在 Windows Server 和池 VDI Windows 10 环境中使用计算机范围内的安装程序。

ALLUSER=1 标志从命令行(计算机范围内的安装程序)传递到 MSI 时,Microsoft Teams 应用程序将安装在 C:\Program Files (x86) 下 (~300 MB)。该应用程序将 AppData\Local\Microsoft\TeamsMeetingAddin 用于日志,将 AppData\Roaming\Microsoft\Teams (~600–700 MB) 用于用户特定的配置、缓存用户界面中的元素等等。

重要:

如果您没有通过 ALLUSER=1 标志,MSI 会将 Teams.exe 安装程序和 setup.json 置于 C:\Program Files (x86)\Teams Installer 下。注册表项 (TeamsMachineInstaller) 将添加到以下位置:HKEY_LOCAL_MACHINE \SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run

后续用户登录将改为触发 AppData 中的最终安装。

计算机范围内的安装程序

下面是通过在 Windows Server 2016 64 位 VM 上安装 Microsoft Teams 计算机范围内的安装程序创建的文件夹、桌面快捷方式和注册表示例:

文件夹:

  • C:\Program Files (x86)\Microsoft\Teams
  • C:\Users\<username>\AppData\Roaming\Microsoft\Teams

桌面快捷方式:

C:\Program Files (x86)\Microsoft\Teams\current\Teams.exe

注册表:

  • HKEY_LOCAL_MACHINE \SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKEY_CURRENT_USER \SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • 名称:Teams
  • 类型: REG_SZ
  • 值:C:\Program Files (x86)\Microsoft\Teams\current\Teams.exe

注意:

注册表位置因底层操作系统和位数而异。

建议

  • 我们建议通过删除 Microsoft Teams 注册表项来禁用自动启动。这样做可以防止同时发生许多登录(例如,在工作日开始时)增加 VM 的 CPU。
  • 如果虚拟桌面没有 GPU/vGPU,我们建议在 Microsoft Teams 的设置中设置禁用 GPU 硬件加速以提高性能。此设置 ("disableGpu":true) 存储在 desktop-config.json 中的 %Appdata%\Microsoft\Teams 中。可以使用登录脚本编辑该文件并将值设置为 true
  • 如果使用 Citrix Workspace Environment Management (WEM),请启用 CPU Spikes Protection(CPU 峰值保护)来管理 Microsoft Teams 的处理器消耗。

每用户安装程序

使用 .exe 安装程序时,安装过程会有所差别。所有文件都放置在 AppData 中。

文件夹:

  • C:\Users\<username>\AppData\Local\Microsoft\Teams
  • C:\Users\<username>\AppData\Local\Microsoft\TeamsPresenceAddin
  • C:\Users\<username>\AppData\Local\Microsoft\TeamsMeetingAddin
  • C:\Users\<username>\AppData\Local\SquirrelTemp
  • C:\Users\<username>\AppData\Roaming\Microsoft\Teams

桌面快捷方式:

C:\Users\<username>\AppData\Local\Microsoft\Teams\Update.exe --processStart "Teams.exe"

注册表:

HKEY_CURRENT_USER \SOFTWARE\Microsoft\Windows\CurrentVersion\Run

最佳做法

最佳做法建议取决于用例场景。 使用具有非持久性设置的 Microsoft Teams 需要配置文件缓存管理器来实现高效的 Microsoft Teams 运行时数据同步。使用配置文件缓存管理器时,将在用户会话期间缓存适当的用户特定信息(例如,用户数据、配置文件和设置)。同步以下两个文件夹中的数据:

  • C:\Users\<username>\AppData\Local\Microsoft\IdentityCache
  • C:\Users\<username>\AppData\Roaming\Microsoft\Teams

非持久性设置的 Microsoft Teams 缓存内容排除列表

从 Microsoft Teams 缓存文件夹 %AppData%/Microsoft/Teams 中排除以下项目。排除这些项目有助于减少用户缓存大小,从而进一步优化非持久性设置。

排除列表 - 文件

  • Roaming\Microsoft\Teams\* .txt

排除列表 - 目录

  • Roaming\Microsoft\Teams\Logs
  • Roaming\Microsoft\Teams\media-stack
  • Roaming\Microsoft\Teams\Service Worker\CacheStorage
  • Roaming\Microsoft\Teams\Application Cache
  • Roaming\Microsoft\Teams\Cache
  • Roaming\Microsoft\Teams\GPUCache
  • Roaming\Microsoft\Teams\meeting-addin\Cache(对于 Outlook 中缺少加载项的问题至关重要)

用例:单会话场景

在这种情况下,最终用户一次在一个位置使用 Microsoft Teams。他们不需要同时在两个 Windows 会话中运行 Microsoft Teams。例如,在常见的虚拟桌面部署中,每个用户被分配有一个桌面,Microsoft Teams 作为一个应用程序在虚拟桌面中部署。 我们建议启用 Citrix Profile 容器并将每用户安装程序中列出的每用户目录重定向到该容器中。

  1. 在黄金映像中部署 Microsoft Teams 计算机范围内的安装程序 (ALLUSER=1)。
  2. 启用 Citrix Profile Management 并使用适当的权限设置用户配置文件存储。
  3. 启用以下 Profile Management 策略设置:文件系统 > 同步 > 配置文件容器 - 要包含在配置文件磁盘中的文件夹列表

    配置文件容器

    将所有每用户目录列入此配置中。也可以使用 Citrix Workspace Environment Management (WEM) 服务配置这些设置。

  4. 将这些设置应用到正确的交付组。
  5. 登录以验证部署。

系统要求

推荐的最低版本 - Delivery Controller (DDC) 1906.2

如果您使用的是早期版本,请参阅启用 Microsoft Teams 的优化

支持的操作系统:

  • Windows Server 2022、2019、2016、2012 R2 Standard Edition 和 Datacenter Edition,包含服务器核心选项

最低版本 - Virtual Delivery Agent (VDA) 1906.2

支持的操作系统:

  • Windows 10 64 位,版本为 1607 及更高版本。(不支持 VM 托管应用程序)。
  • Windows Server 2022、2019、2016 和 2012 R2(Standard Edition 和 Datacenter Edition)。

要求:

  • BCR_x64.msi - 包含 Microsoft Teams 优化代码并从 GUI 自动启动的 MSI。如果使用命令行界面进行 VDA 安装,请不要将其排除。

推荐的版本 - 适用于 Windows 的 Citrix Workspace 应用程序的最新 CR 和最低版本 - 适用于 Windows 的 Citrix Workspace 应用程序 1907

  • Windows 8 和 10(32 位和 64 位版本,包括嵌入式版本)(对 Windows 7 的支持已在版本 2006 时停止)
  • Windows 10 IoT Enterprise 2016 LTSB (v1607) 和 2019 LTSC (v1809)
  • 支持的处理器 (CPU) 体系结构:x86 和 x64(不支持 ARM)
  • 端点要求:大约 2.2–2.4 GHz 双核 CPU,可在点对点视频会议通话期间支持 720p HD 分辨率。
  • 具有较低基础速度(大约 1.5 GHz)的双核或四核 CPU,配备 Intel Turbo Boost 或 AMD Turbo Core,可提升至至少 2.4 GHz。
  • 通过验证的 HP 瘦客户端:t630/t640、t730/t740、mt44/mt45。
  • 通过验证的 Dell 瘦客户端:5070、5470 Mobile TC。
  • 经过验证的 10ZiG 瘦客户端:4510 和 5810q。
  • 有关通过验证的端点的完整列表,请参阅瘦客户端
  • Citrix Workspace 应用程序至少需要 600 MB 可用磁盘空间和 1 GB RAM。
  • Microsoft .NET Framework 最低要求为版本 4.6.2。如果系统中不存在,Citrix Workspace 应用程序会自动下载并安装 .NET Framework。

管理员可以通过更改 Teams 优化策略来启用/禁用在优化模式下启动的 Microsoft Teams。在 Citrix Workspace 应用程序中以优化模式启动的用户无法选择禁用 Microsoft Teams。

最低版本 - 适用于 Linux 的 Citrix Workspace 应用程序 2006

有关详细信息,请参阅 2006 中的新增功能中的 Microsoft Teams 优化

软件:

  • GStreamer 1.0 或更高版本或 Cairo 2
  • libc++-9.0 或更高版本
  • libgdk 3.22 或更高版本
  • OpenSSL 1.1.1d
  • x64 Linux 发行版

硬件:

  • 最低 1.8 GHz 双核 CPU,可在点对点视频会议通话期间支持 720p HD 分辨率
  • 双核或四核 CPU,基本速度为 1.8 GHz,并采用至少为 2.9 GHz 的高速英特尔睿频加速技术

有关通过验证的端点的完整列表,请参阅瘦客户端

有关详细信息,请参阅安装 Citrix Workspace 应用程序所需的必备条件

可以禁用 Teams 优化,在 /opt/Citrix/ICAClient/config/module.ini 文件中将字段 VDWEBRTC 的值更新为 Off。默认值为 VDWEBRTC=On。执行更新后,重新启动会话。(需要 root 用户权限)。

最低版本 - 适用于 Mac 的 Citrix Workspace 应用程序 2012

支持的操作系统:

  • macOS Catalina (10.15)。
  • macOS Big Sur 11.0.1 或更高版本。

支持的功能:

  • 音频
  • 视频
  • 屏幕共享优化(传入和传出)

注意:

Citrix Viewer 应用程序需要访问 MacOS“安全性与隐私”首选项,才能使屏幕共享正常工作。用户可以在苹果菜单 > 系统偏好设置 > 安全性与隐私 > 隐私选项卡 > 屏幕录制中选择 Citrix Viewer 来配置此首选项。

如果用户具有 Citrix Workspace 应用程序 2012 或更高版本以及 macOS 10.15,则默认情况下,Microsoft Teams 优化会起作用。

如果要禁用 Microsoft Teams 优化,请在端点中运行以下命令并重新启动 Workspace 应用程序:

defaults write com.citrix.receiver.nomas mtopEnabled -bool NO

最低版本 - 适用于 ChromeOS 的 Citrix Workspace 应用程序 2105.5

支持的功能:

  • 音频
  • 视频
  • 屏幕共享优化(传入和传出) - 默认处于禁用状态。有关如何将其打开的说明,请参阅这些设置

功能列表和版本支持

功能 Windows CR Windows 1912 LTSR(及 CU1-CU4) Windows 1912 CU5(或更高版本) Mac Linux ChromeOS
音频/视频(P2P 和会议) 1907 2009 2004 2105.5
屏幕共享 1907 2012 2006 2105.5 (1)
i. 屏幕指示器红色边框 2002 2012 2006 X
ii. 将捕获限制为 Desktop Viewer 2009.5 X 2012 2006 X
iii. 多显示器 2106 (2) X X 2106 2106 X
DTMF 2102 X 是 (5) 2101 2101 X
代理服务器支持 2012 (3) X 是 (3) (5) 2104 (4) 2101 (4) X
  1. 默认处于禁用状态,需要管理员启用。
  2. 仅限全屏模式下的 CD 查看器。Shift+F2 不受支持。
  3. 协商/Kerberos、NTLM、基本和摘要式。还支持 Pac 文件。
  4. 仅限匿名。
  5. 仅限在 Windows 10 客户端操作系统上。

启用 Microsoft Teams 优化

要为 Microsoft Teams 启用优化,请使用 Microsoft Teams 重定向策略中介绍的“管理”控制台策略。默认情况下它处于状态。除启用此策略外,HDX 还会进行检查,以验证 Citrix Workspace 应用程序的版本至少是所需的最低版本。如果启用了此策略并且支持 Citrix Workspace 应用程序的版本,HKEY_CURRENT_USER\Software\Citrix\HDXMediaStream\MSTeamsRedirSupport 注册表项将在 VDA 上自动设置为 1。Microsoft Teams 读取在 VDI 模式下加载的密钥。

注意:

如果您对管理控制台 (Studio) 中没有可用策略的较旧控制器版本(例如,7.15 版)使用 1906.2 或更高版本的 VDA,您的 VDA 仍可以进行优化。默认情况下,在 VDA 中启用“Microsoft Teams 的 HDX 优化”。

如果单击关于 > 版本,则会显示 Citrix HDX Optimized(Citrix HDX 已优化)图例:

“已针对 Citrix 优化”图例

如果您看到 Citrix HDX 未连接,Citrix API 将加载到 Microsoft Teams 中。加载 API 是迈向重定向的第一步。但是堆栈的后面部分存在错误。此错误很可能发生在 VDA 服务或 Citrix Workspace 应用程序中。

“未针对 Citrix 优化”图例

如果您没有看到任何图例,Microsoft Teams 无法加载 Citrix API。请通过右键单击通知区域图标并重新启动来退出 Microsoft Teams。请确保“管理”控制台策略未设置为禁止,并且 Citrix Workspace 应用程序版本受支持。

“无 Citrix”图例

重要:会话重新连接

  • 连接发生变化时,您可能需要重新启动 Microsoft Teams 才能获得 HDX 优化的会话。例如,如果您正在从不受支持的端点(适用于 iOS、Android、HTML5 或旧版本的 Windows/Linux/Mac 的 Workspace 应用程序)漫游到受支持的端点(适用于 Windows/Linux/Mac/ChromeOS 的 Workspace 应用程序),反之亦然。
  • 从本地会话漫游到 HDX 会话时,您需要重新启动 Microsoft Teams 才能使用 HDX 进行优化。这是一个 Remote PC Access 方案。

网络要求

Microsoft Teams 依赖 Office 365 中的媒体处理器服务器进行会议或多方呼叫。Microsoft Teams 依赖于 Office 365 传输中继处理以下场景:

  • 点对点通话中的两个对端没有直接连接
  • 参与者没有直接连接到媒体处理器。

因此,对端与 Office 365 云之间的网络运行状况决定通话的性能。

我们建议您对环境进行评估,以确定可能会影响整个云语音和视频部署的任何风险和要求。 使用 Skype for Business 网络评估工具来测试您的网络是否已准备好使用 Microsoft Teams。有关支持信息,请参阅支持

实时协议 (RTP) 流量的关键网络建议汇总

  • 尽可能直接从分支机构连接到 Office 365 网络。
  • 如果必须在分支机构使用以下任何内容,请确保 RTP/UDP Teams 流量不受阻碍。HdxTeams.exe 不支持在端点上配置的显式代理。
    • 绕过代理服务器
    • 网络 SSL 拦截
    • 深度包检测设备
    • VPN 发夹(如有可能,使用拆分通道)
  • 规划并提供足够的带宽。
  • 检查每个分支机构的网络连接性和质量。

Workspace 应用程序(HdxTeams.exe 或 HdxRtcEngine.exe)中的 WebRTC 媒体引擎对卸载到客户端的多媒体数据流使用安全实时传输协议 (SRTP)。SRTP 通过使用对称密钥(128 位)加密媒体和控制消息,并在计数器模式下使用 AES 加密密码,为 RTP 提供机密性和身份验证。

建议使用以下指标来保证正面的用户体验:

指标 端点到 Office 365
延迟(单向) < 50 毫秒
延迟 (RTT) < 100 毫秒
Packet Loss(数据包丢失) 在任何 15 秒时间间隔内 < 1%
数据包到达间抖动 在任何 15 秒时间间隔内 <30 毫秒

有关详细信息,请参阅为 Microsoft Teams 准备贵组织的网络

在带宽要求方面,Microsoft Teams 的优化可以使用对音频 (OPUS/G.722/PCM G711) 和视频 (H264) 使用各种编解码器。

在通话建立过程中,对端使用会话描述协议 (SDP) 请求应答来协商这些编解码器。 Citrix 对每位用户的最低建议如下:

类型 Bandwidth(带宽) 编解码器
音频(单向) 大约 90 kbps G.722
音频(单向) 大约 60 kbps Opus*
视频(单向) 大约 700 kbps H264 360p @ 30 fps 16:9
屏幕共享 大约 300 kbps H264 1080p @ 15 fps

* Opus 支持恒定和可变比特率编码,范围为 6 kbps 到 510 kbps。

Opus 是两个优化的 VDI 用户之间的点对点通话的首选编解码器。

G.722 和 H264 是加入会议的 VDI 用户的首选编解码器。

重要:

就性能而言,在客户端计算机中的 CPU 使用情况方面,编码的成本比解码更高。您可以在适用于 Linux 和 Windows 的 Workspace 应用程序中对最大编码分辨率进行硬编码。请参阅编码器性能估算器Microsoft Teams 的优化

代理服务器

请注意以下事项,具体取决于代理的位置:

  • VDA 上的代理配置:

    如果在 VDA 中配置了显式代理服务器并通过代理将连接路由到 localhost,重定向将失败。要正确配置代理服务器,必须在 Internet 选项 > 连接 > 局域网设置 > 代理服务器中选择对于本地地址不使用代理服务器设置,然后确保不使用 127.0.0.1:9002

    如果使用 PAC 文件,对于 wss://127.0.0.1:9002,PAC 文件中的 VDA 代理配置脚本必须返回 DIRECT。如果没有,优化将失败。要确保脚本返回 DIRECT,请使用 shExpMatch(url, "wss://127.0.0.1:9002/*")

  • Citrix Workspace 应用程序上的代理配置:

    如果分支机构配置为通过代理访问 Internet,这些版本支持代理服务器:

    • 适用于 Windows 的 Citrix Workspace 应用程序 2012(协商/Kerberos、NTLM、 Basic 和 Digest。还支持 Pac 文件)
    • 适用于 Windows 的 Citrix Workspace 应用程序1912 CU5(协商/Kerberos、NTLM、 Basic 和 Digest。还支持 Pac 文件)
    • 适用于 Linux 的 Citrix Workspace 应用程序 2101 版(匿名身份验证)
    • 适用于 Mac 的 Citrix Workspace 应用程序 2104 版本(匿名身份验证)

安装了 Citrix Workspace 应用程序的早期版本的客户端设备无法读取代理配置。这些设备将流量直接发送到 Office 365 TURN 服务器。

重要:

验证客户端设备是否可以连接到 DNS 服务器以执行 DNS 解析。客户端设备必须能够解析三个 Microsoft Teams TURN 服务器的 FQDN:worldaz.turn.teams.microsoft.comusaz.turn.teams.microsoft.comeuaz.turn.teams.microsoft.com

通话建立和媒体流路径

如有可能,Citrix Workspace 应用程序(HdxTeams.exe 或 HdxRtcEngine.exe)中的 HDX WebRTC 媒体引擎会尝试在点对点通话中通过用户数据报协议 (UDP) 建立直接网络安全实时传输协议 (SRTP) 连接。如果 UDP 端口被阻止,Media Engine 将回退到 TCP 443。

HDX Media Engine 支持 ICE、Session Traversal Utilities for NAT (STUN) 和 Traversal Using Relays around NAT (TURN) 进行候选发现和建立连接。

请注意,这意味着端点必须能够执行 DNS 解析。

假设两个对等方之间或对等方与会议服务器之间没有直接路径,例如用户是否加入多方通话或会议。HdxTeams.exe 使用 Office 365 中的 Microsoft Teams 传输中继服务器访问其他对等节方或媒体处理器(用于举办会议)。用户的客户端计算机必须具有两个 Office 365 子网 IP 地址范围和 4 个 UDP 端口的访问权限。有关详细信息,请参阅通话设置中的体系结构图和 Office 365 URL 和 IP 地址范围 ID 11

ID 类别 地址 目标端口
11 需要优化 13.107.64.0/18、52.112.0.0/14、52.120.0.0/14 UDP: 3478、3479、3480、3481 TCP: 443(回退)

这些范围包含传输中继和媒体处理器。 Microsoft Teams T传输中继提供 STUN 和 TUN 功能,但它们不是 ICE 端点此外,Microsoft Teams 传输中继不会终止媒体,也不会执行任何转码。当它们将流量转发到其他对端或媒体处理器时,可以将 TCP(如果 HdxTeams.exe 使用 TCP)桥接到 UDP。

Workspace 应用程序 WebRTC 媒体引擎在 Office 365 云中联系距离最近的 Microsoft Teams 传输中继。每天引擎使用任意广播 IP 和端口 3478—3481 UDP(每个工作负载使用不同的 UDP 端口,尽管会发生多路复用)或 443 TCP TLSv1.2 进行回退。通话质量取决于基础网络协议。由于始终推荐 UDP 而非 TCP,因此,我们建议将您的网络设计为适应分支机构中的 UDP 流量。

如果 Microsoft Teams 是在优化模式下加载的并且 HdxTeams.exe 在端点上运行,则 ICE 失败可能会导致呼叫设置失败或单程音频/视频。当呼叫无法完成或媒体流不是全双工时,请先检查端点上的 Wireshark 跟踪。有关 ICE 候选人收集过程的详细信息,请参阅支持部分中的“收集日志”。

注意:

如果端点无法访问 Internet,则当用户位于同一 LAN 上时,可能仍然可以进行点对点呼叫。会议失败。在这种情况下,通话设置开始之前有 30 秒的超时。

呼叫设置

请使用此体系结构示意图作为调用流序列的可视参考。示意图中显示了相应的步骤。

体系结构

Microsoft Teams 优化的工作原理

  1. 启动 Microsoft Teams。
  2. Microsoft Teams 向 O365 进行身份验证。租户策略被向下推送到 Microsoft Teams 客户端,并将相关 TURN 和信号通道信息中继到应用程序。
  3. Teams 检测到其正在 VDA 中运行,并对 Citrix JavaScript API 进行 API 调用。
  4. Microsoft Teams 中的 Citrix JavaScript 将打开一个与在 VDA 上运行的 WebSocketService.exe 的安全 WebSocket 连接,这会在用户会话内部生成 WebSocketAgent.exe。
  5. WebSocketAgent.exe 通过调用到 Citrix HDX Teams Redirection Service (CtxSvcHost.exe) 来实例化通用虚拟通道。
  6. Citrix Workspace 应用程序的 wfica32.exe (HDX Engine) 产生一个名为 HdxTeams.exe 或 HdxRtcEngine.exe 的新进程,这是用于 Microsoft Teams 优化的新 WebRTC 引擎。
  7. Citrix 媒体引擎和 Teams.exe 有一个双向虚拟通道路径,可以开始处理多媒体请求。

    —–用户呼叫——

  8. 对端 A 单击呼叫按钮。Teams.exe 与 Office 365 中的 Microsoft Teams 服务通信,通过对等方 B 建立端到端信号路径。Microsoft Teams 向 HdxTeams 询问一系列受支持的呼叫参数(编解码器、分辨率等,称为会话描述协议 (SDP) 提议)。然后使用指向 Office 365 中的 Microsoft Teams 服务的信令路径中继这些呼叫参数,并从该位置传输到另一个对等方。
  9. SDP 提议/应答(单通协商)通过信号通道进行,ICE 连接性检查(NAT 和使用 STUN 绑定请求的防火墙遍历)完成。然后,安全实时传输协议 (SRTP) 媒体直接在 HdxTeams.exe 与其他对端(或 Office 365 会议服务器,如果是会议)之间流动。

Microsoft Phone 系统

Phone System 是 Microsoft 的技术,在 Office 365 云中对 Microsoft Teams 启用呼叫控制和 PBX。Microsoft Teams 的优化使用 Office 365 通话套餐或直接路由支持 Phone System。使用直接路由,您可以直接将自己支持的会话边界控制器连接到 Microsoft Phone System,而无需任何额外的本地软件。 支持通话队列、转接、转移、保持、静音和继续通话。

DTMF:

这些版本的 Citrix Workspace 应用程序(或更高版本)支持双音多频 (Dual tone multi frequency, DTMF):

  • 适用于 Windows 的 Citrix Workspace 应用程序版本 2102
  • 适用于 Windows LTSR 1912 CU5 的 Citrix Workspace 应用程序(仅限 Windows 10 操作系统)
  • 适用于 Linux 的 Citrix Workspace 应用程序 2101
  • 适用于 Mac 的 Citrix Workspace 应用程序 2101

防火墙注意事项

当用户首次使用 Microsoft Teams 客户端启动优化的呼叫时,他们可能会注意到 Windows 防火墙设置的警告。警告要求用户允许 HdxTeams.exe 或 HdxRtcEngine.exe (HDX Overlay Teams) 的通信。

防火墙警告

Windows Defender 防火墙 > 高级安全控制台的入站规则下添加了以下四个条目。如有需要,可以应用更严格的规则。

防火墙入站规则

Microsoft Teams 和 Skype for Business 同时存在

可以并行部署 Microsoft Teams 和 Skype for Business,作为两个具有重叠功能的独立解决方案。 有关详细信息,请参阅了解 Microsoft Teams 和 Skype for Business 的共存和互操作性

适用于 Microsoft Teams 多媒体引擎的 Citrix RealTime Optimization Pack 和 HDX 优化随后遵守您的环境中设置的配置。示例包括岛屿模式、Skype for Business 与 Microsoft Teams 协作,以及 Skype for Business 与 Microsoft Teams 协作和会议。

此时只能向单个应用程序授予外围设备访问权限。例如,通话期间 RealTime Media Engine 访问网络摄像头会在通话期间锁定成像设备。松开设备后,它将可用于 Microsoft Teams。

Teams 和 Skype 共存

Citrix SD-WAN:针对 Microsoft Teams 的优化网络连接

最佳音频和视频质量要求具有低延迟、低抖动和低数据包丢失的 Office 365 云的网络连接。在进入 Internet 之前,将 Microsoft Teams 音频-视频 RTP 流量从分支机构位置的 Citrix Workspace 应用程序用户到数据中心可能会增加过多的延迟。这也可能会导致 WAN 链接上出现拥堵Citrix SD-WAN 按照 Microsoft Office 365 网络连接性原则优化 Microsoft Teams 的连接性。Citrix SD-WAN 使用基于 Microsoft REST 的 Office 365 IP 地址和 Web 服务以及近似 DNS 来识别、分类和引导 Microsoft Teams 的流量。

许多地区的企业宽带 Internet 连接都会受到间歇性数据包丢失、过度抖动和中断的影响。

Citrix SD-WAN 提供了两种解决方案,以便在网络运行状况变化或降低时保持 Microsoft Teams 音频-视频质量。

  • 如果使用 Microsoft Azure,则在 Azure VNET 中部署的 Citrix SD-WAN 虚拟设备 (VPX) 可提供高级连接优化。这些优化包括无缝链路故障转移和音频数据包竞赛。
  • Citrix SD-WAN 客户可以通过 Citrix Cloud 直接服务连接到 Office 365。此服务为所有受 Internet 限制的流量提供可靠和安全交付。

如果分支机构 Internet 连接的质量无需担心,通过将 Microsoft Teams 流量直接从 Citrix SD-WAN 分支机构转向最近的 Office 365 前门,可能足以最大限度地减少延迟。有关详细信息,请参阅 Citrix SD-WAN Office 365 优化

Citrix SD-WAN

Microsoft Teams 中的库视图和活动扬声器

Microsoft Teams 支持 Gallery(库)、Large gallery(大型库)和 Together mode(共聚模式)布局。

Microsoft Teams 显示一个 2x2 网格,其中包含四名参与者的视频流(称为)。在这种情况下,Teams 将 4 个视频流发送到客户端设备进行解码。当共享视频的参与者超过四位时,屏幕上只会显示最后四位最活跃的发言者。

Microsoft Teams 还提供了具有一个高达 7x7 的网格的大型库视图。因此,Microsoft Teams 会议服务器会合成单个视频源并将其发送到客户端设备进行解码,从而降低 CPU 消耗。这个单一的列表式源可能还包括用户的自我预览视频。

最后,Microsoft Teams 支持共聚模式,这是新会议体验的一部分。Teams 使用 AI 细分技术以数字方式将参与者置于共享背景中,将所有参与者都放在同一个大会堂中。

用户可以在电话会议期间通过在省略号菜单中选择 Gallery(库)、Large gallery(大型库)或 Together mode(共聚模式)布局来控制这些模式。

视频布局

支持视频纵横比约束(适用于 Windows 的 CWA 2102、适用于 Linux 的 CWA 2106、适用于 MAC 的 CWA 2106 或更高版本):

  • Fill to frame(填充到框架)选项在“Gallery/Large Gallery View”(库/大型库视图)中可用。此选项裁剪视频大小以适应子窗口的大小。另一方面,Fit to frame(适合框架)在视频两侧显示黑色条(信箱),因此不会裁剪。

下表提供了库和大型库布局的比较:

  库视图 2x2(默认) 大型库视图
布局/网格 显示一个 2x2 网格,其中包含四名参与者的视频流。屏幕上只显示最后四个最活跃的发言者,其他参与者不会出现在网格中。 显示一个 7x7 网格,其中包含 49 个参与者的视频流。
混合技术 媒体路由器将来自每个参与者的单独流转发给每个用户。 中央会议服务器对所有音频或视频进行混合和转码,为每位参与者创建量身定制的复合布局。这会带来一些额外的延迟。
活跃的发言者 新的活跃发言真将替换网格中最不活跃的发言者。 显示所有参与者,无论他们是活跃的还是不活跃的参与者。
在端点进行编码 单一质量的视频流。可以在客户端上设置编码分辨率值。有关详细信息,请参阅编码器性能估算器Microsoft Teams 的优化。质量定义为分辨率和每秒帧数。当前不支持联播视频。 单一质量的视频流。可以在客户端上设置编码分辨率值。有关详细信息,请参阅编码器性能估算器Microsoft Teams 的优化
在端点进行解码 每位参与者最多可获得四个单独的媒体流。这会增加端点上 HdxRtcEngine.exe 的 CPU 占用量(用于解码/呈现)。 每个参与者只能获得一个音频和视频流。这降低了端点的 CPU 占用量。
最大分辨率 720。当四个参与者共享视频时,每个视频源的最大分辨率为 360p。如果共享视频的参与者少于四个,每个视频源的分辨率可能会更高。 720p 适用于复合布局或混合布局每个发送者都会降低分辨率或上载比特率,因为在复合布局中,每个参与者都不需要高质量的视频流。
“用户速度缓慢”问题 发送方将每种模式的(音频/视频/屏幕共享)质量修改为参与者中最低的通用网络质量。然后将此多媒体流转发给所有其他参与者。因此,网络状况不佳的参与者会影响通话中其他所有人的质量。 不太容易受到最低的常见网络质量情况的影响。会议服务器根据单个参与者的网络状况提供不同的质量。
自助预览 在小缩略图中实时显示自己。 在缩略图中显示自己,并与其余的视频源混合。因此,您可能会看到自己包含在主视频布局中,但会有一些额外的延迟。

Microsoft Teams 中的屏幕共享

Microsoft Teams 依赖于基于视频的屏幕共享 (VBSS),有效地对正在与 H264 等视频编解码器共享的桌面进行编码,并创建高清晰度流。通过 HDX 优化,传入屏幕共享被视为视频流。因此,如果您正在进行视频通话,而其他对端开始共享桌面,则原始网络摄像机视频源将暂停。相反,将显示屏幕共享视频源。然后,对端必须手动恢复网络摄像机共享。

传出屏幕共享也进行了优化,并卸载到 Citrix Workspace 应用程序。在这种情况下,媒体引擎仅捕获和传输 Citrix Desktop Viewer (CDViewer.exe) 窗口,并在窗口周围绘制红色边框。不会捕获与 Desktop Viewer 重叠的任何本地应用程序。

注意

在适用于 Mac 的 Citrix Workspace 应用程序中设置特定权限以启用屏幕共享。有关详细信息,请参阅系统要求

多显示器

如果 Desktop Viewer (CDViewer.exe) 处于全屏模式并跨越多显示器设置,Citrix Workspace 应用程序 2106 或更高版本(Windows/Linux/Mac)将允许屏幕选择器选择要共享的监视器。

已知限制:

  • 如果禁用 Desktop Viewer(可以通过编辑 .ica 文件模板或 StoreFront web.config)或者如果正在使用 Desktop Lock,多显示器选择功能在 Microsoft Teams 屏幕选择器中将不可用。SHIFT+F2 热键与多显示器屏幕共享不兼容。
  • 在 2106 之前的 Workspace 应用程序版本中,仅共享主监视器。必须将虚拟桌面中的应用程序拖动到主显示器,以便通话中的其他对端查看该应用程序。
  • 如果使用虚拟显示器布局功能(单个物理显示器的逻辑分区)配置 Workspace 应用程序,多显示器屏幕共享可能不起作用。在这种情况下,所有虚拟显示器都作为复合映像共享。
  • 适用于 Windows 的较旧版本的 Workspace 应用程序(1907 至 2008)还支持共享客户端计算机上运行的本地应用程序,前提是该应用程序覆盖在 Desktop Viewer 之上。此行为在 2009.6 或更高版本以及 1912 CU5 或更高版本中已删除。

屏幕共享

来自无缝应用程序的屏幕共享:

如果要将 Microsoft Teams 发布为独立的无缝应用程序,屏幕共享会捕获您的物理端点的本地桌面。需要 Citrix Workspace 应用程序 1909(最低版本)。

Microsoft Teams 中的外围设备

当 Microsoft Teams 的优化处于活动状态时,Citrix Workspace 应用程序将访问外围设备(耳机、麦克风、相机、扬声器等)。然后在 Microsoft Teams UI(设置 > 设备)中正确列出外围设备。

Microsoft Teams 的优化模式

Microsoft Teams 不直接访问这些设备。相反,它依赖 Workspace 应用程序 WebRTC 媒体引擎来获取、捕获和处理媒体。Microsoft Teams 列出了供用户选择的设备。

建议:

  • 具有内置回声消除功能的 Microsoft Teams 认证的耳机。在具有多个外围设备的设置中,如果麦克风和扬声器位于不同的设备,则可能会出现回声。例如,带有内置麦克风的网络摄像机和带扬声器的显示器。使用外部扬声器时,请尽可能远离麦克风和可能将声音折射到麦克风的任何表面。
  • Microsoft Teams 认证的相机,但 Skype for Business 认证的外围设备与 Microsoft Teams 兼容。
  • Citrix Workspace 应用程序媒体引擎无法利用 CPU 卸载与执行板载 H.264 编码 -UVC 1.1 和 1.5 的网络摄像机。

注意:

适用于 Windows 的 Workspace 应用程序 2009.6 现在可以获取具有 24 位音频格式或频率高于 96 kHz 的外围设备。

HdxTeams.exe(在适用于 Windows 的 Workspace 应用程序 2009 或更高版本中)仅支持以下特定的音频设备格式(通道、位深度和采样率):

  • 播放设备:最多 2 个通道,16 位,频率高达 96000 Hz
  • 录制设备:多达 4 个通道,16 位,频率高达 96000 Hz

即使一个扬声器或麦克风与预期设置不匹配,Teams 中的设备枚举也会失败,并且设置 > 设备下显示

HdxTeams.exe 中的 Webrpc 日志显示以下类型的信息:

Mar 27 20:58:22.885 webrtcapi.WebRTCEngine Info: init. initializing...

Mar 27 20:58:23.190 webrtcapi.WebRTCEngine Error: init. couldn't create audio module!

解决方法:禁用特定设备或:

  1. 打开声音控制面板 (mmsys.cpl)。
  2. 选择播放或录制设备。
  3. 转到属性 > 高级,然后将设置更改为支持的模式。

回退模式

如果 Microsoft Teams 无法在优化的 VDI 模式下加载(在“Teams”/“关于”/“版本”中显示“Citrix HDX 未连接”),VDA 将回退到旧版 HDX 技术,例如网络摄像机重定向以及客户端音频和麦克风重定向。=如果您使用的是不支持 Teams 优化的 Workspace 应用程序版本/平台操作系统,则不应用回退注册表项。 在回退模式下,外围设备映射到 VDA。外围设备在 Microsoft Teams 应用程序中显示,就像它们在本地连接到虚拟桌面一样。

现在,您可以通过在 VDA 中设置注册表项来精确控制回退机制。有关信息,请参阅通过注册表管理的功能列表中的 Microsoft Teams 回退模式

此功能需要 Teams 版本 1.3.0.13565 或更高版本。

在查看 Teams 中的设置 > 设备选项卡时,要确定您处于优化模式还是未优化模式,主要的区别是网络摄像机名称。如果 Microsoft Teams 在未优化模式下加载,旧版 HDX 技术将启动。网络摄像机名称具有 Citrix HDX 后缀,如下图所示。与优化模式相比,扬声器和麦克风设备名称可能略有不同(或被截断)。

Microsoft Teams 的未优化模式

使用旧版 HDX 技术时,Microsoft Teams 不会将音频、视频和屏幕共享处理卸载到端点的 Citrix Workspace 应用程序 WebRTC 媒体引擎。相反,HDX 技术使用服务器端呈现。打开视频时,预计 VDA 上的 CPU 消耗很高。实时音频性能可能不是最佳的。

已知限制

Citrix 限制

Citrix Workspace 应用程序的限制:

  • HID 按钮 - 不支持接听呼叫和结束通话。支持调高和调低音量。
  • 备用铃声(Teams > 设置 > 设备)不受支持。
  • Microsoft Teams 管理中心中的 QoS 设置不适用于 VDI 用户。
  • Citrix Workspace 应用程序的应用程序保护附加功能可防止出站屏幕共享,并阻止传入屏幕共享和视频。

VDA 的限制:

  • 将 Citrix Workspace 应用程序的“高 DPI”设置配置为时,如果显示器的 DPI 缩放系数设置为高于 100%,则重定向的视频窗口不会显示在恰当的位置。

Citrix Workspace 应用程序和 VDA 的限制:

  • 传出屏幕共享:不支持应用程序共享。
  • 只能使用客户端计算机上(而非 VDA 上)的音量栏控制优化的通话的音量 。

Microsoft 限制

  • 不支持用于模糊或自定义背景的选项。
  • 不支持 3x3 库视图。Microsoft Teams 依赖项 - 联系 Microsoft,了解何时可以期待 3x3 网格。
  • 与 Skype for Business 的互操作性仅限于音频通话,没有视频模式。
  • 传入和传出视频流的最大分辨率为 720p。Microsoft Teams 依赖项 — 联系 Microsoft,了解何时可以期待 1080p。
  • 不支持 PSTN 呼叫回铃音。
  • 不支持适用于直接路由的媒体旁路。
  • 仅支持来自传入摄像机或屏幕共享流的一个视频流。当有一个传入屏幕共享时,将显示该屏幕共享,而非显示主扬声器的视频。
  • 不支持广播和现场活动策划人和主持人角色。与会者角色受支持但未优化(而是在 VDA 上呈现)。
  • 不支持 Microsoft Teams 中的放大和缩小功能。

Citrix 和 Microsoft 限制

  • 执行屏幕共享时,包括系统音频选项不可用。
  • 不支持弹出式聊天(也称为多窗口聊天或新会议体验)。
  • VDI 参与者支持分组讨论会议室。如果组织者是 VDI 用户,Microsoft Teams 将不支持分组讨论会议室。
  • 授予控制权和获取控制权:在屏幕共享或应用程序共享会话期间不受支持. 仅在 PowerPoint 共享会话期间受支持。
  • 不支持 E911 和基于位置的路由。

其他信息