警报 签署了
联络支持

浏览过本文的客户也浏览了

横幅
CTX253754 {{tooltipText}}

疑难解答微软团队的HDX优化

适用的产品

  • 思杰工作空间App
  • Citrix虚拟应用程序和桌面

客观的

------------------------------------------------------------------------------------------------------------------------------------------------

这是一个生活的文章-经常更新最新信息和已知的问题


-------------------------------------------------------------------------------------------------------------------------------------------------

推荐团队版本:最新的版本

属性的故障排除指南微软团队的HDX优化Citrix Virtual Apps and台式机1906.2或更高版本。

Citrix强烈推荐当前最新发布的工作区应用程序版本。大多数新功能都需要升级Workspace应用程序,因此Current Release模型是首选的交付机制。



********************************************************************************************
已知问题的实时更新- 2022年2月

  • 2022年2月4日:应用程序共享(即共享单个应用程序而不是整个桌面)现在在Ring 3.6中可用(公众预览频道).这是一个可选择的程序,由IT管理策略控制。环4(GA)尚未可用。参见edocs '应用程序共享部分了解更多细节。
  • 2021年5月11日:VDA 1912 CU4发布,包括CtxSvcHost.exe (Citrix HDX Teams重定向服务)因ctxteamssvcs .dll模块故障而意外退出的关键修复,以及CtxHdxWebSocketService.exe (HTML5视频重定向服务)意外退出的关键修复。因此,Microsoft Teams可能无法加载优化的(“Citrix HDX未连接”)或优化的呼叫在进行中突然中断。这些修复程序在VDA 2106或更高版本中也可用[CVADHELP-16918] [CVADHELP-17341] [CVADHELP-17146] [CVADHELP-17505]
  • 2021年11月1日:思杰和微软强烈建议更新到高于1.3.00.28778的Teams版本。任何相同或更低的版本都不能运行VDI的新功能。公共Microsoft Teams路线图可用在这里
  • 2021年9月29日:Windows、Linux和Mac的工作区应用程序2109现在是GA。这些版本包括电话会议性能的改进,但此功能的可用性取决于即将到来的Teams更新。
  • 2021年9月24日:对于远程PC场景,思杰强烈建议Teams版本1.4.00.22472或更高版本,因为该版本包括针对HDX或客户端机器本地会话的改进检测逻辑。对于本地会话,旧版本的Teams可能会禁用某些特性/UI元素。检查edoc欲知详情。
  • 2021年9月9日:优化后,在VDA中拖放文件到Teams聊天失败,Teams可能崩溃。微软正在修复(微软案例编号:267297731和240731800)。
  • 8/16/2021:多显示器屏幕共享现已与CWA适用于Win/Mac/Linux 2106或更高版本。登出/重新登录所需的团队。edoc链接在这里
  • 8/12/2021:团队键盘快捷键,如Ctrl+E(全局搜索框),Ctrl+F(在现有上下文中查找)等,现在可以在VDI中工作。登出/重新登录所需的团队。
  • 8/11/2021: CWA 1912 CU5是现在可用.我们鼓励使用CWA 1912的客户测试和更新他们的客户端,因为CU5包含许多以前任何CU都没有的错误修复和性能改进。发布说明在这里
  • 8/10/2021: MAC CWA 2108现已可用。此版本修复了MAC优化用户在电话会议中被其他同行以慢动作(10倍减速)看到的错误。
  • 8/10/2021: DTMF(适用于Windows 2102、Linux/Mac 2101或更高版本的CWA以及适用于Windows 1912 CU5的CWA)现已可用。请退出,然后签回小组。
  • 2021年8月9日:当在虚拟桌面中运行时,隐藏的聊天通道现在在优化的团队中可见/可点击-微软问题(i事故编号241949910)
  • 6/25/2021:呼叫质量仪表板(CQD)的团队管理中心现在拉出HDX优化的端点数据
  • 2021年6月16日:Citrix Windows 2106工作空间应用程序可用错误输入视频馈送可能闪烁[CVADHELP-17398]
  • 5/25/2021:带宽估计改进在团队中推出,以提高Gallery View 2x2的性能/视频质量(签出/签入到团队)
  • 2021年5月24日:图库视图2x2现在也可以在Microsoft 365 Government - GCC High中使用
  • 5/20/2021:关于单服务器可伸缩性考虑因素和测试的新博客。看到在这里
  • 2021年12月5日:VDA 1912 CU3发布,包括对WebSocketAgent.exe (Citrix HDX HTML5视频重定向代理服务)间歇性停止的重要修复。因此,Microsoft Teams烤面包机中不会显示来电(被叫方不会收到任何通知)。[cvadhelp - 15611]
  • 5/11/2021:现在支持大画廊视图7x7和一起模式。请退出并签回Teams,不需要CWA或VDA升级。[请注意,画廊和大型画廊是非常不同的-见edoc前者是一个2x2布局,其中端点解码4个单独的视频流,最大质量360p。后者是7x7布局(即最多49个参与者),其中端点解码由会议服务器创建的单个复合视频提要,最高质量为720p)
  • 2021年5月10日:Citrix Workspace应用程序2105 for Windows是GA(发布说明在这里).此版本修复了传入的视频/屏幕共享被视为黑屏,从Outlook加入会议时无法接收视频feed,视频渲染闪烁和HdxRtcEngine在p2p呼叫中崩溃(HDX-30176)。
  • 4/01/2021:具有多个网卡(例如VPN,无线,以太网)的端点/客户端设备可能会经历优化的webrtc流量没有通过正确的接口路由,因此由于路由指标和不同的第三层性能而降低呼叫质量(CVADHELP-16480)。这在Windows的CWA 2105中被修复。
  • 2021年3月23日:思杰工作空间应用程序(Windows 2103.1, Linux 2103, Mac 2102)不再支持VP9用于p2p视频通话。H264现在将用于所有类型的呼叫(会议或p2p),以保留客户端CPU。
  • 03/17/2021:使用四声道麦克风的端点(例如惠普EliteBook笔记本电脑)可能无法使用CWA捕获Windows 2009.6或更高版本的音频,最高可达2103 (HDX-29725)。Windows 2105或更高版本的CWA已修复此问题,并且需要在[HKCU\Software\Citrix\HDXMediaStream;]中创建一个值为1的客户端REG_DWORD regkey;关键:DisableADM2]。
  • 2020年12月8日:微软推出了一款新的公共技术预览方法为团队。思杰建议您报名。
  • 2020年11月15日:VDA 1912 LTSR CU2发布,包括对导致团队加载未优化的错误的重要修复。看到发布说明(hdx - 25074)
  • 在某些情况下,即使显示“Citrix HDX Not Connected”,尝试呼叫将触发Teams连接到Citrix VDA服务,优化将成功。这是由于Teams UI刷新延迟造成的。
  • 如果Teams被配置为自动启动,上面项目中的问题也可能出现。我们建议通过删除HKLM\Software\Microsoft\Windows\CurrentVersion\Run、HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run和HKCU\Software\Microsoft\Windows\CurrentVersion\Run中的Teams regkey来禁用自动启动
  • 请注意,即使使用命令行标志,目前也不可能禁用自动启动选择= " noAutoStart = true "使用机器范围的MSI和ALLUSER=1属性。删除上面描述的regkey应该可以解决这个问题。
  • 如果虚拟桌面有如果有GPU/vGPU,我们建议在Teams/Settings中禁用GPU硬件加速,以提高性能和可伸缩性,否则Teams将使用VDA的CPU来渲染UI元素/动画。此设置("disableGpu":true")存储在desktop-config内部的%Appdata%\Microsoft\Teams中。Json,所以你也可以使用登录脚本编辑该文件并将值设置为true。
  • 在某些情况下,当虚拟机的NTP时间同步服务器通过gpo更新时,与Citrix HTML5视频重定向服务启动时相比,这可能会产生时钟漂移。这种漂移会转化为无效/过期的Citrix证书,Teams将无法在优化模式下加载。我们建议将HTML5视频重定向服务(“CtxHdxWebSocketService”)启动类型更改为“自动(延迟启动)”,而不是默认的“自动”。Citrix在CVAD 2006 VDA中修复了此问题。[hdx - 24350]
  • 当在具有VDA的机器(VM或Remote PC)中安装Teams时,Teams将禁用背景效果。
  • 背景模糊和现场事件是已知的限制在VDI。请联系微软有关时间线和更多信息。

********************************************************************************************


指令



请注意,一般情况下,完全退出Teams (Systray图标/右键单击/退出)并重新启动它可以清除所有涉及的组件,并可以修复您遇到的任何问题。

同时,记住,在比较优化和非优化时,Teams的功能集是不同的.当Teams未经过优化时,它将在VDA上运行,并使用其原生媒体引擎,支持所有功能(尽管多媒体渲染是在VDA上进行的,这会导致CPU负担)


(警告:如果你的VDA是7.15(任何CU),你仍然想在非优化模式下使用Teams(这些VDA版本中唯一支持的模式),滚动在这里.团队HDX优化不会被反向移植到LTSR 7.15]。

循序渐进:

Microsoft Teams优化机制可以分为5个主要领域

1.媒体引擎实例化(HdxRtcEngine.exe)
团队必须以优化模式启动
1.2
团队必须打开一个WebSocket连接(wss://127.0.0.1:9002)到VDA中的“Citrix HDX HTML5视频重定向”服务。该操作触发虚拟通道CTXMTOP的建立
1.3
CWA的HDX引擎(wfica32.exe)必须生成进程HdxRtcEngine.exe (CWA中实际的WebRTC媒体引擎)
2.媒体引擎外设采集
2.1 WebRTC媒体引擎 将外设的名称映射并传递给Teams
2.2
WebRTC媒体引擎在用户选择后获取并捕获所有外围设备I/O
2.3 WebRTC媒体引擎必须能够显示自预览的视频

3.媒体引擎传输层建立
3.1 SDP文件要约/应答协商
3.2
ICE候选发现(STUN/TURN)
3.3
SRTP (Secure RealTime Protocol)端到端连接
4.媒体引擎多媒体流处理
4.1 编解码器:解码/编码和渲染音视频轨道和屏幕共享
4.2回波消除,降噪,抖动/丢包隐藏,唇同步,图像增强

5.监控
有关如何利用HDX监视器监视团队优化的更多信息,请参见在这里

正确的故障排除需要管理员逐步验证每个区域,向下移动列表。

请注意,Citrix Gateway作为HDX代理的存在应该没有影响,因此您可以在故障排除中丢弃它。如果您还将网关用于VPN,请确保您允许客户端计算机到达O365 Teams服务器


# 1:媒体引擎实例化

确定用户是否在优化模式下运行的最快方法是在用户的客户端机器上寻找HdxTeams.exe(或HdxRtcEngine.exe在更新版本中):

用户添加图片

如果没有找到流程,那么应该首先研究第1.1点。



用户添加图片

#1.1:团队必须以优化模式启动


点击头像/关于/的版本。应该显示“Citrix HDX Optimized”。这意味着Teams已经为优化的调用做好了准备。

用户添加图片

如果图例不在那里,而是你看到“Citrix HDX未连接”,那么Teams没有正确地在VDI模式下加载。

用户添加图片

Citrix HDX未连接意味着团队正确加载了Citrix API,但它无法完成端到端检查,因为堆栈的后续部分出现了错误。最有可能的是,VDA服务(Citrix HDX HTML5视频重定向,Citrix HDX Teams重定向)或在Workspace应用程序。

如果没有带有Citrix字样的图例,则Teams根本没有在VDI模式下加载:

用户添加图片

VDA regkey MsTeamsRedir由Citrix服务(CtxSvcHost.exe)在用户登录或重新连接到虚拟桌面时设置。团队将在开始时读取此键,如果值为1,则将以VDI模式加载。

用户添加图片


该值自动设置为1当且仅当:

  1. Microsoft Teams重定向策略在Studio中启用(默认情况下为允许)
  2. CWA已经加载了Teams Virtual Channel (VDTeamsn.dll), CWA的版本是1907或更高

如果= 0或丢失-麻烦!

行动:从系统本身退出团队(右键单击图标/退出)。
有时,如果Teams在会话处于断开连接状态时自动更新,则在重新连接时可能无法正确读取密钥。

最后,如果regkey值为1,但Teams仍然无法显示“Citrix HDX Optimized”或“Citrix HDX Not Connected”,则可能是Teams本身的问题。常见的问题可能是错误的缓存项(设置。Json和storage.json)
微软AppData \漫游\ \团队,甚至双团队安装(在%appdata%和程序文件下)。我们建议顾客联系微软技术支持在这种情况下。


#1.2: WebSocket阶段

VDA服务“Citrix HDX HTML5视频重定向”[WebSocketService.exe]是团队进入VDA的入口。换句话说,Teams必须打开到此服务的安全websocket连接,该服务在VDA中的127.0.0.1:9002处侦听。
如果WebSocketService.exe没有主动监听,优化将失败。在某些情况下,服务将在服务中显示为“Running”。但是当您运行netstat时,您将看不到套接字。
因此,您必须确保它正在运行聆听:


用户添加图片


成功连接后,你会看到状态变为" ESTABLISHED ":

用户添加图片

请注意: WebSocketService.exe也监听9001 -这个套接字用于其他HDX功能(浏览器内容重定向和HTML5视频重定向,它们独立于Teams)]

-代理:如果VDA中配置了显式代理服务器,请确保到localhost的连接不通过它路由。否则,重定向将失败。您必须“绕过本地地址的代理服务器”127.0.0.1:9002

-PAC文件:确保你的VDA pac文件脚本返回DIRECT forwss: / / 127.0.0.1:9002.否则,优化将失败。一种方法是:

shExpMatch (url, wss: / / 127.0.0.1:9002 / *)

-反病毒:某些安全软件产品会干扰WebSocketService.exe及其证书。而实际的服务(Citrix HDX HTML5视频重定向)可能运行在services.msc控制台,本地主机127.0.0.1:9002TCP套接字从未处于监听模式,如netstat所示。尝试重新启动服务会导致它挂起(“stopped…”)。确保您应用了正确的排除WebScoketService.exe的过程。


一旦有一个成功的安全WebSocket (wss)连接,WebSocketService.exe将在用户会话中创建一个名为WebSocketAgent.exe的新进程:

用户添加图片

这个过程也可以在Director中看到:

用户添加图片

请注意: WebSocketAgent.exe也用于BCR和HTML5视频重定向]

行动:如果127.0.0.1:9002为ESTABLISHED时,未创建WebSocketAgent.exe,请重新启动WebSocketService.exe服务。可能需要重新启动团队。此外,在一些罕见的情况下,你可能会看到WebSocketAgent.exe启动但在一秒钟内关闭,在这种情况下,这可能与客户端机器中的HdxTeams.exe / HdxRtcEngine.exe崩溃有关(因此确保在客户端上收集EventViewer条目)。

第二阶段的最后一部分是建立Teams虚拟通道(CTXMTOP),这个过程最终由“Citrix HDX Teams重定向”服务(VDA中的CtxSvcHost.exe)处理。
CTXMTOP只是一个命令与控制虚拟通道——CWA和VDA之间没有媒体交换。所有媒体都由CWA以客户端获取客户端渲染的方式处理。

行动:如果VDA上运行的是WebSocketAgent.exe,而HdxTeams.exe/ HdxRtcEngine.exe客户端没有运行,重启吗“Citrix HDX Teams重定向”。

HdxTeams.exe / HdxRtcEngine.exe说明:
如果你在kiosk模式下锁定端点,或者通过“分配访问配置”使用GPOs限制用户只能与白名单应用程序交互,那么确保HdxTeams.exe被允许运行。
微软HKEY_LOCAL_MACHINE \ SOFTWARE \ \ Windows \ AssignedAccessConfiguration \ Profiles \
某些反病毒程序可能会干扰HdxTeams.exe(它会立即打开和关闭)。确保你应用了正确的排除条款。



HdxTeams.exe(或HdxRtcEngine.exe)

一旦建立了虚拟通道,CWA中的Citrix HDX引擎(wfica32.exe)将在客户端生成媒体引擎:

用户添加图片

此时,Teams已经准备好处理调用。

如果HdxTeams.exe / HdxRtcEngine.exe启动,那么相应的webrpc日志将被创建。

windows操作系统日志:
它们可以在用户的机器上找到% userprofile % \ AppData \ \ Temp \ HdxRtcEngine文件夹中。
每个HDX会话将创建自己的单独文件夹。


mac日志:
1.vdwebrtc log——记录虚拟通道vdwebrtc的执行情况
路径:“/Users//Library/Logs/Citrix Workspace/CitrixViewer_.txt”

2.HdxRtcEngine日志——记录HdxRtcEngine进程的执行情况
地点:$ TMPDIR / hdxrtcengine / < W_M_D_H_M_S_Y > / hdxrtcengine.log
注意Hdxrtcengine log默认是启用的。

linux日志:
“/tmp/webrpc//”和“/tmp/hdxrtcengine//”目录下有日志文件。


# 2:媒体引擎外设采集

在团队中,进入设置一个设备。所有的外围设备现在应该被映射,视频自预览可见。您还应该能够在摄像机之间切换。
“进行测试呼叫”按钮是一个非常方便的工具来评估外围设备采集和性能。进入设置/设备/音频设备。


用户添加图片
请注意:当Teams枚举播放/录制外设时,它将选择在端点mmsys开放。CPL,您可以看到用户客户端机器中的默认设备是什么。这些是团队将自动选择的。
您可以在通话过程中切换这些设备——在这种情况下,在重新映射新设备时可能会出现1秒的音频故障。

用户添加图片


在webrpc.txt日志中捕获外围设备采集过程。
所有设备枚举条目都将具有“webrtcapi”。rpcstub”。

=============================
2019年11月28日星期四15:08:30
=============================

11月28日15:08:30.947 webrtcapi。DeviceManager信息:音频设备IMMNotificationClient注册成功。
11月28日15:08:30.948 webrtcapi。VideoOverlay信息:setProvider。设置覆盖提供者(当前= 0,新= 10168640)!
11月28日15:08:30.949 webrtcapi。DeviceManager信息:operator()。已创建设备监视器消息窗口
11月28日15:08:31.287webrtcapi。RPCStubs信息:—>设备id ={0.0.1.00000000}。{100c5b9e-8f9f-4bc4-8ff2-196c45c88f76} label =耳机麦克风(Jabra EVOLVE LINK MS)groupId = 1445567130

11月28日15:08:31.305webrtcapi。RPCStubs信息:—>设备id ={0.0.1.00000000}。{ee2e77ed-f871-4c65-8476-a40942ea913f} label =麦克风阵列(Realtek高清音频(SST))groupId = 152748168
11月28日15:08:31.348webrtcapi。RPCStubs信息:—>设备id ={0.0.0.00000000}。{c11106bd-8a8e-441e-8bba-1740b9b9934b} label =耳机(Jabra EVOLVE LINK MS)groupId = 1445567130
11月28日15:08:31.351webrtcapi。RPCStubs信息:—>设备id ={0.0.0.00000000}。{d10485d5-ddbb-4568-a3ee-214d73dc6b09} label =扬声器(Realtek High Definition Audio(SST))groupId = 152748168
11月28日15:08:31.385webrtcapi。RPCStubs->设备id = \\?\{bf89b5a5-61f7-4127-a279-e187013d7caf}标签=微软相机正面groupId =
11月28日15:08:31.397webrtcapi。RPCStubs->设备id = \\?\{7c9bbcea-909c-47b3-8cf9-2aa8237e1d4b}标签=微软摄像头后置groupId =
[…]
11月28日15:15:01.197webrtcapi。CameraCapture信息:开始。能力:宽度= 1280高度= 720 FPS = 30 FMT = 9
11月28日15:15:01.553webrtcapi。DxVideoRenderer信息:配置。window = 203588 frameWidth =1280 frameHeight = 720
[…]


# 2.1错误
采集过程中的任何错误都会显示在webrpc日志中。
例如:

           
============================= 2020年3月29日13:23:57 =============================
Mar 29 13:23:57.232 webrtcapi。WebRTCEngine信息:init。初始化…
Mar 29 13:23:57.520 webrtcapi。WebRTCEngine错误:init。无法创建音频模块!

HdxTeams.exe只支持这些特定的音频设备格式(通道、位深和采样率):

  • 播放设备:{1或2通道},16位,频率高达96000 Hz(或相等)
  • 录音设备:{1,2或4通道},16位,频率高达96000 Hz(或相等)

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

作为解决方法,打开声音控制面板(mmsys.cpl),选择播放或录制设备,转到属性>高级,并将设置更改为支持的模式。
此外,高级下的“恢复默认值”可用于从此错误中恢复。

或者,禁用特定的设备。

重要的:上表中的错误在Citrix Workspace app 2009.6 for Windows中被修复了-因此任何外设(甚至Studio-Quality声卡)都被映射了。

如果Teams在未优化的模式下加载,它将尝试获取端点的外围设备,利用音频、麦克风和网络摄像头重定向的传统HDX技术(请参阅第1节)7.15对于非优化模式的描述)。
在本例中,相机名称将显示“Citrix HDX Web camera”图例—这是Teams未优化的明确标志。


用户添加图片

3.媒体引擎传输层建立

在这个阶段,错误通常相当于呼叫失败,或者只有一方无法听到/看到另一方的单向音频/视频。

调用设置过程主要由Teams处理,而不是HDX WebRTC引擎。换句话说,托管的Teams应用程序将利用信号通道返回O365 Teams服务器,后者将反过来联系另一个对等点。
团队确实依赖HDX WebRTC引擎通过请求SDP文件进行调用协商,该文件是端点的所有媒体和传输地址特征的编译。
HDX WebRTC引擎依靠打孔技术(ICE/STUN/TURN)最终建立到另一个对等体或会议服务器的连接。

在这个阶段,企业网络环境可能是一个挑战。
代理、防火墙、对称nat、vpn、深度包检查器、会话边界控制器等都会影响呼叫建立过程;因此,了解网络拓扑结构并在必要时咨询网络团队是非常重要的。


团队会议服务器都托管在O365中IP块{52.114.0.0/12};{52.120.0.0/12};{13.107.64.0/18}和UDP端口3478-3481。TCP 443可以作为备用。
点对点调用将通过直接连接进行尝试,但如果失败,可能会使用一个TURN服务器(也托管在O365中,与上面相同的IP:PORTS)。


DNS的重要注意事项:确保该端点可以进行DNS解析。这三支队伍TURN服务器FQDN必须由端点解析
  • worldaz.turn.teams.microsoft.com
  • usaz.turn.teams.microsoft.com
  • euaz.turn.teams.microsoft.com

当用户发起或接收呼叫时,Teams托管应用程序和O365中的Teams服务器之间的信令通道将协商一个SDP文件,其中包含HdxTeams.exe或HdxRtcEngine.exe执行呼叫所需的所有信息。
请注意,在初次单次通过协商后,SDP文件可以多次更新,
包含关于ICE候选或新的调用参数(分辨率,fps等)的新信息。


每个对等体同时维护两个描述:
  • 一个当地的一个人描述自己("webrtcapi。RTCPeerConnection信息:setLocalDescription”)
  • 一个远程描述另一个对等体的一方(setRemoteDescription)
SDP文件的日志格式为“webrpc.txt”。寻找“> > >开始:sdp”条目。
调用者将首先“设置”他的SDP报价(没有任何ICE候选),这可以在webrpc.txt日志中看到为 setLocalDescription。


#3.2建立互动连接
调用者现在将要求STUN服务器生成ICE候选。然后,一旦被当地ICE特工发现(又名“涓滴ICE”),它就会通过信号通道发送单独的ICE候选人。

例1:VDI调用者(防火墙阻止UDP)加入会议

细流冰片段
[…]
> > >开始:sdp
候选:780896439 1 udp 212206361510.0.0.14052811年typ宿主生成0 ufrag 9gep network-id 1 network-cost 10
候选:1938109490 1 udp 2491187152.114.188.5751757年typ继电器raddr73.205.xxx。XXX rport 5039 generation 0 ufrag 9gep network-id 1 network-cost 10
< < < sdp的结束
[…]
ICE备选项包括[IPv4或IPv6]: [UDP或TCP]。“type”参数很重要,可以取四个值(主机、服务器自反、对等体自反和中继)。
会议服务器将通过信号通道接收一个SDP提议,并使用自己的SDP回答,在webrpc.txt日志中可以看到“webrtcapi。RTCPeerConnection信息:setRemoteDescription”。
最重要的是SDP中的“a=candidate”行
SDP的回答:
[…]
a=candidate:1 1 UDP 36044286 52.114.138.158 3480 typ中继raddr 10.0.136.233 rport 3480
a=candidate:2 1 TCP 18086910 52.114.138.158 3478 typ中继raddr 10.0.136.233 rport 3478
[…]

VDI用户调用者将注册远程ICE候选并开始连通性检查(STUN绑定请求/响应)。有时,调用对等体可能位于阻止STUN/UDP数据包的防火墙后面,在这种情况下,将不会响应STUN绑定请求:

用户添加图片

警告绑定请求对于正常的调用设置是必不可少的,因为这允许用最佳的调用路由(特别是在p2p调用中)发现候选请求。如果您的分支机构防火墙正在阻塞STUN和UDP目标端口3478-81,那么必须使用TCP联系O365中的传输中继,这会增加额外的延迟并降低呼叫质量体验]。

由于防火墙阻塞UDP,呼叫方必须尝试与另一方建立TCP连接候选人:2
如果同样失败,它将不得不使用他的传输中继(“中继raddr”),如上面的涓冰片段(52.114.188.57)所示。


用户添加图片

关于分支机构代理的重要注意事项HdxTeams.exe / HdxRtcEngine.exe无法读取端点上的显式代理配置。

这是固定的:

  • CWA for Windows 2012(协商:Kerberos, NTLM,基本/摘要)
  • MAC 2104的CWA(仅限匿名身份验证)
  • Linux 2101的CWA(仅限匿名身份验证)

或者更高的版本。在这些版本中,HDX媒体引擎将读取系统代理设置并执行配置(例如显式代理或pac文件)。


#3.3 RTP媒体流
如果连接是通过TURN服务器使用TCP建立的,则无法将Wireshark中的流量解码为RTP,因为它使用TLS加密。

在点对点连接或通过UDP会议的情况下,Wireshark将显示更详细的信息,可用于了解参与者之间的流量。

用户添加图片

Wireshark建议:


RTP不能被Wireshark自动分析。应用显示过滤器rtp'不会显示任何RTP包。
相反,首先将显示筛选器设置为'udp来发现UDP流量。连接建立后,对等体之间会定期发送UDP流量。UDP上的RTP流量将以数据中的90 hexa开始(如果没有RTP报头扩展,则为80 hexa),这是RTP报头的第一个八字节。


用户添加图片

通过选择其中一个UDP数据包并选择“分析/解码”然后选择“RTP”,Wireshark将按RTP方式处理数据包。

工作空间应用程序中的WebRTC媒体引擎(HdxRtcEngine.exe)对卸载到客户端的多媒体流使用安全RTP和DTLS协议。SRTP为RTP提供机密性和身份验证,使用对称密钥加密媒体和控制消息,并使用AES加密密码。



4.媒体引擎多媒体流处理

一旦通话建立完成,ICE连接检查完成,媒体将在双方之间交换。
目前我们支持高达720p@30fps的视频分辨率,360p是常见的[H264和VP9]。

视频流在webr .txt日志中被捕获为“DxVideoRenderer”:
webrtcapi。DxVideoRenderer信息:配置。window = 657170 frameWidth = 640 frameHeight = 360
-网络摄像头在webr .txt中捕获的条目是“CameraCapture”:
webrtcapi。CameraCapture Info:开始。能力:宽度= 640高度= 360 FPS = 30 FMT = 9

口型同步问题可能是由端点上的高CPU使用率引起的。编码过程(相机捕获和后续编码)在CPU方面比解码更昂贵。有些端点可能没有足够的处理能力(参见在这里),导致CPU使用率为100%,并导致音频/视频不同步。

重要提示:Windows 1912 LTSR和2002 CR(以及任何后续版本)的Workspace应用程序引入了一个性能估计器,用于测量端点CPU的编码能力。因此,视频编码被限制在一定的分辨率(240p, 360p, 720p, 1080p)。
这对于具有低CPU速度/内核数量的端点特别有用。
估计器在HdxRtcEngine.exe启动时运行,对用户透明。
由于VP9消耗更多的CPU,估计器可能会返回一个VP9比H264更低的值。如果您想调整分辨率值,或者禁用VP9并只使用H264,可以通过端点上的regkey来控制。看到在这里欲知详情。


思杰工作空间应用程序(Windows 2103.1, Linux 2103, Mac 2102)不再支持VP9的p2p视频通话。H264现在将用于所有类型的呼叫(会议或p2p),以保留客户端CPU。



RTP协议可以在Wireshark中解码,以了解正在使用的编解码器类型以及占用了多少带宽。

作为一个例子,我们将研究两个VDI用户之间的p2p音频呼叫。HdxRtcEngine.exe将为该场景选择Opus编解码器,这可以在SDP Offer/Answer协商中清楚地看到。
主叫方将说明其支持的所有编解码器,然后被叫方将在SDP回答中使用其首选的编解码器进行回复。

【注:通知音频(铃声)由Teams从VDA的默认播放设备播放。

用户添加图片

然后可以在Wireshark中使用统计信息绘制呼叫带宽使用情况一个IO图形选项。
应用适当的筛选器只显示与呼叫相关的流量。
我们可以看到,语音通话的典型带宽为~40-70 kbps(每种方式)。


用户添加图片
绿色:出方向|蓝色的: incoming |红色的:传出+传入


办到

在Skype for Business优化包(RTOP)中,屏幕共享没有优化。换句话说,没有卸载这样的流,因此他们呈现在服务器端原生的Skype for Business。

但就微软Teams的HDX优化而言,传入屏幕共享与传入网络摄像头视频流没有什么不同,因为Teams依赖于基于视频的屏幕共享。因此它在默认情况下是优化的。

然而,一个VDI用户共享他的监视器(即外向屏幕共享)将导致HdxTeams.exe / HdxRtcEngine.exe在端点执行显示捕获(H.264)。目前只能与CWA 2105或更老版本共享主(默认)监视器。
HdxTeams.exe / HdxRtcEngine.exe仅将共享剪切到桌面查看器窗口(如果CWA的桌面查看器处于窗口模式)。

用户添加图片

如果桌面查看器(cdviewer.exe)处于全屏模式,那么当然整个监视器是共享的。
在多显示器设置中,只有主显示器是共享的,Teams中的屏幕选择按钮将预览标记为“屏幕#1”。

用户添加图片

CWA 2106现在支持Win/Linux/Mac或更高版本的多监视器设置。
在Windows情况下,桌面查看器必须在StoreFront/ICA文件中启用,并以全屏模式启用,以便选择器显示所有可用的监视器。

解决屏幕共享问题:

在对方看来,分享屏幕的常见问题有:
-低分辨率或低FPS
-黑色的窗口而不是实际的屏幕
-从发送端冻结屏幕

webrpc.txt日志(用户设备中的AppData\Local\Temp\HdxRtcEngine,而不是VDA)是排除此类问题的最佳来源。
出屏共享流程如下:

[CreateDisplayTrack——> VideoTrackSource (id = ########)——> startVideoTrackSource——> DesktopCapture.start]

十月一日10:06:24.222 webrtcapi。WebRTCEngine信息:createDisplayTrack。id = DV-9d1651420da4 sourceId = 10月01日10:06:24.223 webrtcapi。VideoTrackSource信息:VideoTrackSource。id = 03B28CB8 source-id = 0 width = 1920 height = 1080 fps = 15 Oct 01 10:06:24.224 webrtcapi。MediaStreamTrack Trace: MediaStreamTrack。video track-id = DV-9d1651420da4 label = display-track state = 0 10月01日10:06:24.224 webrtcapi。WebRTCEngine跟踪:startVideoTrackSource。first capture consumer, source-id = 0 10月01日10:06:24.224 webrtcapi。DesktopCapture Info:开始。


HdxRtcEngine.exe包含一个带宽估计器,允许团队选择网络可以维持的最佳分辨率,有时可能需要几秒钟才能收敛到正确的值。因此,屏幕共享实际上可能从低分辨率开始,然后跳到更高的分辨率。

在webrpc日志中,查找“webrtcapi”。VideoTrackSource Info: setOptions"来确定应用的分辨率和fps:

[2716.921]十月04 11:35:10.670 webrtcapi。VideoTrackSource信息:setOptions。Id = 03457800 width = 1920 height = 1080 FPS = 15



在日志中,参数“w .ebrtcapi。DesktopCapture“可以用于快速查找,如果有错误,它们将被记录为”webrtcapi。DesktopCapture错误:".
黑窗口可能是由发送方(用户捕获)或接收方(用户渲染流)的问题引起的。
例如,如果错误发生在发送方,则可以看到以下条目:
webrtcapi。桌面捕获错误:OnCaptureResult。无效的裁剪矩形(x = 0 y = 0宽= 0高= 0)



配备HDX监控器的监控团队

在1912 vda(或更高)上,您可以使用HDX monitor(3.5.2或更高版本)监视优化后的活动呼叫。
重要提示:确保HDX监视器版本与正确的VDA版本相匹配(HDX监视器与CVAD .iso打包在一起)
要打开此功能,请创建以下内容WebrtcDirectorIntegrationVDA上的regkey:

HKLM \软件\ Citrix \ HDXMediaStream \

HKLM \
软件\ WOW6432Node \ Citrix \ HdxMediaStream

—reg键值:
名称:WebrtcDirectorIntegration
类型:双字
取值:enable(1), disable(0)


WebRTC图标下方显示如下信息:

用户添加图片

在进行活动Teams重定向时,将填充以下数据内容。
详细字段说明请见下文:


用户添加图片

  • 通话设备使用音频:上次通话使用的音频设备
  • 通话设备使用视频:上次通话使用的视频设备
  • 呼叫方向:呼入或呼出
  • 通话时长音频:最后一次激活的音频通话时长,单位为秒
  • 通话时长视频:最后一次活动的视频通话时长,单位为秒
  • 通话时长会议:上次活动的会议通话时长,单位为秒
  • 呼叫时长Screenshare:上一次活动的共享桌面呼叫时长,单位为秒
  • 呼叫建立时长呼入:秒内最后一个活跃的呼入建立
  • 呼叫建立时长呼出:秒内最后一个活跃的呼出建立
  • 呼叫状态:激活或空闲
  • 通话类型:音频、视频、会议、屏幕共享
  • 版本-终端操作系统:目前未填充
  • Version - Receiver: CWA版本
  • Version—Typescript: API版本
  • 版本- Vda:目前未填写
  • Version—Webrpc: Webrpc的版本
  • Version—WebrtcCodec: webrtc编解码器版本




7.15 LTSR指南

如果你正在使用7.15 LTSR(任何CU),请注意,新的HDX优化微软团队没有(也不会)在这个版本中可用,使用团队的唯一方法是通过传统的HDX技术:


虽然这些技术确实从VDA中卸载了一些CPU/RAM/BW,但它们并不能完全优化实时流量的体验,并且会对VDA资源造成额外的负载。
最好的例子是呈现来自另一个同行/会议的视频提要。这是使用Thinwire图形技术完成的,它在VDA上进行渲染,这在CPU方面是昂贵的。
关注单服务器可伸缩性的管理员可能希望禁用Microsoft Teams管理中心上的视频会议策略。看到在这里更多信息。

重定向外设的第二种方法是可用的,一些客户可能更喜欢使用通用USB重定向。
使用HDX通用USB重定向技术,外设(例如网络摄像头或耳机)实际上与客户端设备分离,并连接到XenApp/XenDesktop会话。这提供了虚拟会话中网络摄像头/外围设备的所有本机功能。
HDX通用USB重定向要求网络摄像头/外设的设备驱动程序在客户端设备和VDA上都可用。
使用HDX通用USB重定向技术的网络摄像头的带宽使用可能因设备的供应商和型号而异,但与使用HDX实时网络摄像头视频压缩相比,它的带宽使用要高得多。HDX网络摄像头/外设的通用USB建议仅在带宽和延迟不受限制的局域网条件下使用。
有关HDX通用USB配置的更多信息,请参阅以下链接:配置USB支持

Microsoft Teams和7.15 VDA的已知问题:

  • 网络摄像头重定向将不适用于64位团队,只适用于32位团队。这是7.15中已知的限制(任何CU) -参见在这里欲知详情。
  • 在Windows Server中,Teams.exe可能会崩溃,或者Teams登录屏幕可能变成空白,没有向用户显示输入字段。请将Teams.exe添加到SfrHook下的VDA注册表中,并确保标志值REG_DWORD设置为204十六进制
  • 添加SfrHook键后,你必须重启你的VDA。
  • 作为最后的手段,您可以通过以下命令禁用Teams的ALL hookCTX107825
用户添加图片

额外的资源

发布说明历史:

  • 2021年5月23日:隐藏的聊天通道在团队中不可见时,运行在虚拟桌面-微软问题(i事件编号241949910);目前正在修复)
  • 12/9/2020:画廊视图(2x2)现在正在公开技术预览。看到在这里欲知详情。
  • 2020年12月8日:微软推出了一款新的公共技术预览方法为团队。思杰建议您报名。
  • 2020年12月8日:思杰Windows 2012的工作空间应用程序是GA,增加了对代理服务器和鼠标指针捕获的支持。看到发布说明
  • 2020年12月2日:思杰MAC 2012的工作区应用程序是GA,增加了对屏幕共享的支持。看到发布说明
  • 2020年11月15日:VDA 1912 LTSR CU2发布,包括对导致团队加载未优化的错误的重要修复。看到发布说明
  • 11/11/2020:“拨打测试电话”现在可以在团队/设置/设备/音频设备下使用。签出/签回团队要求。
  • 2020年11月2日:思杰工作空间应用程序的Windows 2010是GA。看到固定的问题办到(约)
  • 10/29/2020:思杰工作空间应用程序Linux 2010是GA。看到固定的发布
  • 10/15/2020:团队中已启用对DTMF的支持。签出/签回团队要求。(适用于Windows 2006.1或更高版本的工作空间应用程序)
  • 10/8/2020:在Windows 2009.6的工作区应用程序中报告了一个错误,用于传出屏幕共享失败(在显示器具有高DPI或高分辨率的多显示器的设置中)。2010年修正。
  • 2020年9月24日:思杰工作空间应用程序用于Windows 2009.6 GA。看到发布说明
  • 2020年9月23日:思杰工作空间应用程序的MAC 2009支持团队优化
  • 2020年9月8日:在Windows Server(任何版本,任何VDA 1906.2或更高版本)中,会话断开/重新连接可能导致Teams无法以优化模式加载(“关于/版本”中“Citrix HDX未连接”)。思杰和微软于2020年9月8日推出了修复程序,已经部署在GA(又名Ring4)。这不需要任何组件升级(Teams, VDA或Workspace应用程序),并通过功能标志推出(只需要签出/签入)。[RFWIN-15624] [Microsoft Teams Bug ID: 873138]。
  • Teams版本1.3.0.13565现在包含了一个功能,可以控制从优化到非优化的回退机制(例如,禁用网络摄像头或同时禁用音频和网络摄像头,这样就不会对服务器端资源产生影响)。参见中“后退”部分edoc
  • 8/22/2020:团队在VDI中运行时时区重定向不匹配:请升级团队以获得修复(版本为1.3.00.21759)
  • 8/11/2020:优化现在可用于GCC High中的Microsoft Teams
  • 2020年7月21日:现在在GA (Ring4)中可以使用聊天窗口的屏幕共享。签出并签回Teams以启用该功能。
  • 在Windows 10 vda中,使用tsdiscon.exe Microsoft实用程序(如CTX225970选项#2中所述)从会话断开连接将导致Teams在重新连接到会话时加载未优化的内容。我们建议使用桌面查看器工具栏来断开连接。
  • 在P2P呼叫中,当另一个对等点共享他的屏幕时,VDI用户可能会遇到“黑屏”。如果用户然后最小化Teams UI(例如,通过单击聊天按钮),使其位于左上角,那么屏幕共享将变得可见。最大化它会再次显示黑屏。签出/签入回到团队修复问题。[cvadhelp - 14716]
  • 在某些情况下,即使显示“Citrix HDX Not Connected”,尝试呼叫将触发Teams连接到Citrix VDA服务,优化将成功。这是由于Teams UI刷新延迟造成的。
  • 如果Teams被配置为自动启动,上面项目中的问题也可能出现。我们建议通过删除HKLM\Software\Microsoft\Windows\CurrentVersion\Run、HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Run和HKCU\Software\Microsoft\Windows\CurrentVersion\Run中的Teams regkey来禁用自动启动
  • 请注意,即使使用命令行标志,目前也不可能禁用自动启动选择= " noAutoStart = true "使用机器范围的MSI和ALLUSER=1属性。删除上面描述的regkey应该可以解决这个问题。
  • 使用Workspace应用1912或2002,对于共享网络摄像头的VDI用户来说,点对点呼叫(而不是会议)可能会导致较低的编码分辨率,这取决于端点CPU。您可以尝试禁用VP9,或强制分辨率为中等。看到在这里的指令。Citrix在Windows 2006.1的工作区应用程序中修复了此问题
  • 具有高端声卡(Studio质量)的终端可能无法在优化模式下加载。参见下面第2.1节。点击Teams/Settings/Devices将显示“None”。思杰已经意识到这个问题,正在修复工作区应用程序。[RFWIN-17892][修复Windows 2009.6的工作区应用程序中的问题]
  • 如果虚拟桌面有如果有GPU/vGPU,我们建议在Teams/Settings中禁用GPU硬件加速,以提高性能和可伸缩性,否则Teams将使用VDA的CPU来渲染UI元素/动画。此设置("disableGpu":true")存储在desktop-config内部的%Appdata%\Microsoft\Teams中。Json,所以你也可以使用登录脚本编辑该文件并将值设置为true。
  • 在某些情况下,当虚拟机的NTP时间同步服务器通过gpo更新时,与Citrix HTML5视频重定向服务启动时相比,这可能会产生时钟漂移。这种漂移会转化为无效/过期的Citrix证书,Teams将无法在优化模式下加载。我们建议将HTML5视频重定向服务(“CtxHdxWebSocketService”)启动类型更改为“自动(延迟启动)”,而不是默认的“自动”。Citrix在CVAD 2006 VDA中修复了此问题。[hdx - 24350]
  • 当在具有VDA的机器(VM或Remote PC)中安装Teams时,Teams将禁用背景效果。

********************************************************************************************