Network Requirements
Overview
This article outlines the network infrastructure requirements necessary for optimal performance with the Sharpen platform. Proper network configuration is essential to ensuring reliable, high-quality voice interactions. Topics covered include supported audio codecs, required ports and protocols by isolation zone, voice protocol behavior, Quality of Service (QoS) prioritization recommendations, and network performance thresholds. Administrators and network engineers should review all sections to ensure their environment is configured to support real-time voice communications without interruption.
For additional information, please visit: Platform Requirements
Infrastructure Overview
Codecs
Sharpen supports G.711 ulaw for voice interactions. The use of other codecs may result in an interruption to service.
Examples of potential failures include…
An inbound tie line from a “Bring Your Own” carrier is sending calls to Sharpen with a non-G.711 u-law codec
External transfers to carriers not accepting G.711 u-law
Ports and Protocols
It is important to make sure the following ports/protocols are free to communicate with our environment.
Due to the dynamic nature of Sharpen's infrastructure, whitelisting by IP address is not recommended. Domains, ports, and IP ranges are subject to change without advance notice.
Domains, Protocols, and Ports
Access to these domains needs to be open regardless of the isolation zone (IZ0, IZ1) in which your account is built. These include some supporting services and libraries that allow Sharpen to run as designed.
Domain | Protocol/Port | Purpose |
|---|---|---|
*.s3.amazonaws.com | TCP: 443 | Long-term audio and image file storage |
stun.l.google.com | UDP: 19302 | WebRTC STUN server |
stun1.l.google.com | UDP: 19302 | WebRTC STUN server |
stun2.l.google.com | UDP: 19302 | WebRTC STUN server |
stun3.l.google.com | UDP: 19302 | WebRTC STUN server |
stun4.l.google.com | UDP: 19302 | WebRTC STUN server |
*.yealink.com | TCP: 443 | Yealink auto-provisioning |
*.ckeditor.com | TCP: 443 | Visual editor/UI library |
*.loggly.com | TCP: 443 | Logging |
*.ingest.io | TCP: 443 | Client logging |
*.chameleon.io | TCP: 443 | Application enablement |
*.gstatic.com | TCP: 443 | Font library |
*.googleapis.com | TCP: 443 | Font library |
*.fortawesome.com | TCP: 443 | Font library |
*.fontawesome.com | TCP: 443 | Font library |
Isolation Zone Domains, Protocols, and Ports
Access to these domains should be open with respect to which isolation zone your account is built in.
Isolation Zone 0 | Your users log in to http://app.sharpencx.com
Domain | Protocol/Port | Purpose |
|---|---|---|
*.sharpencx.com | TCP: 443,8089,8090 | App |
*.sharpen.cx | TCP: 443 | Supplemental app domain |
*.cx.shpn.co | TCP: 443 | CX and VCX |
*.sipvbx.com | UDP: 5060 | SIP registration and signaling |
*.fathomvoice.com | TCP: 80,443,9002 | Provisioning, API, webRTC registration |
Isolation Zone 1 | Your users log in to http://app.iz1.sharpen.cx
Domain | Protocol/Port | Purpose |
|---|---|---|
*.iz1.sharpen.cx | TCP: 80,443,8089,8090,9002 | Provisioning, app, webRTC registration |
*.cx-iz1.shpn.co | TCP: 443 | CX and VCX |
If whitelisting by IP is necessary, the following ranges/addresses apply. NOTE: *IPs subject to change.
Voice Protocols
SIP (Session Initiation Protocol)
5060 UDP (Desk phone) and 9002 TCP (Webrtc) Traffic - this is the call setup/signaling information about the call, such as phone 1 is calling phone 2 on server XYZ.
10000-20000 UDP Traffic - This is the Real-time Transfer Protocol (RTP) stream where actual packets of voice data are transmitted. This is the audio of the call.
While at rest, the phones only send 5060 UDP data as a ‘keep alive’ method for Network Address Translation (NAT); during this period there is no RTP traffic. Once a phone call is made and audio established, RTP traffic is sent from the phone to our servers.
WebRTC
WebRTC is an HTML5 specification that can be used to facilitate real-time media communications (video and audio) between browsers and other audio endpoints. The Sharpen Q phone built into the Sharpen Q application leverages WebRTC, allowing for seamless integration with the platform within the browser. *See “Ports and Protocols” above to make sure you have the proper ports open.
Prioritization
Use Quality of Service to maintain prioritization
Configuring Quality of Service (QoS) can help to maintain traffic priority across the network. It is beneficial to tag your voice traffic with the appropriate tags, so it can be prioritized anywhere in the network in the event of saturation. This will help to prevent any audio issues caused by voice and data competing for the same bandwidth over your internet connection.
Use traffic shaping to offer voice traffic the necessary bandwidth
Due to potential contention of competing data on your network, it is important to ensure that your voice traffic has enough bandwidth to operate. As such, traffic-shaping rules can be implemented to allow voice traffic to use additional bandwidth or even limit other types of traffic to prioritize voice traffic.
QoS Settings
Protocol | Port Range | Priority |
|---|---|---|
UDP | 10000-20000 | DSCP 46 - EF |
UDP | 5060-5081 | DSCP 46 - EF |
Network Performance
Uninterrupted, consistent network performance is required for a good experience with the Sharpen platform. Due to the inherent nature of voice interactions to be real-time, we need consistency in the underlying network. Otherwise, users may experience dropped calls, choppy call quality, latency, or an overall slow experience.
Guidelines for optimal performance
Chrome by default blocks port 5060, which is what Sharpen’s speedtest uses. Flags need to be set when Chrome is launched. Instructions for Windows, Mac, and Linux can be found here.
Run this speed test to obtain your download, upload, latency, and jitter results.
<150 ms latency to *.sipvbx.com (example: us1-webrtc-11.sipvbx.com for east coast US or us2-webrtc-02.sipvbx.com for west coast US)
Average latency variation < 30 ms
High variation represents interruption to your connection. This may be a result of competing network traffic, or general hardware/network instability
While high latency on its own simply means delay, latency variation typically comes coupled with packet loss, which will mean dropped calls and/or choppy audio
>10Mb/s internet connection
While voice itself is a fairly light operation, we recommend having enough bandwidth to handle all your operations. This value is more of a guideline rather than a requirement. Most important is making sure your collection of tools, including Sharpen, has sufficient bandwidth.
The best way to determine bandwidth needs is to sample your toolset usage and extrapolate from there.
Sharpen bandwidth utilization can vary widely based on how it is used; some baseline examples of usage are as follows:
Sharpen Q page load for single agent logged into 4 queues
~350 KB transferred
~7 MB page resources
1 minute outbound call from Sharpen Q
~125 KB transferred
~1 MB page resources
Reporting/Insights (10 reports) page load
~150 KB transferred
~ 8 MB page resources
< 1% packet loss
For a positive experience, voice requires minimal packet loss. If packets are dropped, it will interrupt the audio stream. You may experience disruptive delays or choppy audio. Enough packet loss will cause dropped calls.
< 30ms jitter
Jitter is the variation in delay of packets. Having high jitter will also cause poor call quality.
This article is part of a series on Admin Configuration topics.