Download & Installation Guide
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 http://svn.freeswitch.org/svn/freeswitch/trunk 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.in 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:
- mod_console -
Logs messages to the console
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
Obtains RSS feeds
Links into Cepstral for dynamic sound output
G.711u/G.711a codec (ulaw/alaw)
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.
Jabber/G! Talk integration module
Voice through a local soundcard
Sangoma Card module
Takes events received and multicasts them
Zeroconf broadcast module
Interface to libsndfile for file formats
Allows dialplans to be written in Perl
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:
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: firstname.lastname@example.org
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: email@example.com * FreeSWITCH Developers: firstname.lastname@example.org
The conference room, where the FreeSWITCH developers hang out can be contacted by the following methods:
* Dial 888 via FreeSWITCH * SIP: email@example.com * IAX2: firstname.lastname@example.org/888 * Woomera: email@example.com * PSTN: 712-432-7800
You can also access our IRC chatroom. We are on the Freenode IRC network (irc.freenode.net) 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 www.freeswitch.org in the right toolbar under “FreeSWITCH Chat”. Simply enter a nickname and Chat!