1. 安装系统依赖
yum update -y && yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtiff-devel libtool libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libshout-devel libmpg123-devel lame-devel
2. 安装cmake
yum install -y libxml2 libxml2-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel zstd libzstd-devel curl libcurl-devel libpng libpng-devel
wget https://github.moeyy.xyz/https://github.com/Kitware/CMake/releases/download/v3.23.0/cmake-3.23.0.tar.gz
tar -zxvf cmake-3.23.0.tar.gz && cd cmake-3.23.0 && ./configure --prefix=/usr/local/cmake-3.23.0
gmake -j
gmake install
如果报下面错误
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugzilla.redhat.com/bugzilla for instructions.
gmake[2]: *** [Source/CMakeFiles/CMakeLib.dir/cmComputeLinkInformation.cxx.o] Error 4
gmake[2]: *** Waiting for unfinished jobs....
[ 65%] Building CXX object Source/CMakeFiles/CMakeLib.dir/cmGlobVerificationManager.cxx.o
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugzilla.redhat.com/bugzilla for instructions.
gmake[2]: *** [Source/CMakeFiles/CMakeLib.dir/cmComputeTargetDepends.cxx.o] Error 4
gmake[1]: *** [Source/CMakeFiles/CMakeLib.dir/all] Error 2
gmake: *** [all] Error 2
可以修改为下面,其中-j
后面的值是cpu
内核数
gmake -j4
配置环境变量
touch /etc/profile.d/cmake.sh
chmod 777 /etc/profile.d/cmake.sh
echo -e '\nexport PATH=/usr/local/cmake-3.23.0/bin:$PATH\n' >> /etc/profile.d/cmake.sh
source /etc/profile.d/cmake.sh
3. 安装libks
yum install libatomic
git clone -b v1.x https://github.moeyy.xyz/https://github.com/signalwire/libks.git
cd libks
cmake .
make -j4
make install
4. 安装signalwire-c
git clone -b v1.x https://github.moeyy.xyz/https://github.com/signalwire/signalwire-c.git
cd signalwire-c/
cmake .
make -j4
make install
ln -sf /usr/local/lib64/pkgconfig/signalwire_client.pc /usr/lib64/pkgconfig/signalwire_client.pc
5. 安装x264
git clone http://git.videolan.org/git/x264.git
cd x264
./configure --disable-asm
make -j4
make install
如果下载不下来,可使用下面命令下载
wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.gz
tar -zxvf x264-master.tar.gz
cd x264-master
6. 编译安装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
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
7. 编译安装freeswitch
下载并解压
wget https://files.freeswitch.org/releases/freeswitch/freeswitch-1.10.2.-release.tar.gz
tar -zxvf freeswitch-1.10.2.-release.tar.gz
编译前修改一些系统配置
cd /etc/yum.repos.d/ && vim linuxtech.repo
[linuxtech]
name=LinuxTECH
baseurl=http://pkgrepo.linuxtech.net/el6/release/
enabled=1
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET
安装opus
yum install libopus-devel -y
wget https://archive.mozilla.org/pub/opus/opus-1.3.tar.gz
tar -zxvf opus-1.3.tar.gz && cd opus-1.3
./configure
make -j4
make install
编译并安装
cd freeswitch-1.10.2.-release
./configure
make -j4
make install
设置软链接
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/local/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/local/bin/
启动freeswitch
freeswitch -nc -nonat
停止freeswitch
freeswitch -stop
进入freeswitch
控制台
fs_cli
status # 查看运行状态
sofia status profile internal reg # 查看用户是否注册
/exit # 退出控制台
Q.E.D.