在Centos7上编译FreeSWITCH

时间:2022-11-17 14:03:45

安装步骤:

yum install yum-utils

yum install -y https://files.freeswitch.org/repo/yum/centos-release/freeswitch-release-repo-0-1.noarch.rpm epel-release

yum-builddep -y freeswitch #参考Error: 找不到软件包 devtoolset-9

yum install -y yum-plugin-ovl centos-release-scl rpmdevtools yum-utils git

yum install -y devtoolset-4-gcc* #参考错误提示:没有可用软件包 devtoolset-4

scl enable devtoolset-4 'bash'

cd /usr/local/src

git clone -b v1.8 https://git.oschina.net/nwaycn/freeswitch.git

cd /usr/local/src/freeswitch

./bootstrap.sh -j

./configure --enable-portable-binary --prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-gnu-ld --with-python --with-erlang --with-openssl --enable-core-odbc-support --enable-zrtp

这里需要对modules.conf中的applications/mod_abstraction、applications/mod_av、say/mod_say_zh取消注释


make

make -j install

make -j cd-sounds-install

make -j cd-moh-install

在执行yum-builddep -y freeswitch提示错误

Error: 找不到软件包 devtoolset-9

解决办法:

yum -y --downloadonly --downloaddir=./gccupdate install centos-release-scl
cd gccupdate
rpm -ivh ./*

yum -y --downloadonly --downloaddir=./gcc9 install devtoolset-9 # 下载gcc 9

cd gcc9
rpm -Uvh ./*

# scl -l
devtoolset-9
scl enable devtoolset-9 bash
gcc --version
gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 重新执行yum-builddep -y freeswitch


在执行yum install -y devtoolset-4-gcc*提示错误

错误提示:没有可用软件包 devtoolset-4

解决办法:

wget -O /etc/yum.repos.d/devtoolset-4.repo https://copr.fedoraproject.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap/repo/epel-7/hhorak-devtoolset-4-rebuild-bootstrap-epel-7.repo
yum update -y
yum install -y devtoolset-4-gcc*

注:如果要编译mod_av,则需要以下步骤

wget http://download1.rpmfusion.org/free/el/updates/7/x86_64/x/x264-libs-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm

wget http://download1.rpmfusion.org/free/el/updates/7/x86_64/x/x264-devel-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm

rpm -hiv x264-libs-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm

rpm -hiv x264-devel-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm

cd /usr/local/src/freeswitch/libs

git clone https://gitee.com/nwaycn/libav.git

cd libav

./configure --enable-pic --enable-shared --enable-libx264 --enable-gpl --extra-libs="-ldl"

make

make install

cp /usr/local/lib/pkgconfig/libavcodec.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavdevice.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavfilter.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavformat.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavresample.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavutil.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libswscale.pc /usr/lib64/pkgconfig/、

ldconfig

如果pkgconfig配了后,还是会出现找不到动态库,故而强行做软链库

ln -s /usr/local/lib/libavformat.so.56 /usr/lib64

ln -s /usr/local/lib/libavdevice.so.55 /usr/lib64
ln -s /usr/local/lib/libavfilter.so.5 /usr/lib64
ln -s /usr/local/lib/libavcodec.so.56 /usr/lib64
ln -s /usr/local/lib/libavresample.so.2 /usr/lib64
ln -s /usr/local/lib/libavutil.so.54 /usr/lib64
ln -s /usr/local/lib/libswscale.so.3 /usr/lib64
然后

cd /usr/local/src/freeswitch

重新编译freeswitch

freeswitch 命令操作

===============启动命令================
#详细启动日志并进入控制台模式命令
freeswitch -c -nonat -rp
#退出详细模式启动命令
shutdown
#后台启动freeswitch服务(推荐使用)
freeswitch -nc -nonat
#进入控制台模式命令
fs_cli
#退出控制台命令
/exit
#关闭freeswitch命令
freeswitch -stop
===============查询服务命令=============
#查看freeswitch安装路径
whereis freeswitch
查看进程号
ps -ef | grep freeswithch
查看freeswitch端口是否被监听
netstat -anp | grep 5060
#查看freeswitch的运行状态
status(控制台模式执行)
#查看freewitch内置用户是否注册
sofia status profile internal reg(控制台模式执行)