FreeSWITCH及VOIP,Openser,电话机器人等产品中文技术资讯、交流、沟通、培训、咨询、服务一体化网络。QQ群:293697898
作为语音应用来说,其实FreeSWITCH1.2.24够用,当然ims等的配置那么1.4.26也足矣!但如果作为视频会议和视频聊天,还是用1.6以上的版本会好一些,在2015年,我们写了一篇专门为WEBRTC,FS 视频会议相关的文章《FreeSWITCH1.7带mod_av的编译及H264、VP8转码支持操作及WEBRTC》(写文章时,还没有这个订阅号),当然当时前提是Debian 8的操作系统,而CentOS系统中一直因为FFmpeg和libav两个库的原因,一直没有搞好,最近抽时间,把在Centos7上安装FreeSWITCH1.8.7及mod_av,用于视频会议和点对点视频对话。
闲话少说,言归正传!
CentOS版本
切记,安装mini版,不要装desktop版,因为大量的依赖库会因desktop而不同。
安装是使用的虚拟机Virtual Box,当时也不知为啥选了个3核
内存
安装CentOS7-mini版不再叙述。我们认为配好了ip可以远程通过putty等连接了。
以下为安装步骤:
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
yum install -y yum-plugin-ovl centos-release-scl rpmdevtools yum-utils git
yum install -y devtoolset-4-gcc*
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中的mod_av取消注释
make
make -j install
make -j cd-sounds-install
make -j cd-moh-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/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/src/freeswitch
重新编译freeswitch
于是乎,我们就可以互打看到视频
当然占的流量也是杠杠滴