Note to myself:
Untuk instalasi FreeSwitch PBX di Ubuntu 20.04 membutuhkan:
git subversion build-essential autoconf automake libtool libncurses5 libncurses5-dev make libjpeg-dev libtool libtool-bin libsqlite3-dev libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev yasm liblua5.2-dev libopus-dev cmake unzip libcurl4-openssl-dev libexpat1-dev libgnutls28-dev libtiff5-dev libx11-dev unixodbc-dev libssl-dev python-dev zlib1g-dev libasound2-dev libogg-dev libvorbis-dev libperl-dev libgdbm-dev libdb-dev uuid-dev libsndfile1-dev liblua5.2-dev libsocket++-dev libpq-dev libswscale-dev libc6-dev libavformat-dev
Instruksi:
- Install paket yang diperlukan:
- sudo apt install -y git subversion build-essential autoconf automake libtool libncurses5 libncurses5-dev make libjpeg-dev libtool libtool-bin libsqlite3-dev libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev yasm liblua5.2-dev libopus-dev cmake unzip
- sudo apt install -y libcurl4-openssl-dev libexpat1-dev libgnutls28-dev libtiff5-dev libx11-dev unixodbc-dev libssl-dev python-dev zlib1g-dev libasound2-dev libogg-dev libvorbis-dev libperl-dev libgdbm-dev libdb-dev uuid-dev libsndfile1-dev
- sudo apt install libc6-dev libavformat-dev libswscale-dev libpq-dev libsocket++-dev liblua5.2-dev
- Install libks dari source:
- cd /usr/src
sudo git clone https://github.com/signalwire/libks.git
cd libks
sudo cmake .
sudo make
sudo make install
- cd /usr/src
- install Signal Wire dari source:
- cd /usr/src
sudo git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c
sudo cmake .
sudo make
sudo make install
- cd /usr/src
- Download FreeSwitch source:
- cd /usr/src
sudo wget https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.3.-release.zip
sudo unzip freeswitch-1.10.3.-release.zip
cd freeswitch-1.10.3.-release/
- cd /usr/src
- Compile FreeSwitch:
- sudo ./configure -C
sudo make - Kalau ada error, benahi dulu kekurangan atau errornya, kemudian recompile
sudo ./configure && sudo make clean && sudo make
- sudo ./configure -C
- Install FreeSwitch:
- sudo make install
- Compile dan install FreeSwitch Sounds:
- sudo make all cd-sounds-install cd-moh-install
- sudo ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/
- sudo ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin
- Buat user dan group untuk FreeSwitch service:
- 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/
- cd /usr/local
- Buat system service untuk initd:
-
sudo vim /etc/systemd/system/freeswitch.service
-
Isi dengan text berikut:
[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/freeswitch -u freeswitch -g freeswitch -ncwait $DAEMON_OPTS
TimeoutSec=45s
Restart=always
RestartSec=90
StartLimitInterval=0
StartLimitBurst=6User=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
-
- Buka port pada firewall:
- sudo ufw allow 1720
- sudo ufw allow 5060
- sudo ufw allow 50505
- Enabling freeswitch service saat boot:
- sudo chmod ugo+x freeswitch.service
sudo systemctl start freeswitch.service
sudo systemctl enable freeswitch.service
- sudo chmod ugo+x freeswitch.service
- Check status freeswitch service:
- sudo systemctl status freeswitch.service
- sudo fs_cli -r
Done.
Semoga lancar.