How to setup your PBX setup using open source FusionPBX

A PBX (Private Branch Exchange) is a telephone system that connects all phones within a business and routes calls to the outside world via the Public Switched Telephone Network (PSTN) or VoIP. Modern PBX systems, especially software-based ones, offer features like call routing, voicemail, call recording, call reporting, and more.

FusionPBX is an open-source, web-based PBX solution built on top of FreeSWITCH, making it a versatile choice for businesses of any size. This guide will walk you through setting up a PBX system with FusionPBX.

1. What is FusionPBX?

FusionPBX is a free, open-source PBX management platform that provides a graphical interface to control FreeSWITCH. Its key features include:

  • Call routing and forwarding

  • Voicemail and voicemail-to-email

  • Call recording and reporting

  • Ring groups, call queues, and conference bridges

  • Multi-domain support for larger organizations

FusionPBX simplifies PBX management and allows businesses to scale their communications efficiently.

2. Install FreeSWITCH

FreeSWITCH is the core telephony engine behind FusionPBX.

Steps to install FreeSWITCH on Linux (Debian/Ubuntu):

Install dependencies:

  • sudo apt-get update

  • sudo apt-get install -y build-essential autoconf automake libtool \

  • libncurses5-dev libjpeg-dev libpng-dev libtiff-dev libssl-dev libpcre3-dev git wget unzip

2. Download FreeSWITCH:

3. Compile and install:

  • ./bootstrap.sh -j

  • ./configure

  • make

  • sudo make install

  • sudo make sounds-install

  • sudo make moh-install

3. Install FusionPBX

FusionPBX provides a web interface to manage your PBX system.

Steps:

1. Install web server and database:

  • sudo apt-get install -y apache2 mariadb-server mariadb-client php php-cli php-mysql php-gd php-curl php-xml php-mbstring unzip

2. Download FusionPBX installer:

note:

Complete the web-based setup wizard by creating an admin account and configuring the database connection.

4. Configure FreeSWITCH

FreeSWITCH handles the actual telephony functionality.

1. Edit core configuration:

  • sudo nano /usr/local/freeswitch/conf/freeswitch.xml

2. Set up extensions:

Add users and extension numbers in the configuration or via FusionPBX web interface.

3. Configure voicemail:

Define mailboxes and set email forwarding for voicemail notifications.

4. Set call routing rules:

Define inbound/outbound call handling based on time, number, or other conditions.

5. Restart FreeSWITCH to apply changes:

sudo systemctl restart freeswitch

5. Configure FusionPBX

Use FusionPBX to manage your PBX system easily.

  1. Log in to the web interface using the admin account.

  2. Add extensions: Go to Accounts → Extensions → Add.

  3. Create dialplans: Go to Advanced → Dialplans → Add for inbound, outbound, and internal call routing.

  4. Set up voicemail: Go to Advanced → Voicemail → Add and configure mailboxes for each extension.

  5. Configure additional features: Ring groups, call queues, and conferences are all manageable from the FusionPBX interface.

Connect to Internet :

A PBX system is a centralized telephone system that helps manage internal and external communications within an organization. In order to ensure effective communication, it is important to connect the PBX system to the internet. The Following are the general steps to connect the PBX setup to the Internet:

1) Check internet connection: The first step is to make sure that your PBX server is connected to the internet or not. You can do this by pinging a website, such as www.google.com, from the command line on your server. If you receive a response, then your server is connected to the internet.

2) Configure network settings: The next step is to configure the network settings on your PBX server. This may include setting a static IP address, subnet mask, default gateways, and DNS servers. This information can usually be obtained from your internet service provider.To configure port forwarding for specific ports, such as 5060 and 5061, on your PBX server.

4) Public IP address: In order for external callers to reach your PBX system, you need a public IP address. This can either be assigned by your internet service provider or obtained through a service such as DNS. A public IP address allows callers from the internet to reach your PBX system.

5) Test connectivity: Once you have completed the above steps, you should test the connectivity of your PBX system. This can be done by placing a call from an external phone number to one of the extensions on your PBX system

Connecting your PBX system to the internet is a crucial step in ensuring effective communications within your organization.

Test Your PBX

  1. Dialplan test: Call different extensions and check routing.

  2. Voicemail test: Leave messages and verify email notifications.

  3. IVR test: If using IVR, ensure touch-tone inputs are routed correctly.

  4. Call quality test: Verify audio quality internally and externally.

  5. External call test: Call your PBX from an outside line.

  6. Emergency call test: Ensure calls to emergency numbers route correctly (if supported).

Conclusion:

Setting up a PBX with FusionPBX in 2026 is straightforward. With FreeSWITCH as the engine and FusionPBX as the management interface, businesses can implement scalable, secure, and feature-rich telephony solutions. FusionPBX is open-source, cost-effective, and suitable for organizations of any size, making it an excellent choice for modern communication needs.