Doubango SIP和WebRTC的融合

Doubango代码学习(一):开始篇 学习原因: 最近公司动荡,有一种深深的危机感,需要储备点自己的知识了。由于目前笔者所做的是RCS/IMS,代码都是公司自己私有的,还是学习点开源的比较好。 查了一下开源的方案,RCS开源客户端特别的少,试用了一下功能不是很好。里面相对Doubango靠谱的多,但它是一个IMS的开源方案,距离RCS5.1还有一段路要走。 因此就有了学习并开发doubango到RCS5.1想法。虽然任务艰巨,但 阅读详情

1、融合基础:

熟悉WebRTC媒体流采集、编解码和发送流程

熟悉SIP信令和协商流程

2、完成SIP信令和WebRTC的对接,实现音、视频通话


3、具体实现步骤:

采用webrtc的demo部分代码,jni还是用Peerconnection封装的接口,因为webrtc demo采用的jingle协议还是比较好理解的,客户端CreateOffer、CreateAnswer,然后就是ICE的通信和交互流程,最开始实现的关键,是去掉ICE的交互部分,直接使用UDPTransport替换掉原来的DtlsTransport,这样比较好理解从采集、到编码、到发送,以及从接收rtp包到解复用、到解码、到显示的全流程。

参考的关键是理解Peerconnection的loop调用流程。

并且将SIP协商过程中得到媒体流的格式、payload type、ssrc、端口和ip等信息通过新增加的peerconnection_jni的接口,设置到native层,然后就能很好的完成webrtc和sip协议栈的集成。



后续把相关修改的代码贴出来。


其实从年前开始看webrtc的源码,本来考虑从两方面入手来梳理媒体流的交互流程,一个是采集、编码到发送,另一个是反着来看源码,但始终没有走通,主要是ICE发包收包流程隐藏的很深;只得从梳理上层代码开始,从理解了source、track、session、stream、sink、channel等等概念,一下子有了种茅塞顿开的体会,再到梳理ICE的流程,就有了和SIP信令对接的方案了,具体到实现,也是水到渠成的感觉。


基于声网的音视频SDK和FreeSWITCH开发WebRTC2SIP Gateway 方案和思路 为什么做这个? 今年初接到一个项目任务,客户要求在自己的音视频平台系统中集成webrtc功能(原系统是基于SIP协议开发的,已经稳定运行多年,有很多客户)。在比对了多家RTC产品的效果后,。他们对声网音视频DEMO效果后非常满意,指定要求用声网的SD-RTN传输网络,全面改造客户端软件。据客户实测,在某些国家和地区,同样网络环境下比微信要好很多,比如在东非和中国之间语音通话,延迟很小、声音也更清晰。 话不多说,先列下客户要求和当前产品的问题: 1、要求全面改造Android、IOS、Windo 阅读详情

相关推荐

使用webrtc2sip进行实时通信的项目说明

总之,webrtc2sip是一个强大的工具,可以帮助开发人员构建基于WebRTC和SIP的实时通信应用程序。webrtc2sip是一个开源项目,它提供了一种将WebRTC(Web实时通信)与SIP(会话初始协议)集成的解决方案,使开发人员能够构建基于WebRTC和SIP的实时通信应用程序。webrtc2sip项目的目标是将WebRTC和SIP集成在一起,提供一种简单而强大的方式来实现基于浏览器的实时通信。在上面的示例中,我们首先创建了一个会话对象,并设置了SIP服务器和WebRTC服务器的配置。

FdviAutoit的博客 429

web浏览器无插件播放实时音视频技术---WebRTC2SIP(三)

1、WebRTC2SIP概述 2、WebRTC2SIP环境搭建 3、WebRTC2SIP配置文件 4、SIPML5参数设置 5、SIPML5、WebRTC、SIP网关的SIP信令交互 6、WebRTC2SIP常见错误

chenhande1990chenhan的专栏 1万+

doubango库

这是doubango库,见,http://blog.youkuaiyun.com/haoyujie/article/details/79058786 boghe需要,telepresence也需要。

Doubango 入门

参考:http://www.cnblogs.com/DreamSea-for-Jimmy/archive/2011/07/28/2119877.html  1、简介      Doubango框架是3GPP IMS(多媒体子系统(移动业务))的一种实现,目前IMS已被3GPP国际组织标准化,IMS所支持的服务将能在任一种网络中实现,这些网络包括3GP LTE(4G), GPRS, WL

单向街的夏天 7606

AI 帮我写单测:pytest 覆盖率提升 40% 的协作日志

AI助力pytest测试覆盖率提升40%的实践总结 本文分享了作者通过AI协作提升Python项目测试覆盖率的实践经验。初始测试覆盖率仅45%的电商后端项目,通过系统化的AI协作策略(代码分析、场景矩阵设计、迭代优化)实现了显著改进。AI不仅生成312个高质量测试用例,更提供了测试设计思路和最佳实践建议。最终覆盖率提升至85%,发现并修复23个潜在bug,效率提升3倍。文章详细展示了用户服务、订单服务等核心模块的测试案例,以及分层Fixture设计、参数化测试等高级技巧。关键成功因素包括明确的协作边界、迭代

摘星编程的博客 3280

大规模SoC芯片Hierarchical Flow Calibre LVS教程

大规模SoC芯片Hierarchical Flow Calibre物理验证LVS实现教程

weixin_37584728的博客 1200

doubango协议栈相关知识!!!!-----阿冬专栏

一 从协议栈结构说起 来自大牛:http://blog.youkuaiyun.com/argpunk/article/details/7911382 自顶向下与自底向上 软件设计的两种方法不过于自顶向下与自底向上。 对于自顶向下而言,先设计好用户接口,再往下延伸至各个功能块的具体实现。而对于自底向上而言,自然是有了设计好的各个功能代码块,再将这些功能代码

阿冬专栏 2249

STK相关总结

STK简介 一.SIM卡应用工具包(SIM Application Toolkit),又名CAT/USAT,它包含一系列终端与SIM卡的交互指令,SIM卡可以应用卡内的小应用程序和终端交互,从而实现增值服务的目的,STK包括三种类,STK-imsi切换,STK –OTA,STK-BIP 功能: (1) Profile download:配置下载,开机初始化SIM卡过程中,终端告诉SIM卡终端支持哪些功能,STK中download指终端将数据发送给SIM卡 (2) Proactive command: 主动式

jingjing_2的博客 3357

【亲测免费】 探索下一代网络:Doubango 开源IMS/LTE框架

探索下一代网络:Doubango 开源IMS/LTE框架 项目介绍 欢迎来到Doubango项目的世界!这是一个成熟的、开放源码的3GPP IMS/LTE框架,专为嵌入式和桌面系统设计。3GPP IMS(IP多媒体子系统)是提供IP多媒体服务的下一代网络标准,能够跨越各种网络类型,如3GPP LTE、GPRS、无线局域网、CDMA2000或固定线路。 项目技术分析 Doubango框架以ANSI-...

gitblog_00050的博客 712

从零开始:如何在STM32上搭建QP框架实现事件驱动开发(附完整代码)

本文详细介绍了如何在STM32嵌入式平台上从零开始搭建QP框架,实现事件驱动开发。通过对比传统前后台系统与RTOS的局限,深入剖析了QP框架基于活动对象和层次式状态机的核心优势,并提供了完整的环境配置、代码移植及一个智能灯光控制器的实战案例,帮助开发者构建清晰、可维护的复杂嵌入式应用。

weixin_29200741的博客 487

微生物组数据分析实战:从OTU/ASV过滤到相对丰度转换的标准化流程

本文详细介绍了微生物组数据分析中从原始OTU/ASV表格到标准化相对丰度表格的完整预处理流程。通过基于绝对丰度和出现频率的过滤步骤有效剔除测序噪音与污染,再通过相对丰度转换解决样本间测序深度差异问题,为后续的多样性分析和差异比较奠定可靠基础。文章提供了清晰的R语言实战代码与参数设置思路。

tree的博客 1260

WebRTC和SIP通信方案

本文的主旨是讨论如何实现以SIP协议为信令的VOIP通话系统和WebRTC进行通信。

uianster的博客 4868

双臂复合机器人眼在手外标定实战:从原理到D435标定流程详解

本文详细解析了双臂复合机器人中眼在手外标定的核心原理与实战流程。通过阐述坐标系转换与AX=XB方程,重点介绍了使用Intel RealSense D435相机进行标定的完整步骤,包括环境搭建、数据采集、计算与验证,并提供了关键的避坑指南,帮助工程师实现相机与机械臂基座间的精确坐标对齐。

weixin_29100927的博客 451

webrtc2sip项目说明

第一章 webrtc2sip项目环境说明 1.  操作系统:CentOS6.x 64位版本 2.  FreeSwitch版本号:1.2.x(注意:FreeSwitch最新版本有媒体协商错误问题) 3.  FFmepg版本号:1.2.x(注意:FFmepg最新版本函数名及参数有修改,会造成编译错误) 4.  其他软件版本号:最新 5.  浏览器:Chrome, Android 平台Chro

孙建军的博客 8005

用VSCode搭建Vue.js开发环境及Vue.js第一个应用

用VSCode搭建Vue.js开发环境及Vue.js第一个应用

m0_61961937的博客 1万+

深入解析Linux驱动开发中的I2C时序及I2C高频面试题

在 I2C 通信中,主设备和从设备的角色有着明确的定义。主设备是发起通信的设备,它负责控制整个通信过程。主设备可以是微控制器、处理器等具有控制能力的设备。

大模型大数据攻城狮的专栏 2765

Sip协议栈Doubango设计分析

Sip协议栈Doubango设计分析 一从协议栈结构说起 参考:http://blog.youkuaiyun.com/argpunk/article/category/1177691 自顶向下与自底向上 软件设计的两种方法不过于自顶向下与自底向上。 对于自顶向下而言,先设计好用户接口,再往下延伸至各个功能块的具体实现。而对于自底向上而言,自然是有了设计好的各个功能代码块,再将这些功能代码块拼接成具体...

liuweihui521的专栏 756

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WebRtc与SIP

webRTC sip

chenyulancn的专栏 2377

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

webrtc2sip 安装(2016-03-16 11:16:03)

此问题可能会引起运行webrtc2sip失败,报连接libssl.so失败,可能是应为64位或32位系统的原因(此处没有深入研究,只是卸载了编译的库,安装了系统自带库就可以了)。在/doubango/tinyDAV/include/tinydav/video/tdav_session_video.h 文件中增加头limits.h文件。但是由于墙的问题,访问googlecode.com不能SVN代码,只能git代码。否则安装的是libsrtp2,而不是libsrtp,导致Doubango编译失败。

mingzhaoyu的博客 533

踏上doubango学习之路!!

一, 学习原因: 需要储备点自己的知识了。由于目前笔者所做的是IMS,还是学习点开源的比较好。 查了一下开源的方案。里面相对Doubango靠谱的多,但它是一个IMS的开源方案,距离RCS5.1还有一段路要走。 因此就有了学习并开发doubango到RCS5.1想法。 选取doubango的原因: 网上介绍Doubango的文章很多,这里就不多说了,一个字就是“靠谱”。

阿冬专栏 3584

Doubango的FSM模块终结版

一:Doubango的状态机--FSM       对于FSM的所有状态和使用将使得对于Doubango更能很好的实现裁剪和使用。状态(state),还事件(action),对事件的处理(exec)。主要的代码在tsk_fsm.c/h中,tinySAK 二:FSM的常用结构体 三:FSM的建立过程和代码实现 3.1 FSM的使用的建立过程和调用的API    1、调用tsk_

Toni 799

doubango的一二

1、doubango官网:http://www.doubango.org/ 2、doubango是一个开源的VOIP基础平台, 并能用于嵌入式和桌面系统的开源框架,该框架使用ANSCI-C编写,具有很好的可移植性。 3、根据doubango的框架、特点与linphone的对比,显然doubango更适合做视频会议系统和视频会议终端的选择,理由?根据linphone的rtp会话管理可见只适合

sphone89的专栏 1万+

Doubango之Sip协议栈分析----阿冬专栏!!!

Sip协议栈Doubango设计分析 一从协议栈结构说起 参考:http://blog.youkuaiyun.com/argpunk/article/category/1177691 自顶向下与自底向上 软件设计的两种方法不过于自顶向下与自底向上。 对于自顶向下而言,先设计好用户接口,再往下延伸至各个功能块的具体实现。而对于自底向上而言,自然是有了设计好的各个功能代码块,再将这些功能代码块拼接成具体

阿冬专栏 2957

web浏览器无插件播放实时音视频技术---WebRTC2SIP与第三方SIP网关对接(五)

1、概述 2、WebRTC、SIP网关的SIP信令交互 3、信令兼容的常见问题以及解决方案

chenhande1990chenhan的专栏 1万+

doubango?这是什么?

doubango是一个实验性的,开放源码的3GPP IMS/ LTE、兼容嵌入式和桌面系统的框架。该框架由ANSI - C编写,这样可以提高移植性,有效地工作在嵌入式系统与有限的内存和计算能力低的移动设备中。 doubango是一系列API的集合,形成一个强大的3GPP I

智能的世界 1564

Doubango ims 框架分析之 sip协议栈

本人承接 sip/ims 视频客户端定制开发,提供IMS硬终端solution,支持接入sip软交换,ims核心网,支持 语音,视频,即时通信功能,视频格式支持 h263,h264,mpeg4 软编软解,提供硬件编解码接口对接,支持基于三星 sp5v210,trident, 海斯芯片H264 硬件编解码,提供服务器,有兴趣请联系我。 VOIP行业资讯和技术趋势请参考: www.voip123

RTC hacker 1万+
上一篇: WebRtc中关于rtp-mux的实现!
下一篇: licode 环境搭建
twoconk
博客等级 码龄20年 95粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值