Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Flex on Azure Virtual Desktop (Public Beta)


(warning)

Public Beta Notice

Flex on Azure Virtual Desktop is currently available as a limited Public Beta product and the information contained in this document is subject to change. This means that some features are not yet implemented and others may be changed before the product is declared as Generally Available. Public Beta products are not covered by a Twilio SLA.


Overview

overview page anchor

If you use Azure Virtual Desktop environments, Flex on Azure Virtual Desktop provides the ability to run Flex while maintaining optimal call quality. Flex UI 2.4.1 and later improves audio quality by supporting Azure Virtual Desktop MMR.

This feature relies on Microsoft’s multimedia redirection (MMR) for Azure Virtual Desktop(link takes you to an external page), which is a browser extension. MMR is a Microsoft Preview feature(link takes you to an external page), which means it is offered by Microsoft for optional evaluation.

When accessing Flex outside of Virtual Desktop, Flex is aware of the WebRTC credential of the browser where it is launched. Because Flex is being accessed in a Virtual Desktop environment, audio packets from Flex's backend are sent directly to that browser, and then the Virtual Desktop server is responsible for forwarding those packets to the end user's local device. This introduces extra latency and lengthy round-trip time. To solve this, MMR provides the end-user local device webRTC credentials to Flex, rather than the Virtual Desktop browser’s, to establish the connection and send the audio packets directly.


Flex on Azure Virtual Desktop architecture

flex-on-azure-virtual-desktop-architecture page anchor
Flex on Azure Virtual Desktop architecture diagram
  1. An agent logs on to their local host.
  2. The agent’s device establishes a connection with the session host through the Microsoft remote desktop client.
  3. In the session host, the agent accesses Flex using a browser with the Microsoft Multimedia Redirection extension installed and enabled.
  4. After authentication, Flex initializes, which establishes a connection with the Twilio Programmable Voice server.
  5. During a call (outbound or inbound), MMR forwards the WebRTC connection information to the local host, allowing the local host to connect directly with the Twilio Voice media server for direct exchange of media packets. The direct connection between the local host and the Twilio Voice media server improves audio quality.

The following are system requirements for the Azure Virtual Desktop server and remote device.

Flex

flex page anchor

Azure Virtual Desktop server

azure-virtual-desktop-server page anchor

Set up Flex on Azure Virtual Desktop

set-up-flex-on-azure-virtual-desktop page anchor

To set up Flex on Azure Virtual Desktop, complete the following steps:

  1. Set up your local Windows environment
  2. Set up the Azure Virtual Desktop environment.
  3. Self-hosted Flex only: Upgrade the Flex UI library
  4. Validate the Azure Virtual Desktop setup.

Step 1: Set up your local Windows environment

step-1-set-up-your-local-windows-environment page anchor
  1. Follow Microsoft's instructions to enable Insider releases(link takes you to an external page) .
  2. Install the X64 version of the Microsoft Visual C++ Redistributable 2015-2022, version 14.32.31332.0 or later. You can download the latest version from Microsoft Visual C++ Redistributable latest supported downloads(link takes you to an external page) .
  3. Restart your device.
  4. Open the Remote Desktop Client that you installed in the first step and log in to the Azure Virtual Desktop instance. Ensure that the Remote Desktop Client now shows the Insider tag next to its name.

Step 2: Set up the Azure Virtual Desktop environment

step-2-set-up-the-azure-virtual-desktop-environment page anchor
  1. Install the X64 version of the Microsoft Visual C++ Redistributable 2015-2022, version 14.32.31332.0 or later. You can download the latest version from Microsoft Visual C++ Redistributable latest supported downloads(link takes you to an external page) .
  2. Follow Microsoft's instructions to install the multimedia redirection extension(link takes you to an external page).

    When enabling the browser extension, be sure to enable the Preview version of the Microsoft Multimedia Redirection extension. If the GA version of the Microsoft Multimedia Redirection extension is present, disable it.

(information)

Info

These steps might install a non-preview version of the MMR extension. However, Flex on Azure Virtual Desktop requires the Preview version. If necessary, you can install the Preview version of the MMR extension manually.

To do so, sign in to Azure Virtual Desktop and then open a Microsoft Edge or Chrome browser. Install the extension for your browser. Be sure to install Preview version 1.0.2402.20016 or later.

  1. Log out of your Virtual Desktop and restart your local Windows device.

Step 3: Self-hosted Flex only

step-3-self-hosted-flex-only page anchor

If you access your Flex environment on flex.twilio.com, you can skip this section.

If your Flex environment is self-hosted, you must perform the following steps:

  1. Upgrade the Flex library to a version that supports Azure Virtual Desktop:

    a. Download the latest version from the NPM registry.

    b. Run the following command in your Flex project:

    npm install @twilio/flex-ui@2.4.1

  2. Create a support ticket with Twilio(link takes you to an external page) to request that your URL is added to Microsoft’s allowlist for call redirection. Allow 2-3 weeks for your URL to be added. If you want to start using Flex on Azure Virtual Desktop right away, you can temporarily enable call redirection for all sites using Microsoft’s directions(link takes you to an external page) until your URL is added to the allowlist.

Step 4: Validate the Azure Virtual Desktop setup

step-4-validate-the-azure-virtual-desktop-setup page anchor

Follow these steps to validate your setup and ensure that Flex will automatically detect if you’re running in a Virtual Desktop environment:

  1. Log in to your Virtual Desktop environment.
  2. Open the Chrome browser within the Virtual Desktop environment.
  3. Open Flex and log in to your Flex instance.
  4. From Flex, place an outgoing phone call.
  5. Confirm that the MMR extension in your browser has changed to include a green phone icon. If you click it, you should see the message “A call is being redirected.” These indicate that Flex can detect your Azure Virtual Desktop environment.
MMR extension pane with the message A call is being redirected

If MMR does not show that the call is being redirected, see The MMR extension is not loaded in the troubleshooting section.


Twilio Voice JS DSCP support

twilio-voice-js-dscp-support page anchor

Voice Over Internet Protocol (VoIP) call quality is influenced by environmental factors, such as:

  • Firewall configuration
  • Network conditions
  • Available bandwidth
  • Browser version (for webRTC)
  • Operating system
  • Microphone and speaker hardware

It's important you review our deployment best practices(link takes you to an external page) and connectivity requirements documentation(link takes you to an external page) before taking your app to production. Browsers that support DSCP are able to tag call media packets sent by the voice client. Your router or network element can then use these tags to prioritize call media packets over other traffic on the network.

  • Your router or network element must be DSCP-compliant.
  • DSCP is only supported by Google Chrome.

  • Unable to read volume levels from the front end (Microsoft MMR issue)

To capture logs from the MMR extension, open the MMR extension in your browser and select Show Advanced Settings. Next to Collect logs, click Start.

MMR extension settings pane with the Collect logs option circled

The MMR extension is not loaded

the-mmr-extension-is-not-loaded page anchor

If you followed the steps in Validate the Azure Virtual Desktop setup and the MMR extension is not loaded, check the following:

  • Check your configurations and confirm that your environment meets the system requirements , then try again.
  • If your Flex environment is self-hosted, confirm that you completed the steps for self-hosted environments , including enabling call redirection for your domain.

If you have checked your environment and configuration and still have issues, contact Twilio support.

MMR extension pane with the message The extension is not loaded

Rate this page: