The COVID-19 situation has forced many companies to allow their employees to work from home. Of course, VMware offers a great solution to accomplish this with the VMware Horizon platform solution(s). End-users can access their virtual desktops from home from any device, anywhere and are then able to start working with their company apps.

Working from home usually involves working (a lot) with online meetings. Cisco WebEx Teams is a very popular tool to do this. In some cases, end-users will use WebEx Teams within their virtual desktop.

Because end-user experience is very important in any virtual desktop environment, WebEx Teams offers a way to redirect the video content to the end-user’s client system (endpoint), which will not only give the end-user a better user experience, it also reduces the load within the virtual desktop session and therefore on the underlying ESXi host.

The client system will actually play the video content and the end-user will get far better audio and video experience.

In this blog post, I will show you how to configure this feature, specifically for VMware Horizon virtual desktops.

Virtual Desktop requirements

Before I continue, it worth mentioning that everything below is also described at the Cisco Deployment Guide web page.

First, go to https://www.webex.com/downloads/teams-vdi.html and download the Host Installer.

Next, install the Host Installer package, WebexTeams.msi, in the VDI image. You can use the following commands to do this:

  • Persistent VDI: msiexec /i WebexTeams.msi ALLUSERS=1 ENABLEVDI=1 AUTOUPGRADEENABLED=0 /quiet /norestart
  • Non-persistent VDI: msiexec /i WebexTeams.msi ALLUSERS=1 ENABLEVDI=1 AUTOUPGRADEENABLED=0 ROAMINGENABLED=1 /quiet /norestart

As you can see, the most important setting is ENABLEVDI=1. If you just simply double-click the MSI this option is not used and redirection will not work.

The other important setting is ROAMINGENABLED=1 for non-persistent VDI. If this argument is specified, then the roaming database (the “spark_roaming_store.db” file) is stored in the end-user’s roaming directory (AppData\Roaming). Otherwise, the roaming database is stored in AppData\Local. This argument must be accompanied by ALLUSERS=1, otherwise the ROAMINGENABLED argument is ignored.

Client system (Endpoint) requirements

The below instruction is for Windows-based endpoint devices.

Again, go to https://www.webex.com/downloads/teams-vdi.html. This time, download the Thin-client Installer.

You can just double-click the MSI and install with default settings, or use the following command-line:

  • msiexec /i WebexTeamsVDIClient.msi /quiet /norestart

Important things to note:

  • The redirection only works with accessing the virtual desktop via the Horizon Client. Do not use a browser session.
  • Always first install the Horizon Client on the endpoint device, then the WebEx Teams client.
  • WebEx Teams always detects the Citrix client first. If only using VMware Horizon, un-install the Citrix agent from the endpoint device.
  • The WebEx Teams client and Horizon Client must be the same architecture; 32-bit or 64-bit but not a mix of the two.
  • Horizon Agents 7.10 and newer are supported.
  • Unfortunately, there is no macOS client installer just yet… You can only use the clients that are specified in the previous screenshot.

Testing the solution

You can verify if the redirection is working by checking the Health Checker option in the Help menu. This option must show a connected status for the Virtual Channel. If you are missing a requirement, the Virtual Channel does not have connected status, or isn’t there at all.

During my tests I was using a 2vCPU, 4GB memory Windows 10 virtual desktop and I was testing with one other colleague in the WebEx Teams session. With redirection enabled, We noticed the video was presented in a higher resolution and the sound was much clearer as opposed to not using redirection. We also noticed the CPU and memory usage dropped by 10% and 200MB when using redirection, this was of course because the video content was offloaded/redirected to the endpoint device.