Step by Step - Installing your Linux-based PBX

Step 1: Choosing how to deploy your PBX

We’re going to assume that you need a VoIP telephony solution that supports an office of up to several dozen employees and that you have an Internet connection that supports whatever your simultaneous call volume may be. This is above and beyond your normal Internet traffic. To keep it simple, you need 100 Kbps of bandwidth in both directions for each call. And you need a router/firewall that can prioritize VoIP traffic so that all your employees playing Angry Birds won’t cause degradation in VoIP call quality. Almost any good home router can now provide this functionality. Remember to disable ALG on your router, and it’s smooth sailing.

Next up is choosing where to install your PBX. On a virtual machine on an existing server, directly onto a hardware appliance, or in the cloud on a Linux VPS. There are many good choices. Unless you have a burning desire to preserve your ties with Ma Bell, we recommend limiting your Ma Bell lines to your main number. Most phone companies can provide a service called multi-channel forwarding that lets multiple inbound calls to your main number be routed to one or more VoIP DIDs much like companies do with 800-number calls.

Any capable dual-core i3 processor is sufficient. Review this page for hardware suggestions. For low-end hardware the prices generally are in the $150-$400 range. For larger companies and to increase PBXinaflash simultaneous calls capacity with beefier hardware, you need to consider higher-end specifications.

If your requirements involve retention of dozens of Ma Bell lines and complex routing of calls to multiple offices, then we would strongly recommend you spend a couple thousand dollars with a consultant. Some of the best in the business frequent the PBXinaflash Forums, and they do this for a living. They can easily save you the cost of their services by guiding you through the hardware selection process. For business or for home, another alternative is available if you don’t want to babysit your own hardware. That’s signing up with a managed hosting provider.


Step 2: Choosing the Right Phones

If there is one thing that kills any new VoIP deployment, it’s choosing the wrong phones. If you value your career, keep it as an organization-driven decision after carefully reviewing at least 6-12 IP phones that don’t cause you daily heartburn. You and your budget team can figure out the price points that work in your organization keeping in mind that not everyone needs the same type of telephone. Depending upon your staffing, the issue becomes how many different IP phone sets are you and your colleagues capable of supporting and maintaining on a long term basis.


PBXinaflash supports a great many IP phones out of the box - see the full list here. So the question becomes which phones should you present to your business associates. That again should be a decision by you and your management and budget teams, but collect some information from end-users first. Choose a half dozen representative users in your company and get each of them to fill out a questionnaire documenting their 10 most frequent daily phone calls and listing each step of how they process those calls. That will give you a good idea about types and variety of phones you need to consider for different groups of users. Cheaper rarely is better. Keep in mind that phones can last a very long time, even lousy ones. So choose carefully.

The phone brands that we would seriously consider include Yealink, Snom, Fanvil, HTek, Polycom and Cisco. Do you need BLF, call parking or multiple line buttons, a hold button, conferencing, speakerphone, HD voice, Power over Ethernet (PoE) support, distinctive ringtones for internal and various types of external calls, Bluetooth, WiFi, web, SMS or email access, an extra network port for a computer, headset support, customizable buttons (how many?), quick dial keys? How easy is it to transfer a call? Do you need to mimic key telephones? Also consider color screens, touch screens, busy lamp indicators, extension modules (what capacity?).


What do we personally use: Yealink’s T46G is our favorite, and we also have several Polycom phones of various types, a Samsung Galaxy S4 and Moto X, and a Samsung Galaxy S3 extension interconnected with Vitelity’s vMobile service to provide transparent connectivity on both WiFi and cellular networks.


Step 3: Choosing VoIP Service Providers

One of the design differences between VoIP and the Ma Bell network that we’re all familiar with is that you no longer have to put all your eggs in one basket. The company or companies that you use to make outbound calls need not be the same as the ones you use to handle incoming calls. For home use, VoIP providers typically offer two types of plans: all-you-can-eat (which isn’t really) and pay-by-the-minute (which, in most cases, is priced by the fraction of the minute that you actually use the service). For business use, you have a choice of pay-by-the-trunk (each simultaneous call uses a trunk) and pay-by-the-minute (where you don’t have to manage your simultaneous calls). In all cases, be sure to stick to a VoIP provider that has been tried and tested by PBXinaflash! You can find a list of supported VoIP providers here.

For businesses, we strongly recommend that you stick with Ma Bell for your main business number only. That gets you listed in the phone book and provides 99.999% reliability for access to your business. Most phone companies can provide a service called multi-channel forwarding that lets multiple inbound calls to your main number be routed to one or more VoIP DIDs much like companies do with 800-number calls.


For other business lines as well as home and SOHO setups, ditch Ma Bell as quick as you can. You’ll save boatloads of money. Give some thought to how much non-cellphone usage actually occurs in your situation. In many cases, you will find that pay-by-the-minute service for outbound calls is much less expensive than all-you-can-eat plans. Remember, there are no long term contracts on pay-by-the-minute services so try it and see what your usage habits actually are if you’re unsure. Keep in mind that acquiring inbound trunks for DIDs or phone numbers is almost always all-you-can-eat service ranging in price from $2-$8 a month. The PBXinaflash Forum is chock full of recommendations.


Just remember that, in doing your calculations, separate out the time spent on incoming calls from the time spent placing outbound calls. Also keep in mind that redundancy is a luxury you never had in the Ma Bell days. Take advantage of it and sign up with multiple pay-by-the-minute providers for outbound (termination) service. You only pay for what you actually use. For inbound trunks, many providers offer failover service to different numbers if the primary connection dies. Even if the failover is to your cell phone, it beats missing the call. If international calling is a frequent part of your business or lifestyle, then spend some time exploring the options that are available. There are numerous all-you-can-eat solutions at incredibly affordable rates if you do your homework. Now let’s get started…


Step 4: Installing PBXinaflash

Next step is to actually download and install the PBXinaflash ISO. If you’re building a system in the cloud or in a hosted environment, then Debian has already been installed so you can skip this step and proceed to the PBX configuration.

  1. Download the PBXinaflash ISO.
  2. If you are using a hypervisor / virtualized OS set the option to boot from the ISO image and ensure the CD drive is set to connect on startup. If you are installing on a mini PC, then create a bootable image, plug it into one of the available Mini PC’s USB ports, set the BIOS to boot from the USB drive to start the installation.
  3. Select Install or Graphical install from the main boot screen and press the <Enter> key.


  1. Important: You need to configure a static IP address for the PBXinaflash host machine. Select <Go Back> or press the <ESC> key when asked for the hostname to first set the IP address of the system and then configure the hostname. The PBXinaflash system’s IP address affects the running PBX services, connected clients and IP phones. To change the IP address on a running PBXinaflash system, you need to reboot the machine and then re-provision the connected apps and IP phones. If you don’t want to set a static IP address, proceed to Step 6.
  2. Select “Configure Network Manually” and press the <Enter> key to set a static IP address. The installer will ask you to enter the system's static IP address and select <Continue>. Enter the network netmask and select <Continue>. Then, enter the network default gateway IP address and select <Continue>. Finally, enter the name server(s) IP address(es) and select <Continue>.

  3. Enter a hostname for the computer so you can easily identify it on your network, using the characters 'a' to 'z', numbers '0' to '9' and the '-' character.
  4. Enter a domain name - if this is a network, use the same domain you used on other computers in the network, for example “”. After you enter the machine’s domain, select <Continue> to proceed.
  5. Select the language you wish to install as the default system language and press the <Enter> key.
  6. Select your geographical location from the location menu to update the system locale and press the <Enter> key to proceed.
  7. Specify the “root” account password for the machine and select <Continue> to re-enter the password for verification purposes. Finally, select <Continue> to proceed.

Note: We recommend you set a strong password for the “root” user, as this account has no restrictions!

  1. Select the system timezone and press the <Enter> key to proceed.
  2. Partition your disk, selecting “Guided - use entire disk”. Press the <Enter> key to proceed.

  3. Confirm your disk selection by pressing the <Enter> key.

Note: If you are installing on a bare metal machine, please remember that all the data on your disk will be erased!

  1. Select the “All files in one partition” partitioning scheme and press the <Enter> key to proceed.
  2. Select “Finish partitioning and write changes to disk” and press the <Enter> key to proceed to the Debian for 3CX installation.
  3. Select ‘Yes’ and press the <Enter> key to confirm writing changes to the disk. The install process can take about 5-20 minutes, depending on your machine’s performance.
  4. Choose the 3CX package to install and press the <Enter> key on the “3CX Update Channel” screen:
  • “3CX Stable” for the stable edition of the PBX and proceed to the next step.
  • “3CX SBC” for the Session Border Controller edition of 3CX and follow this guide to configure the SBC.

Select <OK> to agree to the 3CX License Agreement on the “Configuring unattended-upgrades” screen. When the Debian installer finishes, the machine is rebooted and the 3CX installation starts automatically.

  1. After the PBXinaflash installation is complete, you need to run the configuration wizard. You can run this via a web browser or from the command line. Select option (1) to use a web browser on another machine, and point your browser to http://<ip of machine>:5015.


Step 5: Get yourself a FREE 3CX license key

PBXinaflash includes 3CX, enabling you to get your 8 SC (Simultaneous Calls) license free of charge by filling in this form. This also entitles you to free DNS hosting, system and security updates and more.

Step 6: Configuring your PBX with the PBX Configurator

Now you have installed PBXinaflash, you need the run the PBX Configurator tool to detect your IP, ask whether you are behind a NAT and confirm these options with you. You get to choose a subdomain, admin credentials for your PBX and at the end get a summary page to login to your PBX. Save the included info for safekeeping, as they are displayed only once! Follow these step-by-step instructions to configure your PBX.


Step 7: Setup your PBX


Here’s a quick overview of what needs to happen before you can start making and receiving calls. You’ll need an account with at least one phone number for people to call you (known as a DID), and you’ll need an account to place outbound calls to plain old telephones throughout the world. Phones connect to 3CX extensions to work with PBXinaflash. Extensions talk to trunks to make and receive calls. 3CX uses outbound routes to direct outgoing calls from extensions to trunks and  inbound routes to route incoming calls from trunks to extensions to make the phones actually ring. In a nutshell, that’s how a PBX works. There are lots of bells and whistles that you can explore down the road. 3CX now has some of the best documentation in the business. Start here.

To get a minimal system functioning to make and receive calls, here’s the 2-minute drill. Create at least one extension with voicemail. Next, configure a trunk to handle your outside calls. Then set up inbound and outbound routes to manage incoming and outgoing calls. Finally, add a telephone or softphone with your extension credentials.


Suggested links:

User Manual

Administrator Manual

Learn about VoIP and PBX

Attend free webinars

Supported IP Phones

Supported SIP Trunks