1. 程式人生 > >freeswitch 基於webrtc網頁視訊、語音通話官方例子video_demo安裝

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 目錄去掉3xx--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

交流q群 261074724