在阿里云Nginx服务器上部署freeswitch webrtc视频/语音模块mod_verto

Song4057 次浏览0个评论2018年06月21日

1、说明

freeswitch mod_verto提供了一个基于webrtcjs模块,该模块可以通过网页拨打电话、开视频会议等 环境: 基于阿里云debian8安装 该模块需要https最好是基于外网服务器安装 体验地址在http://blog.csdn.net/java_lilin/article/details/78391819有提到

2、由于要视频所以要编译源码的mod_av模块

首先确保你安装了freeswitch文件

vim modules.conf
# 去掉mod_av 前面的#

make install mod_verto

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、查看video_demo和verto_communicator

cd /opt/freeswitch/html5/verto

两个目录的例子都是基于verto.js写的 官网地址http://evoluxbr.github.io/verto-docs/

5、现在配置video_demo (verto_communicator一样,写的复杂一些原理一样)

安装apt-get install nignx,把video_demo复制到/var/www下。

通过在directory/default.xml中输入以下行,可以将Verto信令的权限授予整个用户目录。

<domain name="$${domain}">
    <params>
    # 取消掉如下代码注视
    <param name="jsonrpc-allowed-methods" value="verto"/>
    <param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/>
</params>  

您可以在用户目录配置文件中基于每个用户指定verto-context和verto-dialplan

<include>
  <user id="1000">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="vm-password" value="1000"/>
      <param name="verto-context" value="public"/>
      <param name="verto-dialplan" value="XML"/>
    </params>
  </user>
</include>

要启用提供会议事件近实时更新的livearray功能,请将以下内容添加到conf/autoload_configs/conference.conf.xml

<!-- Allow live array sync for Verto -->
# 取消掉如下代码注视

<param name="conference-flags" value="livearray-sync"/>

接下来修改conf/autoload_configs/verto.conf.xml并在default-v4中加入配置文件

<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"/>
        </vhost>
    </vhosts>
</profile>

6、Https证书申请

可以申请阿里有免费的证书,参考地址:https://www.cnblogs.com/lxf1117/p/6650647.html

下载后获取xx.pem 、xx.key,然后获取Nginx配置

server {
    listen 443;
    server_name www.xxx.com;

    location / {

          root /var/www/video_demo;

          index index.html;

    }

    ssl on;
    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;
    ssl_certificate   /etc/nginx/cert/xx.pem;
    ssl_certificate_key  /etc/nginx/cert/xx.key;
}

替换freeswitch默认的pem

cat命令合并两个文件:

cat xx.pem xx.key > wss.pem

生成后替换掉/usr/local/freeswitch/certs下的wss.pem,保持两边证书一致,然后重启nginx freeswitch

# 启动nginx
sudo service nginx start
# 启动freeswitch
freeswitch

现在可以访问域名来访问改demo,效果和https://cantina.freeswitch.org/verto/index.html一样

常见问题: freeswitch webrtc视频/语音模块mod_verto常见问题汇总

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文

    当前暂无更多相关好文推荐...