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