Skip to main content

Debian 10 Buster (Obsolete)

About

FreeSWITCH project has been moved to GitHub: https://github.com/signalwire/freeswitch
Please open new issues in: https://github.com/signalwire/freeswitch/issues

Debian 10 "Buster" is the reference platform for FreeSWITCH™ as of version 1.10

Dependencies are available from FreeSWITCH repository via the "apt-get build-dep freeswitch" command.

Linux

Sofia-sip and SpanDSP Notice!

SpanDSP and sofia-sip

Sofia-sip and SpanDSP dependencies have been removed from the FreeSWITCH™ tree since v1.10.4 Release (05 August 2020).

You can find source files of Sofia-sip here: https://github.com/freeswitch/sofia-sip

SpanDSP sources are here: https://github.com/freeswitch/spandsp

Packages for Sofia-sip and SpandDSP are available for all supported platforms from our packaging repos.

You might have to visit each directory, run ./bootstrap.sh then ./configure then make install

We dropped support in packaging for anything older than Debian 9 and anything older than Centos 7 due to a number of dependency issues on older platforms.

Commit Log

See all FreeSWITCH commits here: https://github.com/signalwire/freeswitch/commits/master

Installing FreeSWITCH - Package or Source

Easy Way

Installing From Debian Packages

Latest Release Branch:

Release package

apt-get update && apt-get install -y gnupg2 wget lsb-release
wget -O - https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc | apt-key add -

echo "deb https://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src https://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list

# you may want to populate /etc/freeswitch at this point.
# if /etc/freeswitch does not exist, the standard vanilla configuration is deployed
apt-get update && apt-get install -y freeswitch-meta-all

FreeSWITCH™ is now installed and can be accessed with

FreeSwitch CLI

fs_cli -rRS

Master Branch ("git"):

WARNING not suitable for production

Master Test Package

apt-get update && apt-get install -yq gnupg2 wget lsb-release
wget -O - https://files.freeswitch.org/repo/deb/debian-unstable/freeswitch_archive_g0.pub | apt-key add -

echo "deb https://files.freeswitch.org/repo/deb/debian-unstable/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src https://files.freeswitch.org/repo/deb/debian-unstable/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list

# you may want to populate /etc/freeswitch at this point.
# if /etc/freeswitch does not exist, the standard vanilla configuration is deployed
apt-get update && apt-get install -y freeswitch-meta-all

Building Debian Packages From Master Branch

WARNING not suitable for production

The master branch depends on different libraries which are not available as packages in Debian distribution, but are available from FreeSWITCH repository. Thus, you will need internet access to the FreeSWITCH DEB repository.

Build your own .deb Master package

apt-get update && apt-get install -yq gnupg2 wget lsb-release
wget -O - https://files.freeswitch.org/repo/deb/debian-unstable/freeswitch_archive_g0.pub | apt-key add -

echo "deb https://files.freeswitch.org/repo/deb/debian-unstable/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src https://files.freeswitch.org/repo/deb/debian-unstable/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list

apt-get update && apt-get install -y xz-utils devscripts cowbuilder git screen

# nonstandard packages from freeswitch repo are not trusted by pbuilder !!
echo "ALLOWUNTRUSTED=yes" >> /etc/pbuilderrc

# get the latest master. Use the -b flag to get a specific branch
mkdir /usr/src/freeswitch-debs
git clone https://github.com/signalwire/freeswitch.git /usr/src/freeswitch-debs/freeswitch

cd /usr/src/freeswitch-debs
# here it's good to run screen with logging, so that you can detach from the shell prompt
screen -L
cd freeswitch
./debian/util.sh build-all -aamd64 -cbuster

# here you can detach by Ctrl-a Ctrl-d and see the log files in /usr/src/freeswitch-debs/log/ folder.
# The build may last about an hour, depending on your CPU speed.
# If the build is successful, you will have a bunch of .deb files in /usr/src/freeswitch-debs


Compiling from source code

Building From Source

Compiling Release Branch (production)

Release source build

apt-get update && apt-get install -yq gnupg2 wget lsb-release
wget -O - https://files.freeswitch.org/repo/deb/debian-release/fsstretch-archive-keyring.asc | apt-key add -

echo "deb https://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src https://files.freeswitch.org/repo/deb/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list

apt-get update
 
# Install dependencies required for the build
apt-get build-dep freeswitch
 
# then let's get the source. Use the -b flag to get a specific branch
cd /usr/src/
git clone https://github.com/signalwire/freeswitch.git -bv1.10 freeswitch
cd freeswitch

# Because we're in a branch that will go through many rebases, it's
# better to set this one, or you'll get CONFLICTS when pulling (update).
git config pull.rebase true

# ... and do the build
./bootstrap.sh -j
./configure
make
make install

Compiling Latest Master (for testing)

WARNING not suitable for production

Master source build

apt-get update && apt-get install -yq gnupg2 wget lsb-release
wget -O - https://files.freeswitch.org/repo/deb/debian-unstable/freeswitch_archive_g0.pub | apt-key add -

echo "deb https://files.freeswitch.org/repo/deb/debian-unstable/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src https://files.freeswitch.org/repo/deb/debian-unstable/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list

apt-get update

# Install dependencies required for the build
apt-get build-dep freeswitch

# Then let's get the source. Use the -b flag to get a specific branch
cd /usr/src/
git clone https://github.com/signalwire/freeswitch.git freeswitch
cd freeswitch

# Because we're in a branch that will go through many rebases, it's
# better to set this one, or you'll get CONFLICTS when pulling (update).
git config pull.rebase true

# ... and do the build

# The -j argument spawns multiple threads to speed the build process, but causes trouble on some systems
./bootstrap.sh -j

# if you want to add or remove modules from the build, edit modules.conf
vi modules.conf

# add a module by removing '#' comment character at the beginning of the line
# remove a module by adding the '#' comment character at the beginning of the line
# containing the name of the module to be skipped in the build process

./configure
make
make install

# Install audio files:
make cd-sounds-install cd-moh-install

# To update an installed build:
cd /usr/src/freeswitch
make current

Before Starting FreeSWITCH

If you built FreeSWITCH™ from source code you should set file permissions and ownership before starting FreeSWITCH. Follow the post-installation instructions.

Comments:

The required metapackages to run lsb_release are not installed by default on a Debian Buster so the first line on the Installing From Debian Packages should be like the first line on the other instructions and include the lsb-release at the end: "apt-get update && apt-get install -yq gnupg2 wget lsb-release" Posted by Alcon at Aug 12, 2019 20:27
Thanks. Posted by andywolk at Aug 14, 2019 17:18
I had to also install libpcap-dev libjpeg-dev zlib1g-dev pkg-config libcurl4-gnutls-dev libldns-dev libtiff-dev Posted by davidcsi at Oct 25, 2019 21:01
I've followed the instructions and installed the additional packages show by David above. When running on Raspberry Pi OS (Buster), building dependencies fails as follows:As of August 7, 2020, the Debian from source instructions for Buster has an issue. Running apt-get build-dep freeswitch results follow:root@freeswitch:~# apt-get build-dep freeswitchReading package lists... DoneReading package lists... DoneBuilding dependency treeReading state information... DoneSome packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor been moved out of Incoming.The following information may help to resolve the situation:The following packages have unmet dependencies:builddeps:freeswitch : Depends: libsofia-sip-ua-dev (>= 1.12.12) but it is not going to be installedDepends: libilbc-dev but it is not installableDepends: portaudio19-dev but it is not going to be installedDepends: libv8-6.1-dev but it is not installableE: Unable to correct problems, you have held broken packages. Posted by tom@tomlynn.com at Aug 08, 2020 01:26