freeswitch 基於webrtc網頁視訊、語音通話官方例子video_demo安裝
1.說明
freeswitch mod_verto提供了一個基於webrtc的js模組,該模組可以通過網頁撥打電話、開視訊會議等
環境: 基於阿里雲debian8 安裝 該模組需要https 最好是基於外網伺服器安裝
體驗地址在http://blog.csdn.net/java_lilin/article/details/78391819有提到
2. 由於要視訊所以要編譯原始碼的mod_av模組
命令:
wget -O - https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb http://files.freeswitch.org/repo/deb/debian-unstable/ jessie main" >> /etc/apt/sources.list.d/freeswitch.list
apt-get update
apt-get install -y --force-yes freeswitch-video-deps-most
Cd /opt
git clone https://freeswitch.org/stash/scm/fs/freeswitch.git freeswitch
Cd freeswitch
./bootstrap.sh -j
Vim modules.conf 去掉mod_av 前面的#
./configure --enable-core-pgsql-support
Make
make install
make hd-sounds-install make hd-moh-install
make samples
官網安裝參考地址https://freeswitch.org/confluence/display/FREESWITCH/Debian+8+Jessie
3. 安裝完成後預設路徑在/usr/local/freeswitch
Cd /usr/local/freeswitch
新增視訊編碼
Vim conf/vars.xml
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM,VP8,H263,H264"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM,VP8,H263,H264"/>
如果是執行環境 最好修改下sip的預設埠5060 5061 5080 5081防被攻擊
Cd /conf/sip_profiles 目錄去掉3個xx--ipv6的相關資訊
external-ipv6_bak external-ipv6.xmlbak internal-ipv6.xmlbak我直接加了個字尾 好像是阿里雲不支援ip6執行報錯
Cd /usr/local/freeswitch
Vim conf/autoload_configs/modules.conf.xml 開啟 <load module="mod_av"/>
的註釋
4. 啟動
Cd /usr/local/freeswitch
./bin/freeswitch
如果看到(FreeSWITCH Version 1.9.0+git~20180109T214449Z~7f9e6f3e4b~64bit (git 7f9e6f3 2018-01-09 21:44:49Z 64bit)
)類似的證明沒錯
輸入命令shutdown停止freeswitch
5. Cd /opt/freeswitch/html5/verto 目錄下有個video_demo 和verto_communicator
兩個目錄的例子都是基於verto.js寫的 官網地址http://evoluxbr.github.io/verto-docs/
6. 現在配置video_demo (verto_communicator一樣 寫的複雜一些 原理一樣)
安裝apt-get install nignx
把 video_demo copy到/var/www下
Cd /usr/local/freeswtich 下
Vim conf/directory/default.xml
<domain name="$${domain}">
<params>
..開啟下面的
<param name="jsonrpc-allowed-methods" value="verto"/>
<param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/>
</params>
Vim conf/autoload_configs/conference.conf.xml
<!-- Allow live array sync for Verto -->搜尋開啟
<param name="conference-flags" value="livearray-sync"/>
Vim conf/autoload_configs/verto.conf.xml
在 <profile name="default-v4">
。。。。。裡面加入 mod_verto 就成了一個http伺服器了
<vhosts>
<vhost domain="localhost">
<param name="alias" value="seven.local freeswitch.org"/>
<param name="root" value="/var/www/video_demo"/>
<param name="index" value="index.html"/>
<!--
<param name="auth-realm" value="FreeSWITCH"/>
<param name="auth-user" value="freeswitch"/>
<param name="auth-pass" value="rocks"/>
-->
</vhost>
</vhosts>
</profile>
7. Https證書申請 阿里有免費的 參考地址https://www.cnblogs.com/lxf1117/p/6650647.html
獲取後有xx.pem 、xx.key
Nginx配置
server {
listen 443;
server_name www.xxx.com;
ssl on;
ssl_certificate /etc/nginx/cert/xx.pem;
ssl_certificate_key /etc/nginx/cert/xx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root /var/www/video_demo;
index index.html;
}
}
替換freeswitch預設的pem
用命令cat xx.pem xx.key > wss.pem 生成後替換掉/usr/local/freeswitch/certs下的wss.pem 兩邊證書一致
重啟nginx freeswitch
nginx -s stop
nginx
Cd /usr/local/freeswitch
./bin/freeswitch
現在可以訪問域名來訪問改demo
效果和https://cantina.freeswitch.org/verto/index.html一樣
以上是會議呼入
預設沒有管理許可權的 需要配置開啟
停止fs
Vim conf/diaplan/defaul.xml
找到
<extension name="cdquality_conferences">
<condition field="destination_number" expression="^(35\d{2}|36000)$">
<action application="answer"/>
<action application="set" data="conference_member_flags=moderator"/>
<action application="conference" data="$1-${domain_name}@video-mcu-stereo"/>
</condition>
</extension>
重啟fs
重啟呼入3500後以上地方有所變化可操控會議
當然也可以通過sip電話和網頁進行通話和視訊
分享桌面外掛需要下載一個screen capturing google 瀏覽器外掛就好了
如果你想頁面好看可以參考https://blog.csdn.net/Java_lilin/article/details/79975066