In this video, I demonstrate how to install FreeSWITCH on Debian 12 (Trixie) from source with all required dependencies.
This is a clean, production-ready installation suitable for:
VoIP softswitch setups
Call center solutions (Vicidial-like systems)
SIP trunking
IVR, inbound & outbound calling
WebRTC and real-time communications
✅ What’s covered in this tutorial:
System update and dependency installation
Installing PCRE 8.45 (required by FreeSWITCH)
Building and installing:
spandsp3
Sofia-SIP
libks
signalwire-client-c
Downloading FreeSWITCH from GitHub
Bootstrapping, configuring, compiling, and installing FreeSWITCH
Installing sounds and MOH (Music on Hold)
🧰 OS & Tools Used:
Debian 12 (Trixie)
GCC, CMake, Autotools
FreeSWITCH (latest source)
SignalWire libraries
👨💻 Who this video is for:
Linux system administrators
VoIP engineers
Call center developers
FreeSWITCH beginners & advanced users
Anyone building a SIP / telephony platform
📌 Commands Used:
All commands shown in this video are safe to run on a fresh Debian 12 system.
"=== Updating System & Installing Dependencies ==="
apt update
apt install -y git wget curl cmake automake autoconf build-essential \
libtool pkg-config uuid-dev libpcre2-dev libcurl4-openssl-dev \
libedit-dev libssl-dev libsrtp2-dev libspeex-dev libspeexdsp-dev \
libsqlite3-dev libopus-dev libsndfile1-dev libpq-dev libldns-dev \
libavformat-dev libavcodec-dev libswscale-dev libswresample-dev \
liblua5.2-dev libopusfile-dev yasm nasm
Prevent GitHub from asking username/password for public repos
git config --global url."https://github.com/".insteadOf "[email protected]:"
"=== Installing PCRE 8.45 (Required by FreeSWITCH) ==="
cd /usr/local/src
wget https://downloads.sourceforge.net/project/...
tar xzf pcre-8.45.tar.gz
cd pcre-8.45
./configure --prefix=/usr/local
make -j$(nproc)
make install
ldconfig
"=== Installing spandsp3 ==="
cd /usr/local/src
git clone https://github.com/freeswitch/spandsp.git spandsp3
cd spandsp3
./bootstrap.sh
./configure
make -j$(nproc)
make install
ldconfig
"=== Installing Sofia-SIP ==="
cd /usr/local/src
git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip
./bootstrap.sh
./configure
make -j$(nproc)
make install
ldconfig
"=== Installing libks ==="
cd /usr/local/src
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make -j$(nproc)
make install
ldconfig
"=== Installing signalwire-client-c ==="
cd /usr/local/src
git clone --depth 1 https://github.com/signalwire/signalwire-c...
cd signalwire-client-c
cmake .
make -j$(nproc)
make install
ldconfig
"=== Downloading FreeSWITCH Source ==="
cd /usr/local/src
git clone https://github.com/signalwire/freeswitch.git
cd freeswitch
"=== Bootstrapping FreeSWITCH ==="
./bootstrap.sh -j
"=== Configuring FreeSWITCH ==="
./configure -C
"=== Building & Installing FreeSWITCH ==="
make -j$(nproc)
make install
make sounds-install
make moh-install