Setting Up Freeswitch On Debian 5 (Lenny)
Introduction
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 http://svn.freeswitch.org/svn/freeswitch/trunk 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.
dpkg-checkbuilddeps
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).
Description:
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.