- Interact with Azure Cosmos DB with PowerShell - Tue, Sep 14 2021
- Azure health services: Track Microsoft cloud outages and maintenance - Wed, Sep 8 2021
- Powerline: Customize your PowerShell console - Tue, Aug 31 2021
Unified communications (UC) is a topic that makes plenty of Windows systems administrators' blood run cold. VoIP, SIP, PBX—what do these arcane acronyms mean, and how can you find the time to learn when you have a hundred other plates spinning on the job?
Today we'll look at 3CX. This cross-platform software private branch exchange (PBX) aims to save on telecommunications costs. It also aims to make the installation and administration process easy—or easier, at least. I covered an earlier version of this product here at 4sysops—feel free to check it out for background information. Let's get down to business.
The problem space ^
Why would you consider a product like 3CX in the first place? One use case is that your business currently uses expensive and proprietary "black box" PBX equipment, and you want to move to a more flexible and affordable model.
Nowadays most people expect core UC features:
- Integration between their physical desk phone and their computer
- Integration between their phone mailbox and their mobile device, including SMS text message notifications
- Voice mail, call forwarding, parking, auto-attendant, instant messaging, and so forth
- Web conferencing
- The ability to make and accept calls on your business line from wherever you are in the world
Related to this first scenario is the business that has moved their infrastructure to a public cloud, such as Amazon Web Services (AWS) or the Google Cloud Platform. These businesses need a UC platform that works using cloud services and is not tied to a particular vendor like, for instance, Skype for Business is tied to the Microsoft Office 365 cloud.
To sum up, here are the three most common drivers for a UC/voice-over-IP (VoIP) solution such as 3CX:
- Reducing your phone bill
- Avoiding black box PBX appliances that do not scale well
- Cutting travel costs by offering web conferencing
With that, let's get 3CX up and running!
Installation and configuration ^
3CX offers one year of free 3CX Phone System hosting on Google Cloud; this offer includes free web conferencing and unlimited extensions. 3CX is verified to work in a nearly turnkey fashion on AWS and Google Cloud. Sadly, there's no support for 3CX on Microsoft Azure as of this writing in early 2018.
The cloud hosting option is compelling because 3CX has an automated deployment system called PBX Express. This deploys a 3CX instance as a virtual machine (VM) with all requisite firewall ports already forwarded.
Another installation option that's good for businesses with limited IT staff is installing 3CX on a low-cost mini PC such as an Intel Next Unit of Computing (NUC), Shuttle XPC Nano, or Gigabyte BRIX. Per the instructions, you can get a fully operational Debian Linux-based 3CX server up and running for about $200. I show you what a NUC looks like (cool little device!) in the next figure.
Lastly, we have 3CX deployment on your own hardware. Actually, your 3CX server doesn't have to run on hardware; Hyper-V, VMware ESXi, KVM, and XenServer are all supported hypervisor platforms. Note that your physical or virtual server needs to run either Debian Linux (versions 8 or 9) or Windows. Windows support includes client or server versions from Windows 7/Windows Server 2008 R2 SP1 through Windows 10/Windows Server 2016.
And yes, you read that correctly—you can deploy your 3CX server on a desktop workstation. There are a number of other installation "gotchas" to keep in mind. I recommend studying the 3CX Windows installation instructions for details.
For this review, I downloaded 3CX v15.5 and ran the installer on one of my Windows Server 2016 domain member servers. The installation consisted of two phases:
- A 30-second "next-next-finish" MSI installer
- A browser-based wizard (one screenshot of which is shown in the next figure)
Remember I said 3CX made this software to be as administrator- and business-friendly as possible? I wasn't kidding. For example, the previous screenshot shows me selecting my own DNS hostname for the server. While you are welcome to use your own DNS, 3CX offers you free use of their DNS, and they even provide you with your own SSL certificate!
The actual 3CX management web application uses the industry-standard open source nginx (pronounced "engine x") web server and PostgreSQL database server.
You'll definitely want to study the 3CX firewall and router configuration guide to learn which ports you'll need to forward through your router and network address translation (NAT).
In my simple lab I'm using 3CX on its own. However, you can also integrate 3CX into your existing infrastructure, including public switched telephone network (PSTN) gateways, Session Initiation Protocol (SIP) trunks, and VoIP providers. The good news is 3CX maintains a detailed administration manual you can study to cover these use cases.
Actually, I need to be clear if you're new to UC: 3CX in itself does not let you make PSTN calls. You'll need to contract with a VoIP or SIP trunk provider and then integrate that channel into your 3CX outbound and inbound dialing rules.
With respect to client software, you have lots of choices. There's the 3CX web client, shown in the next figure. The idea here is you can get to your mailbox from anywhere in the world using a web browser and an HTTPS internet connection. A Chrome browser plug-in is also available.
Then there is the 3CX softphone client, available on four operating system platforms: Windows, macOS, iOS, and Android. What's cool about this client is that it's eminently customizable to suit both your corporate-branding standards as well as end-user preferences.
Finally, there's the SIP/IP hardware phone. This method supports the computer-telephony integration (CTI) scenario. Be sure to check the 3CX website before making any hardware purchases, however.
Features and flexibility ^
From an administration standpoint, the 3CX web management console is pretty darned great. From a centralized control panel, you can deploy phones, configure extensions, create dialing rules—in other words, all the typical tasks to support the UC features current-generation businesses expect.
Do you see the Update badge in the previous screenshot? 3CX makes it super simple to update not only the server software but also the firmware used across your enterprise's telephony infrastructure.
Subscribe to 4sysops newsletter!
In summary, I enjoy 3CX for its focus on industry standards, cross-vendor compatibility, performance, and of course ease of use. I actually use 3CX Phone System in my Microsoft Azure consultancy every day by integrating 3CX into my Skype for Business client.