Ubuntu系统下编译安装FreeSWITCH 1.10.12
在Ubuntu系统下编译FreeSWITCH 1.10.12版本,需按以下步骤操作:
一、环境准备
更新系统:
sudo apt update sudo apt upgrade
安装基础编译工具:
sudo apt install -y build-essential pkg-config cmake autoconf automake libtool
安装依赖库:
sudo apt install -y 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 libavformat-dev libswscale-dev liblua5.2-dev libpq-dev unixodbc-dev libxml2-dev ntpdate sngrep wget vim
liblua5.2-0
,并使用libswresample-dev
替代已废弃的libavresample-dev
。
二、下载源码
创建工作目录:
mkdir -p ~/opt && cd ~/opt
克隆源码:
git clone https://github.com/signalwire/freeswitch.git -b v1.10.12
cd freeswitch
或者下载
wget https://files.freeswitch.org/releases/freeswitch/freeswitch-1.10.12.-release.tar.xz
tar vxf freeswitch-1.10.12.-release.tar.xz
cd freeswitch-1.10.12.-release
三、编译依赖库
编译libks:
git clone https://github.com/signalwire/libks.git cd libks mkdir build cd build cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local make sudo make install cd ../../
编译signalwire-c:
git clone https://github.com/signalwire/signalwire-c.git cd signalwire-c mkdir build cd build cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local make sudo make install cd ../..
编译sofia-sip:
git clone https://github.com/freeswitch/sofia-sip.git cd sofia-sip ./bootstrap.sh ./configure make sudo make install cd ..
编译spandsp
git clone https://github.com/freeswitch/spandsp.git cd spandsp git checkout -b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4 ./bootstrap.sh ./configure make -j$(nproc) sudo make install export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH} cd ..
四、编译FreeSWITCH主程序
配置与编译:
./bootstrap.sh ./configure make sudo make install
安装音频包(可选):
sudo make cd-sounds-install sudo make cd-moh-install
刷新系统动态库:
sudo ldconfig
五、配置服务
- 创建systemd管理脚本:
sudo vim /etc/systemd/system/freeswitch.service
脚本内容:
[Unit] Description=FreeSWITCH After=network.target local-fs.target[Service] Type=forking User=root Group=root ExecStart=/usr/local/freeswitch/bin/freeswitch -nc -nonat ExecStop=/usr/local/freeswitch/bin/freeswitch -stop Restart=always LimitCORE=infinity LimitNOFILE=100000 LimitNPROC=60000 PIDFile=/usr/local/freeswitch/run/freeswitch.pid[Install] WantedBy=multi-user.target
- 激活服务:
sudo systemctl daemon-reload sudo systemctl enable freeswitch sudo systemctl start freeswitch sudo systemctl status freeswitch
六、验证安装
- 检查服务状态:
sudo systemctl status freeswitch
若显示active (running)
,则表示服务已成功启动。
- 进入FreeSWITCH CLI:
fs_cli
在CLI中输入status
命令,查看运行状态。