Citrix Virtual Apps and Desktops

Unified Communications SDK Optimization

Introduction

Citrix Virtual Apps and Desktops lets you deliver applications to your users on a wide variety of endpoint devices. Many of these applications include real-time communication (RTC) features, like audio and video conferencing. However, challenges can arise when delivering these applications in a virtualized environment. Traditional delivery methods route media streams (audio/video) from the client device to the VDI server in the data center before sending them back to the endpoint. This “hairpinning” introduces unnecessary traffic and processing overhead on the server, especially for bandwidth-intensive audio & video calls.

The Citrix Unified Communications SDK (UCSDK) is a technology that allows technology vendors to optimize these RTC applications for use in Citrix environments. When an application is optimized, it can provide a user experience that matches or even exceeds that of the application running on a local desktop. In today’s world, seamless real-time communication is essential for productivity and collaboration. When using applications within a virtual environment, it’s crucial that audio and video calls, screen sharing, and other communication features work as smoothly as they would on a local desktop. Optimized applications deliver this experience.

This product documentation details all that is needed for the Citrix customers to learn and deploy UCSDK optimized applications.

How it works

Citrix offers an optimized delivery method for real-time communication applications within VDIs. This approach leverages the Unified Communications SDK (UCSDK) to split the virtualized application into two parts:

  • User Interface (UI): The user interface remains within the virtual host, displayed seamlessly within the virtual desktop or application window.
  • Media Engine: The media processing tasks (encoding/decoding audio and video) are offloaded to the user’s local device. This minimizes server load and optimizes network usage.

Typically, Citrix offers UCSDK to technology vendors in the real-time communications space and works with them to get UCSDK integrated into those applications. Once integrated, any Citrix customer using a UCSDK optimized application will have an enhanced experience. Citrix UCSDK can also be consumed by Citrix customers in cases where a custom in-house application is being built. In most cases, however, customers do not need to consume & develop with UCSDK – they just need to configure the Citrix environment and the application to achieve an optimized experience.

Note:

References of Citrix WebRTC SDK (or) an HDX™ optimized application indicate integration with Citrix UCSDK and can be used interchangeably.

Key Benefits

When you are using applications optimized with Citrix UCSDK, you can expect:

  • Enhanced media processing performance by offloading processor-intensive media encoding/decoding from the Citrix Virtual Delivery Agent (VDA) to the client endpoint, increasing overall responsiveness for end users.
  • Reduced CPU and bandwidth usage on Citrix VDA, allowing IT to support more concurrent users per host and enterprises to scale Citrix virtual desktop deployments cost-effectively.
  • Lower total cost of ownership for enterprises, as optimized endpoints extend legacy virtual desktop lifespans and reduce host infrastructure needs, thus reducing capital expenditures and operating costs over time.
  • Support for Windows, Mac, Linux, ChromeOS, and HTML5 endpoint platforms.

Use Cases

UCSDK is purpose-built to optimize real-time communication applications that adhere to the WebRTC standard. Here are key scenarios and the types of WebRTC-based applications that can / already use UCSDK.

  • Contact Center as a Service (CCaaS) / Cloud Contact Center Platforms: Primarily manage customer interactions across multiple channels, optimizing agent workflows.
    • Examples: Amazon Connect, Twilio, Avaya Experience Platform, Talkdesk, Content Guru
  • Unified Communications as a Service (UCaaS) / Cloud Business Communications: Integrate voice, video, team messaging, and presence for comprehensive business communication.
    • Examples: Ring Central, 8x8, Intermedia, Alcatel-Lucent Rainbow
  • Communications Platform as a Service (CPaaS): Provide APIs for embedding real-time communication capabilities directly into custom applications.
    • Examples: Twilio, Ribbon Communications
  • Enterprise Video Conferencing and Collaboration: Dedicated platforms for high-quality video meetings, conferencing, and advanced collaboration features.
    • Example: Pexip
  • Financial Trading Communications: Engineered for the unique, high-performance, and compliant communication needs of financial markets.
    • Example: IPC Unigy
  • Virtual Learning and Training Platforms: Designed for interactive, high-quality virtual classroom and training experiences.
    • Example: Vitero

The underlying WebRTC foundation of the Citrix UCSDK means its optimization capabilities can extend to any WebRTC-based communication applications. This opens the door for optimizing a wide array of applications that utilize WebRTC for real-time interactions, even if they are not currently listed as optimized with UCSDK. We encourage customers to reach out to Citrix with any use cases or applications they want to see optimized.

UCSDK Architecture

UCSDK Architecture

  • Vendor application: This can be any third-party real-time communication application which is desktop-based or browser-based that integrated UCSDK.

  • UCSDK JS: UCSDK JS provides the APIs that vendor applications utilize to offload the audio/video to the endpoint.

  • HdxRtcEngine: This is the embedded WebRTC media engine in Citrix Workspace App that processes and handles the offloaded audio/video call.

Once the SDK is loaded and used, the HdxRtcEngine.exe process is launched on the client endpoint if redirection succeeds. Once HdxRtcEngine.exe is launched on the client endpoint, any signaling and payload data flows from Citrix VDA to the client endpoint, reaches the cloud, bounces back to the client endpoint, and then is forwarded to VDA. For example, a complete round trip of flow could be:

Vendor App -> CitrxWebrtc.js SDK -> Citrix VDA components -> Citrix Client Endpoint components -> Cloud -> Citrix Client Endpoint components -> Citrix VDA components -> CitrxWebrtc.js SDK -> Vendor App

System Requirements

The system requirements indicate the various versions of Citrix components needed with the latest version of UCSDK - 5.0.0. For compatibility details for older versions of the SDK and specific feature requirements, see Versions and Feature Matrix table below.

Note:

For customers to use any feature that is added to UCSDK – ensure that the vendor application has integrated the appropriate UCSDK version and enabled the feature and use the appropriate VDA and CWA versions in your environment.

Fully Compatible Versions

Fully compatible versions indicate that by using these versions of Citrix components along with the latest version of UCSDK, customers can take advantage of all the features available. For the current latest version of UCSDK – 5.0.0, fully compatible versions of Citrix components are as below:

  • Citrix Virtual Apps™ and Desktops: 2603
  • Citrix Workspace App Windows: 2603
  • Citrix Workspace App Mac: To be Released
  • Citrix Workspace App Linux: 2603
  • Citrix Workspace App ChromeOS/HTML5: To be Released

Note:

UCSDK Optimization is supported on all endpoint platforms: Windows, Mac, Linux, ChromeOS, and HTML5. If the list above shows “To be released” for a specific endpoint platform, it simply means that a version fully compatible with the latest UCSDK features hasn’t been released yet. Hence, customers can still use older versions of the Citrix Workspace app to continue using existing features, even with the newer UCSDK.

Configuration

UCSDK feature functionality depends on three factors: the UCSDK version that the vendor has integrated and features that vendor has enabled, the Citrix Virtual Apps and Desktops, and the Citrix Workspace app version in use.

On the Citrix Side, please ensure the following is configured so that the optimized application is allowed to be optimized:

  1. Ensure the Microsoft Teams redirection policy is turned on. Refer to Multimedia Policy Settings for more information. Note that this policy is ON by default.
  2. Third-party Electron or browser-based applications that utilize the CitrixWebrtc.js SDK are not supported by default. The CtxHdxWebSocketService (WebSocketService.exe) will not allow connections from applications that are not on the allowlist. The desired application binary executable name must be added to a whitelist registry key.

Note:

Starting with CVAD 2603, optimization for applications using the Citrix Unified Communications SDK (UCSDK) is no longer dependent on the Microsoft Teams redirection policy. Administrators can now disable Microsoft Teams optimization without affecting other UCSDK-integrated applications. To use this separation, the vendor application must utilize the Bootstrap method (first introduced in UCSDK 4.0) alongside CVAD 2603. For more detail, see Unified Communications SDK documentation.

On the VDA

  • Create a Key Path: HKLM\Software\WOW6432Node\Citrix\WebSocketService
  • KeyName: ProcessWhitelist
  • Type: MULTISZ
  • Key Value: Mytestapp.exe

If you have multiple applications, type each application in a new line. Do not copy and paste from a text file or insert commas. Make sure the name provided matches the executable name of the application. This registry value is not case-sensitive.

If the application is accessed through a browser instead of a full-fledged desktop application, then you need to allow for, e.g., chrome.exe in the registry value.

Once the above registry is configured successfully, reboot the VDA or restart CtxHdxWebSocketService to finish the Whitelist setup.

On the Client

No configuration is needed. Just install the Citrix Workspace app.

Each vendor might have a very specific application name. Hence, refer to the vendor documentation linked in the Current Vendor Support section to determine which application name must be allowed in the WebSocketService.

Feature Reference

Enhanced Call Connect times with Smart Sync

Introduced in UCSDK 5.0.0, the Smart Sync feature accelerates call connection times by streamlining communication between the VDA and the client endpoint. This enhancement delivers faster call setups across the board, providing the most significant performance improvements for high-latency network environments.

Citrix recommends that customers reach out to their application vendors to upgrade to UCSDK 5.0.0 to take advantage of this feature.

Note:

This feature depends only on UCSDK 5.0.0 and the Citrix Workspace app. See the Versions and Feature Matrix for exact client versions. There is no VDA version dependency, so older supported VDAs can still be used.

Decoupled UCSDK and HDX Microsoft Teams Optimization

This feature separates the optimization logic of the Unified Communications SDK (UCSDK) from the Microsoft Teams optimization policy. Previously, the “Microsoft Teams redirection” policy acted as a master switch; disabling it for Teams would inadvertently force all other UCSDK-based applications to fall back to server-side rendering.

With this enhancement, the virtual channel required for WebRTC redirection remains available for third-party applications regardless of the Teams policy state.

  • Benefits

    • Granular Control: Administrators can selectively manage Microsoft Teams optimization policy without impacting the optimization of critical business applications like Amazon Connect, Five9, RingCentral or other UCSDK-integrated applications.

    • Operational Stability: Ensures business continuity by preventing unintended performance degradation in UCSDK optimized applications. Administrators can disable HDX Teams optimization for troubleshooting or compliance reasons without breaking the high-definition audio/video experience of their primary business tools.

  • Requirements

    • VDA Requirement: Citrix Virtual Apps/Desktops 2603 or later

    • Application Compatibility: The third-party application must utilize the UCSDK bootstrap initialization method

Note:

  • This feature does not impact Microsoft Teams SlimCore optimization. SlimCore optimization operates independently using Microsoft-proprietary virtual channels and does not rely on the Citrix CTXMTOP virtual channel.

  • To leverage this feature, third-party applications must be built with UCSDK 4.0 or newer. Customers should verify with the application vendor (e.g., Amazon Connect, Five9, RingCentral) that their specific version uses bootstrap initialization.

Explicit service dependency for Microsoft Teams Optimization

Starting with Citrix Virtual Apps / Desktops 2603, the Citrix HDX Teams Redirection Service (used by HDX Optimized Microsoft Teams & UCSDK Optimized applications) now explicitly declares a dependency on the Citrix HDX HTML5 Video Redirection Service (WebSocketService).

This update ensures that the HTML5 service is automatically verified and started when the Teams service launches, preventing optimization failures for Microsoft Teams and UCSDK-integrated applications in environments where services are strictly managed.

hdx-opt1

Optimized Overlay Clipping for Enhanced Performance and User Experience

From CVAD 2511, the mechanism for handling redirected video overlays in features such as HDX Microsoft Teams Optimization and UCSDK Optimization, has been re-architected to improve both the user experience and server performance.

Essential Benefits

  • Improved Visual Accuracy: This enhancement resolves visual glitches where application elements, such as pop-up menus or notifications, would incorrectly appear behind video content. The new logic ensures all components are rendered in the correct order, providing a more seamless and predictable experience.

  • Enhanced Performance: This optimization significantly reduces CPU utilization on the Virtual Delivery Agent. By replacing older, resource-intensive polling methods with a more efficient graphics-based approach, this change improves server scalability and allows for higher user density.

Note:

The functionality depends on a future version of Microsoft Teams (or other UCSDK partner application) and requires Citrix Workspace App for Windows 2511.

Versions and Feature Matrix

As version updates happen frequently, please refer to Citrix Virtual Apps and Desktops and Citrix Workspace app product lifecycle pages to ensure a particular version is supported. For many of the older features, the versions mentioned in the table are the last supported Current Release (CR) versions at the time of writing this document.

Feature UCSDK Version VDA CWA Windows CWA Mac CWA Linux CWA ChromeOS/HTML5
Audio / Video (p2p & conference) 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2312
Screen sharing 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2312
DTMF 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2312
Proxy Server Support 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2312
App Sharing 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 N/A
Dynamic e911 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2312
Multi Window 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2312
SDP Unified Plan Support 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2312
Stream resolution / Simulcast 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2312
Remote Audio (with Loop) 3.1.0 2203 LTSR Latest CU / 2311 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2405
Browser-based UCSDK (Bootstrap support) 4.0.2 2407 CR 2402 LTSR Latest CU / 2311 CR 2311 2311 2312
Web HID API 4.0.2 2203 LTSR Latest CU / 2311 CR 2409.10 2411 2411 2505
Web Audio API 4.0.2 2203 LTSR Latest CU / 2311 CR 2405 2405 2405 N/A
Restart ICE 4.1.0 2203 LTSR Latest CU / 2311 CR 2503.2 2503 2503 2502.10
Screen Recording (Preview)¹ 4.1.0 2503 2503.2 N/A N/A N/A
Smart Sync 5.0.0 2203 LTSR latest CU / 2311 CR 2603 N/A 2604 N/A

Note:

We’ve introduced a new policy for screen recording, so you need the 2503 version of the delivery controller™, which comes with CVAD 2503.

Current Vendor Support

Several third-party vendors have integrated the Unified Communications SDK into their products. The current list of vendors and their supporting documentation is listed below:

Vendor Documentation
Sprinklr Citrix Media Offloading for Voice Calls - Sprinklr
Microsoft Dynamics 365 Dynamics 365 Contact Center Documentation
Amazon Connect Optimize Amazon Connect audio for Citrix cloud desktops
Ring Central Using RingCentral in a Citrix VDI environment
Five9 Five9 WebRTC in Citrix Environments
Twilio Twilio Flex on Citrix VDI
Avaya Avaya Experience Platform Public Cloud VDI solution for Citrix
8x8 Citrix VDI Integration with 8x8 Work for Desktop & Web
Content Guru Content Guru Citrix Integration
Ribbon Communications Ribbon Communications Citrix WebRTC SDK
Intermedia Installing Intermedia Unite on Citrix Virtual Apps and Desktops
Alcatel-Lucent Rainbow Citrix Optimization for Rainbow Desktop Application
Talkdesk Talkdesk Agent Workspace VDI Connect
IPC IPC Unigy Soft Client Citrix VDI
Vitero Vitero Inspire for Citrix VDI
Pexip Deploying Connect desktop app in Citrix Pexip Infinity Docs
Zoom Web App Configure WebRTC redirection for Zoom Web App

Troubleshooting

For troubleshooting information, see Troubleshooting Guidance for Apps Optimized with Citrix Unified Communications SDK.

Known Issues & Limitations

This section will document the current known issues and limitations as they are recognized.

Unified Communications SDK Optimization