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.
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
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.0, 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 - Enjoy a more polished and user-friendly experience with refined overlays and clipping functionalities.
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.
- Ensure the Microsoft Teams redirection policy is turned on. Refer here for more information. Note that this policy is ON by default
- 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:
- 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:
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, two versions of UCSDK are available. UCSDK 3.1.0 and UCSDK 4.0.
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.0 |
2407 CR |
2203.1 LTSR / 2305 CR |
2305 |
2305 |
2305 |
2305 |
Web HID API |
4.0.0 |
2203 LTSR Latest CU5 / 2305 CR |
2409 |
2411 |
2411 |
2411 Public TP |
2411 Public TP |
Web Audio API |
4.0.0 |
2203 LTSR Latest CU5 / 2305 CR |
2405 |
2405 |
2405 |
Future |
Future |
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:
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.
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now