摘要: SIP协议的INVITE消息发起流程当通过sip协议发起一个会话时,需要通过invite消息实现该流程。而SIP协议是一个基于事务的协议,每一个sip会话的都是通过sip部件间的一系列消息来完成的。首先需要明确的重要概念就是事务。事务在SIP协议中,一个事务是指完成一次消息交互的整个流程。以INVI... 阅读全文
posted @ 2014-04-09 18:33 腐烂的翅膀 阅读(593) 评论(0) 推荐(0) 编辑
摘要: 相关数据结构1.tsip_dialog_invite_t描述:一个invite_dialog代表了一个invite期间的所有的信令流程,因此,它首先是一个普遍的dialog的特殊化结构,在该结构的起始部分,有一个TSIP_DECLARE_DIALOG声明,该声明展开后是一个tsip_dilog_t ... 阅读全文
posted @ 2014-04-09 18:33 腐烂的翅膀 阅读(704) 评论(0) 推荐(0) 编辑
摘要: 协议栈的默认传输结构对于一个刚启动的协议栈来说,它需要有一个传输层,支持若干的传输结点。每一个传输结点对应于一个端口,若采用TCP连接,一个传输结点就针对于一个点到点的连接,这个连接负责sip信令的可靠交换;若采用UDP进行sip信令的交换,则需要由应用程序维护一个定时器,以防数据包丢失的时候用于重... 阅读全文
posted @ 2014-04-09 18:32 腐烂的翅膀 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 协议栈启动的上层接口 对于Doubango中得sip协议栈,是通过SipStack类粘合上层代码与底层代码的,该类定义在SipStack.h中,实现在SipStack.cxx中。当构造好一个SipStack实例之后,对于底层而言,实际上是创建了一个tsip_stack_t 的实例,这个实例在SipS... 阅读全文
posted @ 2014-04-09 18:30 腐烂的翅膀 阅读(634) 评论(0) 推荐(0) 编辑
摘要: tsip_stack_handle_t 实例1.tsip_stack_handle_t的创建在底层,真正运转的协议栈结构式tsip_stack_handle_t的一个实例,它的创建时机为SipStack类在构造时,也就是说,当上层不管用何种方式触发一个SipStack的创建动作时。在上层,SipSt... 阅读全文
posted @ 2014-04-09 18:29 腐烂的翅膀 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 自顶向下与自底向上软件设计的两种方法不过于自顶向下与自底向上。对于自顶向下而言,先设计好用户接口,再往下延伸至各个功能块的具体实现。而对于自底向上而言,自然是有了设计好的各个功能代码块,再将这些功能代码块拼接成具体的用户接口,然而实际的软件实践中,这两种方法是同时展开的,因为无论单独实施哪一种,都是... 阅读全文
posted @ 2014-04-09 18:28 腐烂的翅膀 阅读(1184) 评论(0) 推荐(0) 编辑
摘要: 1、doubango官网:http://www.doubango.org/doubango常用项目国内镜像(放在淘宝的svn服务器),目前有4个项目:doubango, idoubs, imsdroid, telepresence。项目的svn地址如下格式http://code.taobao.org... 阅读全文
posted @ 2014-04-09 18:26 腐烂的翅膀 阅读(3907) 评论(0) 推荐(0) 编辑
摘要: Google收购的GIPS公司的音频处理技术是很牛的,现在开源了,这么好的技术应该拿来用的,这里就简单的介绍一下怎样使用VoiceEngine,欢迎大家拍砖指导。WebRTC相关的VideoEngine和VoiceEngine的API详细说明文档:http://www.webrtc.org/system/app/pages/subPages?path=/reference/webrtc-internalsWebRTC的VideoEngine和VoiceEngine源码在:http://code.google.com/p/webrtc/source/browse/#svn%2Fbranchesi 阅读全文
posted @ 2014-04-09 18:10 腐烂的翅膀 阅读(1608) 评论(0) 推荐(0) 编辑
摘要: 1、VoiceEngine Codec数据结构 WebRTC中,用一个结构体struct CodecInst表示特定的音频编解码器对象:[cpp]view plaincopystructCodecInst{intpltype;//payloadtype负载类型charplname[32];//payloadname负载名称,32个字符表示intplfreq;//payloadfrequence负载频率intpacsize;//packetsize包大小intchannels;//声道intrate;//速率或自适应};参数详细说明:1、 pltype范围在1~126之间才是有效值; p... 阅读全文
posted @ 2014-04-09 18:09 腐烂的翅膀 阅读(1104) 评论(0) 推荐(0) 编辑
摘要: 1、WebRTC目的 WebRTC(Web Real-Time Communication)项目的最终目的主要是让Web开发者能够基于浏览器(Chrome\FireFox\...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号处理过程,只需编写简单的Javascript程序即可实现,W3C等组织正在制定Javascript 标准API,目前是WebRTC 1.0版本,Draft状态,网址;另外WebRTC还希望能够建立一个多互联网浏览器间健壮的实时通信的平台,形成开发者与浏览器厂商良好的生态环境。同时,Google也希望和致力于让W... 阅读全文
posted @ 2014-04-09 18:08 腐烂的翅膀 阅读(1061) 评论(0) 推荐(0) 编辑