exosip2协议栈原理分析以及总结

exosip2协议栈原理分析以及总结

ID:40068464

大小:933.01 KB

页数:11页

时间:2019-07-19

exosip2协议栈原理分析以及总结_第1页
exosip2协议栈原理分析以及总结_第2页
exosip2协议栈原理分析以及总结_第3页
exosip2协议栈原理分析以及总结_第4页
exosip2协议栈原理分析以及总结_第5页
资源描述:

《exosip2协议栈原理分析以及总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、exosip2协议栈学习总结1、exosip2协议栈介绍eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。使用sip协议建立多媒体会话是一个复杂的过程,exosip库开发的目的在于隐藏这种复杂性。正如它的名称所表示的,eXosip2-theeXtendedosipLibrary,它扩展了osip库,实现了一个简单的高层API。通过使用exosip,我们可以避免直接使用osip带来的困难。需要注意,exosip并不是对osip的简单封装包裹,而是扩展。Osip专注于sip消息的解析,事务状态机的实现,而exosip则基于osip实现了call、o

2、ptions、register、publish等更倾向于功能性的接口。当然,这些实现都是依赖于底层osip库已有的功能的。2、exosip的模块构成2.1底层连接管理extl.c、extl_udp.c、extl_tcp.c、extl_dtls.c、extl_tls.c是与网络连接有关的文件。实现了连接的建立,数据的接收以及发送等相关的接口。其中,extl_udp.c为使用UDP连接的实现,extl_tcp.c为使用TCP连接的实现。Extl_dtls.c以及extl_tls.c都是使用安全socket连接的实现。2.2内部功能模块实现Jauth.c、jcall.c、jdialog.c、

3、jevents.c、jnotify.c、jpublish.c、jreg.c、jrequest.c、jresponse.c、jsubscribe.c等文件实现了内部对一些模块的管理,这些模块正如其文件名所表示的,jauth.c主要是认证,jcall.c则是通话等等。2.3上层API封装实现Excall_api.c、exinsubsription_api.c、exmessag_api.c、exoptions_api.c、expublish_api.c、exrefer_api.c、exregister_api.c、exsubsribtion_api.c这几个以api为后缀的文件,实现各个子模

4、块的管理。应用程序可以调用这里提供的接口,方便的构造或者发送sip消息。2.4其他Inet_ntop.c实现ip地址的点分十进制与十六进制表示之间的转换。Jcallback.c实现一堆回调函数,这些回调函数就是用来注册到osip库的。我们使用exosip库,就是避免直接使用osip库,因为一些工作exosip已经帮我们做了,所以这样一来,可以简化上层的实现。Udp.c文件主要用来对通过UDP连接接收到的消息进行分类处理。Exutilis.c文件实现一些杂项的函数。有ip地址到字符串之间的转换,域名的解析等一些辅助的功能函数。Exconf.c文件实现了exosip的初始化相关的接口,包括

5、后台任务的实现。实际上是“configurationapi”的实现。Exosip.c文件实现了与exconf.c文件相似的功能。比如管道的使用,exosip上事务的创建和查找,register和subscribe的更新,认证信息的处理等。3、exosip关键数据结构及其说明113.1eXtl_protocoleXtl_protocol是为实现网络通信专门定义的一个数据结构,包括了变量和方法两部分。其中,变量包括了建立网络连接过程中使用的ip地址、端口等;方法部分封装了网络socket编程常用的系统调用接口。代码中定义了四个该数据结构体的全局变量:eXtl_udp、eXtl_tcp、eX

6、tl_tls以及eXtl_dtls。分别针对使用UDP、TCP以及安全加密连接进行了实现。3.2eXosip_call_tExosip_call_t定义了call相关的信息,包括call的id,call的dialogs,call上incoming的事务和outgoing的事务。另外,还包括了前向和后向指针,所以,所有的call可以通过该结构体串接起来。3.3eXosip_dialog_texosip_dialog_t包含了dialog相关的信息。3.4eXosip_reg_t11用来管理Register模块3.5eXosip_subscribe_t用来管理subscribe模块3.6e

7、Xosip_pub_t用来管理publish模块3.7eXosip_notify_t用来管理notify模块3.8jinfo_t这个结构体关联了dialog、call、subscribe以及notify几个结构体3.9eXosip_event_t11与event有关的结构体。这个结构体主要用来在应用层和exosip之间通信。Exosip在处理事务的过程中,如果需要将结果反馈给上层应用,则会生成如上结构类型的事件,并将其放到exosip的事件队列

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。