SIPDroid开源代码教程.docx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
……………………………………………………………精品资料推荐………………………………………………… PAGE PAGE 2 ……………………………………………………………精品资料推荐………………………………………………… Android SIPdroid Project Sharing May 23 2011 Warning: If you have any questions, advice or something else, please let team know. Fight Team Contents 怎么学习android Sipdroid开源代码 3 Sipdroid流程详细分析 4 Sipdroid会话邀请流程 (一) 5 Sipdroid会话邀请流程(二) 6 Sipdroid中像服务器注册是如何实现的(一) 8 Sipdroid 注册(二)-Sipdroid注册SIP消息分析 10 Sipdroid注册(三)-注册返回结果的监听 14 Sipdroid数据发送流程 16 Sipdroid中的视频通话是如何实现的 19 Sipdroid中涉及到的音频编解码库 20 Sipdroid涉及到的协议之RFC3261 21 怎么学习android Sipdroid开源代码? Sipdroid目前有24个包,140多个java文件.首先学习Sipdroid,至少得明白Sipdroid是怎么玩的,实现的主要功能是什么,具体的流程操作是怎么执行的。 先整理下下面的问题: 一.Sipdroid的数据流程怎么发送的? 参考文档:/thread-5-1-1.html 二.Sipdroid中采用的是什么协议? 这点非常的重要,因为Sipdroid采用的是RFC3261协议,大家看了RFC3261协议后,你就会明白,Sipdroid中对于Message的封装是如何完成,那么Message的封装和生成这块所涉及到得设计模式和代码,你基本就可以弄明白 参考文档: /thread-3-1-1.html 三.分块来弄Sipdroid 首先Sipdroid的架构真是设计的是非常的人性化以及牛X,为什么呢,功能块是完全独立和分开的,高内聚低耦合,Sipdroid本身来说就像一座非常难以攻克的堡垒,但是咱们只要一块一块的攻,不久就发现整做城堡都被搞定了。 一般来说,应该这么做: 1.研究注册流程? 参考文档:/thread-35-1-1.html 2.研究会话邀请流程 3.视频通话通话流程 4.整理Sipdroid的架构 5.提取有用信息,比如视频和声音的编解码库,协议的封装和设计模式等 Sipdroid流程详细分析 1.SipDroid模块简单分析 ? ?? ??UI层,负责界面显示模块和界面时间传递 ? ?? ??Engine层:软件核心处理层,启动各种服务,初始化软件参数。处理各种UI时间,维持配置文件信息,保存全局属性变量。其中包括UserAgenProfile(用户配置文件属性),UserAgent(用户事件处理),SipdroidEngine(核心处理,所有的UI的事件,参数设计,服务的启动都由此文件调度),RegisterAgent(注册服务处理) ? ?? ??Sip层:提供所有sip消息模型,所有sip消息的处理流程,包括发送,接收,封装,解码等等 ? ?? ??网络传输:提供音频,视频信息的处理,此模块会对音频视频进行即时编码解码,同时发送数据。同时还提供JSTN NAT透传技术。 ? 2.SipDroid流程分析: 拨号:拨号请求由UI通过Receiver广播信息交给SipDroidEngine处理,在SipDroidEngine做一些验证,然后交给UserAgine处理。其中call(String target_url, boolean send_anonymous)为判断是否匿名拨号再此方法中,会创建一个ExtendedCall对象,以提供给sip协议栈使用,然后调用ExtendedCall的call方法处理,之后由ExtendedCall的call,调用ExtendedInviteDialog来发送invite请求。由InviteDialog执行具体的invite调用InviteTransactionClient的request方法,最后由InviteTransactionClient发送request请求,在InviteTransactionClient中会通过SipProvider,来发送消息,并打开对端口监听,来收sip消息。发送消息主要有(UDP传输 UdpTransport??TCP传输TcpTransport) 来电:在启动程序的时候会通过SipDroidEn

文档评论(0)

ayangjiayu1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档