Download & Installation Guide

From FreeSWITCH Wiki
Revision as of 02:53, 8 December 2006 by Mmurdock (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Before we get started it is required that you have wget installed on your machine. Make sure this is installed. Also, if you wish to checkout the latest source you must have subversion installed.

Use a Mac OS X?

You need to place /usr/local/bin into your path, and then symlink /usr/local/bin/gmake to /usr/bin/gnumake.

Obtaining the Source Code

You can either checkout an up-to-date version of the code from the FreeSWITCH subversion repository or you can download a nightly snapshot of the source code. To checkout from the repository simply execute:

svn checkout freeswitch.trunk

If you do not have subversion you can download a tarballed snapshot generated nightly from the following link:

Compiling the Source Code (Windows)

To compile FreeSWITCH on Windows, you will need Visual C++ 2005 and if you are installing the Express Edition, the platform SDK (see these instructions for more details). Once you have confirmed these requirements are installed, open up Freeswitch.sln. Right click the main solution node at the top of the Solution Explorer, right click and select Build.

Compiling the Source Code (Unix)

Once in the directory you need to configure the build environment. By default FreeSWITCH is installed in the /usr/local/freeswitch prefix, however if don’t have root access add --prefix=~freeswitch to the command given below. To configure:


Once you done configuring the build environment you need to select which modules you want to compile into the FreeSWITCH core. First of all you need to prepare the modules file:

cp modules.conf

You then need to edit the file and comment and uncomment any modules you wish to disable and re-enable, respectively. For your reference here is a quick description of the modules as of December 6th, 2006:

  • loggers
    • mod_console -

Logs messages to the console

    • mod_syslog
  • applications
    • mod_bridgecall
    • mod_commands
    • mod_conference
    • mod_dptools
    • mod_echo
    • mod_ivrtest
    • mod_park
    • mod_playback
    • mod_rss
    • mod_skel
  • asr_tts
    • mod_cepstral
  • codecs
    • mod_amr
    • mod_g711
    • mod_g722
    • mod_g723_1
    • mod_g726
    • mod_g729
    • mod_gsm
    • mod_ilbc
    • mod_l16
    • mod_lpc10
    • mod_speex
  • dialplans
    • mod_dialplan_directory
    • mod_dialplan_xml
  • directories
    • mod_ldap
    • mod_dingaling
    • mod_iax
    • mod_portaudio
    • mod_sofia
    • mod_wanpipe
    • mod_woomera
  • event_handlers
    • mod_cdr
    • mod_event_multicast
    • mod_event_socket
    • mod_event_test
    • mod_xmpp_event
    • mod_zeroconf
  • formats
    • mod_native_file
    • mod_sndfile
  • languages
    • mod_perl
    • mod_spidermonkey
    • mod_spidermonkey_teletone
    • mod_spidermonkey_core_db
    • mod_spidermonkey_odbc
  • timers
    • mod_softtimer
  • xml_int
    • mod_xml_rpc


Logs messages to your syslog repository


Dialplan Tools: Sets channel variables and sleeps


A mass plethora of API interface commands


Conference room module


Allows you to bridge calls between two different endpoints


Echo testing module


Testing ground for functions in IVR.


Plays back sound files


Dummy module


Obtains RSS feeds


Links into Cepstral for dynamic sound output


G.711u/G.711a codec (ulaw/alaw)


ILBC codec


GSM codec


L.16 codec


Speex codec


Allows you to obtain a dialplan from a directory resource


Allows you to program dialplans in XML format


LDAP module made to obtain dialplans, user accounts, etc.


SIP module


IAX2 module


Jabber/G! Talk integration module


Voice through a local soundcard


Sangoma Card module


H.323/Woomera module


Takes events received and multicasts them


Dummy module


Zeroconf broadcast module


Interface to libsndfile for file formats


Allows dialplans to be written in Perl


Allows dialplans to be written in Javascript


Timing module for FreeSWITCH. No hardware needed


Allows to remotely control the API

Once you are done selecting your modules you may now build the dependencies and modules plus install it:

make installall

Compile Errors?

Did you get any compile errors or notice any bugs? Remember FreeSWITCH is still in development and requires contribution from everybody. Please send all errors and bugs to the mailing address. The email address is:

Some stuff to try out!

Now that you have compiled FreeSWITCH lets take it for a test run! To start FreeSWITCH:

   * cd /usr/local/freeswitch/bin
   * ./freeswitch

You can then use SIP, IAX or WOOMERA to bridge a call, or you can use Portaudio with a microphone and speakers to use FreeSWITCH as a softphone to test stuff out! Portaudio can be used on the console by typing pacall <number to dial> (remember that you need mod_portaudio installed and enabled). A few things that you can do (which are included in configuration by default) are:

   * Dial any toll free number free of charge!
   * Dial 1234 to test FreeSWITCH!
   * Dial 1000 and try out the new FreeSWITCH mod_conference!

Configuring the software

This document was developed to be just a general quickstart guide. As such, you will not see anything detailed in this document. We are planning a DocBook project to document FreeSWITCH in whole.

The configuration file is located is at /usr/local/freeswitch/conf/freeswitch.xml. Remember to uncomment and comment all modules that you wish to enable and disable, respectively. This is near the top of the file. Settings like IAX, SIP, Portaudio, and the conference are self explanatory. The XML dial plan uses the PCRE engine to allow for flexible needs. There are various examples at the bottom of the file.

Any questions, comments or concerns?

Feel free to contact the community by the mailing lists, our conference room or by IRC!

The mailing lists by default subscribe users by default, and give you the option of opting out upon FreeSWITCH account registration completion. The mailing lists available are:

   * FreeSWITCH Users:
   * FreeSWITCH Developers:

The conference room, where the FreeSWITCH developers hang out can be contacted by the following methods:

   * Dial 888 via FreeSWITCH
   * SIP: 888@
   * IAX2: guest@
   * Woomera: 888@
   * PSTN:  712-432-7800

You can also access our IRC chatroom. We are on the Freenode IRC network ( and hang out in the #freeswitch channel. If you do not have an IRC client you can access our web applet. It can be opened on in the right toolbar under “FreeSWITCH Chat”. Simply enter a nickname and Chat!