- 博客(18)
- 收藏
- 关注
原创 freeswitch-PSTN
PSTN网络,即公共电话网,物理线路主要是E1/T1/J1线和双绞线。这里主要研究E1线及相关的ISDN协议标准。freeswitch在ftmod_isdn.c文件定义了ISDN模块的加载,退出,配置函数,可以从这个文件开始阅读源码。ftdm_io.c提供给外部使用的API,用ftdm_module_t区分endpoint类型,有GSM,ISDN,R2。L1层freeswitch不涉及此部分,可以看IDT2288芯片,一块芯片支持8路E1线,写相关寄存器即可实现相关配置(例如线路阻抗,成帧非成帧,时钟,
2022-02-15 17:19:45
507
原创 freeswitch-SIP呼叫配置
安装完freeswitch后,搭建一个简单的呼叫环境。主要是5个文件的配置1、号码配置C:\Program Files\FreeSWITCH\conf\directory\default目录仿照1000.xml配置即可,一个号码一个xml,注意密码,可以自己填,也可以使用默认值,默认值是12342、SIP profile配置C:\Program Files\FreeSWITCH\conf\sip_profiles目录做服务器,配置internal.xml,修改其中的sip-ip,rtp-ip,
2021-04-26 11:18:21
1974
原创 freeswitch(core-1)
core部分代码梳理重switch.c的main函数开始switch_core_init_and_modload:core初始化并加载模块switch_core_set_signal_handlers:信号量switch_load_network_lists:网络IPswitch_msrp_init:msrp协议core初始化switch_core_initsqlite3_initialize:数据库apr_initialize:apche可移植工具switch_core_memory_
2021-03-25 15:10:45
622
1
原创 sip协议
协议一般有两种格式,文本和二进制,设计消息时以TLV格式为基础,T消息头、L消息体长度、V消息体,协议按作用又有信令控制和数据传输之分,某些协议可以将控制和数据合为一体,例如RTMP协议,SIP是一种文本格式的信令控制协议。...
2021-03-17 15:40:21
832
原创 webrtc笔记-媒体部分(拥塞问题GCC)
算法原理参考https://zhuanlan.zhihu.com/p/80725471一、输入OnSentPacket:记录发送端RTP发包结果反馈(PacketNumberIndexedQueue)OnRemoteBitrateReport:接收端计算的带宽,REMB包信息(RemoteBitrateReport)OnTransportPacketsFeedback:接收端发送的包,ACK信息(TransportPacketsFeedback)二、中间结果RTT,BW:对每个包用Update
2021-02-18 15:39:14
438
原创 webrtc笔记-媒体部分(RTP/RTCP)
webrtc媒体部分主要研究媒体数据的处理和传输,这也是webrtc的核心,本系列重点研究传输,包括传输过程中丢包、抖动、拥塞问题,涉及到的协议就是流传输协议RTP/RTCP。RTP/RTCP协议栈位于webrtc-master\webrtc-master\modules\rtp_rtcp目录,主要负责将帧打包成RTP报文,RTP报文解包成帧,每10ms的PCM...
2020-12-01 15:34:04
443
原创 webrtc笔记-媒体部分(voice流收发流程)
一、发包流程AudioDeviceWindowsCore~AudioDeviceBufferAudioTransport AudioTransportImpl~AudioProcessing AudioProcessingImpl ApmPrivateSubmodulesAudioSendStreamChannelSend~AudioCodingModule AudioCodingModuleImplAudioEncoderAudioPacketizationCallback 回调Chan
2020-11-26 17:16:15
863
原创 webrtc笔记-信令部分(媒体编解码)
媒体编解码信息主要在BaseChannel类进行,包括流相关,编解码相关信息。调用PushdownMediaDescription设置本地SetLocalContent_w或远端SetRemoteContent_w信息。一、信息rtp头扩展编解码流类型、收发方向二、peer实体...
2020-11-18 15:24:53
406
原创 webrtc笔记-信令部分(SDP)
信令的一个主要功能是交换消息体,消息体可以是XML、X-Q931、SDP等,是一条消息的净荷部分,webrtc使用SDP描述媒体信息,默认使用Unified Plan。Unified Plan,一个m行用一个ContentInfo存,会建立一个transceiver(mid-mline_index),一个transceiver只有一个sender/receiver(本端的SDP建sender,远端的SDP建receiver)。一个ContentInfo有一个StreamParams,StreamPara
2020-11-17 17:02:14
1107
原创 webrtc笔记-代码风格
阅读webrtc源码,需要紧抓协议,代码是根据协议实现的,所以webrtc也通常称为webrtc协议,p2p信令部分是sdp、ice、stun/turn,媒体部分是rtp/rtcp,除此外,熟悉代码风格对源码的阅读有很大帮助。一、冗余代码由于webrtc源码更新,按时间来说,webrtc源码中有部分代码是以前或以后的,以前的是之前的实现被替换但代码保留,一般有fake标注,以后的是对之后功能扩展先提供api未有具体实现。二·、C++标准1、智能指针,https://juejin.im/post/6
2020-11-10 15:49:57
155
原创 freeswitch笔记-总
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-11-10 15:43:45
196
原创 webrtc笔记-总
一、目的基本了解webrtc,熟悉实时音视频流传输技术、P2P技术(ICE/STUN/TURN),了解音频前端处理技术(AEC/AGC/ANS)、音视频帧压缩解压缩、音视频后端处理技术,加强音视频领域技术积累。二、基本内容1、webrtc使用P2P技术实现信令,框架的主要优势在媒体处理,媒体相关代码总体分api,module(主要实现部分)两层。2、代码风格良好,STL的vector、map、arrary、list等容器,C++标准智能指针、匿名函数、信号回调等,数据传输使用sink机制(多态),s
2020-11-10 15:42:53
156
原创 webrtc笔记-信令部分(网络socket)
从协议看,webrtc信令使用offer/answer也可使用sip协议交换SDP,并通过P2P打通媒体通道,确定本地和远端的IP:PORT对(socket),P2P打洞涉及STUN/TURN协议。从总体信息来看,信令主要分三部分信息。网络(socket)信息主要使用JsepTransportController类处理;媒体编解码信息主要使用BaseChannel类处理;SDP构建及交换主要使用WebRtcSessionDescriptionFactory类、Conductor类处理。网络处理主要
2020-11-10 15:38:02
584
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人