This manual will show how to install freeswitch PBX on gentoo, this steps includes some procedures that the reader must know prior the reading of this instructions.
The very first steps to do are:
The link must be the last one refered on official freeswitch page
To clone main repository do:
cd /usr/src/ git clone https://github.com/signalwire/freeswitch.git # development git clone -b v1.10 https://github.com/signalwire/freeswitch.git # current stable
Once the main repo is cloned, now is time to clone contrib.
cd /usr/src/freeswitch git clone https://github.com/freeswitch/freeswitch-contrib
Also we must to be sure to get the official repo here
Now is time to emerge dependencies:
emerge -av sqlite speex media-libs/speexdsp ldns dev-libs/libedit opus libsndfile libshout media-libs/tiff yasm dev-libs/libvformat dev-libs/apr dev-libs/apr-util
If you want to compile mod_av you must install ffmpeg.
Optionaly you could install unix odbc for accessing database, I prefer postgresql in the core
echo "dev-db/unixODBC -minimal" >> /etc/portage/package.use/unixODBC emerge -av unixODBC
After this we are almost ready to start installation of Freeswitch, just a couple of steps more.
We must download libks from officia git site and clone into our /usr/src/ directory, after download is done we must compile it as follows:
cd /usr/src/ git clone https://github.com/signalwire/libks.git cd libks/ cmake . make make install
Asure that pkgconfig file is okay.
ln -s /usr/lib/pkgconfig/libks.pc /usr/lib64/pkgconfig/libks.pc
We must download spandsp from freeswitch otherwise the version wont be 3.0 and clone into our /usr/src/ directory, after download is done we must compile it as follows:
cd /usr/src/ git clone https://github.com/freeswitch/spandsp cd spandsp/ ./bootstrap.sh ./configure make && make install ln -s /usr/local/lib/pkgconfig/spandsp.pc /usr/lib/pkgconfig/spandsp.pc ln -s /usr/local/lib/pkgconfig/spandsp.pc /usr/lib64/pkgconfig/spandsp.pc
We must download sofa-sip from official git site and clone into our /usr/src/ directory, after download is done we must compile it as follows:
cd /usr/src/ git clone https://github.com/freeswitch/sofia-sip.git cd sofia-sip/ ./bootstrap.sh ./configure make && make install ln -s /usr/local/lib/pkgconfig/sofia-sip-ua.pc /usr/lib64/pkgconfig/sofia-sip-ua.pc
We must download signalwire-c from official git site and clone into our /usr/src/ directory, after download is done we must compile it as follows:
cd /usr/src/ git clone https://github.com/signalwire/signalwire-c.git cd signalwire-c/ cmake . make make install ln -s /usr/local/lib/pkgconfig/signalwire_client.pc /usr/lib64/pkgconfig/signalwire_client.pc
We must download flite from official site to our /usr/src/ directory, after download is done we must compile it as follows:
cd /usr/src/ wget -c www.festvox.org/flite/packed/flite-2.0/flite-2.0.0-release.tar.bz2 tar -jxvf flite-2.0.0-release.tar.bz2 cd flite-2.0.0-release ./configure --with-pic --enable-shared make && make install
Also download Lua from official website to our /usr/src/ directory, before compile lua add -fPIC and -shared to file /usr/src/lua-5.2.4/src/Makefile in respective lines:
In Makefile on directory lua-5.4.3/src edit to achive following lines.
CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL -fPIC $(SYSCFLAGS) $(MYCFLAGS)
LDFLAGS= -shared $(SYSLDFLAGS) $(MYLDFLAGS)
cd /usr/src/ wget -c https://www.lua.org/ftp/lua-5.4.3.tar.gz tar -zxvf lua-5.4.3.tar.gz cd lua-5.4.3 make linux && make install
cd /usr/src/ git clone https://github.com/keplerproject/luasql.git cd luasql/ make postgres && make install cd /usr/local/lib/lua/5.4 ln -s /usr/local/lib/lua/5.2/luasql ./
To compile freeswitch there is a lot of good documentation out there, I will detail some important steps to consider in Gentoo.
The first step is run bootstrap.
cd /usr/src/freeswitch ./bootstrap.sh
Once bootstrap is done, we must edit the file modules.conf to enable the modules we want to include in our installation. In my case some modules I enabled were:
Next we must run configure script with the options we want to enable, compile and install it.
If you are using gcc 11 you must do the following step before configure :
export CPPFLAGS="-Wno-array-parameter -Wno-error=deprecated-declarations -Wno-error=array-bounds"
cd /usr/src/freeswitch ./configure --enable-core-pgsql-support make && make install make cd-sounds-install && make cd-moh-install && make uhd-sounds-install && make uhd-moh-install && make hd-sounds-install && make hd-moh-install && make sounds-install && make moh-install
Before we start service we must change default passwords in two places, vars.xml and event_socket.conf.xml
In vars.xml change 1234 for a very strong password:
<X-PRE-PROCESS cmd="set" data="default_password=1234"/>
In event_socket.conf.xml do the same:
<param name="password" value="Cluecon"/>
And I think that is all.