FusionPBX is an open source GUI for FreeSWITCH. It takes FreeSWITCH and converts it in to a single/multi tenant gateway or PBX system. FusionPBX can be used as a high-available single or domain based multi-tenant PBX, carrier grade switch, call center server, fax server, voip server, voicemail server, conference server, voice application server, appliance framework and more. FreeSWITCH is a highly scalable, multi-threaded, multi-platform communication platform. FusionPBX license is the MPL 1.1 license.
It can be run on most operating systems on the hardware of your choice. It provides unlimited extensions, voicemail-to-email, music on hold, call parking, call center, call queues, analog lines or high density T1/E1 circuits and many other features. It provides the functionality your business needs and brings corporate level phone system features to small, medium and large businesses.
Installation
The easiest way to install FusionPBX with FreeSWITCH on Debian or Ubuntu LTS is using the installation script provided by FusionPBX (see also FusionPBX Downloads and Getting Started).
2016-10-03, Update: For installation follow the instructions on „FusionPBX, Getting Started, New Install“ (the instruction below is rather outdated but might still work) and see also the installation video:
— the following description is outdated …
Install the required packages (libpq-dev
and wget
):
apt-get install libpq-dev wget
Download the script:
cd /usr/local/src
wget https://raw.githubusercontent.com/fusionpbx/fusionpbx-scripts/master/install/ubuntu/install_fusionpbx.sh
chmod 755 install_fusionpbx.sh
The install script can be called with the following options:
install_fusionpbx option1 option2 option1: install-freeswitch install-fusionpbx install-both upgrade-freeswitch upgrade-fusionpbx fix-https fix-permissions version|--version|-v option2: user: option waits in certain places for the user to check for errors it is interactive and prompts you about what to install auto: tries an automatic install. Get a cup of coffee, this will take a while. FOR THE BRAVE! EXAMPLE: install_fusionpbx install-both user
A full installation from scratch can take quite a while (e.g. on an older Raspberry Pi B+ about 3-4 hours). Therefore it’s a very good idea to enable keepalives in your terminal client to avoid the terminal client closing because of a session timeout!
The following command will try to install FusionPBX with FreeSWITCH and SQLite for the database and the RAM saving nginx as web server:
./install_fusionpbx.sh install-both auto
The following command will try to install FusionPBX with FreeSWITCH and ask you for selection of any further options:
./install_fusionpbx.sh install-both user
If you would like to log the installation in /tmp/install_fusion.log
, use this command:
./install_fusionpbx.sh install-both user | tee /tmp/install_fusion.log
Recommended options:
- SQLite (as database)
- Apache (as web server, but NGINX is okay too)
The default web server is NGINX as it is small, fast, and easy to configure. HTTPs is pre-configured with a self signed certificate. Apache will work however. If you choose this keep in mind that you will need to manually setup HTTPS for Apache.
See further hints on page „Easy FusionPBX„.
If the web server or your terminal client should time out during the installation or upgrade for any reason or just simply to ensure everything is installed correctly, use the following commands:
cd /var/www/fusionpbx
php /var/www/fusionpbx/core/upgrade/upgrade.php
Backup and Restore
If using SQLite, your FusionPBX backup will easily include the SQL database:
cd /var/www
cp -R fusionpbx fusionpbx_backup
Backup FreeSWITCH:
cd /usr/local/freeswitch
cp -R scripts scripts_backup
cp -R conf conf_backup
See „If things go wrong: SQLite Database Restore“ for restoring.
Upgrade
Make a backup before upgrading!
Always download the newest installation script before upgrading:
cd /usr/local/src
wget https://raw.githubusercontent.com/fusionpbx/fusionpbx-scripts/master/install/ubuntu/install_fusionpbx.sh
chmod 755 install_fusionpbx.sh
Upgrade FreeSWITCH:
./install_fusionpbx.sh upgrade-freeswitch user
Upgrade FusionPBX
./install_fusionpbx.sh upgrade-fusionpbx user
Sometimes variable names change requiring a regeneration of some config files, i.e. they have to be rewritten with the new variable names. In the FusionPBX web admin GUI go to [System -> Settings] and then click „Save“. This will re-generate v_config_cli.php
and any other config files.
Uninstall FusionPBX
asdf
FusionPBX Admin GUI
The virtual server for FusionPBX by default is installed on the standard HTTP port 80. To free this port for a standard website we first re-configure this to port 8888.
If you use Webmin:
Start Webmin in your browser, login, navigate to „Server > Apache Webserver“, and click on the „Virtual Server“ link of the FusionPBX entry. Change the port for 80 to 8888 and click the [Save ] button. To make this change effective click on the „Apply Changes“ link on the top left of the page.
Open the following URL in a web browser:
http://<<server-address>:8888
Login with the username fusionpbx
and the passwort you have set during the installation.
Add User Extensions
afsd
Add a Gateway with Dialplans and Routes
asf
Configure Firewall and Port Forwarding
Forward the following ports on your NAT router / firewall to the IP address of your FusionPBX/Freeswitch server:
Port | Protocol | Description |
5060 – 5090 | TCP & UDP | VOIP SIP |
16384 – 32768 | UDP | VOIP RTP |