背景说明
在freeswitch中有mod_sofia模块支持sip协议。sip协议用于媒体链接建立前的信令交互。像mod_sofia这种模块在freeswitch中称为endpoint,除了mod_sofia,freeswitch还有一个mod_verto模块。mod_verto使用freeswitch自定义的一个协议,通过websocket进行信令交互。verto协议基于jsonRpc协议,通过json格式来传输数据。
它作为一个端点存在,也就意味着可以用它来和PSTN或sip终端进行互联互通, 下面就进入实战阶段, 本篇重在安装部署,FS的安装可以按照官方文档来, 这里描述了verto模块的相关配置和启动,如果自己实在不想从头来一遍但稍了解一些docker指令可以直接通过:docker pull yine/freeswitch:1.10.2-verto
来拉取最新的版本进行体验。
系统配置
配置verto
- 修改conf/autoload_configs/verto.conf.xml
- debug 设置为10 适用于调试;
- enable-presence 设置为false,关闭状态;
- outbound-codec-string 添加h264编码支持;
- inbound-codec-string 添加h264编码支持;
- 为用户号码配置verto支持
- 修改directory/default.xml,在中添加如下:
<param name="jsonrpc-allowed-methods" value="verto"/>
<param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/>
- 每个用户的xml配置文件中conf/directory/default/1000.xml,在中添加如下:
<param name="verto-context" value="public"/>
<param name="verto-dialplan" value="XML"/>
- 如需使用会议功能,请修改会议配置文件conf/autoload_configs/conference.conf.xml
- 在中检查conference-flags项目,确保其中包含livearray-sync和livearray-json-status
- 拨号计划配置
- 在 dialplan/default 下新建 00_verto_demo.xml 内容如下:
<include>
<extension name="verto-demo">
<condition field="destination_number" expression="^(10[0-9][0-9])$">
<action application="export" data="dialed_extension=$1"/>
<action application="set" data="call_timeout=30"/>
<action application="bridge" data="${verto_contact ${dialed_extension}@${dialed_domain}}"/>
</condition>
</extension>
</include>
- 因为 Local_Extension 和上面定义的准入条件冲突,所以需要将这个拔号计划给注释掉,自己添加的才能生效;
创建自签名证书
-
因为wss方式的访问是加密的,所以需要配置https方式运行demo,先创建一个自签名证书,以供freeswitch和web服务使用,注意二者需要使用同一套证书才能顺利的访问freeswitch。
-
创建自签名证书,过程中按提示输入各种信息,过程中需要openssl的支持,如果未安装请提前自行安装。
wget http://files.freeswitch.org/downloads/ssl.ca-0.1.tar.gz
tar zxfv ssl.ca-0.1.tar.gz
cd ssl.ca-0.1/
perl -i -pe 's/md5/sha256/g' *.sh
perl -i -pe 's/1024/4096/g' *.sh
./new-root-ca.sh
./new-server-cert.sh self.zerostudio.com
./sign-server-cert.sh self.zerostudio.com
cat self.zerostudio.com.crt self.zerostudio.com.key > /etc/freeswitch/tls/wss.pem
/*注意此路径和verto配置文件中的相同*/
安装web服务(以apache为例)
sudo apt-get install apache2
配置apache
sudo a2enmod ssl
sudo a2enmod rewrite
修改/etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:443> -- 修改为443
…………
--增加下面几行
SSLEngine On
SSLOptions +StrictRequire
SSLCertificateFile /etc/freeswitch/tls/wss.pem
SSLCertificateKeyFile /etc/freeswitch/tls/wss.pem
SSLCertificateChainFile /etc/freeswitch/tls/wss.pem
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
/etc/init.d/apache2 restart 启动web服务, 如出现问题用a2enmod 来加载ssl模块;
重启apache服务
sudo service apache2 restart
部署verto_demo
- 在freeswitch源码中找到video_demo cpy 到web服务目录
cp -rf ./freeswitch/html5/verto/video_demo /var/www/html
- 打开浏览器(我用的Chrome)访问https://IP地址/video_demo
- 提示未信任,点高级,继续前往。
- 至此安装完毕,其他请自行体验。
补充
但实际情况总不尽人意,Debian 8.x Jessie 目前的 OpenSSL 版本还是 1.0.1,不支持 ALPN 的最低要求 1.0.2,所以我们升级到1.0.2的版本,线上环境最好是用Debian9来进行,兼容性会更好, 如果实在想在debian8上升级,建议源码安装再修改环境变量,但是这种方式需要你重新编译你的可执行程序。
问题汇总
今天的文章vf安装教程_飞科fs339头盖怎么安装分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/82061.html