Best practices of SnapCall Client's deployment

 

The quality of a Voice over IP (VoIP) call is heavily dependent on the environment that call is running in. From the device, the client is running on, to the network characteristics and Firewall/Router configuration, a successful VoIP deployment requires careful consideration of the end to end experience. In this document, we share the best practices in configuring and selecting the best environment for VoIP calling using SnapCall Client.

Firewall configuration

You can find IP port and bandwidth requirements here.

Network Conditions

Local network conditions have the most significant impact on voice quality. Jitter, latency, and packet loss can be the biggest contributors to voice quality issues in any VoIP network.

Latency The time it takes the RTP (media) packets to arrive at the destination Causes media delivery delays, callers may speak over the top of each other.
Packet loss Packets that don’t make it to the final destination Causes gaps and cut-outs in media, callers may not hear the other side.
Jitter Packets that arrive at the destination out of order Cause a ‘robotic’ distortion effect in media, or packet loss when overrunning the jitter buffer

Latency: High latency can substantially degrade a caller’s experience. While there will always be some latency between the codec algorithm, the jitter buffer, and network traversal, the goal is to keep this to a minimum. Here are some strategies to minimize latency on your network:

  • Some lower bandwidth fixed internet connections can often have a higher latency. If possible, upgrade your internet connectivity.
  • Stick to high-bandwidth connections. Mobile networks such as LTE (mobile 4G Data) can often have high latency.
  • Ensure you’re using the most recent SnapCall version to take advantage of SnapCall Global Low Latency routing infrastructure.

Jitter: Packet loss, most frequently jitter-induced packet loss, can have a significant impact on your VoIP call quality. Wi-Fi can be particularly bad for creating jitter. Here are some strategies to minimize jitter on your network:

  • Use fixed ethernet instead of Wi-Fi whenever possible
  • Reduce packet conflicts on Wi-Fi by reducing the number of devices operating on the same channel.
  • Avoid large data file transfers over the same Wi-Fi environment concurrently with voice.
  • Avoid buffer bloat, which can result in high latency, and bursts of jitter. We recommend ensuring your router is configured with a small buffer size, as a buffer cannot mask high jitter without introducing artificial delay, and often choppy audio.

Note: Not all routers allow for configuring buffer sizes, but some routers ship with defaults, which are not optimized for real-time VoIP networks. Open-source routers, enterprise-grade routers, and gamer-oriented routers are good candidates for providing the right configuration options and defaults.

If you have addressed the above issues and continue to have jitter related impact on your voice quality, you may consider configuring your router with QoS rules to prioritize Snapcall traffic on the above media UDP ports.

Supported Operating Environments

The supported operating environments are based on the OS level for mobile and the browser release level for Web.

Web Browsers: We test with the current major revision of the browser, and the previous major browser revision. That is, if the current release version is N, we test with N and N-1. We also proactively test on the development train for future releases (e.g., Chrome Canary) to identify upcoming changes in WebRTC support.

PC Hardware: Hardware can impact voice quality. Different audio cards and driver combos can interact in different ways. SnapCall tests many variations, but it’s impossible to cover all possible firmware interactions.

If you’re experiencing voice issues, first try the same test on different hardware to identify if it’s a hardware-specific issue.

Mobile Hardware: Hardware support, in general, is determined by the Mobile OS level supported by the hardware. Android Hardware, in particular, has a significant variation in behavior; even the same model can vary from region to region in areas such as AGC and Echo Cancellation behaviorIf you’re experiencing a voice quality issue which you suspect to be due to mobile hardware, please perform the following tests if possible:

  • Test behavior with and without a headset
  • Test on different models of hardware

Mobile OS: We test with the current major release of the mobile OS, and the most recent update of the previous major release.

Headset Hardware

Headsets can improve audio quality by minimizing the echo possibility. We recommend the use of a headset on SnapCall Client calls to provide acoustic isolation between the speaker and microphone, and therefore reduce echo. That being said, headset selection should be made carefully.

PC Headsets: For lower-end PC hardware, we recommend USB Headsets over 3.5mm standard audio jack headsets. This allows you to bypass the native soundboard. For machines with a higher-end integrated soundboard, the 3.5mm connection should be fine.

Bluetooth Headsets: Bluetooth headsets can present unique challenges, as each headset operates slightly differently. If your headset came with a USB Bluetooth adapter, we recommend you pair it with the included adapter, rather than your device’s native Bluetooth receiver, to avoid interoperability issues.

Please note that Bluetooth support on mobile devices can vary significantly, and some devices may not provide the programmatic ability for Bluetooth answer/hangup buttons to be passed to non-native applications.

Static: Static and white noise issues with your client audio can often be due to a misbehaving or misconfigured headset. If you are experiencing static, try reproducing this issue with different headset hardware or no headset hardware to narrow down potential sources.

 

How do I start with SnapCall?

SnapCall provides you an opportunity to try our technology entirely free for 14 days. Create an account and start your free trial. In case you need any assistance, reach out to our team via support@snapcall.io.