Jump to content
  • Contributed By: Steve Beals, Sree Kalyan Peruri

Overview

Over the past few years, the need for real-time communications has sparked numerous vendors to adopt and build WebRTC-based applications. With WebRTC, vendors can build real-time communications within browsers that are accessible from anywhere.  This anywhere accessibility reduces costs by replacing hardware endpoints with softphones and increases scalability and flexibility for enterprises. Many enterprises have adopted these WebRTC-based applications within their call centers, where Citrix virtual desktops provide access to the enterprise environment and applications, including these WebRTC-based applications. User experience is critical in real-time communications, and the Citrix Unified Communications SDK is a private SDK that allows vendors to integrate the SDK into their WebRTC applications to offload media rendering to the endpoint, simulating local endpoint calls within the virtual desktop. For vendors interested, please sign up here.

For Citrix customers using WebRTC-based applications, the SDK is not required as, in most cases, application configuration is all that is required.

Unified Communications SDK Explained

The Citrix Unified Communications SDK allows Unified Communications vendors, Cloud contact center providers, Communications Platform as a Service (CPaaS) providers, or any WebRTC-based communications vendors to integrate seamlessly with electron-based desktop or browser-based applications.

image.png

The Unified Communications SDK is a JavaScript-based software development kit (SDK) built following WebRTC specifications. Integration with the SDK Applications to interface with the Citrix virtualization stack, allowing for remote call handling by our RTC media engine with the Citrix Workspace app. When integrated, resource-intensive media rendering can be offloaded to the endpoint, saving Citrix Virtual Desktop resources and Citrix ICA channel bandwidth while enhancing the performance and quality of the end-user session.

Unified Communications SDK Architecture

image.png

Vendor electron or browser-based applications that intend to support WebRTC redirection on a Citrix virtual environment must utilize the Citrix Webrtc.js SDK. 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 data flow could be Electron App -> CitrxWebrtc.js SDK -> Citrix VDA components -> Citrix Client Endpoint components -> Cloud -> Citrix Client Endpoint components -> Citrix VDA components -> CitrxWebrtc.js SDK -> Electron App.

Note:

WebRTC SDK and Unified Communication SDK are used interchangeably as they are the same SDK.

Unified Communications SDK Benefits

Using the Unified Communications SDK within your WebRTC-based application provides several benefits.  These benefits include:

  • 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

Unified Communication SDK Features

With Unified Communications SDK 4.1, both Node-based, i.e., Electron, and browser-based applications can integrate the SDK and provide an optimized customer experience with all the features listed below. These are all the features that Unified Communications applications need to provide the best experience to the customers.    

  • Audio / Video p2p & Conference - Optimized audio, video and conference calls.
  • Screen sharing - Optimized screen sharing capabilities.
  • Multi-monitor sharing - Sharing multi-monitor screens.
  • DTMF – Allow Dual-tone multi-frequency commands for all participants.
  • Proxy server support – Support for several unified communications application proxy support functions.
  • Application sharing - Share applications instead of the whole screen optimally.
  • Dynamic e911 - Retrieve e911 data for compliance purposes.
  • Remote audio - Rings and notifications from audio/video calls can be configured to ring on the endpoint.
  • Stream restriction and Simulcast – the ability to restrict the number of video streams and quality based on the endpoint capabilities.
  • Web HID API – Integrate seamlessly with Human Interface Devices (HID) for enhanced call control through headsets.
  • Audio Context and Share system audio API—Deliver richer audio experiences with share system audio and a partial implementation of Audio Context.
  • Advanced Overlay Clipping (Preview) - Enjoy a more polished and user-friendly experience with refined overlays and clipping functionalities.
  • Screen Recording Support (Preview) - Vendor applications can fetch endpoint screen captures through UCSDK APIs.     

Citrix Dependencies

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

Configuration

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 here 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.

On the VDA:

  1. Create a Key Path: HKLM\Software\WOW6432Node\Citrix\WebSocketService
  2. KeyName: ProcessWhitelist
  3. Type: MULTISZ
  4. Key Value: Mytestapp.exe
    1. If you have multiple applications, type each application in a new line. Do not copy and paste from a text file or insert commas.
    2. Make sure the name provided matches the executable name of the application.
    3. This registry value is not case-sensitive.
    4. 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.
  5. Once the above registry is configured successfully, reboot the VDA or restart CtxHdxWebSocketService to finish the Whitelist setup

On the Client:

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 below to determine which application name must be allowed in the WebSocketService.

Feature Matrix

All the versions listed in the table indicated the minimum version of the specific component UCSDK, Virtual Delivery Agent, or Citrix Workspace app required to support a particular feature. Currently, three versions of UCSDK are available. UCSDK 3.1.0, UCSDK 4.0.2, and UCSDK 4.1.0 is the latest generally available version that vendor applications support.

Note:

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 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 HTML5

CWA ChromeOS

Audio / Video (p2p & conference)

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2203.1 LTSR / 2305 CR

2305

2305

2305

2305

Screen sharing

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2203.1 LTSR / 2305 CR

2305

2305

2305

2305

DTMF

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2203.1 LTSR / 2305 CR

2305

2305

2305

2305

Proxy Server Support

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2203.1 LTSR / 2305 CR

2305

2305

2305

2305

App Sharing

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2203.1 LTSR / 2305 CR

2305

2305

N/A

N/A

Dynamic e911

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2203.1 LTSR / 2305 CR

2305

2305

2305

2305

Multi Window

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2203.1 LTSR / 2305 CR

2305

2305

2305

2305

SDP Unified Plan Support

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2203.1 LTSR / 2305 CR

2305

2305

2305

2305

Stream resolution / Simulcast

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2402 LTSR / 2307 CR

2305

2305

2312

2312

Remote Audio (with Loop)

3.1.0

2203 LTSR Latest CU5 / 2305 CR

2402 LTSR / 2307 CR

2307.1

2307.1

2405

2405

Browser-based UCSDK

4.0.2

2407 CR

2203.1 LTSR / 2305 CR

2305

2305

2305

2305

Web HID API

4.0.2

2203 LTSR Latest CU5 / 2305 CR

2409

2411

2411

2505

2505

Web Audio API

4.0.2

2203 LTSR Latest CU5 / 2305 CR

2405

2405

2405

Future

Future

Restart ICE

4.1.0

2203 LTSR Latest CU / 2305 CR

2503

2503

2503

2502.10

2502.10

Screen Recording (Preview) 1

4.1.0

2503

2503

N/A

N/A

N/A

N/A

 1Note

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. As of this writing, the current list of vendors and their supporting documentation is listed here:

Vendor

Documentation

Five9

Installing the Software for Virtual Desktop Environments

Amazon Connect

https://docs.aws.amazon.com/connect/latest/adminguide/using-ccp-vdi-citrix-step-by-step.html

Microsoft Teams

Optimization for Microsoft Teams (New) | Citrix Virtual Apps and Desktops 7 2503

8x8

https://support-portal.8x8.com/helpcenter/viewArticle.html?d=b9270b6e-d5ca-4515-98fc-5a0e0d86db8

Intermedia

https://support.intermedia.com/app/articles/detail/a_id/24355

Avaya

Avaya Experience Platform™ Public Cloud VDI solution for Citrix

Rainbow

\CITRIX Optimization for Rainbow Desktop application

Ribbon

https://ribboncommunications.github.io/citrix-webrtc-sdk/tutorials/index.html#/Getting%20Started

 

GitHub - RibbonCommunications/citrix-webrtc-sdk

Ring Central

https://support.ringcentral.com/article-v2/Using-RingCentral-for-Teams-in-a-VDI-environment.html?brand=RingCentral&product=RingEX&language=en_US

Pexip

Deploying the Connect desktop app under Citrix | Pexip Infinity Docs

Vitero

https://www.vitero.com/en/software/components/

IPC Unigy

Unigy® Soft Client | IPC

Twilio

Flex on Citrix VDI | Twilio

Talkdesk

https://support.talkdesk.com/hc/en-us/articles/36439290457499--Preview-VDI-Connect

Summary

The Citrix Unified Communication SDK integrates seamlessly with electron-based desktop or browser-based applications, allowing third-party vendors to provide an exceptional end-user experience. The SDK is a private SDK, so third-party vendors and partners are encouraged to reach out to our product management team to discuss how they can integrate the SDK into their technology and inform them of the latest industry trends so they can build the latest features within the Unified Communications SDK.

User Feedback

Recommended Comments

There are no comments to display.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Add a comment...