欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    SIPDroid.docx

    • 资源ID:1639440       资源大小:84.80KB        全文页数:20页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SIPDroid.docx

    AndroidSIPdroidProjectSharingMay232011Warning:Ifyouhaveanyquestions,adviceorsomethinge1.se,p1.ease1.etteamknow.FightTeamContents怎么学习androidSiPdrOid开源代码3SiPdroid流程详细分析3SiPdrOid会话遨请流程(一)4Sipdroid会话遨请流程(二)5SiPdrOid中像效劳器注用是如何实现的(一)7Sipdroid注册(二)-Sipdroid注册S1.P消息分析9SiPdroid注册(三)-注册返回结果的监听11SiPdroid数据发送流程13Sipdroid中的视频通话是如何实现的16SiPdroid中":步及到的吉媚?,挛1/SiPdrOid涉及到的协议之RFC326118忽么学习androidSiPdroid开源代码?SiPdrOid目前有24个包,,140多个java文件.首先学习SipdrOid,至少辨明白SiPdroid是怎么玩的,实现的主要功能是什么,具体的流程操作是怎么执行的.先整理下下面的问题:一.Sipdroid的数据流程怎么发送的?参考文档:二.Sipdroid中果用的是什么协议?这点#常的重要,因为SiPdroid栗用的是RFC3261快议,大家看了RFC3261砂砍后,你就会明白.Sipdroid中对于MeSSage的料袋是如何完成,那么MeSSage的豺笠和生成这块所涉及到得设计模式和代码,你根本就可以弄明白参考文档:三,分块来弄Sipdroii1.首先Sipdroid的架构真是设计的是乖常的人性化以及牛X,为什么呢.功能块是完金独立前分开的,高内聚低耦合.SiPdrOid本身来说妩像一座非常施以攻克的堡全,但是咱们只要一块一块的攻.不久就发现整做城堡就被搞定了.一报来说,应该这么做:1.研究注册流程参考文档:2 .畀究会话遨请流程3 .视嵬通话通话流程4 .整理SiPdroid的架叫5 .畿取右用信息,比方视嫉和声音的描弊四库.协议的封装和设计模式等Sipdroid流程详氟分析1.SipDroid模块简单分析U1.层,负责界面显示模块和界面时间传递Engine软件核心处理层.启动各种效劳,初始化软件卷数。处理各种U1.时间.港椅配置文件信息,保存全局居性变量.其中包括USerAgenProfi1.e(用户配置文件属性),USerAgent(用户事件处理).SiPdmidEngine(核心於理.所有的U1.的事件,参数设计.效劳的启动都由比文件调度.RCgiS1.CrAgent(注册效劳於理)SipS:提供所有Sip消息模型,所有SiP消息的处理流程,包括发送,接收,封装,解码等等网络传输:提供音频,视须信息的处理,此模块会对音残视须选行即时编诏解码,同时发送数据。同时还提供JSTNNAT透传技术。2.SipDroid流程分析:段号:拨号请求由U1.通过ReCeiVer需送信息交蛤SiPDrOidEngine处理,在SiPDrOidEngine做一些验证,然后交蛤USerAgine处理。其中CaII(Stringtarget_ur1.,boo1.eanSend_anonymous)为判断是否匿名拨号再此方法中.会鹤立一个EXICndedCaI1.对象.以提供应SiD协议校使用,然后调用EX1.CndCdCa1.I的CaII方法处理.之后由EXtendedCaI1.的ca1.1.,调用EXtendedInY1.teD1.a1.og来发送invite请求.由InViteDiaIog执行具体的invite调用InviteTransactionC1.ient的request方法,最后由InviteTransactionC1.ient发送request请求,在InViI。TranSaenOnCIient中会通过SiPPrOvider.来发送消息.井18开对IS口监听.来收SiP消息.发送消息主要有(UDP传输I1.dpTransportTCP传输TcpTransport)未电:在启动程序的时候会通itSipDroidEngine会根jg配置,创立-个PrOVider,这里用到UdP传输,创立一个UdPProVider.UdPProVer是一个Thread.创立的时候就会启动歧程.开始裳听收到的信息.当受到信息后.通过OnSerViCeTfnniniIted方法.把对象传出到UdPTranSPOrt,由UdPTranSPort处理,再通过onTransportTerminated方法传出到SipProvider定象.最后将在SipProvider的ProcessReceived.Message方法中处理收到的消息.最后从IiStenerS(InaP)中取出相应的IiStener.最后逋i±相应的IiStener中的OnRecciYcYcssagcO来父理具体Sip请求SipdrOid会话邀请流程()Sipdroid会话流程图:u«<A9f<QtoQfcWJO/wtewr>*<MQeM*w*9,MMM9*MtocyCTMtHrMtHUqunC>jvodr.fquM.u*to.u*11.uf1.cuct.u<Mon.dMCf9<r.ktM1台IMMIm9MM<XMtejIB片比较直观,但是衰建却不够详细,下面咱们详细分析下流程:会话送请所涉及到得突:SipdroidEngine(ca1.1)-UserAgcnt(ca1.1.)-ExtendedCa1.1(ca1.1)-InvitcDia1.og(invite)左边的代表涉及到的类,右段代表涉及到的核心方法.从左到右进行观察,左边的#UMr一个右边类费的,数作为自己的成员函数,就是SiPdrOidEngine有一个成员函数Ua.这不Ua是USerAgCnt类型的。*InviteDia1.og中的invite函数所做的事情也是非常的葡单,生成会话遵清的message然.后通过SipProvider发送出去就行了,那么发送完毕后,怎么实现对发送结果的IS听呢?其实官己猜想一下也猜想到效劳器返回数据会什么类型的?1.等待对方应答中2 .对方已经应容,进入双边通话模式中,同时手机这边开始声音和视须的采集.(声音和视领的票果,这个是核心中的核心啜,马上就要弄到这块了,兴奋田)3 .超时,对方无应答.在二的分析中,咱们用倒推的方法来分析下客户期在接受到效劳期的返回后,传遑到了印里去进行会话递清的结果了.客户端是怎么实现的.Sipdroid会话邀请流程(二)这里咱们要弄明白的是,SiPdroid会话遨谓的结果是在哪里进行监听的,以及这种效果是怎么实现的?发送消息统一是由Sipdroid的SendMCSSHge来进行发送的,然后返回的数据咱们可以在Sipdroid的OnReceiVeMessage中东进行获取。在SiPdroid注册结果的盅听:这篇文章中.咱们分析了下,首先会话的类51有很多持.注地会话,遨诂会话,遗话会话等等,因此在OnReCeiV。比,SSage中会对当前进行的会话进行判断,根据当前的会话1D,判惭出当前具体的会话类型,然后具体的会话类型通过谒用自己的成员函数(会话接口对象的接口方法)将数据会话接口对象.那么分析就简单了.便推下:1.型谓会话类是谁?2 .遨请会话美再会话接口是耶个.速请会话类会在获取到返回的数据后将获得到得数据传说给会话接口的接口方法中3 .分析会语接口中的方法是怎么处理邀请回话类返回的数据的?只要咱们这样分析,咱们就可以倒推出最终数据是怎么处理的,处理数据的核心其实还是更新UI界面和进行要辑判断,所以故终的於理必须是距离U1.界面近的美.会话逮请类是:InvjtcTransactionC1.icntinvit<?_tc-mr«Invit<?Trans-?icti1111CIient(sipprovider,invitereq.this):nvite.tc.request0;SipPcrvider在获取到数据后是怎么传给会话邀请美得?。个具体的会话类梆会继承一个抽象的女.这个牯象的会话类继承了SiPPrOVider1.iStener,在SipProvider获得message后,在OnReceiverMessage中,会通过执行SipProvider1.istener的接口方法将数据传给是实现了此接口的美,在会话邀请类中也就会传递给具体的会话类InYiteTransaction.每一个具体类在初雄化的时候,是必须有SiPPrOVider作为参数的,然后在通过SipProvider的addSiPProVider1.iStener(id.SipProYier1.istneiO指定会话类型和会话接11,还有SipProvider是唯一和独立的.因此一个会话中,只可能存在一种会话类里.InviteTranSaCtiOnCIien1.在OnReCeiVeNeSSaKe会将数据传递给transaction1istener,transactionIiStener其实就是InViteDia1.og,InviteDia1.og实匏了TransactionC1.ient1.istener,并在InViteTranSaCtionC1.inet的时候传递进去T,所以数据都是按照这样的烫辑往上传的,剩下的分析就非常简单了,大家自己分析吧.,所以最终的数据还是会回到UserAgent里面Ca1.1.1.istenerAdapter接口方法里面.这个方法还提巧的,谁发送的请求最后就由津最终耒处理这个巡回的结果.幡后%SipdroidEnginedt是这些核心类用来交互的一个地儿,然后咱们在启动的ACtHVity里面就只管理用SipdroidEngine提供的方法来控制指令就成了,牛X的樨柒,RegisterAgent敢先发送注册请求,最后的注册结果也得RegiSterAgent来处理.UserAgent最先发出会话邀请请求,最后的邀清结果也将USerAget来处理.Sipdroid中像效男总注号是如何实现的(一)关于Sipdroid是加何实现像效劳注册的?首先告诉大家代码块在哪里,注的的核心在RegiSterAgent类中的函弱register(inttime)中,注册的核心是:1. /Create11essagere(11nrfifi<*dbynv11rfrnjg)2. Messagereq=ssaeFactory.creat<ReuiSterRequest(sip_provider.3. target,tnrget.nmVanrAddress(ux¢rpro).qva1.ue,icsi):4.5rcq.%。IExpiresHendcr(newExpireshdcr(String.vn1.iwOf(expireti11r);注册稍微简单一点,因为只是需要客户潴和效劳器进行用定就行了,注册在SIP协议中称f昼记效秀.再向效劳提供商进行注册的时候,效劳提供商都会给我们一个UR1.这个UR1.在SiPdroid中被封装在SiPUR1.中的,这个UR1.写的格式如下:sip:.用户名+主机名。登陆效劳过程中的具侬流程如下:程序启动便自动进行初始化,在初始化的过程中,号网一段的时间,客户靠这边就要发送ReRiStR信息蛤效劳

    注意事项

    本文(SIPDroid.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开