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 | |
nosamples | Do not install sample configuration files |
sctp | Enable SCTP support in mod_sofia and OpenZAP |
FREESWITCH_MODULES flags | |
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) |
LINGUAS flags | |
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) |
net-misc/freeswitch-sounds | |
---|---|
Sounds meta package | |
LINGUAS flags | |
en_US | deprecated, use en |
ru_RU | deprecated, use ru |
en | English (Callie) sound files (default) |
ru | Russian (Elena) sound files |
net-misc/freeswitch-sounds-en/-ru/-de/-es | |
---|---|
Sounds language package | |
Common USE flags | |
16k | 16KHz (Wideband) audio files |
32k | 32KHz (Ultra-Wideband) audio files |
48k | 48KHz () audio files |
net-misc/freeswitch-music | |
---|---|
Music package for MoH (Music-on-Hold) | |
USE flags | |
16k | 16KHz (Wideband) audio files |
32k | 32KHz (Ultra-Wideband) audio files |
48k | 48KHz () 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