
voip
百无求
代码搬运工、码农、代码DIY
喜欢C、C++,但不精通
喜欢单片机,硬件设计不行
了解点linux、了解点流媒体原理、了解点DVB协议、了解点数据库、了解点硬件知识
展开
-
pjsip学习笔记2 -- 媒体抽象接口
在学习笔记1中1)我们知道了声卡抽象层audiodev.c封装了各种声卡的操作,通过pjmedia_aud_stream_op接口函数族实现对声卡设备的操作2)对于alsa声卡来说,alsa_dev.c对操作系统提供的alsa API进行了封装, 定义了pjmedia_aud_stream_op接口函数族供声卡抽象层audiodev.c调用3)对于alsa声卡来说,当声卡抽象层audiodev.c...原创 2018-06-04 14:56:31 · 3642 阅读 · 0 评论 -
pjsip学习笔记7 --- 编码器管理框架
pjsip 编码器框架: http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/group__PJMEDIA__CODEC.htm原创 2018-06-07 14:36:14 · 2415 阅读 · 0 评论 -
pjsip学习笔记8 -- sip_endpoint 框架
前面研究了libpjsip库的媒体层的各个模块, 从今天开始进入信令层的研究从何处入手呢?还是从libpjsip wiki上找找思路吧!借用下http://www.pjsip.org/docs/latest/pjsip/docs/html/index.htm 这张图 从下往上看,libpjlib位于最底层,供信令层和媒体层共用, 这个应该是做操作系统层的封装, 我们研究目标是信令层,...原创 2018-06-07 18:02:04 · 3784 阅读 · 0 评论 -
pjsip学习笔记1 -- 音频设备抽象
目前最关心声音的采集与回放,所以第一篇从PJSIP的PJMedia声卡驱动流层开始研究:1) pjmedia_aud_subsys_init() 函数会根据条件编译项,把所有音频设备的工厂接口(例如alsa声卡的pjmedia_alsa_factory)加入一个数组中2) pjmedia会根据media初始化参数中的设备名或设备ID,调用对应的工厂接口,把具体声卡设备的操作函数(指针)提供给pj...原创 2018-06-01 15:24:48 · 6327 阅读 · 0 评论 -
pjsip学习笔记13 -- pjsua的启动过程代码分析
PJSUA是一个开源的命令行SIP用户代理(软电话),用PJSIP协议,PJNATH,和PJMEDIA实现PJSUA虽然只有很简单的命令行界面,但是功能齐全。如何在PJSUA基础上改建自己的USER agent? 首先要理清PJSUA的程序框架。源码阅读提示,实现调用栈的跟踪,貌似线程安全的(使用线程TLS机制:https://blog.youkuaiyun.com/waruqi/article/detail...原创 2018-06-15 16:47:27 · 7118 阅读 · 0 评论 -
PJMEDIA PORT 的概念
来源: https://blog.youkuaiyun.com/gregcheng/article/details/58005642010年08月10日 09:59:00阅读数:1880 媒体端口(Media Port)提供抽象和可扩展的框架(framework)来实现媒体端点。基本上,媒体端口接口有以下属性:--媒...转载 2018-06-01 16:41:53 · 844 阅读 · 0 评论 -
PJSIP学习笔记15 -- PJSUA应用程序中的会议桥
aaaaa可以使用PJSUA程序控制台命令cl来查看系统中的conference_port未拨打电话时,如下:Port#00[24KHz/20ms/1] Master/sound transmitting to: Port#01[24KHz/20ms/1] ringback transmitting to: Port#02[24KHz/20ms/1] ...原创 2018-06-25 15:56:14 · 3289 阅读 · 0 评论 -
JISIP学习笔记14- PJSUA命令行解析
前面大致学习了pjsip的媒体系统和信令系统现在进入pisua例子程序的学习,因为这个例子程序可能是我改造的对象这两天又看了看设计模式的书, 感觉pjsip运用的最多的就是抽象接口和工厂模式,了解设计模式对理解代码很有帮助!今天看了一下,命令行代码的解析,对命令行中的配置文件解析函数看了看原来配置文件的内容就是把命令行参数写到配置文件里面去了格式还是和命令行参数的格式是一致的, 使用配置文件的好处...原创 2018-06-21 11:56:30 · 1146 阅读 · 0 评论 -
pjsip学习笔记6 --- snd_port与stream跨过会议桥直连
以前的学习笔记中,按照https://trac.pjsip.org/repos/wiki/media-flow#IncomingRTPRTCPPackets提供的流图把从整个声卡到网络层所设计到的模块对象大体都过了一遍。 现在再来看这张图,产生个问题, 能不能不要会议桥, 将pjmedia_snd_port直接与pjmedia_stream连接呢?在会议桥创建代码中, pjmedia_s...原创 2018-06-06 16:33:28 · 1479 阅读 · 0 评论 -
jpsip学习笔记5 --- 媒体传输层抽象与实现
在学习笔记4中,我们研究了pjmedia_stream对象pjmedia_stream对象的功能和接口在这张图上很清楚了 https://trac.pjsip.org/repos/wiki/media-flow#IncomingRTPRTCPPackets下面学习下传输层对象一) 传输层对象的定义 struct pjmedia_...原创 2018-06-06 15:21:04 · 1151 阅读 · 0 评论 -
pjsip学习笔记9 -- sip传输层抽象与实现
pjsip信令传输层包含抽象层和传输实现层抽象层代码: sip_transport.c实现层代码: sip_transport_loop.c sip_transport_tcp.c sip_transport_tls.c sip_transport_udp.c本次重点研究sip传输抽象层和UDP传输实现层在前面的分析中, 我们...原创 2018-06-11 16:50:33 · 2700 阅读 · 0 评论 -
pjsip音频流传递过程和混音算法
原文来自:https://blog.youkuaiyun.com/lincaig/article/details/79633771 对于实现voip,pjsip是一个非常优秀的开源项目。其实现了复杂的sip信令交互和音频的传输建立。1、媒体流的传递过程我们来结合代码分析下媒体流的传递。conference.c模块是用来做音频设备和媒体数据流之间的桥接作用,它与媒体流和音频设备之间...转载 2018-06-05 08:33:40 · 2863 阅读 · 0 评论 -
pjsip学习笔记10 -- SIP信令层处理机制(模块接口)
学习笔记9中对SIP消息如何从传输层获得,又如何从传输层发送出去有了一个大致的了解SIP消息从传输层到 pjsip_endpoint的两个重要接口, 实际上是两个回调函数: 1) mgr->on_rx_msg(mgr->endpt, PJ_SUCCESS, rdata) 2) mgr->on_tx_msg(mgr->endpt, PJ_SUCCESS, rd...原创 2018-06-12 11:39:01 · 3189 阅读 · 0 评论 -
PJSIP学习笔记11 -- SIP模块
关于模块的博文原文在这里: https://blog.youkuaiyun.com/smllyy/article/details/408207211) PJSIP模块结构体 struct pjsip_module { PJ_DECL_LIST_MEMBER(struct pjsip_module); //链表指针 pj_...转载 2018-06-12 14:38:13 · 1334 阅读 · 0 评论 -
pjsip学习笔记3 -- 会议桥
在学习笔记2中1)我们知道了声卡抽象层audiodev.c的上层是pmedia_snd_port层2)pmedia_snd_port层提供pmedia_port抽象接口所需要的函数指针: get_frame,put_frame,on_destroy,get_clock_src3)pmedia_snd_port层还提供了与pmedia_snd_port层自己的上一层pjmedia对象的音频数据交换接...原创 2018-06-05 14:28:22 · 3297 阅读 · 0 评论 -
pjsip学习笔记12 -- SIP 会话与事务
关于模块的博文在这里: https://blog.youkuaiyun.com/smllyy/article/details/40824491一) 关于invite 会话参考博文内容摘录如下:1) DialogINVITE会话和usage在单独的静态库中实现,即pjsip-ua库2) DialogINVITE会话是一个在一个Dialog中的INVITE会话。如果应用决定使用高层的INVITE会话管理,它需要为...转载 2018-06-12 17:13:14 · 3029 阅读 · 0 评论 -
pjsip学习笔记4 -- 媒体流处理层stream
在学习笔记3中,我们学习了会议桥,了解了会议桥的相关机制1)会议桥具有多个conf_port, 使用ports[]数组保存2)会议桥实现了一个叫做master_port的pjmedia_port, 占用ports[0]的conf_port资源3)会议桥可能会创建一个pmedia_snd_port对象, 通过pjmedia_snd_port_connect,连接到master_port,打通了声卡设...原创 2018-06-06 13:24:41 · 4538 阅读 · 0 评论 -
pjsip简介
PJSIP开源库详解转自: http://www.cnblogs.com/my_life/articles/2175462.htmlPJSIP是一个包含了SIP、SDP、RTP、RTCP、STUN、ICE等协议实现的开源库。它把基于信令协议SIP的多媒体框架和NAT穿透功能整合成高层次、抽象的多媒体通信API,这套API能够很容易的一直到各种构架中,不管是桌面计算机,还是嵌入式设备等。一,PJSI...转载 2018-05-30 14:13:53 · 5998 阅读 · 0 评论 -
webrtc简单介绍以及用法(native)
原文:https://blog.youkuaiyun.com/mqdChalali/article/details/52923630本文不适合JS调用方法,但是可以参考,原理大同小异。适用于JAVA,OC,C++。其实也就是相关平台WINDOWS,IOS,android,linux。官方的接口和使用流程如下:https://webrtc.org/native-code/native-apis/可能有些难以看懂...转载 2018-06-19 13:07:14 · 4551 阅读 · 0 评论