Setting Up Freeswitch On Debian 5 (Lenny)


FreeSWITCH is an open-source telephony platform designed to facilitate the creation of voice and chat driven products scaling from a soft-phone up to a soft-switch. It can be used as a simple switching engine, a PBX, a media gateway or a media server to host IVR applications using simple scripts or XML to control the callflow.


Setup environment

OS: Linux
Distribution: Debian 5 (Lenny)
Date: 12/11/2009
Prerequisite: minimal install
Freeswitch version: 1.0.4


When/Where to use Freeswitch

Scenarios where freeswitch fits in:

Rating & Routing Server
Transcoding B2BUA 
IVR & Announcement Server
Conference Server
Voicemail Server 
SBC (Session Border Controller) 
Basic Topology Hiding Session Border Controller 
Zaptel, Sangoma, Rhino, PIKA Hardware Support (Analog and PRI)
And, of course, a PBX


Downloading Source

Debian lenny does not come with binaries of Freeswitch. Therefore we would be using “svn” repositories to build the binaries.

cd /usr/src
sudo apt-get install subversion build-essential autoconf automake libtool libncurses5 libncurses5-dev

svn checkout freeswitch

This will download the source code from the web( ~311 Mb in size). Make sure you have Internet access.If you are behind proxy. Set the proxy in /root/.subversion/servers.


Building Binaries

cd freeswitch

Run the following command to check for any dependencies that may exist.


I needed these. Your requirements may vary. Fulfill them.

aptitude install automake1.9 unixodbc-dev libasound2-dev libcurl3-openssl-dev \
libcurl4-openssl-dev libssl-dev libogg-dev libvorbis-dev libperl-dev libgdbm-dev \
libdb-dev libgnutls-dev libtiff4-dev libmemcache-dev memcached libx11-dev

Start building the packages.

dpkg-buildpackage -rfakeroot

Note: During the building process still need Internet access. (The scripts fetch stuff fromt the web.)

Building process should take around 12 hours on a Pentium 4 with 1Gb ram & this should produce following debian packages (definitions listed only).


Freeswitch - The FreeSWITCH open source telephony platform

freeswitch-codec-passthru-amr - Pass through AMR Codec support for the FreeSWITCH(TM)

freeswitch-codec-passthru-g7231 - Pass through g723.1 Codec support for the FreeSWITCH(TM)

freeswitch-codec-passthru-g729 - Pass through g729 Codec support for the FreeSWITCH(TM)

freeswitch-dbg - The FreeSWITCH(TM) open source telephony platform Debug symbols

freeswitch-dev - Development Package for the FreeSWITCH(TM)

freeswitch-lang-de - German language files for the FreeSWITCH(TM)

freeswitch-lang-en - English language files for the FreeSWITCH(TM)

freeswitch-lang-es - Spanish language files for the FreeSWITCH(TM)

freeswitch-lang-fr - French language files for the FreeSWITCH(TM)

freeswitch-lang-it - Italian language files for the FreeSWITCH(TM)

freeswitch-lang-nl - Dutch language files for the FreeSWITCH(TM)

freeswitch-lua - A lua engine for FreeSWITCH(TM)

freeswitch-perl - A perl engine for FreeSWITCH(TM)

freeswitch-sounds-en-us-callie-16000 - English language files for the FreeSWITCH(TM) (16000)

freeswitch-sounds-en-us-callie-32000 - English language files for the FreeSWITCH(TM) (32000)

freeswitch-sounds-en-us-callie-8000 - English language files for the FreeSWITCH(TM)

freeswitch-sounds-music-8000 - Music on hold files for the FreeSWITCH(TM) (8000)

freeswitch-spidermonkey - A Javascript engine for FreeSWITCH(TM)


Installing the freeswitch debs:

Install all the packages. Alternatively you may skip installing other language packages except English (i.e. Freeswitch-lang-en).

dpkg -i freeswitch*.deb

This takes around 125 MB of storage space.

Share this page:

Suggested articles

3 Comment(s)

Add comment


By: Anonymous

Excellent detailed step by step article, good work author


thanx. Im glad it is of use to someone. XML based config files are not for the faint-hearted although I must admit that I hate xml.




By: Ralph

Howdy, Your instructions worked pretty well, as far as they go. There were several missing .deb files and it built much quicker than you suggested. I am sure those two facts are related. I gather from from what I read elsewhere that the reason is that freeswitch separated the sound files out of the main package. I have not found them yet, but your instructions need to change, if you expect the sound file packages to be built. Finally, I would suggest you update the first page to reflect that these instructions don't actually produce a working system. The todo at the end saying that Trunking/Gateway was still needed is a big one. It is a good start, though. Good day