Changes

Jump to navigation Jump to search
1,790 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
* libx11-dev - required to compile Fltk
* libfreetype-dev - required to compile Fltk
* install libssl-dev - required to compile Sofia
* uuid - required to compile Libks
* uuid-dev - required to compile Libks
* libedit-dev
* libopus-dev
* libsndfile-dev
  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>
sudo ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/ sudo ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin ==== Configure FreeSWITCH ====Once you've compiled and installed Freeswitch, 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 root nano /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml uncomment the lines...  <load module="mod_xml_curl"/>and  <load module="mod_siren"/> save and exit then su back to your normal user ====Create a user with limited rights to run freeswitch====<syntaxhighlight lang="Bash" line> cd /usr/local sudo groupadd freeswitch sudo adduser --disabled-password --quiet --system --home /usr/local/freeswitch --gecos "FreeSWITCH Voice Platform" --ingroup freeswitch freeswitch sudo chown -R freeswitch:freeswitch /usr/local/freeswitch/ sudo chmod -R ug=rwX,o= /usr/local/freeswitch/ sudo chmod -R u=rwx,g=rx /usr/local/freeswitch/bin/< ==== Create a systemd service file to start automatically==== sudo nano /etc/systemd/system/freeswitch.service 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=forking Environment="DAEMON_OPTS=-nonat" EnvironmentFile=-/etc/default/freeswitch ExecStartPre=/bin/chown -R freeswitch:freeswitch /usr/local/freeswitch ExecStart=/usr/bin/syntaxhighlight>freeswitch -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 start the service sudo systemctl start freeswitch.service check its working with sudo systemctl status freeswitch.service enable the service so it starts each time at boot sudo systemctl enable freeswitch.service == Configure Opensimulator ==Grid ModeIn 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
Create a systemd service file to start automatically<syntaxhighlight lang="INI" line> [UnitFreeSwitchVoice]Description=freeswitchWants Enabled =network-online.targettrueRequires LocalServiceModule =syslogOpenSim.socket networkServices.target local-fsConnectors.targetdll:RemoteFreeswitchConnectorAfter FreeswitchServiceURL =syslog.socket network.target network-online.target local-fs.target"${Const|BaseUrl}:${Const|FreeSwitchPort}/fsapi"
[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=infinityIOSchedulingClass=realtimeIOSchedulingPriority=2CPUSchedulingPolicy=rrCPUSchedulingPriority=89UMask=0007NoNewPrivileges=falseAdd for Robust.ini/Robust.HG.ini
[InstallFreeswitchService]WantedBy LocalServiceModule =multi-userOpenSim.targetServices.FreeswitchService.dll:FreeswitchService</syntaxhighlight> ServerAddress = "${Const|FreeswitchURL}"

Navigation menu