Skip to main content

Gentoo

About

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.

Click here to expand Table of Contents

Adding the overlay

Portage + Layman


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 : http://www.gentoo.org/proj/en/overlays/repositories.xml
# http://dev.gentoo.org/~wrobel/layman/global-overlays.xml
# http://mydomain.org/my-layman-list.xml
# file:///usr/portage/local/layman/my-list.xml

overlays: http://www.gentoo.org/proj/en/overlays/repositories.xml
http://oss.axsentis.de/files/layman/freeswitch-overlay.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

To update the overlay later:

layman -s freeswitch

Adding the overlay

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

FREESWITCH_MODULES="lua sofia"

which is the same as setting

USE="freeswitch_modules_lua freeswitch_modules_sofia"
net-misc/freeswitch
The core FreeSWITCH package
USE flags
nosamplesDo not install sample configuration files
sctpEnable SCTP support in mod_sofia and OpenZAP
FREESWITCH_MODULES flags
alsaAlsa endpoint module (mod_alsa)
amrAMR-NB (Narrowband) pass-through codec module (mod_amr)
amr_wbAMR-WB (Wideband) pass-through codec module (mod_amrwb)
bvBroadvoice HD (Wideband) codec (mod_bv)
cdr_csvCSV (Comma-Separated-Value) CDR (Call-Detail-Record) module (mod_cdr_csv)
celtCELT ultra-low delay wideband codec module (mod_celt)
cepstralCepstral SWIFT TTS (Text-To-Speech) engine module (mod_cepstral)
cidlookupAPI commands to query CallerID lookup services (mod_cidlookup)
conferenceConferencing application (mod_conference)
consoleConsole logger module (mod_console)
curlCurl-based HTTP client api command, replacing mod_http (mod_curl)
dbDatabase-based resource limit module (mod_db)
dialplan_asteriskAsterisk-like dialplan module (mod_dialplan_asterisk)
dialplan_directoryDirectory interface dialplan module (mod_dialplan_directory)
dialplan_xmlDefault XML dialplan module (mod_dialplan_xml)
dingalingJingle (XMPP / GoogleTalk) endpoint module (mod_dingaling)
distributorDistribute calls between multiple routes (mod_distributor)
dptoolsDialplan tools (mod_dptools)
easyrouteDB-based routing application module (mod_easyroute)
enumENUM application module (mod_enum)
erlang_eventErlang event handler / remote control module (mod_event_erlang)
event_multicastMulticast event handler module (mod_event_multicast)
event_socketSocket event handler / remote control module (mod_event_socket)
exprDialplan expressions (mod_expr)
fax(deprecated >1.0.6: see spandsp) Fax receive/transmit application module (mod_fax)
fifoFirst-in-First-out call queue module (mod_fifo)
file_stringStream audio from a file(?) (mod_file_string)
fliteFlite TTS (Text-to-Speech) module (mod_flite)
freetdmFreeTDM (PRI, BRI, Analog) endpoint module (former OpenZAP) (mod_freetdm)
fsvSimple video recording application (mod_fsv)
g723_1G.723.1 codec module (mod_g723_1)
g729G.729 (pass-through only) codec module (mod_g729)
gsmopenGSM modem/handset endpoint module (mod_gsmopen)
h26xH.261, H.263, H.264 pass-through codec module (mod_h26x)
hashHash-based resource limit module (mod_hash)
httpHTTP client api command (mod_http)
iaxInter-Asterisk eXchange (IAX2) endpoint module (mod_iax)
ilbciLBC codec module (mod_ilbc)
javaJava language module (mod_java)
lcrLCR (Least-Cost-Routing) application module (mod_lcr)
limit(deprecated >1.0.6 see db, hash, redis) Resource limit module (mod_limit)
local_streamLocal file streaming module (mod_local_stream)
logfileFile logger module (mod_logfile)
luaLUA language module (mod_lua)
managed.NET managed mode language module (mod_managed)
memcacheMemcache API interface module (mod_memcache)
nibblebillReal-time debit module (mod_nibblebill)
opalH.323 endpoint module based on the Opal library (experimental) (mod_opal)
openmrcpOpenMRCP module (mod_openmrcp)
openzapOpenZAP (PRI, BRI, Analog) endpoint module (mod_openzap)
ospOpen Settlement Protocol (OSP) module (mod_osp)
perlPerl language module (mod_perl)
pocketsphinxPocketsphinx ASR (Speech-recognition) module (mod_pocketsphinx)
portaudioPortaudio endpoint module (mod_portaudio)
portaudio_streamStream audio from a portaudio source (mod_portaudio_stream)
pythonPython language module (mod_python)
radius_cdrRadius CDR (Call-Detail-Record) module (mod_radius_cdr)
redisRedis homepage])-based resource limit module (mod_redis)
rssRSS feed application (mod_rss)
say_dedeprecated, see: de in the LINGUAS section below
say_endeprecated, see: en in the LINGUAS section below
say_esdeprecated, see: es in the LINGUAS section below
say_frdeprecated, see: fr in the LINGUAS section below
say_itdeprecated, see: it in the LINGUAS section below
say_nldeprecated, see: nl in the LINGUAS section below
say_rudeprecated, see: ru in the LINGUAS section below
say_zhdeprecated, see: zh in the LINGUAS section below
shell_streamStream audio from an external application (mod_shell_stream)
shoutShoutcast streaming module (mod_shout)
silkSILK wideband codec module (mod_silk)
sirenG.722.1 (aka "Siren") codec module (mod_siren)
skinnySCCP endpoint module (mod_skinny)
skypiaxdeprecated, see: skypopen
skypopenSkype endpoint module, using the Skype client remote control API (mod_skypopen)
snapshotRecord sliding window (e.g. last 10 seconds) of audio (mod_snapshot)
sndfileModule to add support for various sound file formats (mod_sndfile)
snomSNOM VoIP phone helper applications (mod_snom)
sofiaSIP (Session-Initiation-Protocol) endpoint module (mod_sofia)
spandspVoIP codecs and FAX applications (mod_spandsp)
speexSpeex codec module (mod_speex)
spidermonkeySpidermonkey javascript language module (mod_spidermonkey)
spidermonkey_curlSpidermonkey curl extension (mod_spidermonkey_curl)
spidermonkey_core_dbSpidermonkey db extension (mod_spidermonkey_core_db)
spidermonkey_odbcSpidermonkey ODBC extension (mod_spidermonkey_odbc)
spidermonkey_socketSpidermonkey socket extension (mod_spidermonkey_socket)
spidermonkey_teletoneSpidermonkey tone detection/generation extension (mod_spidermonkey_teletone)
spySpy on a user constantly (mod_spy)
syslogSyslog logger module (mod_syslog)
tone_stream(Scriptable) Tone generator module (mod_tone_stream)
tts_commandlineSystem command TTS (Text-To-Speech) interface (mod_tts_commandline)
unimrcpMRCP (Media Resource Control Protocol) ASR/TTS client module (mod_unimrcp)
valet_parkingValet parking (mod_valet_parking)
vmdVoicemail detect application module (mod_vmd)
voicemailVoicemail 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_cdrXML CDR (Call-Detail-Record) module (mod_xml_cdr)
xml_curlCURL XML Gateway module (mod_xml_curl)
xml_ldapLDAP XML Gateway module (mod_xml_ldap)
xml_rpcXML RPC module (mod_xml_rpc)
yamlYaML (Yet-another-Markup-Language) dialplan module (mod_yaml)
zeroconfZeroconf event handler module (mod_zeroconf)
LINGUAS flags
deGerman TTS functions (mod_say_de)
enEnglish TTS functions (mod_say_en)
esSpanish TTS functions (mod_say_es)
frFrench TTS functions (mod_say_fr)
itItalian TTS functions (mod_say_it)
nlDutch TTS functions (mod_say_nl)
ruRussian TTS functions (mod_say_ru)
zhSimplified Chinese TTS functions (mod_say_zh)
net-misc/freeswitch-sounds
Sounds meta package
LINGUAS flags
en_USdeprecated, use en
ru_RUdeprecated, use ru
enEnglish (Callie) sound files (default)
ruRussian (Elena) sound files
net-misc/freeswitch-sounds-en/-ru/-de/-es
Sounds language package
Common USE flags
16k16KHz (Wideband) audio files
32k32KHz (Ultra-Wideband) audio files
48k48KHz () audio files
net-misc/freeswitch-music
Music package for MoH (Music-on-Hold)
USE flags
16k16KHz (Wideband) audio files
32k32KHz (Ultra-Wideband) audio files
48k48KHz () audio files
net-misc/mod_com_g729
USE flags
none

Installation

Setting useflags & keywords

In "/etc/make.conf":

# this is needed for the FREESWITCH_MODULES line to work
USE_EXPAND="FREESWITCH_MODULES"

# 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.
#
FREESWITCH_MODULES="sofia 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