Changes

Jump to navigation Jump to search
355 bytes added ,  14:31, 10 June 2021
=== Compile And Install on Ubuntu 20.04 Server ===
The packages listed are a combination of those found so far after starting from three different images of ubuntu 20.04 server including a direct download
==== Ubuntu Packages Required ====
* build-essential
* git
* unzip
* autoconf
* cmake
* uuid - required to compile Libks
* uuid-dev - required to compile Libks
* libedit-dev
* libopus-dev
* libsndfile-dev
<syntaxhighlight lang="Bash" line>
sudo apt install build-essential autoconf cmake libtool pkg-config libcurl4-openssl-dev python-pycurl python3-pycurl libtiff-dev libaudiofile-dev fftw-dev sqlite3 libsqlite3-dev libpcre3-dev speex libspeex-dev libspeexdsp-dev libldns-dev nasm libavformat-dev libswscale-dev liblua5.3-dev libpq-dev libx11-dev libfreetype-dev libssl-dev uuid uuid-dev git
</syntaxhighlight>
sudo apt install build-essential autoconf cmake libtool pkg-config libcurl4-openssl-dev python-pycurl python3-pycurl libtiff-dev libaudiofile-dev fftw-dev sqlite3 libsqlite3-dev libpcre3-dev speex libspeex-dev libspeexdsp-dev libldns-dev nasm libavformat-dev libswscale-dev liblua5.3-dev libpq-dev libx11-dev libfreetype-dev libssl-dev uuid uuid-dev git unzip libedit-dev libopus-dev libsndfile-dev ==== [https://github.com/fltk/fltk Fltk] ====
Required by Spandsp
<syntaxhighlight lang="Bash" line>
git clone https://github.com/fltk/fltk.git
cd fltk
./configure
make
sudo make install
</syntaxhighlight>
git clone https://github.com/fltk/fltk.git cd fltk cmake . make sudo make install ==== [https://github.com/freeswitch/spandsp Spandsp] ====<syntaxhighlight lang="Bash" line> git clone https://github.com/freeswitch/spandsp cd spandsp ./bootstrap.sh ./configure make -j sudo make install</syntaxhighlight>
=== [https://github.com/freeswitch/sofia-sip sofia-sip] ===
<syntaxhighlight lang="Bash" line>
git clone https://github.com/freeswitch/sofia-sip
cd sofia-sip
sh autogen.sh (if building from darcs)
./configure
make
make install
</syntaxhighlight>
git clone https://github.com/freeswitch/sofia-sip cd sofia-sip sh autogen.sh (if building from darcs) ./configure make sudo make install ==== [https://github.com/signalwire/signalwire-clibks.git Signalwirelibks] ====
<syntaxhighlight lang="Bash" line>
git clone https://github.com/signalwire/signalwire-clibks.gitcd signalwire-clibks
cmake .
make
sudo make install
</syntaxhighlight>
 
=== [https://github.com/signalwire/signalwire-c.git Signalwire] ===
 
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c
cmake .
make
sudo make install
=== Free Switch ===
First download, extract and enter the folder.
<syntaxhighlight lang="Bash" line> sudo wget https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.6.-release.zip unzip freeswitch-1.10.6.-release.zip cd freeswitch-1.10.6.-release</syntaxhighlight>
Copy lua5 files to where they should be, but are missing from the release files.
<syntaxhighlight lang="Bash" line> mkdir src/mod/languages/mod_lua cp /usr/include/lua5.3/*.h src/mod/languages/mod_lua/</syntaxhighlight>
add a symbolic link so its found
<syntaxhighlight lang="Bash" line> sudo ln -s /usr/lib/x86_64-linux-gnu/liblua5.3.so /usr/lib/x86_64-linux-gnu/liblua.so</syntaxhighlight>
compile
<syntaxhighlight lang="Bash" line> ./configure make sudo make install</syntaxhighlight>
Compile the sounds
<syntaxhighlight lang="Bash" line> sudo make all cd-sounds-install cd-moh-install</syntaxhighlight>
Create Symbolic links for ease of use
<syntaxhighlight lang="Bash" line>
sudo ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/
sudo ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin
</syntaxhighlight>
Create a user with limited rights to run freeswitch<syntaxhighlight lang="Bash" line>cd sudo ln -s /usr/localsudo groupadd /freeswitch/bin/freeswitchsudo adduser --disabled-password --quiet --system --home /usr/localbin/freeswitch --gecos "FreeSWITCH Voice Platform" --ingroup freeswitch freeswitch sudo chown ln -R freeswitch:freeswitch s /usr/local/freeswitch/bin/fs_cli /usr/bin sudo chmod -R ug=rwX=== Configure FreeSWITCH ====Once you've compiled and installed Freeswitch,o= you will need to activate mod_siren and mod_xml_curl in /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml, since it's disabled by default on a fresh install. This bit needs doing as root  su rootsudo chmod -R u=rwx,g=rx nano /usr/local/freeswitch/binconf/autoload_configs/modules.conf.xml uncomment the lines...  <load module="mod_xml_curl"/>and  <load module="mod_siren"/syntaxhighlightsave and exit then su back to your normal user ====Create a user with limited rights to run freeswitch====
Create a systemd service file to start automatically cd /usr/local<syntaxhighlight lang= sudo groupadd freeswitch sudo adduser --disabled-password --quiet --system --home /usr/local/freeswitch --gecos "INIFreeSWITCH Voice Platform" line>--ingroup freeswitch freeswitch[Unit] sudo chown -R freeswitch:freeswitch /usr/local/freeswitch/Description sudo chmod -R ug=rwX,o=/usr/local/freeswitch/Wants=network sudo chmod -online.targetRequiresR u=syslog.socket network.target local-fs.targetAfterrwx,g=syslog.socket network.target network-online.target rx /usr/local-fs.target/freeswitch/bin/
[Service]
Type=forking
Environment="DAEMON_OPTS=-nonat"
EnvironmentFile=-/etc/default/freeswitch
ExecStartPre=/bin/chown -R freeswitch:freeswitch /usr/local/freeswitch
ExecStart=/usr/bin/freeswitch -u freeswitch -g freeswitch -ncwait $DAEMON_OPTS
TimeoutSec=45s
Restart=always
RestartSec=90
StartLimitInterval=0
StartLimitBurst=6
User=rootGroup=daemonLimitCORE=infinityLimitNOFILE=100000LimitNPROC=60000LimitSTACK=250000LimitRTPRIO=infinityLimitRTTIME=infinityIOSchedulingClassCreate a systemd service file to start automatically=realtimeIOSchedulingPriority=2CPUSchedulingPolicy=rrCPUSchedulingPriority=89UMask=0007NoNewPrivileges=false sudo nano /etc/systemd/system/freeswitch.service
[Install]WantedBy=multi-user.target</syntaxhighlight>added the following contents and save
[Unit] Description=freeswitch Wants=network-online.target Requires=syslog.socket network.target local-fs.target After=syslog.socket network.target network-online.target local-fs.target [Service] Type= Configure FreeSWITCH forking Environment="DAEMON_OPTS=-nonat"Once you've compiled and installed Freeswitch, you will need to activate mod_siren and mod_xml_curl in EnvironmentFile=-/etc/default/freeswitch ExecStartPre=/bin/chown -R freeswitch:freeswitch /usr/local/freeswitch ExecStart=/confusr/autoload_configsbin/modules.conf.xml, since it's disabled by default on a fresh installfreeswitch -u freeswitch -g freeswitch -ncwait $DAEMON_OPTS TimeoutSec=45s Restart=always RestartSec=90 StartLimitInterval=0 StartLimitBurst=6 User=root Group=daemon LimitCORE=infinity LimitNOFILE=100000 LimitNPROC=60000 LimitSTACK=250000 LimitRTPRIO=infinity LimitRTTIME=infinity IOSchedulingClass=realtime IOSchedulingPriority=2 CPUSchedulingPolicy=rr CPUSchedulingPriority=89 UMask=0007 NoNewPrivileges=false [Install] WantedBy=multi-user.target
uncomment start the lines..service sudo systemctl start freeswitch.service
<load module="mod_xml_curl"/>check its working withand sudo systemctl status freeswitch.service
<load module="mod_siren"/>enable the service so it starts each time at boot sudo systemctl enable freeswitch.service
== Configure Opensimulator ==
In grid mode, [FreeSwitchVoice] in OpenSim.ini and [FreeswitchService] in Robust.ini or Robust.HG.ini need to be configured. Configurations details are shown in both OpenSim.ini.example, Robust.ini.example and Robust.HG.ini.example. Here is an example configuration for OpenSim.ini.
opensim.ini  [FreeSwitchVoice] Enabled = true LocalServiceModule = OpenSim.Services.Connectors.dll:RemoteFreeswitchConnector FreeswitchServiceURL = "${Const|BaseUrl}:${Const|FreeSwitchPort}/fsapi"  
Add for Robust.ini/Robust.HG.ini
[FreeswitchService] LocalServiceModule = OpenSim.Services.FreeswitchService.dll:FreeswitchService ServerAddress = "${Const|BaseUrlFreeswitchURL}"

Navigation menu