Freeswitch 安装(基于ubuntu)

463 阅读2分钟

一、安装依赖

安装环境

基于ubuntu安装,主要做开发使用

安装的版本 1.10.10

apt 安装依赖

Ubuntu 18.04 LTS

$ sudo apt install --yes build-essential pkg-config uuid-dev zlib1g-dev libjpeg-dev libsqlite3-dev libcurl4-openssl-dev \
            libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev libtiff5-dev yasm libopus-dev libsndfile1-dev unzip \
            libavformat-dev libswscale-dev libavresample-dev liblua5.2-dev liblua5.2 cmake libpq-dev \
            unixodbc-dev autoconf automake ntpdate libxml2-dev libpq-dev libpq5 sngrep

Ubuntu 20.04 LTS

$ sudo apt install --yes build-essential pkg-config uuid-dev zlib1g-dev libjpeg-dev libsqlite3-dev libcurl4-openssl-dev \
            libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev libtiff5-dev yasm libopus-dev libsndfile1-dev unzip \
            libavformat-dev libswscale-dev libavresample-dev liblua5.2-dev liblua5.2-0 cmake libpq-dev \
            unixodbc-dev autoconf automake ntpdate libxml2-dev libpq-dev libpq5 sngrep

Ubuntu 22.04 LTS

sudo apt install --yes build-essential pkg-config uuid-dev zlib1g-dev libjpeg-dev libsqlite3-dev libcurl4-openssl-dev \
            libpcre3-dev libspeexdsp-dev libspeex-dev libldns-dev libedit-dev libtiff5-dev yasm libopus-dev libsndfile1-dev unzip \
            libavformat-dev libswscale-dev liblua5.2-dev liblua5.2-0 cmake libpq-dev \
            unixodbc-dev autoconf automake ntpdate libxml2-dev libpq-dev libpq5 sngrep

安装libks

# clone下来
git clone -b v2.0.5 https://github.com/signalwire/libks.git

cd libks/
cmake .
make -j4 
sudo make install 

# 看看有没有
sudo sh -c 'ldconfig && ldconfig -p' | grep libks
# 注意,这是安装的libks2

安装libsignalwire

git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c
cmake .
make 
sudo make install
# 检查下
sudo sh -c 'ldconfig && ldconfig -p' | grep signalwire

安装sofia-sip

git clone https://github.com/freeswitch/sofia-sip
cd sofia-sip
 ./bootstrap.sh
 ./configure
make && sudo make install

安装 SpanDSP

git clone https://github.com/freeswitch/spandsp
cd spandsp
# 一定记得切下分支,否则不兼容
git checkout -b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4

./bootstrap.sh 
./configure
make && sudo make install

二、 安装Freeswitch

wget -c https://files.freeswitch.org/releases/freeswitch/freeswitch-1.10.7.-release.tar.gz
# 解压
tar -xvf freeswitch-1.10.7.-release.tar.gz


cd freeswitch-1.10.7.-release

./bootstrap.sh
./configure
# 编译
make
# 安装
sudo make install 

# To install sound and music on hold run following command

sudo make cd-sounds-install
sudo make cd-moh-install 

三、服务配置

sudo ln -s /usr/local/freeswitch/conf /etc/freeswitch 
sudo ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/fs_cli 
sudo ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/freeswitch

# 添加用户

sudo groupadd freeswitch 
sudo adduser --quiet --system --home /usr/local/freeswitch --gecos 'FreeSWITCH open source softswitch' --ingroup freeswitch freeswitch --disabled-password 
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/*

# 配置systemd

sudo touch /etc/systemd/system/freeswitch.service

freeswitch.service

[Unit] 
Description=FreeSWITCH open source softswitch 
Wants=network-online.target Requires=network.target local-fs.target 
After=network.target network-online.target local-fs.target 

[Service] 
; service 
Type=forking 
PIDFile=/usr/local/freeswitch/run/freeswitch.pid 
Environment="DAEMON_OPTS=-nonat" 
Environment="USER=freeswitch" 
Environment="GROUP=freeswitch" 
EnvironmentFile=-/etc/default/freeswitch 
ExecStartPre=/bin/chown -R ${USER}:${GROUP} /usr/local/freeswitch 
ExecStart=/usr/local/freeswitch/bin/freeswitch -u ${USER} -g ${GROUP} -ncwait ${DAEMON_OPTS} 
TimeoutSec=45s 
Restart=always 

[Install] 
WantedBy=multi-user.target