freeswitch 基于webrtc网页视频、语音通话官方例子video_demo安装

WebRTC通话INCOMPATIBLE_DESTINATION问题排查、verto与STUN协议 一个功能完整的WebRTC应用需要: 使用GetUserMedia API控制麦克风和摄像头 使用一种会话协议和可能的外部辅助服务器定位对方端点并建立会话 使用ICE(和STUN和TURN)确定网络路径 使用RTCPeerConnection传输音/视频媒体流 问题记录: 脱机环境,没有连接公网。网页电话建立后,立即挂断。SIP报错信息: 488 Not Acceptable Here (INCOMPATIBLE_DESTINATION) ... 阅读详情
AI摘要

本文介绍如何在Debian 8上安装配置FreeSWITCH并集成mod_verto模块,实现基于WebRTC的电话拨打与视频会议功能。涵盖模块安装、视频编码设置、HTTP服务器配置及示例应用。

1.说明

freeswitch mod_verto提供了一个基于webrtc的js模块,该模块可以通过网页拨打电话、开视频会议等

环境: 基于阿里云debian8 安装 该模块需要https 最好是基于外网服务器安装

体验地址在http://blog.youkuaiyun.com/java_lilin/article/details/78391819有提到

 

2. 由于要视频所以要编译源码的mod_av模块 centos7 参考官方安装 debian9或10 也参考官方最新的源

命令:

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 目录去掉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. 启动

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一样 写的复杂一些 原理一样)

 

把 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服务器了 这个是通过8082访问的

   <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>

 

  

Cd /usr/local/freeswitch

./bin/freeswitch -nonat

 

可以访问域名来访问改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

 

 

 

通过域名:8082也可以访问 

重启呼入3500后以上地方有所变化可操控会议 

当然也可以通过sip电话和网页进行通话和视频

nat 配置autoload_configs/verto.conf.xml  default-v4 的 ext-rtp-ip为外网ip

最新的源码nat配置了ext-rtp-ip 无效果的话改下源码吧 怎么改的群里有

分享桌面插件需要下载一个screen capturing google 浏览器插件就好了

如果你想搭建linphone手机端 参考https://blog.youkuaiyun.com/Java_lilin/article/details/80539116

使用sipjs 和jssip webrtc参考 https://blog.youkuaiyun.com/Java_lilin/article/details/88417686

fs播放rtmp、rtsp流 参考 https://blog.youkuaiyun.com/Java_lilin/article/details/89490193

如果想扩展 可以去https://item.taobao.com/item.htm?id=609689526078 

如果你想页面好看可以参考https://blog.youkuaiyun.com/Java_lilin/article/details/79975066

freeswitch语音识别参考https://blog.youkuaiyun.com/Java_lilin/article/details/82108184

交流q群 261074724

 

FreeSwitch 对接 RTSP 和 RTMP视频 在一些特殊应用场景中,可能希望把摄像头或者其他推流视频加入到FreeSWITCH中,我这里提供2个示例供大家借鉴 <action applicaiton=”playback”data=”vlc://rtsp://xxxx/vod”> 安装 mod_vlc loadmod_vlc(安装这个看前面文章介绍) originate vlc/rtsp://192.168.1.100:8554/vlc &conference(3000) FreeSw... 阅读详情

相关推荐

FreeSwitch中启用WebRTC

FreeSWITCH可以在多个操作系统上运行,包括Linux、Windows、MacOS等,并且支持多种语音和网络协议,例如SIP、H.323、WebRTC、RTP、RTCP等。它提供了很多高级的功能和特性,例如实时语音转换、自适应音频编码、音频处理、电话会议、语音信箱、自动语音应答、即时消息、录音和回放等。总之,FreeSWITCH是一款功能强大、可扩展、灵活的电话交换软件平台,可以用于搭建各种语音、视频和即时消息通信系统,提供了多种高级特性和灵活的扩展方式,是开发语音通信应用的良好选择。

宝安小雨 4007

第五章 WebRTC, SIP和 Verto

WebRTC,视频和音频的实时通信,已经在超过十亿个浏览器上工作。很快移动应用程序就会成倍增长。WebRTC有望成为物联网(IOT)所采用的多媒体通信层。 FreeSwitch是一个完整的WebRTC解决方案,使现有的和遗留的应用程序能够通过新的渠道为用户服务。此外,Freeswitch是一个超级可编程应用服务器,是您创建杀手级服务的基础,它定义了“快速致富”的新概念...

至虛極,守靜篤 1万+

FreeSwitch 实战:深入探索 WebRTC

WebRTC(Web Real-Time Communication)是一种支持浏览器间实时音视频通信的技术标准,它基于 JavaScript API 和一系列协议,使得在不需要任何插件或额外的软件的情况下,可以直接在浏览器上进行音视频通话或数据传输。FreeSwitch 是一个功能强大的开源电话交换机软件,它提供了丰富的语音和视频通信功能,并且兼容 WebRTC,可以作为 WebRTC 通信的服务器端。接下来,我们将创建一个简单的 FreeSwitch WebRTC 应用,实现浏览器间的音视频通信。

WaJulia的博客 1071

从通信到AI FreeSWITCH与WebRTC

文 / 杜金房 整理 / LiveVideoStack 大家好,我是杜金房,此次分享和双向通讯服务器FreeSWITCH以及WebRTC有关。首先我会为大家简单介绍FreeSWITCH,鉴于FreeSWITCH主要用于通信领域,我也会介绍WebRTC并阐述FreeSWITCH与WebRTC的关系,同时结合FreeSWITCH的其他功能和使用场景与其功能以及所使用的多媒体库,进一步探索AI技术加持下FreeSWITCH的未来发展。 1.FreeSWITCH简介 FreeS...

lucky的专栏 2427

解决 FreeSwitch 中 WebRTC 打电话没有声音的问题

在 FreeSwitch 中使用 WebRTC 进行语音通话时,有时可能会遇到没有声音的问题。下面是一些解决这个问题的步骤和相应的源代码示例。首先,确保 FreeSwitch 的配置正确。在 FreeSwitch 的配置文件中,需要启用 WebRTC 相关的模块并正确配置音频编解码器。如果你在浏览器中使用 WebRTC 进行通话,确保浏览器的音频设置正确。请根据你的实际需求进行相应的配置更改。确保 STUN 服务器地址正确,并选择适合你的需求的音频编解码器。请根据你的实际需求进行相应的配置更改。

syntax_bug719的博客 1707

vertojs:打字稿FreeSWITCH verto界面

vertojs Verto(VER-to)RTC是一个FreeSWITCH端点,该端点实现了JSON-RPC连接的子集,该子集旨在用于安全Web套接字。 最初的目标是WebRTC,以简化编码和实现从Web浏览器和设备到FreeSWITCH的调用。 这允许Web浏览器或其他WebRTC客户端使用Verto发起到FreeSWITCH安装的呼叫,然后使用SIP,SS7或其他受支持的协议拨出到PSTN。 这是一个零依赖的实现,不需要像原来的那样包含jquery。 它内部不包含任何html内容,也不包含媒体处理程序。 您应该注意自己获取媒体轨道(我认为最好不要隐藏您的有用功能,浏览器提供了一个很好的API来处理媒体) 地位 这是一个进行中的代码。 但是,它足够稳定,可以使用基本功能(调用)。 我相信并且希望源代码比我的英文更好:-) 开始吧 包目录内容 / dist-包含将Verto符号导出到全

如何快速上手SIP.js:构建实时音视频通信的完整指南

SIP.js是一个简单、直观且功能强大的JavaScript信令库,它允许开发者轻松实现基于WebRTC的实时音视频通信功能。通过SIP over WebSocket技术,SIP.js让网页应用能够直接进行语音通话、视频会议和即时消息传递,无需复杂的后端基础设施。 ## 🚀 为什么选择SIP.js?核心功能亮点 SIP.js为Web开发者提供了构建实时通信应用的全套工具,主要优势包括: -

gitblog_00515的博客 622

智能气象站:ESP32驱动的心知天气数据可视化实践

本文详细介绍了基于ESP32微控制器和心知天气API构建智能气象站的完整实践。通过Arduino开发环境,实现天气数据的获取、JSON解析与OLED屏可视化展示,涵盖硬件连接、API配置、低功耗优化及部署问题排查,为物联网开发者提供实用指南。

jump7的博客 209

freeswitch H5调用verto 模块

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

moyebaobei1的博客 1859

RTL8211F千兆PHY原理图与PCB设计:从手册到量产的完整指南

在工业网关、边缘计算和FPGA/CPU以太网扩展设计中,千兆PHY芯片的稳定运行取决于外围电路的精细设计。RTL8211F(I)作为应用广泛的物理层收发器,其原理图设计涉及电源域划分、时钟与复位时序、RGMII/ MDIO接口匹配以及MDI差分网络等多个环节。正确理解数据手册的阅读顺序,掌握100Ω差分阻抗控制、等长约束和EMI布局技巧,是保证链路可靠性和信号完整性的关键。本文从芯片选型与数据手册解析切入,系统梳理从电源去耦到PCB布局布线的工程实践要点,帮助工程师规避Link不稳定、MDIO读取失败、吞吐

weixin_28721917的博客 348

Simulink Test Sequence自动化测试实战:从Excel到模型验证

本文详细介绍了如何利用Excel和MATLAB脚本实现Simulink Test Sequence的自动化测试。通过设计结构化Excel模板管理测试数据,并调用Simulink Test API批量创建与执行测试用例,该方法能显著提升复杂模型单元测试的效率,便于集成到CI/CD流程,实现从数据到验证的全自动化。

weixin_29261711的博客 144

freeswitch 推送rtmp_freeswitch使用mod_rtmp通过WebRTC进行音/视频通话以及mod_rtmp模块配置使用...

如下你会用到,你可以使用defaultAboutmod_rtmp是 FreeSWITCH 的RTMP(实时媒体协议)端点。Flash主要使用RTMP协议通过Internet传输音频,视频和数据。Click here to expand Table of Contents安装FreeSWITCH最新的git已经包含了mod_rtmp源代码。在编译之前,编辑modules.conf。取消注释endpo...

weixin_42535703的博客 2073

在线考试系统源码+数据库+word+ppt(高分毕业设计)

本系统通过Spring Cloud实现微服务拆分,将授权、考试、监控等功能解耦,既保证了系统的扩展性,也便于后期维护。基于OAuth2.0的单点登录,解决多服务统一认证问题;考试与练习模式分离,满足不同场景需求;集成Druid与Hystrix,保障系统监控与稳定性。

weixin_44355158的博客 737

HTML5方式使用freeswitch——VERTO模块

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

大头菜馅馒头 1万+

灯塔问题:贪心与动态规划算法解析

区间覆盖问题是算法设计中的经典案例,常用于理解贪心算法与动态规划的核心差异。贪心算法通过局部最优选择逐步构建全局解,具有O(n log n)的高效时间复杂度,特别适合处理一维区间覆盖场景。动态规划则采用自底向上的填表法,虽然通用性更强但复杂度较高。在实际工程中,这类算法广泛应用于无线基站部署、监控设备布置等资源优化场景。通过分析灯塔问题的两种解法,可以深入掌握算法选择的关键因素,如问题规模、性能要求和实现复杂度。

weixin_28720573的博客 259

【Unity-UGUI控件全面解析】| Layout自动布局组件详解

UGUI中有个自动布局组件Auto Layout,主要包含下面几个模块(点击可进入官方文档下查看描述): 自动布局 布局元素 (Layout Element) 水平布局组 (Horizontal Layout Group) 垂直布局组 (Vertical Layout Group) 网格布局组 (Grid Layout Group) 内容大小适配器 (Content Size Fitter) 自动布局系统 基于布局元素和布局控制器的概念。一个布局元素是具有矩形变换以及其他可选组件的游戏对象。布局元素对自身

努力前行,总会成为自己心中的那道光 2万+

顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-webrtc(浏览器直接拨打电话)

配置webrtc监听的SIP和端口,CCAdmin->SIP->internal->wss-binding设置为:7443(冒号需要的),监听本机所有端口,也可以0.0.0.0:7443 监听ipv4所有IP的7443端口,也可以指定单独一个本机IP比如192.168.31.100:7443,也可以指定其他端口后面的测试例子是用端口7564。如果听到自己说话的声音,就配置好了。第二个界面设置好了点保存,然后回到第一个界面,点Login,如果登录成功了,恭喜你,前面的配置都对,拨打电话测试就可以了。

FreeSWITCH二次开发-CTI接口 2929

华为OD新系统机试真题-8位LED控制器(C/C++/Py/Java/Js/Go)

华为OD新系统机试真题【8位LED控制器】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统4月19号机试真题【8位LED控制器】

qq_45776114的博客 596

FreeSwitch通过WebRTC实现语音通话

FreeSwitch使用WebRTC 实现网页通话,本文主要使用JSSIP库,开发编写网页软电话的呼叫和接听实现。本文主要包括:FS的WebRTC配置和前端代码实现。

精益求精 3145

Calibre 3DSTACK Flow Example(5-1)

摘要: 本文详细介绍了使用Calibre 3DSTACK工具验证2.5D中介层IC的设计流程。该设计由控制器、两个RAM芯片和中介层组成,各裸片通过255层的焊盘图形和端口文本实现连接。流程包括:1)准备通过DRC/LVS验证的裸片版图;2)创建3DSTACK规则文件定义装配操作;3)设置全局选项并定义各裸片的图层属性;4)指定图层间的电气连接性;5)通过坐标精确放置裸片形成3D堆叠。文中提供了完整的规则文件示例,并说明了如何生成3D装配视图进行物理验证,为后续连接性检查奠定基础。

u013620135的博客 2164

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

使用浏览器Web技术实现电话拨打功能:一步步指南(mod_cti基于FreeSWITCH)

以顶顶通呼叫中心中间件为例子#在这个数字化的时代,我们的生活已经被各种应用程序和在线服务所包围。我们通过电子邮件、社交媒体、在线购物等方式进行沟通和交流。然而,有一种方式,尽管已经存在了一段时间,但仍然被许多人忽视,那就是通过浏览器Web拨打电话。这种方式不仅方便快捷,而且能够打破传统的通信模式,连接无限可能。首先,让我们来了解一下什么是浏览器Web拨打电话。简单来说,这是一种通过互联网浏览器直接拨打电话号码的技术。用户只需要在浏览器中输入电话号码,然后点击一个按钮,就可以发起电话呼叫。

qiiiio的博客 3318

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

freeSWITCH 和 WebRTC 组合起来做音视频会议

想把 freeSWITCH 和 WebRTC 组合起来做音视频会议,网站找到的资料都比较老了,自己试验了下,把过程记录下来,有需要的人可以参考。 基本的设想是: JsSIP 用于网页端(Chrome),采用 WebRTC 和 SIP 协议与 freeSWITCH 通信,作为音视频会议客户端 freeSWITCH 作为服务端,支持音频、视频会议 Node.js 构建一个 https 服务器,存放客户端需要的html、js、css文件 用到的软件包: freeSWITCH, 采用 1.6.17 版本,1.

a258932569的博客 923

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

基于FreeSwitch实现的Webrtc VoIP Phone

一个基于webrtc和freeswitch实现的VoIP Phone实现

shanghaimoon的专栏 2434
上一篇: Freeswitch Conference 会议播放Rtmp、Rtsp、Mp4、m3u8等文件 (利用freeswitch的MCU rtmp融屏)
下一篇: pjsip windows demo编译运行 (pjsip 2.9 qt环境)
java_lilin
博客等级 码龄14年 364粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值