Troubleshooting Guidance for Apps Optimized with Citrix Unified Communications SDK

Troubleshooting Guidance for Apps Optimized with Citrix Unified Communications SDK

book

Article ID: CTX692313

calendar_today

Updated On:

Description

Document what data needs to be collected for Citrix support and Citrix engineers to troubleshoot issues with a vendor application that is optimized with Citrix Unified Communications SDK


Instructions

Unified Communications SDK Context

Unified communications SDK is offered to real-time communications application vendors. Vendors integrate UCSDK to get access to Citrix stack, which they can leverage to offload and optimize their applications. 

The optimization of all the vendor applications works very similar to the HDX Teams optimization. For more context on UCSDK and the list of vendors that have integrated the SDK and have optimized solutions, visit UCSDK Tech Brief

Troubleshooting Guidance

Connection to WebSocketServer Fails 

If communication between the UCSDK and the CtxHdxWebSocketService(WebSocketService.exe) cannot be established, please check the following:

  • Ensure the application executable name is in the Whitelist as per the instructions provided in UCSDK Tech Brief 
  • Follow the guidance of the vendor documentation to ensure the application executable name is proper.
  • Ensure Firewalls on the VDA allow communication through Port 9002. 
  • Follow vendor guidance to ensure endpoint connectivity to the application servers for call flow

Checklist and Logs to collect (across platforms)

The primary mechanism for debugging issues in the field is analyzing the logs the system generates. When an issue happens, ensure to queue the following logs (wherever applicable), reproduce the issue and share the logs with Citrix support. The server side logs and the client side logs both need to be synchronous i.e., not from different calls / times.

Server side Logs

JS Console Log

This is the application side log that will be generated by the vendor application. As the vendor application integrates the UCSDK, the vendor application log will usually contain the UCSDK logs as well. Refer the appropriate vendor documentation to find out how to collect the application console logs that includes the UCSDK logs. Citrix support requires UCSDK logs to troubleshoot and triage the issue.

For example, Amazon Connect integrates UCSDK. For Amazon Connect, customers can download the CCP Logs which include the UCSDK logs. For other vendors, there might be different ways in which this log is generated.

Citrix VDA CDF Logs 

CDFControl is common tool that is used for most Citrix component log capturing. The following trace provider modules need to be enabled to capture Webrtc redirection related logs on VDA.

  • HDX_Multimedia_TeamsService
  • HDX_Multimedia_WebSocketAgent
  • HDX_Multimedia_WebSocketPipe
  • HDX_Multimedia_WebSocketService 

Client side Logs

Client Endpoint CDF Logs

 The following trace provider modules need to be enabled to capture Webrtc redirection related logs on client endpoint.

  • IcaClient_DriverVd_TeamsRedir
  • IcaClient_Multimedia_HdxTeams 

Windows Client Endpoint webrpc and webrtc Logs

Citrix Webrtc redirection engine HdxRtcEngine.exe that runs on the client endpoint also provides additional logs in a text format. It is located under the following path. Whenever HdxRtcEngine.exe process is launched, if configured properly, a new webrpc.log and webrtc_# log files are created under relevant time stamp directory: %Temp%\HdxRtcEngine.

Screenshot_22-11-2024_11128_.jpeg

The log levels can be adjusted via a registry key on the client endpoint. Default log level is 2, however, more verbose debug/trace level logs can be captured by setting this value to 1(debug) or 0(trace). 

Screenshot_22-11-2024_11230_.jpeg

  • Key Path: HKCU\Software\Citrix\HDXMediaStream
  •  Key Name: WebrpcLogLevel
  •  Key Type: DWORD
  •  Key Value:
    • 0 indicates all logs up to trace level
    • 1 indicates all logs up to debug
    • level 2 indicates all logs up to error level.

Note: Make sure to enable the trace level logging so that Citrix support has detailed log information. Revert the log level to 2 once logs are collected

Linux Client Endpoint webrpc and webrtc Logs

On Linux endpoint, log levels can be adjusted via a config file. Whenever HdxRtcEngine.exe process is launched, if configured properly, a new webrpc.log and webrtc_# log files are created under relevant time stamp directory: /tmp/hdxrtcengine.

Create /var/.config/citrix/hdx_rtc_engine/config.json file and add configuration keys in JSON format, eg:

{
“WebrtcLogLevel” : 0,
“WebrpcLogLevel” : 0
}

Note: As Thin Clients come in many flavors and might be locked down, ensure to ask your Thin client vendor how to pull the logs out of the system.

MacOS Endpoint webrpc and webrtc Logs

On Mac endpoint, log levels can be adjusted via a command. Whenever HdxRtcEngine.exe process is launched, if configured properly, a new webrpc.log and webrtc_# log files are created under relevant time stamp directory: .~/Library/Logs/HdxRtcEngine/

Execute defaults write command with configuration keys, eg: 

defaults write com.citrix.HdxRtcEngine WebrpcLogLevel -int 0
defaults write com.citrix.HdxRtcEngine WebrtcLogLevel -int 0

ChromeOS Endpoint Logs

  1. For CWA Chrome App, instructions to collect client log is here
  2. For CWA HTML5, instructions to collect client log is here 
  3. Here is how to collect WebRTC dump files
    • 1 - Open chrome://webrtc-internals in a tab inside the Chrome browser to start the dump files collection.
    • 2 - Re-produce your issue, but DON’T end the call or meeting
    • 3 - Click the "Create a WebRTC-Internals dump" in the chrome://webrtc-internals/ tab
    • 4 - Click on the ‘Download the "webrtc-internals dump"’ button to collect dump files
    • 5 - Close the call or meeting

Additional Information

MTOP - How to collect logs