Home › Blog › Install FreeSWITCH on Ubuntu
How to install FreeSWITCH and FusionPBX on Ubuntu
FreeSWITCH is a high-performance media server built for heavy concurrency, transcoding and video. This guide builds FreeSWITCH 1.10 from source on Ubuntu (the token-free route) and then adds the FusionPBX web GUI.
Step 1 — Install build dependencies
sudo apt update && sudo apt upgrade -y
sudo apt install -y git build-essential cmake automake autoconf \
libtool libtool-bin pkg-config libssl-dev zlib1g-dev libjpeg-dev \
libsqlite3-dev libcurl4-openssl-dev libpcre3-dev libspeexdsp-dev \
libldns-dev libedit-dev libtiff-dev libopus-dev libsndfile1-dev \
liblua5.2-dev libavformat-dev libswscale-dev uuid-dev
Step 2 — Clone and build FreeSWITCH
Clone the 1.10 branch, then build the two core dependency libraries (libks and sofia-sip) before FreeSWITCH itself:
cd /usr/src
sudo git clone https://github.com/signalwire/libks.git
cd libks && sudo cmake . && sudo make && sudo make install && cd ..
sudo git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip && sudo ./bootstrap.sh && sudo ./configure && sudo make && sudo make install && cd ..
sudo git clone -b v1.10 https://github.com/signalwire/freeswitch.git
cd freeswitch
sudo ./bootstrap.sh -j
# Edit modules.conf to enable/disable modules if needed
sudo ./configure
sudo make -j$(nproc)
sudo make install
Step 3 — Install sounds, service and verify
# Prompt + music-on-hold sounds
sudo make cd-sounds-install cd-moh-install
# Dedicated user and permissions
sudo groupadd freeswitch
sudo useradd -r -g freeswitch -d /usr/local/freeswitch freeswitch
sudo chown -R freeswitch:freeswitch /usr/local/freeswitch
sudo chmod -R ug=rwX,o= /usr/local/freeswitch
# Symlinks + start
sudo ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/freeswitch
sudo ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/fs_cli
sudo /usr/local/freeswitch/bin/freeswitch -nc -u freeswitch -g freeswitch
sudo fs_cli # connect to the CLI; type '/exit' to leave
Create a systemd unit so FreeSWITCH starts on boot (a ready-made freeswitch.service ships in the source tree under debian/).
Step 4 — Install FusionPBX (web GUI)
FusionPBX provides a multi-tenant browser interface on top of FreeSWITCH (PHP + PostgreSQL + Nginx). The maintainers publish an install script:
cd /usr/src
sudo git clone https://github.com/fusionpbx/fusionpbx-install.sh.git
cd fusionpbx-install.sh/ubuntu
sudo ./pre-install.sh
sudo ./install.sh
Security best practices
- Firewall SIP (5060/5061) and the RTP range; restrict to trusted IPs.
- Strong SIP/extension passwords and TLS + SRTP where possible.
- Run
fail2ban; FreeSWITCH ships example filters. - Keep the OS, FreeSWITCH and FusionPBX patched.
Prefer a managed platform?
FreeSWITCH is powerful but demanding to run and secure. Qallixo delivers the finished contact-center product on a managed stack — no builds, no patching. See how FreeSWITCH compares to Asterisk, Kamailio and OpenSIPS.