From FreeSWITCH Wiki
Revision as of 08:26, 12 August 2010 by Stkn (Talk | contribs)

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




Some things to consider before you begin:

Gentoo is aimed towards advanced users, it requires a certain amount of prior experience. If this is your first encounter with Linux/Unix this distribution is most likely not what you want to use (for a mission-critical system).

People with prior experience in managing Linux/Unix-based systems and configuration of services (without a GUI!) should be safe.


Adding the overlay

Portage + Layman

Informational Tip

You will need app-portage/layman-1.3.3 or higher (current stable (2010-08-03))


  • Install layman
# Enable git useflag
echo 'app-portage/layman git' >> /etc/portage/package.use

# Verify layman version and useflags and install it
emerge -av layman
  • Add freeswitch-overlay repository definition to list in "/etc/layman/layman.cfg"
# URLs of the remote lists of overlays (one per line) or
# local overlay definitions
#overlays  :
#            file:///usr/portage/local/layman/my-list.xml


  • Fetch + list repositories
# Update and list all available repositories
layman -L
  • Add freeswitch overlay
layman -a freeswitch
  • Update "/etc/make.conf" to include the layman-managed repositories
# add this line at the end
source /var/lib/layman/make.conf

Informational Tip

To update the overlay later:
layman -s freeswitch


Available packages & useflags

Informational Tip

Several ebuilds in the overlay use so-called USE_EXPAND useflags, e.g. in portage's make.conf you can use:


which is the same as setting

USE="freeswitch_modules_lua freeswitch_modules_sofia"

Other (popular) examples of USE_EXPAND useflags are LINGUAS and VIDEO_CARDS.

NOTE: For more information on setting useflags: Setting useflags & keywords.


The core FreeSWITCH package
USE flags
nosamples Do not install sample configuration files
sctp Enable SCTP support in mod_sofia and OpenZAP
alsa Alsa endpoint module (mod_alsa)
amr AMR-NB (Narrowband) pass-through codec module (mod_amr)
amr_wb AMR-WB (Wideband) pass-through codec module (mod_amrwb)
bv Broadvoice HD (Wideband) codec (mod_bv)
cdr_csv CSV (Comma-Separated-Value) CDR (Call-Detail-Record) module (mod_cdr_csv)
celt CELT ultra-low delay wideband codec module (mod_celt)
cepstral Cepstral SWIFT TTS (Text-To-Speech) engine module (mod_cepstral)
cidlookup API commands to query CallerID lookup services (mod_cidlookup)
conference Conferencing application (mod_conference)
console Console logger module (mod_console)
curl Curl-based HTTP client api command, replacing mod_http (mod_curl)
db Database-based resource limit module (mod_db)
dialplan_asterisk Asterisk-like dialplan module (mod_dialplan_asterisk)
dialplan_directory Directory interface dialplan module (mod_dialplan_directory)
dialplan_xml Default XML dialplan module (mod_dialplan_xml)
dingaling Jingle (XMPP / GoogleTalk) endpoint module (mod_dingaling)
distributor Distribute calls between multiple routes (mod_distributor)
dptools Dialplan tools (mod_dptools)
easyroute DB-based routing application module (mod_easyroute)
enum ENUM application module (mod_enum)
erlang_event Erlang event handler / remote control module (mod_event_erlang)
event_multicast Multicast event handler module (mod_event_multicast)
event_socket Socket event handler / remote control module (mod_event_socket)
expr Dialplan expressions (mod_expr)
fax (deprecated >1.0.6: see spandsp) Fax receive/transmit application module (mod_fax)
fifo First-in-First-out call queue module (mod_fifo)
file_string Stream audio from a file(?) (mod_file_string)
flite Flite TTS (Text-to-Speech) module (mod_flite)
freetdm FreeTDM (PRI, BRI, Analog) endpoint module (former OpenZAP) (mod_freetdm)
fsv Simple video recording application (mod_fsv)
g723_1 G.723.1 codec module (mod_g723_1)
g729 G.729 (pass-through only) codec module (mod_g729)
gsmopen GSM modem/handset endpoint module (mod_gsmopen)
h26x H.261, H.263, H.264 pass-through codec module (mod_h26x)
hash Hash-based resource limit module (mod_hash)
http HTTP client api command (mod_http)
iax Inter-Asterisk eXchange (IAX2) endpoint module (mod_iax)
ilbc iLBC codec module (mod_ilbc)
java Java language module (mod_java)
lcr LCR (Least-Cost-Routing) application module (mod_lcr)
limit (deprecated >1.0.6 see db, hash, redis) Resource limit module (mod_limit)
local_stream Local file streaming module (mod_local_stream)
logfile File logger module (mod_logfile)
lua LUA language module (mod_lua)
managed .NET managed mode language module (mod_managed)
memcache Memcache API interface module (mod_memcache)
nibblebill Real-time debit module (mod_nibblebill)
opal H.323 endpoint module based on the Opal library (experimental) (mod_opal)
openmrcp OpenMRCP module (mod_openmrcp)
openzap OpenZAP (PRI, BRI, Analog) endpoint module (mod_openzap)
osp Open Settlement Protocol (OSP) module (mod_osp)
perl Perl language module (mod_perl)
pocketsphinx Pocketsphinx ASR (Speech-recognition) module (mod_pocketsphinx)
portaudio Portaudio endpoint module (mod_portaudio)
portaudio_stream Stream audio from a portaudio source (mod_portaudio_stream)
python Python language module (mod_python)
radius_cdr Radius CDR (Call-Detail-Record) module (mod_radius_cdr)
redis Redis homepage])-based resource limit module (mod_redis)
rss RSS feed application (mod_rss)
say_de deprecated, see: de in the LINGUAS section below
say_en deprecated, see: en in the LINGUAS section below
say_es deprecated, see: es in the LINGUAS section below
say_fr deprecated, see: fr in the LINGUAS section below
say_it deprecated, see: it in the LINGUAS section below
say_nl deprecated, see: nl in the LINGUAS section below
say_ru deprecated, see: ru in the LINGUAS section below
say_zh deprecated, see: zh in the LINGUAS section below
shell_stream Stream audio from an external application (mod_shell_stream)
shout Shoutcast streaming module (mod_shout)
silk SILK wideband codec module (mod_silk)
siren G.722.1 (aka "Siren") codec module (mod_siren)
skinny SCCP endpoint module (mod_skinny)
skypiax deprecated, see: skypopen
skypopen Skype endpoint module, using the Skype client remote control API (mod_skypopen)
snapshot Record sliding window (e.g. last 10 seconds) of audio (mod_snapshot)
sndfile Module to add support for various sound file formats (mod_sndfile)
snom SNOM VoIP phone helper applications (mod_snom)
sofia SIP (Session-Initiation-Protocol) endpoint module (mod_sofia)
spandsp VoIP codecs and FAX applications (mod_spandsp)
speex Speex codec module (mod_speex)
spidermonkey Spidermonkey javascript language module (mod_spidermonkey)
spidermonkey_curl Spidermonkey curl extension (mod_spidermonkey_curl)
spidermonkey_core_db Spidermonkey db extension (mod_spidermonkey_core_db)
spidermonkey_odbc Spidermonkey ODBC extension (mod_spidermonkey_odbc)
spidermonkey_socket Spidermonkey socket extension (mod_spidermonkey_socket)
spidermonkey_teletone Spidermonkey tone detection/generation extension (mod_spidermonkey_teletone)
spy Spy on a user constantly (mod_spy)
syslog Syslog logger module (mod_syslog)
tone_stream (Scriptable) Tone generator module (mod_tone_stream)
tts_commandline System command TTS (Text-To-Speech) interface (mod_tts_commandline)
unimrcp MRCP (Media Resource Control Protocol) ASR/TTS client module (mod_unimrcp)
valet_parking Valet parking (mod_valet_parking)
vmd Voicemail detect application module (mod_vmd)
voicemail Voicemail application module (mod_voicemail)
voipcodecs (deprecated >1.0.6: see spandsp) Collection of most-used codecs (G.711, G.722, G.726, GSM, LPC10) (mod_voipcodecs)
xml_cdr XML CDR (Call-Detail-Record) module (mod_xml_cdr)
xml_curl CURL XML Gateway module (mod_xml_curl)
xml_ldap LDAP XML Gateway module (mod_xml_ldap)
xml_rpc XML RPC module (mod_xml_rpc)
yaml YaML (Yet-another-Markup-Language) dialplan module (mod_yaml)
zeroconf Zeroconf event handler module (mod_zeroconf)
de German TTS functions (mod_say_de)
en English TTS functions (mod_say_en)
es Spanish TTS functions (mod_say_es)
fr French TTS functions (mod_say_fr)
it Italian TTS functions (mod_say_it)
nl Dutch TTS functions (mod_say_nl)
ru Russian TTS functions (mod_say_ru)
zh Simplified Chinese TTS functions (mod_say_zh)

Sounds meta package
en_US deprecated, use en
ru_RU deprecated, use ru
en English (Callie) sound files (default)
ru Russian (Elena) sound files

Sounds language package
Common USE flags
16k 16KHz (Wideband) audio files
32k 32KHz (Ultra-Wideband) audio files
48k 48KHz () audio files

Music package for MoH (Music-on-Hold)
USE flags
16k 16KHz (Wideband) audio files
32k 32KHz (Ultra-Wideband) audio files
48k 48KHz () audio files

Commercial G.729 codec module
USE flags


Setting useflags & keywords

In "/etc/make.conf":

# this is needed for the FREESWITCH_MODULES line to work

# example: Custom settings for modules and sound file languages
# NOTE: Those lists are not incremental,
#       if you set these, you have to add _all_ modules you want to build!!
#       E.g. the example below would only build mod_sofia and mod_lua.
LINGUAS="en ru"

In "/etc/portage/package.use":

# example: enable resampler and sctp flags
net-misc/freeswitch resampler sctp

# example:
net-misc/freeswitch-sounds-en 16k 32k 48k
net-misc/freeswitch-sounds-ru 16k 32k 48k
net-misc/freeswitch-music     16k 32k 48k


Installing the packages

# check if everything is OK and install the package(s)
emerge -av freeswitch



Last edited by: Stkn 01:37, 20 January 2010 (UTC)