Voice-over-IP (VoIP) performance with Citrix Virtual Apps and Desktops has always been a hot topic. If you’re unfamiliar with the subject, here’s a good primer on VoIP architecture with Citrix Virtual Apps and Desktops. Based on several recent customer engagements, I wanted to share five tips to consider when faced with challenges around VoIP optimization:
1 – Audio Quality
This is often neglected when troubleshooting VoIP performance issues. Our product documentation states that, “Currently, Real-time Transport (RTP) over UDP is only supported when Medium audio quality is selected.” But we tested Low and it worked like a charm without human-detectable audio quality issues. Setting this to Low will be good enough to handle most IP phone use cases.
2 – Audio Over UDP Real-time Transport
This is important and can fix issues caused by network latency or jitter. Make sure you have the correct multi-stream ICA policies enabled to support the audio over UDP. The Default UDP port range is typically sufficient and can be validated via Wireshark. The multi-stream computer and user setting both need to be enabled. To summarize it, make sure the following policies are enabled:
- Audio UDP port range (leaving as default setting is fine).
- “Multi-Stream computer setting” on the VDA side (desktop or server OS).
- “Multi-Stream user setting” on the user device side (User device).
Figure 1: Multi-Stream-related Policies
Please note, if you have no control over the user devices, modify the default ICA file on the store.
3 – CPU Priority Set to Realtime on Citrix Audio Service on the VDI
If VoIP offloading (optimization) is not available (see item 5), configuring the Citrix Audio Service for Realtime CPU priority helps mitigate audio choppiness dramatically. The command line to change the CPU priority can be found here. Because this will be reset after a reboot, it should be run as a start-up script. Please note, do not change the VoIP software’s main process to be “Realtime” (High is sufficient) because this could lead to a conflict.
Figure 2: Setting CPU Priority for Citrix Audio service
4 – Thin Client Device-Side Optimizations
Many call center customers choose to use thin clients for easy management. Some thin clients are not based on Windows OS, so softphone real-time optimization software may not be able to be installed (see item 5). There are some additional settings we found important to further increase the performance of VoIP traffic:
- Device side audio buffer: Change it to the maximum it supports. In one case, we found the maximum time to be 0.5 seconds.
- Audio quality: This audio quality can be independent of the Audio quality set via Citrix policy. I would recommend starting with Medium to test.
Please note, you can check if your hardware is Citrix ready in the Citrix Ready Marketplace.
5 – HDX RealTime Optimized Softphone Support
Last but not least, wherever possible, implement the “HDX RealTime optimized softphone support,” where the media engine runs on the user device and VoIP traffic flows peer-to-peer. Examples of this include:
- HDX RealTime Optimization Pack (and, alternatively, the CTX138408 – Microsoft VDI Plug-in for Windows), which optimizes the delivery of Microsoft Skype for Business and Lync. More information about the optimization for Microsoft Teams can be found here.
- Cisco Virtualization Experience Media Engine (VXME) for Jabber.
- Avaya VDI Communicator for one-X Communicator and one-X Agent.
Thanks for reading. I hope this helps to give you confidence with your future VoIP implementations!
Jeff Qiu
Field Architect
Citrix Tech Bytes – Created by Citrix Experts, made for Citrix Technologists! Learn from passionate Citrix Experts and gain technical insights into the latest Citrix Technologies.
Click here for more Tech Bytes and subscribe.
Want specific Tech Bytes? Let us know! tech-content-feedback@citrix.com.