Step-by-Step Guide: Installing FreeSWITCH on Debian 12 "Bookworm".

FreeSWITCH is an open-source, scalable, and versatile telephony platform designed for building real-time communication applications and services. It provides a software-based alternative to traditional hardware-based PBX (Private Branch Exchange) systems and offers a wide range of communication features.

In this comprehensive guide, we'll walk you through the process of installing and configuring FreeSWITCH on a Debian 12 server. Debian is known for its stability and reliability, making it an excellent choice for hosting your VoIP infrastructure. By the end of this tutorial, you'll have a fully functional FreeSWITCH installation ready to handle voice calls, video calls, and more.

Step 1: Get Your SignalWire TOKEN 

  1. Visit the SignalWire Website: Open your web browser and go to the SignalWire website (
  2. Sign Up or Log In: If you already have a SignalWire account, log in using your credentials. If not, sign up for a new account by following the registration process.
  3. Select Profile 

  4. Select personal access tokens and create a new token or use the current one.
Step 2: Installing Prerequisites

Before you can set up FreeSWITCH on your Debian 12 server, you need to ensure that all the necessary prerequisites and dependencies are installed. Follow these steps to get your server ready:

- Update the Package Repository: Start by updating the package repository on your Debian 12 system to ensure you have the latest package information. Open a terminal and run the following command: 
apt update

- Install Required Dependencies: FreeSWITCH has specific dependencies that need to be installed. Use the following command to install these dependencies: 
apt-get update && apt-get install -y gnupg2 wget lsb-release

- Add FreeSWITCH repo:


wget --http-user=signalwire --http-password=$TOKEN -O /usr/share/keyrings/signalwire-freeswitch-repo.gpg

echo "machine login signalwire password $TOKEN" > /etc/apt/auth.conf
chmod 600 /etc/apt/auth.conf

echo "deb [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list

echo "deb-src [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list
Step 3: Installing FreeSWITCH
apt-get update && apt-get install -y freeswitch-meta-all