智能手机安卓系统秘密语音通信软件_第1页
智能手机安卓系统秘密语音通信软件_第2页
智能手机安卓系统秘密语音通信软件_第3页
智能手机安卓系统秘密语音通信软件_第4页
智能手机安卓系统秘密语音通信软件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能手机安卓系统秘密语音通信软件设计答辩人XXX指导老师XXXContentsVoIP技术SIP协议Android中的SIP开源协议栈SIPDroid加密模块的实现系统的测试不足和展望什么是VoIP网络电话VoiceoverInternetProtocol具体流程声电转换:将声波转换为电信号量化采样:将模拟信号按照某种采样方法转换成数字信号封包:RTP报文、TCP/IP标准传输:IP网络中由源端传递到目的端VoIP的优势网络电话基于Internet传输分组交换<10kbit/s普通电话基于PSTN传输电路交换>64kbit/sVoIP主流协议H.323SIPMGCP拟定组织ITU-TIETFIETF架构P2PP2P主从式设计对象ISDN及ATMInternetGateway复杂度高低中扩展性低高中编码方式二进制编码基于文本编码基于文本编码SIP协议SessionInitiationProtocol信令控制协议1996199920002002创建、修改以及终结多个参与者参加的多媒体会话SIP规定了以下基本的通信要求:1.用户定位服务2.会话建立3.会话参与方管理4.特点的有限确定HTTPSMTPRSVPRTPRTSPSAPSDPMEGACO等信令技术

鉴别呼叫方所要呼叫的对象

定位呼叫方在网络中的位置外部信令语音代理及语音设备遵循电话标准内部信令语音代理之间传输网络标准或语音代理本身的标准内部信令提供了连接控制和呼叫处理两种功能。连接控制信令用于建立语音代理之间传输语音分组的联系或通道。呼叫处理信令在语音代理之间发送呼叫状态,如振铃、忙音等。内部信令最初是用于避免在网络中维持用来支持所有可能呼叫的永久连接。对无连接网络中的分组语音应用而言,永久连接并不存在,进行语音业务时双方的语音代理只需要彼此定位。信令的作用是通过拨号规则判断目标代理是否存在,如果存在就将分组流发送至该代理。SIP协议要素SIP协议结构SIP事务用户层事务层传输层UDP/TCPIP链路层物理层SIP消息机制

请求消息SIP请求消息以Request-Line为起始行,以此区别于其他消息。INVITE:

用于邀请用户加入一个呼叫。ACK:用于对请求消息的响应消息进行确认。OPTIONS:用于查询代理服务器支持的方法和会话描述协议。BYE:用于释放已建立的呼叫。主叫方与被叫方都可以发送,等同于普通电话通讯中的挂机操作。CANCEL:用于释放尚未建立的呼叫。。REGISTER:用于在SIP网络服务器上登记用户的位置信息。SIP消息机制

响应消息SIP响应起始行为含有响应状态码的Status-Line,作为请求与响应的区别。编码类别描述1xx信息表示请求已经收到,可以继续处理请求2xx正确表示呼叫已经被正确接受和处理3xx重定向表示该呼叫需要被重定向处理4xx客户机错误表示该消息存在表达错误,不能被服务器处理5xx服务器错误服务器不能处理该消息6xx全局失败请求无论在哪都不能被处理SIP用户定位功能E-mail地址形式一个用户对应一个URL。SIPURL用于SIP消息中,包括请求的发起者(From)、当前目的地(Request-URI)和最终接收者(To)以及指定重定向地址(Contact)。可兼容性:用户名@主机地址被叫号码@PSTN网关地址普通电话的描述SIP会话过程注册/注销过程呼叫过程由主叫UAC直接向被叫UAS呼叫由代理服务器代表主叫UAC向被叫UAS发起呼叫由主叫UAC在重定向服务器的辅助下进行重定向呼叫重定向过程SIPDroid工作原理注册流程当需要发送注册请求消息时,要先调用MessageFactory.createRegisterRequest函数

构建请求消息然后建立一个线程TransactionClient用来监管本次信令流程。TransactionClient会调用SIPProvider来发送请求消息,同时会监听注册服务器的响应消息。当收到响应消息后,将响应消息传递给上层的SIPProvider进行处理。拨号流程拨号请求由UI通过Receiver广播信息交给SIPDroidEngine处理。在SIPDroidEngine上鉴别目标帐号以及本地帐号是否为空,然后交给UserAgent处理。UserAgent调用call(Stringtarget_url,booleansend_anonymous)创建一个ExtendedCall对象,以提供给SIP协议栈使用,然后经过ExtendedCall的call方法处理之后,由ExtendedCall调用ExtendedInviteDialog来发送invite请求。InviteDialog调用InviteTransactionClient的request方法,并由InviteTransactiongClient来监管本次信令流程。来电处理流程SIPDroidEngine创建并启动一个UdpProvider线程,开始监听收到的信息,之后调用onReiceivedPacket方法,把对象传出到UdpTransport,由UdpTransport把消息封装成SIP的扩展消息Message,再通过onReceivedPacket方法传出到SIPProvider对象,最后将在SIPProvider的processReceivedMessage方法中处理收到的消息。processReceivedMessage会鉴定该消息是否为SIP消息,不是则丢弃。最后从listenrs(map)中的OnReceivedMessage来处理具体SIP请求。如果是INVITE请求,就启动来电提示界面,如果本地用户选择接听,就发送请求接受响应,即200(ok)响应,若用户不愿接听,则发送4xx错误响应。SIPDroid数据传递流程SIPDroid的数据流主要有SIP信令消息和会话音频数据两种,分别使用不同的传输渠道。信令数据的传输用户在UI层的操作(比如拨号、接听等),会广播给SIPdroidEngine类,SIPdroidEngine会根据操作类型交付给UserAgent类或者RegisterAgent类,处理后产生的不同请求由SIPDroidProvide类解读,并将产生的SIP消息封装成包,之后交付给UdpTransport类,Udptransport是个接口类,SIPdroidProvider与UdpProvider之间的接口,可以提供数据传送、监听Udp数据包和封装或分解Udp数据包等服务。UdpProvider会调用UdpSocket,将目标地址映射至UdpSocket,最终调用Java的DatagramSocket将数据传输出去。当收到来自网络的数据包时,数据传递顺序则相反。RTP数据包的传输RTP数据包的简要传输流程如下:当终端把采样到的音频数据压缩编码后需要封装成RTP包传输出去时,会先建立一个虚拟的RTP传送器RtpStreamSender和一个用于接收RTP数据包的虚拟RTP接收器RtpStreamReceiver,这两个继承于线程,在对话建立后就不断运行。RTPStreamSender会把音频数据压缩编码后交付UDPtransport(或TCPtransport)处理,UDPtransport之后会调用RtpSocket将其封装成RTP包,读取目标IP地址与协商好的RTP端口号,将数据传输出去。当收到来自网络的RTP数据包时,数据传递顺序则相反。加密算法的选择

本文选择RC4流密码,简洁易于实现,加密速度快,安全性较高

/*初始化*/fori=0to255doS[i]=i;T[i]=K[imodkeylen]/*S的初始序列*/j=0fori=Oto255doj=(j+s[i]+T[i])mod256swap(s[i],s[j]);/*密钥流的产生*/i,j=0while(true)i=(i+1)mod256j=(j+S[i])mod256swap(sEi],s[j])t=(sEi]+s[j])mod256;k=S[t]加密模块的嵌入通过研究SIPDroid的源代码,我们发现SIPDroid在对UDP消息进行封装时是将语音信息编码为BYTE类型处理的,因此我们选择不改变信令协议栈和媒体传输协议栈的任何实现代码,仅仅只是将RC4算法模块封装成为src中的一个包,改写了系统的UDP收发函数,使其在对语音编码信息封装前先调用RC4算法进行加密,再将加密后的密文打包。解密时则进行相反的过程。系统测试

搭建测试环境语音加密测试原始语音原始语音加密后解密测试使用正确密钥解密使用错误密钥解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论