程序员必知:Verto模块启用

简介: 程序员必知:Verto模块启用

Verto模块启用

一、环境

debian 11,gcc 10.2.1,openssl 1.1.1n ,freeswitch 1.10.10,测试终端 windows 10 64 位 (浏览器:Microsoft edge 115.0.1901.183 64 位 ,Chrome 112.0.5615.138 64位)

二、Verto配置

修复Verto配置文件:conf/autoload_configs/verto.conf.xml

?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556[/code>configuration name="verto.conf" description="HTML5 Verto Endpoint"> [/code>settingsparam name="debug" value="10"/> [/code>param name="detach-timeout-sec" value="120"/> [/code>param name="enable-presence" value="false"/> profilesprofile name="default-v4"> [/code>param name="bind-local" value="$${local_ip_v4}:8081"/> [/code>param name="bind-local" value="$${local_ip_v4}:8082" secure="true"/> [/code>param name="force-register-domain" value="$${domain}//代码效果参考:http://www.ezhiqi.com/zx/art_1250.html "/> [/code>param name="secure-combined" value="/usr/local/freeswitch/certs/wss.pem"/> -证书的位置,一会儿存放证书时要用 [/code>param name="secure-chain" value="/usr/local/freeswitch/certs/wss.pem"/> [/code>param name="userauth" value="true"/> [/code>param name="blind-reg" value="false"/> [/code>param name="mcast-ip" value="224.1.1.1"/> [/code>param name="mcast-port" value="1337"/> [/code>param name="rtp-ip" value="$${local_ip_v4}"/> [/code>param name="local-network" value="localnet.auto"/> [/code>param name="outbound-codec-string" value="opus,vp8,h264"/> [/code>param name="inbound-codec-string" value="opus,vp8,h264"/> [/code>param name="apply-candidate-acl" value="localnet.auto"/> [/code>param name="apply-candidate-acl" value="wan_v4.auto"/> [/code>param name="apply-candidate-acl" value="rfc1918.auto"/> [/code>param name="apply-candidate-acl" value="any_v4.auto"/> [/code>param name="timer-name" value="soft"/> profile name="default-v6"> [/code>param name="bind-local" value="【$${local_ip_v6}】:8081"/> [/code>param name="bind-local" value="【$${local_ip_v6}】:8082" secure="true"/> [/code>param name="force-register-domain" value="$${domain}"/> [/code>param name="secure-combined" value="$${certs_dir}/wss.pem"/> [/code>param name="secure-chain" value="$${certs_dir}/wss.pem"/> [/code>param name="userauth" value="true"/> [/code>param name="blind-reg" value="false"/> [/code>param name="rtp-ip" value="$${local_ip_v6}"/> [/code>param name="outbound-codec-string" value="opus,vp8"/> [/code>param name="inbound-codec-string" value="opus,vp8"/> [/code>param name="apply-candidate-acl" value="wan_v6.auto"/> [/code>param name="apply-candidate-acl" value="rfc1918.auto"/> [/code>param name="apply-candidate-acl" value="any_v6.auto"/> [/code>param name="apply-candidate-acl" value="wan_v4.auto"/> [/code>param name="apply-candidate-acl" value="any_v4.auto"/> [/code>param name="timer-name" value="soft"/>

  为用户配置verto支持,修改directory/default.xml,在

和中添加如下:

?12[/code>param name="jsonrpc-allowed-methods" value="verto"/>[/code>param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/>

  为每个用户的xml配置文件添加verto相关内容(以1000.xml为例):

?1234567[/code>user id="1001"> [/code>paramsparam name="password" value="$${default_password}//代码效果参考:http://www.ezhiqi.com/zx/art_1448.html "/> [/code>param name="vm-password" value="1001"/> [/code>param name="verto-context" value="public"/> [/code>param name="verto-dialplan" value="XML"/>

如果使用会议功能,则需修改配置文件conf/autoload_configs/conference.conf.xml

和中检查conference-flags项目,确保其中包含livearray-sync和livearray-json-status拨号计划配置例如:

?1234567[/code>extension name="HTML5 Verto"> [/code>condition field="destination_number" expression="^(10【0-9】【0-9】)$"> [/code>action application="export" data="dialed_extension=$1"/> [/code>action application="set" data="call_timeout=30"/> [/code>action application="bridge" data="${verto_contact ${dialed_extension}@${dialed_domain}}//代码效果参考:http://www.ezhiqi.com/bx/art_3953.html"/>

  至此freeswitch针对verto的配置已经完成,想要测试的话,需要使用freeswitch自带的verto demo,安装使用过程下文:

三、创建证书

因为wss方式的访问是加密的,所以需要配置https方式运行demo,先创建一个自签名证书,以供freeswitch和web服务使用,注意二者需要使用同一套证书才能顺利的访问freeswitch。创建自签名证书,过程中按提示输入各种信息,过程中需要openssl的支持,如果未安装请提前自行安装。

?123456789wget http://files.freeswitch.org/downloads/ssl.ca-0.1.tar.gztar zxfv ssl.ca-0.1.tar.gzcd ssl.ca-0.1/perl -i -pe 's/md5/sha256/g' .shperl -i -pe 's/1024/4096/g' .sh./new-root-ca.sh./new-server-cert.sh self.verto./sign-server-cert.sh self.vertocat self.verto.crt self.verto.key > /usr/local/freeswitch/certs/wss.pem /注意此路径和verto配置文件中的相同/

四、安装web服务(apache)

?123sudo apt-get install apache2sudo a2enmod sslsudo a2enmod rewrite

修改/etc/apache2/sites-enabled/000-default.conf

?123456789[/code>VirtualHost *:443> -- 修改为443…………--增加下面几行SSLEngine OnSSLOptions +StrictRequireSSLCertificateFile /usr/local/freeswitch/certs/wss.pemSSLCertificateKeyFile /usr/local/freeswitch/certs/wss.pemSSLCertificateChainFile /usr/local/freeswitch/certs/wss.pem

  重启apache

?1sudo service apache2 restart

五、测试

将verto demo放到apache的web页面目录中

?1cp -rf /opt/freeswitch-1.8.7/html5/verto/video_demo /var/www/html

此外verto还提供了不带视频的demo和verto_communicator。

打开浏览器(我用的Chrome)访问提示未信任时,选高级,点击继续。

六、nginx服务配置

如下图所示:

其中wss.key为私钥

相关文章
|
3月前
|
前端开发 开发者
在前端开发中,webpack 作为模块打包工具,其 DefinePlugin 插件可在编译时动态定义全局变量,支持环境变量定义、配置参数动态化及条件编译等功能。
在前端开发中,webpack 作为模块打包工具,其 DefinePlugin 插件可在编译时动态定义全局变量,支持环境变量定义、配置参数动态化及条件编译等功能。本文阐述 DefinePlugin 的原理、用法及案例,包括安装配置、具体示例(如动态加载资源、配置接口地址)和注意事项,帮助开发者更好地利用此插件优化项目。
91 0
|
6月前
|
传感器
LabVIEW以编程方式启用IEPE激励
LabVIEW以编程方式启用IEPE激励
54 0
|
6月前
|
数据处理 数据库 开发者
Django中的自定义管理命令:扩展管理功能的途径
【4月更文挑战第15天】Django教程:介绍如何创建和使用自定义管理命令以扩展框架功能。在应用的`management/commands`目录下创建Python文件,继承`BaseCommand`,实现`handle`方法。示例代码展示了如何定义参数和执行逻辑。自定义命令适用于批量数据处理、定期任务、项目初始化和自定义迁移操作。注意文件位置、命令安全性和稳定性。自定义管理命令能提升开发和维护效率。
|
监控 安全 数据库
自定义警告规则:企业电脑行为监控软件的Lua脚本编写
在企业环境中,监控员工电脑行为是确保信息安全和员工生产力的重要一环。电脑行为监控软件允许管理员跟踪用户活动并制定警告规则,以便在出现异常情况时立即采取措施。本文将介绍如何使用Lua脚本编写自定义警告规则,以监控关键行为并自动将监控到的数据提交到网站。
184 1
|
存储 小程序 容器
小程序中实现文章的关注功能
小程序中实现文章的关注功能
小程序中实现文章的关注功能
|
前端开发 开发者
在项目中为 scss 或 less 文件启用模块化1|学习笔记
快速学习在项目中为 scss 或 less 文件启用模块化1
147 0
在项目中为 scss 或 less 文件启用模块化1|学习笔记
|
Linux
扩展知识点--利用Linux应用代码如何控制LED
扩展知识点--利用Linux应用代码如何控制LED
139 0
|
前端开发
在项目中为scss或less文件启用模块化
一、思考第三方样式表达问题,如何做 二、在项目中启用模块化并同时使用bootstrap
在项目中为scss或less文件启用模块化
|
前端开发 开发者
在项目中为 scss 或 less 文件启用模块化2|学习笔记
快速学习在项目中为 scss 或 less 文件启用模块化2
|
缓存 前端开发 JavaScript
前端培训-中级阶段(23)- Manifest ApplicationCache应用程序缓存(2019-10-31期)
前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。
174 0
前端培训-中级阶段(23)- Manifest  ApplicationCache应用程序缓存(2019-10-31期)