3CX – Self Hosted PBX System

Why 3CX

3CX is the lowest cost / per value PBX phone system I have found. It can be installed on Amazon lightsail or other cloud hosting providers. The cost is about $250 per year for line up to 13 lines. You will also need to pay for hosting. Amazon lightsail comes in at about $5 per month. 

The total system for a small business comes in at about $25 per month. Not bad

Community 3CX Forms are here.

Features

You can take calls on mobile devices from your business line. Other standard phone system features are included.

SMS is not available yet. I hope this feature comes soon. Until then, we will work with Twillio and Slack integration

Telephone System Acronyms

ACD (Automatic Call Distribution)

ACD is used to deliver calls to contact center agents based on user inputs or pre-defined rules including skills-based routing.

ATA (Analog Telephone Adaptor)

An ATA is a hardware device that connects analog (non-IP enabled) telephones, PBX systems, fax machines, door alarms and similar devices to digital systems or an internet-based telephony network. ATAs are used to connect legacy hardware to more modern telecommunications equipment.

Bandwidth

Bandwidth is the amount of data that can be transmitted over a communication line in a specified period of time. It is described usually in bits per second (bps) or bytes per second for digital devices and in cycles per second, or Hertz (Hz) for analog devices.

Broadband Telephony

Broadband telephony refers generally to voice calls that are transmitted over the internet, rather than traditional telephone lines. The term is commonly used interchangeably with VoIP, internet telephony or IP telephony.

CDR (Call Data Record)

A stored database record containing data about a specific call. A CDR contains details such as the called and calling parties, originating switch, terminating switch, call length, and time of day.

Codec

codec, which stands for coder-decoder, converts an audio signal (your voice) into compressed digital form for transmission (VoIP) and then back into an uncompressed audio signal for replay. It’s the secret sauce of VoIP. Different codecs have different levels of compression. The highly compressed signals require less internet bandwidth, while less compression is associated with better voice quality.

CTI (Computer Telephony Integration)

Software that integrates voice communications systems with computers for contact center and office automation applications.

DID (Direct Inward Dialing)

A method of directly dialing the number of a IP Phone or a telephone attached to a PBX without routing calls through an attendant or an automated attendant console.

E911

E911 stands for Enhanced 911. This service allows customers to set any physical address as the one to be relayed to emergency dispatchers when 911 is dialed. It also ensures that calls to 911 are routed to the nearest Public Safety Answering Point.

IP (Internet Protocol)

Internet Protocol is a standard that defines the way that data is transmitted between the source device and the destination. It is the network layer protocol in the TCP/IP communications protocol suite. Telecommunications hardware that is designed for use over the internet is commonly called “IP enabled.” IP enabled phones may be referred to as “SIP Phones” or “VoIP Phones.”

IVR (Integrated Voice Response)

An application that provides full-featured integrated voice response capability to answer inbound calls, perform database lookups, re-direct calls automatically, etc.

Jitter

Jitter is used to describe a short fluctuation in the transmission of a voice signal. In SIP trunking, it may result from an abrupt variation in signal characteristics, such as when a data packet arrives either ahead or behind a standard clock cycle.

Latency

Latency is the time between the moment a voice packet is transmitted and the moment it reaches its destination. This delay may be in nanoseconds but it is still used to judge the efficiency of networks. Latency in SIP trunking can lead to poor quality calls.

LEC (Local Exchange Carrier)

The local phone company responsible for delivering calls within a local area.

PBX (Private Branch Exchange)

A PBX is the hardware and software that comprise a business telephone system.  Internet enabled PBX technology is called IP PBX (Internet Protocol Private Branch Exchange).

POTS (Plain Old Telephone Service)

A single phone line and a single phone number. Home phones and dedicated fax lines are good examples of POTS.

PRI (Primary Rate Interface)

PRI is a physical connection to the PSTN over a dedicated line that only serves voice transmission. Traditional business telephone systems leverage PRI. SIP is an alternative to PRI.

PSTN (Public Switched Telephone Network)

The PSTN is the combination of local, long-distance, and international carriers that make up the worldwide telephone network.

QoS (Quality of Service)

QoS is a router setting that prioritizes voice traffic over data traffic. This improves the quality of internet based telephone calls.

SIP (Session Initiation Protocol)

Session Initiation Protocol (SIP) is an industry standard application-layer protocol that can initiate, manage and terminate Peer-to-Peer (P2P) communications and multimedia, including voice, video, email and instant messaging.

SIP Phone/IP Phone

The terms SIP phone and IP phone refer to desktop handsets that are IP enabled, or capable of processing packets of voice data that pass over the internet between users.

SIP Trunkinig

SIP Trunking is a Voice over IP phone solution that uses a trunk to connect an IP-enabled PBX or VoIP Gateway to the internet. SIP Trunking uses cloud-based technology to take advantage of shared lines, such as a company’s existing internet connection, to combine voice and data onto one network.

SIP Channel

A SIP channel represents one digital connection to the PSTN. SIP trunks can have an unlimited number of channels, with each channel representing one concurrent telephone call.

Soft Switch

A soft switch is the software equivalent of a physical telephone switchboard. Internet-based telephony and even some traditional telecommunication networks use soft switches to manage the connection of phone calls.

Softphone

A softphone (also known as a soft client) is a software program for making telephone calls over the internet using a computing device, rather than a traditional telephone handset. The application can be run on a desktop PC, laptop, tablet or cell phone.

Telephony

Telephony refers to any technology involving the development, application, and deployment of telecommunication services for the purpose of electronic transmission of voice, fax, or data, between distant parties. The history of telephony is intimately linked to the invention and development of the telephone.

VoIP (Voice over Internet Protocol)

Voice over Internet Protocol (VoIP) is a group of technologies that work to deliver voice and other multimedia sessions over Internet Protocol (IP) networks, most commonly the internet.  SIP trunking is one method of achieving VoIP, others include the public Internet and private point-to-point networks.

Installing 3CX

To get started, go to the 3CX website. Scroll to the bottom and click “Take The PBX Express” under the on the cloud option.

PBX Express

Enter your e-mail address and other business information. 3CX will send you an email with information to get started. Check out the 3CX installation documentation. It is very good and their app is very easy to install. You will need to start an Amazon Lightsail account, but the process is painless and only takes a few minutes. 

Hardware Requirements

Install Notes

I was a little confused about the FQDN – Fully Qualified Domain Name. The FQDN is something that 3CX sets up. You don’t need to mess with any DNS records. You domain will be something like yourdomain.co.3cx.us

Save All Of The Credentials

You are sent a lot of credentials, help topics, and domain names during setup. I recommend saving all of this in an excel file. If you want to be extra secure, save these in a few different files or write them down on separate pieces of paper.

You will have:

  • Lightsail API and secret Key
  • 3CX Key
  • Admin Username & Password
  • The URL to your management console
  • Your Public IP
  • Many links to help articles
  • A regular users Username & Password
  • Regular users extension “00”
  • Regular users voicemail pin

Login to Admin Account

Once you load your 3CX key (sent in the initial e-mail) and your Lightsail API key into the PBX express, your Lightsail server will be automatically configured. This configuration takes about 10 minutes. Once the 10 minutes is up, you will see your public IP and a button to log into your management console. Login with your admin credentials. 

Alternatively you can navigate to the the domain name of your 3CX install. This is the same as your management console. Google Chrome or Firefox is recommended, other browsers are not supported. 

Login using the admin username and password. This will bring you to the admin panel.

Confusingly, 3CX will also send you credentials for an extension 00. This is a basic user. You will need to set up a few things in the admin account before you can use this extension.

Amazon security for your lightsail is here.

The Admin Panel Looks like this:

A Personal Note

I put off starting my C3X install for far too long, because I thought it would be an arguous process to get started. I regret waiting so long! The install only takes about 30 minutes front to back. You only need to pay for hosting for the first year. So you might as well start today!

Whitelist Your IPs

When you start configuring 3Cx, it can be confusing what login credentials you should use when loggin into either the Admin view, the 3Cx client portal, or the Webclient. If you log in with the wrong credentials more than once. 3Cx may kick you out for 15-16 hours.

To make sure you do not loose access while you provision 3Cx, be sure to WhiteList your private IP. Find your IP by typing What Is My IP into the google search bar.  

 On the left hand side of the 3Cx admin panel, find Security and IP Blacklist.

  • Click +Add
  • Enter your IP
  • Action > Allow
  • Click OK
Do this for any IP that will be using your system. You may want to clean up white listed IPs occasionally. 

 

3CX - Configuration Videos

3CX has a video library available that walks you though everything you need to know to get started. Each section has a link pre-recorded webinar. The link is just above the slides. See the image below:

Download Desktop / Mobile Client

You will want the web client for your mobile & desktop. Download what you need for your system here.

3Cx + Flowroute - Configuration

Set Up Flowroute

 You will need a VoIP provider to get a local number this allows you to make calls on the plain old telephone network.

Needed to make calls on the PSNT. . Information about PSTN here. Here are the available and supported 3Cx VoIP Providers

For our system we will choose the VoIP provider Flowroute.

So, start off by setting up a Flowroute account. 

Set up a Flowroute Account: First verify your e-mail. Then buy at least one DID. This will be your main number. The DID is your main Flowrout Number.

3CX Training Video is here.

How to set up Flowroute with 3CX documentation

This is important information about how to set up your SIP Trunk:

3CX Documentation – How To Add Sip Trunk

https://www.3cx.com/community/threads/flowroute-sip-trunk-settings.63985/

Configure VoiP DID with 3CX – Not sure if this is needed 

VoiP Gateways

  1. Enter the main number assigned to this SIP Trunk. If you just have DIDs and no main number you can select one of the DIDs as the main number. Click OK to create the SIP Trunk and open a new dialog.

https://www.3cx.com/docs/manual/inbound-did-call-routing/

Set up DID Inbound rules

Caller ID Formatting

https://www.3cx.com/docs/cid-reformatting/

Phone Provisioning Variables - Template

https://www.3cx.com/support/phone-provisioning-variables/

General

When configuring Flowroute SIP Trunks in 3CX, all numbers should be entered in a 11-digit number format (e.g. 18135910130), otherwise call routing may fail.

Outbound Caller ID

Flowroute SIP Trunks support Clip No Screening which means you can present any number you want when calling outbound.

To do this you will need to format the DDI in a 11-digit number format (e.g. 18135910130) under the “Outbound Caller ID” of the individual extension.

Outbound Rules

When using Flowroute to make outbound call, the dialed number must always be in a 11-digit number format (e.g. 18135910130).

More information about how to create Outbound Rules and how they work can be found here.

Google Firebase - For Mobile

You might need to set up a google Firebase integration to save battery life.

https://www.3cx.com/docs/firebase-android-client/

Check 3Cx Mail Server

The default 3CX mail server works just fine. To test it, 

  1. go to your URL – This is the management console
  2. Login using Admin Credentials
  3. Go to settings > email > click “test”

Configure Desktop Client

Drag and drop the configuration file (sent in one of the initial e-mails) on to the desktop app

Configure Desktop Client

Setting Inbound Rule Name

The in-bound rule name will be shown to the user when they answer the call. So they will know how to answer the call.

Set DID/DDI

Use an unused DID

Set Up Where Call Is routed to during office hours / off Hours

Do This

Make An Outbound Call

Set up outbound rule to make an outbound call

Can be based on:

  • Dialed Number
  • Extention Trying To Make The Call
  • Extention Group

 

Name your outbound rule Outbound Calls

Calls to numbers starting with prefix

Set to 0-9,+

This allows calls to be made no matter what number they start with or if they start with the + sign.

Set Route

This should be the Flowroute name.

Set emergency numbers

Set Emergency Numbers

Way at the bottom!

WordPress Chat App

Outbound Caller ID

Was setup per Flowrout documentation.

One Caller ID for every extention

Diffrenent Caller ID from different extention

Troubleshooting

If you are experiencing:

  • calls dropping of after 32 seconds
  • One way audio – you can hear but can not speak

 

Troubleshoot 3CX Firewall

Echo On Softphones

On your SoftPhone, go into Settings / Audio Options. You should find an Echo Cancellation option. Try that first. If that does not work, try to turn your microphone gain down. Change Microphone Gain from 4 to 2.

Desktop IP Phones

3Cx Supported IP Phones: https://www.3cx.com/sip-phones/

My Phone Choices: 

 

Provisioning GXP1625 IP Phone With 3Cx

We are not using any extra hardware. We only need 3Cx running on Amazon Lightsail and an IP Phone connected to our local router, Via the LAN port, to get this up and running. Pretty cool. 

You can check if you need updated firmware by checking this 3Cx firmware requirements guide. If you are running into problems provisioning your phone, you likely need to update the firmware. The easiest way to do this is by using 3Cx to provision a config file via STUN using the HTTPS protocol. 

1. Add a phone in the 3CX admin panel

Choose STUN and enter the MAC address of the phone. Take note of the provisioning link. You will need to enter this into the phones web interface later.

2. In Extension Options, uncheck this setting “Disallow use of extension outside the LAN (Remote extensions using Direct SIP or STUN will be blocked)”

3. Login to the phones web interface via web browser.  the the phone’s web interface (web page) navigate here: http://your.phones.ip.address

Initially the phone web page credentials are:

Default username is: admin

Default password is: admin

4. Follow the guides below to update the config provisioning link for the config file as shown in this guide. You will also need to update the the firmware server to:

firmware.grandstream.com

Here are the guide to update the firmware: 3cx guide for how to update the Firmware. 
Next, us this guide to reset and provision your phone. How to configure 16 series Grandstream Phones
 
Also note: the config server path should not contain https:// 
 
Rather the protocol is selected by the radio buttons at the top of the config panel.

 

Find Your Phone Web Interface's New Password

Once the phone is provisioned the IP Phones web interface will have a new password. You can find it by going to Management console=> Extension => double click on the extension => Phone Provisioning tab => Phone Web Page Password.

The Default username is still: admin

Some Notes About Provisioning

Note: It seems after updating the firmware, you can set the firmware server path to the same Fully qualified domain name as you set for the config server path name. – But This is not confirmed. The config updated the firmware path to this. 

If the 3Cx guides do not work for you, you can try these to get more detail about how to access the various parts of your phone. To provision, I think these guides are much harder to follow. I had some serious problems using these, but they are from Grandstream so I will include them here. They also helped me understand what the hell was going on with all the features and settings inside the phone itself.

How to update firmware guide from Grandstream.

GXP1625 Documentation & Firmware Information Page From Grandstream.

How To Use The Grandstream GXP1625

Headsets for Grandstream

This a a good resource for headsets. But ultimately I want a cheaper wireless option:

https://www.headsetsdirect.com/grandstream-headsets-everything-you-need-to-know-for-grandstream-telephones/

This Arama RJ9 headset is a pretty cool wired version for only $35. I went with the type that has only one headphone speaker. I like to hear the environment around me when Im on the phone. Especially for sales calls. If I were only doing tech calls, I would get the type with two headphone speakers.

More About Flowroute

Flowroute can use a RTC based Audio Method. This may be more advanced than PSTN systems. Here is an article about it

It seems SMS can be added to flowroute and 3CX by using FlowSMS. But this still needs to be confirmed. 

3CX and Zendesk Integration

Zendesk can be inegrated with 3Cx to share contacts and make phone calls directly from Zendesk. You will need 3Cx Pro or Enteprise and you will need at least Zendesk Teams level. Zendesk Teams is very much worth the extra cost. Teams is the lowest level you can do integrations. 

Here is the 3Cx guide to set up 3Cx and Zendesk.

You will need to set up custom fields in Zendesk, which is helpful for other work flows too. To make calls from Zendesk you will need the click2call extension for your browser. 

3CX and WordPress Integration

The 3Cx Live Chat and Talk Plugin is available here. 

Securing Your PBX with IP-Based Authentication For Flowroute

This article is what I can find for this. It seems you need to call Flowroute support for more information. 

Setting Up QoS (Quality Of Service) Best Practices

If you are on DSL, you may experience Jitter. Or more specifically, your clients may experience you sounding jittery. This is because of packet loss caused by VoIP not being prioritized on your network. I use all UniFi gear to make this easy to solve. Or at least improve, with my slow DSL connection. 

 

The key is turning on Smart Queues. But there is more to it. See the video below.

In newer versions of the Unifi Controller 5.10.xx. The setting is in:

Settings > Networks > WAN (edit)

Look to the bottom of the page.

Leave a Comment

Your email address will not be published. Required fields are marked *