The quality of a Voice over IP (VoIP) calls 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.
This document is intended to share the best practices in configuring and selecting the best environment for using smrtPhone.
🔰 Firewall Configuration
Your firewall should allow outgoing UDP to the public internet from the browsers that will be using smrtPhone, and allow return traffic in response. If your router includes SIP Application Level Gateway (ALG) function or Stateful Packet Inspection (SPI), disable both of these functions.
To check your overall firewall and port configuration, we recommend:
https://pentest-tools.com/discovery-probing/udp-port-scanner-online-nmap for a UDP port scan
🛜 Network Conditions
Local network conditions have the biggest 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.
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. Callers typically start to notice the effect of latency once it breaches 250ms, and find latency above ~600ms to be nearly unusable. 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
Packet loss
Packets that don't make it to the final destination cause 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.
Packet loss, most frequently jitter-induced packet loss, can make a big 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
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.
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 recommend using the latest version of Google Chrome for the best experience.
You can check if your browser is supported and configured correctly by following this link: https://networktest.twilio.com/
💻 PC Hardware
Hardware can impact voice quality. Different audio cards and driver combos can interact in different ways. smrtPhone 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 large variation in behavior; even the same model can vary from region to region in areas such as AGC and Echo Cancellation behavior. If 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
If you discover any issues in your testing, please contact us
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 echo challenges. We recommend use of a headset on smrtPhone calls in order to provide acoustic isolation between the speaker and microphone, and therefore minimize 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 sound board. For machines with a higher end integrated sound board the 3.5mm connection should be fine. We test with a range of Plantronics and Logitech headsets.
🎧 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/hang-up 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.