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

Dependencies

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:

http://files.freeswitch.org/freeswitch-snapshot.tar.gz


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:

./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:

  • 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


loggers/mod_syslog


Logs messages to your syslog repository

applications/mod_dptools


Dialplan Tools: Sets channel variables and sleeps

applications/mod_commands


A mass plethora of API interface commands

applications/mod_conference


Conference room module

applications/mod_bridgecall


Allows you to bridge calls between two different endpoints

applications/mod_echo


Echo testing module

applications/mod_ivrtest


Testing ground for functions in IVR.

applications/mod_playback


Plays back sound files

applications/mod_skel


Dummy module

applications/mod_rss


Obtains RSS feeds

asr_tts/mod_cepstral


Links into Cepstral for dynamic sound output

codecs/mod_g711


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

codecs/mod_ilbc


ILBC codec

codecs/mod_gsm


GSM codec

codecs/mod_l16


L.16 codec

codecs/mod_speex


Speex codec

dialplans/mod_dialplan_directory


Allows you to obtain a dialplan from a directory resource

dialplans/mod_dialplan_xml


Allows you to program dialplans in XML format

directories/mod_ldap


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

endpoints/mod_exosip


SIP module

endpoints/mod_iax


IAX2 module

endpoints/mod_dingaling


Jabber/G! Talk integration module

endpoints/mod_portaudio


Voice through a local soundcard

endpoints/mod_wanpipe


Sangoma Card module

endpoints/mod_woomera


H.323/Woomera module

event_handlers/mod_event_multicast


Takes events received and multicasts them

event_handlers/mod_event_test


Dummy module

event_handlers/mod_zeroconf


Zeroconf broadcast module

formats/mod_sndfile


Interface to libsndfile for file formats

languages/mod_perl


Allows dialplans to be written in Perl

languages/mod_spidermonkey


Allows dialplans to be written in Javascript

timers/mod_softtimer


Timing module for FreeSWITCH. No hardware needed

xml_int/mod_xml_rpc


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: freeswitch-dev@lists.freeswitch.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: freeswitch-users@lists.freeswitch.org
   * FreeSWITCH Developers: freeswitch-dev@lists.freeswitch.org


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

   * Dial 888 via FreeSWITCH
   * SIP: 888@66.250.68.194
   * IAX2: guest@66.250.68.194/888
   * Woomera: 888@66.250.68.194
   * 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!