mod_verto
在freeswitch中有mod_sofia模块支持sip协议。sip协议用于媒体链接建立前的信令交互。像mod_sofia这种模块在freeswitch中成为endpoint,除了mod_sofia,freeswitch还有一个mod_verto模块。mod_verto使用freeswitch自定义的一个协议,通过websocket进行信令交互。verto协议基于jsonRpc协议,通过json格式来传输数据。
安装mod_verto

正常编译安装freeswitch时在module配置文件中打开verto的编译,之后一样make&make install就可以了,安装好之后需要在freeswitch启动加载模块的配置文件中打开verto,使freeswitch启动时自动加载mod_verto。

配置verto

修改 conf/autoload_configs/verto.conf.xml

<configuration name="verto.conf" description="HTML5 Verto Endpoint">
  <settings>
    <param name="debug" value="10"/>
    <!-- seconds to wait before hanging up a disconnected channel -->
    <param name="detach-timeout-sec" value="120"/>
    <!-- enable broadcasting all FreeSWITCH events in Verto -->
    <!-- <param name="enable-fs-events" value="false"/> -->
    <!-- enable broadcasting FreeSWITCH presence events in Verto -->
    <param name="enable-presence" value="false"/>
  </settings>
  <profiles>
    <profile name="default-v4">
      <param name="bind-local" value="$${local_ip_v4}:8081"/>
      <param name="bind-local" value="$${local_ip_v4}:8082" secure="true"/>
      <param name="force-register-domain" value="$${domain}"/>
      <param name="secure-combined" value="/usr/local/freeswitch/certs/wss.pem"/> -证书的位置,一会儿存放证书时要用
      <param name="secure-chain" value="/usr/local/freeswitch/certs/wss.pem"/>
      <param name="userauth" value="true"/>
      <!-- setting this to true will allow anyone to register even with no account so use with care -->
      <param name="blind-reg" value="false"/>
      <param name="mcast-ip" value="224.1.1.1"/>
      <param name="mcast-port" value="1337"/>
      <param name="rtp-ip" value="$${local_ip_v4}"/>
      <!--  <param name="ext-rtp-ip" value=""/> -->
      <param name="local-network" value="localnet.auto"/>
      <param name="outbound-codec-string" value="opus,vp8,h264"/>
      <param name="inbound-codec-string" value="opus,vp8,h264"/>
      <param name="apply-candidate-acl" value="localnet.auto"/>
      <param name="apply-candidate-acl" value="wan_v4.auto"/>
      <param name="apply-candidate-acl" value="rfc1918.auto"/>
      <param name="apply-candidate-acl" value="any_v4.auto"/>
      <param name="timer-name" value="soft"/>
    </profile>
    <profile name="default-v6">
      <param name="bind-local" value="[$${local_ip_v6}]:8081"/>
      <param name="bind-local" value="[$${local_ip_v6}]:8082" secure="true"/>
      <param name="force-register-domain" value="$${domain}"/>
      <param name="secure-combined" value="$${certs_dir}/wss.pem"/>
      <param name="secure-chain" value="$${certs_dir}/wss.pem"/>
      <param name="userauth" value="true"/>
      <!-- setting this to true will allow anyone to register even with no account so use with care -->
      <param name="blind-reg" value="false"/>
      <param name="rtp-ip" value="$${local_ip_v6}"/>
      <!--  <param name="ext-rtp-ip" value=""/> -->
      <param name="outbound-codec-string" value="opus,vp8"/>
      <param name="inbound-codec-string" value="opus,vp8"/>
      <param name="apply-candidate-acl" value="wan_v6.auto"/>
      <param name="apply-candidate-acl" value="rfc1918.auto"/>
      <param name="apply-candidate-acl" value="any_v6.auto"/>
      <param name="apply-candidate-acl" value="wan_v4.auto"/>
      <param name="apply-candidate-acl" value="any_v4.auto"/>
      <param name="timer-name" value="soft"/>
    </profile>
  </profiles>
</configuration>
为用户号码配置verto支持

修改directory/default.xml,在<params>和</params>中添加如下:

  <param name="jsonrpc-allowed-methods" value="verto"/>
  <param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/>
每个用户的xml配置文件中 conf/directory/default/1000.xml,修改如下:
  <user id="1001">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="vm-password" value="1001"/>
      <param name="verto-context" value="public"/>
      <param name="verto-dialplan" value="XML"/>
    </params>
如需使用会议功能,请修改会议配置文件conf/autoload_configs/conference.conf.xml

在<profiles>和</profile>中检查conference-flags项目,确保其中包含livearray-sync和livearray-json-status

拨号计划配置例如:

<extension name="HTML5 Verto">
   <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>
至此freeswitch针对verto的配置已经完成,想要测试的话,需要使用freeswitch自带的verto demo,安装使用过程如下:

一、创建证书

因为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.verto
./sign-server-cert.sh self.verto
cat self.verto .crt self.verto .key >
/usr/local/freeswitch/certs/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 /usr/local/freeswitch/certs/wss.pem
SSLCertificateKeyFile /usr/local/freeswitch/certs/wss.pem
SSLCertificateChainFile /usr/local/freeswitch/certs/wss.pem
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


重启apache服务
sudo service apache2 restart

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

cp -rf /home/verto/freeswitch/html5/verto/video_demo  /var/www/html

此处我们直接复制带视频的demo过来,verto还提供了不带视频的demo和verto_communicator请自行尝试。

打开浏览器(我用的Chrome)访问https://IP地址/video_demo

提示未信任,点高级,继续前往。

至此安装完毕,其他请自行体验。

mod_verto在freeswitch中有mod_sofia模块支持sip协议。sip协议用于媒体链接建立前的信令交互。像mod_sofia这种模块在freeswitch中成为endpoint,除了mod_sofia,freeswitch还有一个mod_verto模块。mod_verto使用freeswitch自定义的一个协议,通过websocket进行信令交互。verto协议基于jsonR
FreeSWITCH 提供了一个xml_rpc组件,支持用Web的 方式 管理 FreeSWITCH 。但是功能相当有限。因此我在这里做了一点小的扩展,允许执行CLI命令行,并且获得结果。 需要把文件解压缩、覆盖htdocs下的portal目录。 需要 FreeSWITCH 已经加载mod_xml_rpc 然后就可以通过http://:8080/portal打开管理页面。 建议通过官方文档了解mod_xml_rpc的配置方法。
freeswitch mod_ verto 提供了一个基于 webrtc 的js 模块 ,该 模块 可以通过网页拨打电话、开视频会议等 环境: 基于阿里云debian8 安装 该 模块 需要https 最好是基于外网服务器安装 体验地址在http://blog.csdn.net/java_lilin/article/details/78391819有提到 2.由于要视频所以要编译源码的mod...
mod_ verto -bridge扩展 这是 ( ) 端点的扩展。 这用作在Web应用程序中 使用 mod_ verto 的API。 SIP.js的替代品。 此扩展名是 Verto 演示代码的修改版本,该代码将在用于与 FreeSWITCH 进行通信。 入口点是callIntoConference()。 接收语音桥接号码,语音会议的用户名,会议中的用户ID和可选的回叫。 应该放在的 verto video_demo目录中。 使用 ./deploy.sh安装。 ###扩展( verto _extension.js) 需要将该文件添加到index.html JavaScript导入中。 该文件提供了自己的函数,函数和数据,这些函数和数据替代了 verto .js中的代码,从而使该文件一旦添加即可独立运行,而无需处理多个文件。 覆盖 verto .js中定义的“回调”对象。 覆盖 verto 挂断处理程序。 在 freeswitch 中有mod_sofia 模块 支持sip协议。sip协议用于媒体链接建立前的信令交互。像mod_sofia这种 模块 freeswitch 中称为endpoint,除了mod_sofia, freeswitch 还有一个mod_ verto 模块 。mod_ verto 使用 freeswitch 自定义的一个协议,通过websocket进行信令交互。 verto 协议基于jsonRpc协议,通过json格式来传输数据。 它作为一个端点存在,也就意味着可以用它来和PSTN或sip终端进行互联互通, 下面就
我们在web客户端 使用 sip协议时用的比较多的是sipml5库和jssip库。 但是sip协议比较重,又复杂,所以 freeswitch 内部就自定义了一个 verto 协议,方便在web页面上 使用 音视频服务。 verto 协议通过websocket传输信令,协议内部数据格式为json,这样比较符合互联网开发人员的习惯,同时比sip协议更加轻量化。 freeswitch 有一个endpoint 模块 叫做mod_ verto ,是用来作为服务端的协议适配器。 freeswitch 的源码中有几个支持ve... Cordova + PhoneRTC插件+ FreeSwitch WebRTC Verto 概念验证 $ cordova插件添加org.apache.cordova.console $ cordova插件添加 $ cordova插件添加 (可选) $ cordova平台添加android $ cordova平台添加浏览器 $科尔多瓦建立Android 配置CLICK2CALL示例 编辑index.html并更改值输入 <input id="click2call_user" value="user"> <input id="click2call_domain" value="mydomian.com"> <input id="click2call_password" value="password"> <input id="click2call
verto js Verto (VER-to)RTC是一个 FreeSWITCH 端点,该端点实现了JSON-RPC连接的子集,该子集旨在用于安全Web套接字。 最初的目标是 WebRTC ,以简化编码和实现从Web浏览器和设备到 FreeSWITCH 的调用。 这允许Web浏览器或其他 WebRTC 客户端 使用 Verto 发起到 FreeSWITCH 安装的呼叫,然后 使用 SIP,SS7或其他受支持的协议拨出到PSTN。 这是一个零依赖的实现,不需要像原来的那样包含jquery。 它内部不包含任何html内容,也不包含媒体处理程序。 您应该注意自己获取媒体轨道(我认为最好不要隐藏您的有用功能,浏览器提供了一个很好的API来处理媒体) 这是一个进行中的代码。 但是,它足够稳定,可以 使用 基本功能(调用)。 我相信并且希望源代码比我的英文更好:-) 包目录内容 / dist-包含将 Verto 符号导出到全
启动 FreeSWITCH 后端服务。设置IP,账号,密码。双击网页启动,即可进行SIP拨号通话。 原帖链接:https://download.csdn.net/download/hzc83hzc/10963423 由于原帖分数过多(系统会随着下载次数自动变更分数),特开新帖。
1、通道接通和挂机后自动执行命令或脚本: <actionapplication="bridge"data="{api_on_answer='lua test.lua para1 para2'}sofia/gateway/mygateway/02588888888"/> <action application="set" data="api_hangup_hook=lua...
DAHDI和 FreeSWITCH 是两个不同但相互关联的开源项目,它们在VoIP通信领域都起着重要作用。 DAHDI是Digium提供的一个开源软件项目,它的全称是Digium/Asterisk Hardware Device Interface。它允许Asterisk PBX软件来与各种硬件设备(如电话卡、传真卡等)通信。DAHDI提供了一个低级别的API接口,允许Asterisk从硬件设备上读取音频数据。除了Asterisk,DAHDI也可以作为其他一些开源软件如 FreeSWITCH 的设备接口。 FreeSWITCH 是一个多协议的开源PBX、电话会议服务器和SBC(Session Border Controller)软件,它能够处理各种语音和视频通信。 FreeSWITCH 的一个重要特点是它非常灵活和可扩展,可以配置和集成各种第三方软件和设备。在 FreeSWITCH 中,DAHDI可用于连接到不同类型的硬件设备,例如传真机、模拟电话等。 总之,DAHDI是用于与硬件设备进行通信的软件接口,而 FreeSWITCH 是一个VoIP通信平台,DAHDI在 FreeSWITCH 中可用于扩展其功能和连接到不同的硬件设备。
yum-builddep -y freeswitch --skip-broken 这条应该放到 yum install -y yum-plugin-ovl centos-release-scl rpmdevtools centos7 编译安装freeswitch 1.10.5版本 bekeer: ./make_modem_filter -m V.17 -r >v17_v32bis_rx_rrc.h /bin/sh: line 1: 27867 Segmentation fault (core dumped) ./make_modem_filter -m V.17 -r > v17_v32bis_rx_rrc.h make[2]: *** [v17_v32bis_rx_rrc.h] Error 139 make[2]: Leaving directory `/usr/local/src/sofia-sip/spandsp/src' make[1]: *** [all] Error 2 make[1]: Leaving directory `/usr/local/src/sofia-sip/spandsp/src' make: *** [all-recursive] Error 1 这是make spandsp的时候报的错: ./configure 正常,make的时候就报这个错