计算机知识分享网

【freeswitch】centos源码编译安装freeswitch版本1.10.5

在安装Freeswitch之前,先安装依赖
yum install -y net-tools
yum install -y yum-utils --enablerepo=extras 
yum install -y yum-plugin-ovl centos-release-scl rpmdevtools yum-utils git wget vim devtoolset-7-gcc* devtoolset-7 libtiff-devel cmake3 libatomic unixODBC unixODBC-devel.x86_64 postgresql-libs postgresql-devel libpqxx-devel
yum install -y gcc-c++ autoconf automake libtool ncurses-devel zlib-devel libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel libxml2-devel libyuv-devel libvpx-devel libvpx2* libdb4* libidn-devel unbound-devel libuuid-devel lua-devel libsndfile-devel yasm-devel
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
yum install -y libaio
yum install wget cmake bzip2 -y
yum install ncurses-devel gcc gcc-c++ openssl-devel -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
yum install libatomic
yum install libopus-devel
下载cmake并进行编译安装,在/usr/local/src目录下执行
wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
tar vzxf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./configure
make -dj
make install
下载libks并进行编译安装,在/usr/local/src目录下执行
yum install libatomic
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make -dj
make install
下载signalwire-c并进行编译安装,在/usr/local/src目录下执行
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c/
cmake .
make -dj
make install
ln -sf /usr/local/lib64/pkgconfig/signalwire_client.pc /usr/lib64/pkgconfig/signalwire_client.pc
下载nasm-2.13.03并进行编译安装,在/usr/local/src目录下执行
wget https://download.lixian.fun/Linux_LNMP_packers/nasm-2.13.03.tar.gz
tar -xf nasm-2.13.03.tar.gz 
cd nasm-2.13.03
./configure
make && make install
下载x264并进行编译安装,在/usr/local/src目录下执行
git clone https://code.videolan.org/videolan/x264.git
./configure
make -dj
make install
编译安装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
git clone https://gitcode.net/qq_21376985/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   #动态链接库管理命令,目的让动态链接库为系统所共享
升级opus,下载opus-1.3.1安装包并进行编译安装,在/usr/local/src目录下执行
wget https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xvfz opus-1.3.1.tar.gz
cd opus-1.3.1
./configure
make
make install
cp /usr/lib/pkgconfig/opus.* /usr/lib64/pkgconfig/
安装spandsp,不安装会报一下错误:
spandsp >= 3.0... configure: error: no usable spandsp; please install spandsp3 devel package or equivalent

git clone https://github.com/freeswitch/spandsp.git
cd spandsp
./bootstrap.sh -j
./configure
make
make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}
ldconfig
安装sofia-sip,不安装会报一下错误:
sofia-sip-ua >= 1.12.12 configure: error: no usable sofia-sip; please install sofia-sip-ua devel package or equivalent

git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip
./bootstrap.sh -j
./configure
make
make install
ldconfig
然后编译freeswitch即可,在/usr/local/src目录下执行
tar -xf freeswitch-1.10.5.-release.tar.gz 
mv freeswitch-1.10.5.-release freeswitch
cd freeswitch
./configure 
make
make install
如遇编译失败,clean之后重新编译即可
make clean
cd xxx_libray_duiyigndesoft
./configure
make
make install
freeswitch默认编译安装的目录在/usr/local/freeswitch
cd /usr/local/freeswitch/bin
freeswitch -nc -nonat
或者
./freeswitch
可以根据实际需要是否建立软连接:
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/local/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/local/bin/
/usr/local/src/freeswitch/module.conf编译之前根据实际需要是否需要注释编译的模块:
#applications/mod_signalwire
#applications/mod_av

#Freeswitch