User Rating: 3 / 5

Star Active Star Active Star Active Star InactiveStar Inactive

FusionPBX is an amazing WEB frontend for FreeSWITCH. But as any non-proprietary project (I mean OpenSource licenced), installation is not as easy as everyone would wish. So, here I explain one of the many methods available to install it.

This installation by default will install FusionPBX with the following capabilities:

  • Multi-tenant enabled
  • MySQL/MariaDB enabled for the Profiles registrations
  • MySQL/MariaDB enabled for the FreeSWITCH core
  • MySQL/MariaDB enable for the FusionPBX
  • FusionPBX XML Handler enabled
  • LCR and Billing for FusionPBX
  • FreeSWITCH 1.10.1 1.6 (latest available when writing this post)
  • Database index optimized

This way, if you want to do later advanced configuration such as load balancing or HA, you don't need to do a big thing in the FreeSWITCH or FusionPBX end.

Commands to Install FusionPBX in CentOS

Let's start, follow these steps:

  1. Disable the SELinux, usually edit the file /etc/selinux/config.
  2. Reboot your system (this is a must after disabling SELinux, if SELinux was already disabled then you can skip this step).
  3. Turn off firewalld, type service firewalld stop and then chkconfig firewalld off
  4. Install the EPEL and OKay RPM repositories.
  5. If you already have MySQL or MariaDB installed, you will need database user root@localhost passwordless. You can put a password later, but RPM scripts look for that user to push the database information. RPM's will create its own database user for FuionPBX and FreeSWITCH interaction.
  6. Type yum install fusionpbx-all

You will see it will download many dependencies, this is normal. Please put attention to the output because it will give you useful information. If something goes wrong, you will need to send me that output to figure out why the installation has fallen. Yum or Dnf will start automatically the mysql/mariadb, memcached, httpd (apache) and freeswitch daemons, but if you want to enable them in the next reboot you need to use the chkconfig or systemctl command (see below).

Default username and password will be superadmin for both cases, please change it as soon as possible. You will be able to reach the FusionPBX console by accessing http://YOUR_SERVER_IP/fusionpbx. The default MySQL user is fusionpbx and the default password is c4rl0s3l4rt1st4. You can use those or create yourself yours.

LCR and Billing applications for FusionPBX need a license. So you will need to purchase one, but the installation process is already done.

This RPM pushes many indexes into the database. You won't have these indexes if you install FusionPBX without my RPM's. The default installer does not push indexes. Using indexes can speed your database queries up to 7 times. So I think you should use them.

Type the following commands when you are finished:

  • chkconfig freeswitch on
  • chkconfig httpd on
  • chkconcifg mariadb on or chkconfig mysql on (depending on your CentOS version)
  • chkconfig memcached on
  • chkconfig php-fpm on (if using CentOS 8)

Basic Security

My RPM's provide the packages freeswitch-fail2ban-rules and fusionpbx-fail2ban-rules. If you install them, it will give you access to some basic and customized fail2ban rules. The rules are under /usr/share/doc/{freeswitch,fusionpbx}-fail2ban-rules/README.{freeswitch,fusionpbx}-fail2ban-rules.txt file, you just need to turn them on in the jail.local file. This document scope won't cover this part, but if you are familiar with fail2ban you will understand right away.

My fali2ban rules include what I call greylisting (automatic whitelisting in fail2ban terms). If an IP is being used by a registered extension, it is considered to be whitelist. This helps people who have many extensions behind a single public IP. However, could open a window for inside-jobs. So, you will need to put in a balance if you want a super-secure system that may stop service to valid users (false positive) or a relaxed service-oriented service that may allow inside-jobs (false negative).

FusionPBX Support

If you need personalized commercial support you can always contact me. I will be more than happy to help you.

If you are low on budget, I have created a Telegram FusionPBX Support group where not only myself but many other people help each other.


blog comments powered by Disqus


Read about IT, Migration, Business, Money, Marketing and other subjects.

Some subjects: FusionPBX, FreeSWITCH, Linux, Security, Canada, Cryptocurrency, Trading.