科普:WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。
运行WebRTC网页客户端
sipml5,请自行下载,GitHub地址:https://github.com/DoubangoTelecom/sipml5
下载后需部署在web容器,通过浏览器访问。默认访问路径为:http://域名或ip/sipml5/call.htm
FusionPBX设置部分
1、在fusion的高级中的acl domains中需要添加CIDR白名单,即需要通过视频连接的客户端地址
2、设置SIP Profile的internal,及vars中的相关
上图中ws选项可在本地使用localhost登录方式进行web视频通话,但是如果要是用wss-binding需要申请证书。
设置编码方式
webrtc需要开启VP8,其他视频需要使用H263编码方式
但是上图中的编码方式不知为何修改不成功,sofia status profile internal后发现并未修改成想要的编码方式,但是发现在
internal中的编码会调用这两个变量,通过直接修改internal中的编码方式为PCMU,PCMA,VP8,H264,再次执行sofia status profile internal才发现修改成功。
上下靓图需要再internal中的修改成想要的编码方式才可以
3、 FusionPBX默认mod_av模块未安装,需要按如下方式进行安装处理
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
但是在第三步骤中会报各种错,基本都是依赖包未安装,可按提示进行yum安装即可。