基于SIP协议的Android语音通信加密软件设计

更新时间:2023-10-16 03:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中国科学技术大学

University of Science and Technology of China

本科毕业论文

题目:智能手机安卓系统秘密语音通信软件设计 英文Software Design of the SmartphoneSecret 题目:Voice Communication Based on Android 学院: 信息科学技术学院 系别: XXXX专业(XXX) 姓名: XXX 学号: XXXXXXXXXX

指导老师: XXX教授 完成日期: XXXX年XX月

中国科学技术大学本科毕业论文

致 谢

本论文是在我的导师XXX教授的亲切关怀和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,X老师都始终给予我细心的指导和不懈的支持,谨向李老师致以诚挚的谢意和崇高的敬意。

历时将近两个月的时间终于将这篇论文写完,在论文的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。感谢在大学生学习期间给我上课的老师们,感谢在大学四年里对我们的生活学习都无微不至照顾的辅导员周远远老师。在此,我还要感谢在一起愉快的度过大学生活的XXX寝室各位同门,正是由于你们的帮助和支持,我才能克服一个一个困难和疑惑,直至本文的顺利完成。另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助,在此向帮助和指导过我的各位老师表示最衷心的感谢!感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。

在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的撰写和排版过程中提供热情的帮助。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!

感谢我认识的师兄弟、师姐妹们。需要一一感谢我的同学们,有幸与你们同学是我大学的最大收获。

最后,我要特别感谢我的家人,没有你们的支持,就没有今天的我。 愿把我的幸福和快乐都送给关心和支持过我的人,也愿他们一切如意。

2

中国科学技术大学本科毕业论文

目录

中文内容摘要…………………………………………………………………....4 英文内容摘要……………………………………………………………………5

第一章 绪论 ....................................................................................................... 6

第一节研究背景............................................................................................ 6

一、网络电话........................................................................................ 6 二、SIP协议 .......................................................................................... 7 三、数据加密技术................................................................................ 7 第二节本文主要研究工作............................................................................ 8 第三节本文组织结构.................................................................................... 8 第二章 VoIP技术 ................................................................................................. 9

第一节 VoIP技术简介 ................................................................................. 9

一、VoIP技术的定义 ........................................................................... 9 二、IP电话与传统电话的区别与优势 ................................................ 9 三、VoIP的三种主流协议 ................................................................... 9 第二节 VoIP的关键技术 ........................................................................... 10

一、语音编码压缩技术...................................................................... 10 二、信令技术...................................................................................... 10

第三章 SIP协议分析 .......................................................................................... 12

第一节 SIP协议概述 .................................................................................. 12

一、SIP协议简介 ................................................................................ 12 二、SIP起源与发展 ............................................................................ 12 三、SIP协议功能 ................................................................................ 12 第二节 SIP基本原理分析 .......................................................................... 13

一、SIP协议要素 ................................................................................ 13 二、SIP协议结构 ................................................................................ 14 三、SIP的用户定位功能 .................................................................... 15

1

中国科学技术大学本科毕业论文

四、SIP消息机制 ................................................................................ 16 第三节 SIP会话详述 .................................................................................. 19

一、SIP工作原理 ................................................................................ 19 二、IP会话实例 .................................................................................. 19 第四节其它与SIP相结合的协议 ................................................................ 24

一、SIP与其他协议的协作 ................................................................ 24 二、传输协议(RTP)............................................................................ 24 三、会话描述协议SDP ...................................................................... 25 第五节 SIP协议的优越性 .......................................................................... 25

一、H.323与SIP的比较 ...................................................................... 25 二、SIP协议的优点 ............................................................................ 25

第四章 Android平台下SIP协议栈的实现 ........................................................ 27

第一节 Android平台简介 .......................................................................... 27 第二节 Android平台下SIP协议栈实现 .................................................... 28

一、SIP协议栈的选择 ........................................................................ 28 二、SipDroid数据传递流程 ............................................................... 29 三、注册流程代码.............................................................................. 31 四、拨号流程代码.............................................................................. 32 五、来电处理流程代码...................................................................... 34

第五章加密模块的嵌入...................................................................................... 37

第一节加密算法的选择.............................................................................. 37

一、RC4流密码 .................................................................................. 37 二、RC4的java实现............................................................................ 38 第二节加密算法的嵌入.............................................................................. 40

一、改写SIPDroid的UDP收发函数 .................................................. 40 二、密钥的处理.................................................................................. 41 三由本系统想到的VoIP安全性分析 ................................................. 41

第六章系统测试.................................................................................................. 45

第一节测试环境.......................................................................................... 45

一、搭建测试环境.............................................................................. 45

2

中国科学技术大学本科毕业论文

加密技术通常分为两大类,对称是和非对称式。对称式加密就是加密和解密使用同一个密钥,这种加密技术目前被广泛采用。如美国政府采用的DES加密标准就是一种典型的对称式加密。非对称式加密就是加密和解密用的不是同一个密钥,通常有两个密钥,称为公钥和私钥,它们两个必须配对使用,否则不能打开加密文件。本文选择了对称加密算法流密码RC4作为嵌入的加密模块的算法。

第二节本文主要研究工作

本文的目的是智能手机安卓系统秘密语音通信软件设计。本文的主要研究工作包括:

对VoIP关键技术、加密算法以及SIP协议原理做了详细、透彻的分析研究,这些是本文的理论基础。

通过SIP协议的扩展功能,实现基于RC4流密码的加密传输

基于SIP协议的终端系统的设计与实现。包括终端系统的基本架构设计、系统开发环境的搭建、SIP协议栈的搭建以及系统软件的模块化设计与实现。

第三节本文组织结构

本文共分为七个章节:

第一章首先介绍了课题的研究背景,并对VoIP、SIP协议、数据加密做了简单的介绍。

第二章详细介绍了VoIP,并探讨了其中关键的信令技术。

第三章对SIP协议原理做了深入透彻的分析研究。介绍了SIP协议的起源和发展、SIP的功能;详细分析了SIP系统组成、实现机制和消息机制,并给出了SIP会话的实例。第二章和第三章共同构成本文的理论基础。

第四章是本文的重点,详细阐述了系统软件的设计过程,包括开发平台的介绍、SIP协议栈的搭建以及各软件模块的设计等等。

第五章是对VoIP加密传输的设计研究,实现基于RCT的加密算法,以及嵌入SIP协议栈中。

第六章是系统测试和性能分析,对本文的研究成果给出了评估。

第七章是对本文研究与开发工作的总结和对今后进一步研究方向的展望。

8

中国科学技术大学本科毕业论文

第二章 VoIP技术

第一节 VoIP技术简介

一、VoIP技术的定义

VoIP技术是Voice over IP的简称,也就是IP语音技术。其根本思想是传送IP包来实现语音业务。首先在发送端对模拟语音信号进行采样、量化、压缩编码,然后将语音数据封装成IP包,通过IP网络发送到接收端,再进行解包和解压缩,还原模拟信号,以实现语音通信。VoIP技术的出现,使语音业务在数据网上实现连续而高效的传输成为可能。它提供了一种强大而又经济的通信手段,能更合理地利用网络资源,降低了语音业务成本,因此在全球范围内得到了迅速的发展。

二、IP电话与传统电话的区别与优势

IP电话与传统电话的主要区别是传输媒介和交换方式。IP电话利用internet进行传输,而传统电话则使用公共交换电话网络(PSTN);IP电话的交换方式是分组交换,而传统电话则使用电路交换。分组交换技术使得IP电话在有信息时才传送数据,无信息时不传输数据,并且在使用压缩技术后,能使用远低于传统电话所需的网络带宽来实现传输,传统电话技术通常需要64kbit/s以上的带宽,而分组语音需要的带宽往往不到10kbit/s。IP电话都是智能终端,IP网络也是开放式网络,因此很容易快速推出新业务;而PSTN结构复杂、设备固定,因而补充新业务复杂。

三、VoIP的三种主流协议

鉴于VoIP的诸多优势,越来越多的个人、公司和科研机构开始发展和完善VoIP技术及相应标准。其中,最有影响力的两个组织为国际电联电信分会(ITU-T)和Internet工程任务组(IETF),这两个组织制定了不同的VOIP协议标准。目前在VoIP中使用较多的是音视频协议H.323、信令控制协议SIP、及媒体网关控制协议MGCP这三种主流协议,下表列出了这三种协议的简单比较

表2-1 VoIP主流协议比较

H.323 9

SIP MGCP 中国科学技术大学本科毕业论文

拟定组织 架构 设计对象 复杂度 扩展性 编码方式

ITU-T P2P ISDN及ATM 高 低 二进制编码 IETF P2P Internet 低 高 基于文本编码 IETF 主从式 Gateway 中 中 基于文本编码 在本文中,基于Android的VoIP语音通信客户端的实现是基于SIP协议的。

第二节 VoIP的关键技术

一、语音编码压缩技术

IP电话中的语音处理主要解决在IP网络环境中,在保证语音质量的前提下,尽可能地降低编码比特率,这就是语音压缩编码技术。本文VoIP客户端软件的安全性设计并未涉及到语音编码压缩技术,直接利用了开源协议栈的代码实现。

二、信令技术

在IP电话中,仅仅利用语音编码来保证语音质量是不够的,这也并非VoIP技术的难点。关键是分组语音应用要求某地的呼叫者连接至同样使用其拨号标准的语音代理,并将呼叫转发到可以访问其它语音代理的用户组,这就需要信令技术——一项鉴别呼叫方所要呼叫的对象和定位呼叫方在网络中的位置的技术。 信令技术被用以创建、修改和结束一个或多个参与者参加的会话进程,其目的是实现一个完整的呼叫过程。在分组语音网络中的信令有两种。一种是外部信令,存在于普通语音网络中的语音代理和该代理服务的语音设备,遵循电话标准。另一种信令在语音代理之间传输,称为内部信令。这种内部信令通过传输网络标准或语音代理本身的标准实现。

内部信令提供了连接控制和呼叫处理(或状态信息)两种功能。连接控制信令用于建立语音代理之间传输语音分组的联系或通道。呼叫处理(或状态信息)信令在语音代理之间发送呼叫状态,如振铃、忙音等。

在分组语音网络的传输模式中,内部信令最初是用于避免在网络中维持用来支持所有可能呼叫的永久连接,这样,该传输模式中的内部信令就隶属于分配带

10

中国科学技术大学本科毕业论文

宽固定的连接网络。对无连接网络中的分组语音应用而言,永久连接并不存在,进行语音业务时双方的语音代理只需要彼此定位。

在分组语音网络的转换模式中,信令的作用是通过拨号规则判断目标代理是否存在,如果存在就将分组流发送至该代理。但网络中往往存在多种语音代理,连接种类的多样性使得语音代理无法为每个语音业务建立通道。

单独的传输网络方案,如ATM、帧中继和IP都拥有独立的信用标准。ATM的标准为Q.931,帧中继分组语音信令为FRF.11。这些标准规定用户在不同的传输网络使用相对应的特殊分组语音代理。

在IP分组语音网络中采用的内部信令(包括连接和呼叫处理)标准主要有两种,即ITU-T提出的H.323协议和IETF制订的SIP协议。

11

中国科学技术大学本科毕业论文

第三章 SIP协议分析

第一节 SIP协议概述

一、SIP协议简介

信令控制协议SIP(Session Initiation Protocol)是由IETF提出的会话控制协议,负责建立和管理两个或多个用户间的会话连接,是IETF多媒体数据和控制体系中的核心协议。SIP借鉴了超文本传输协议(HTTP),简单邮件传输协议(SMTP)这两个互联网最成功的应用层协议,具有简单、开放、灵活的特点。

SIP协议可用来创建、修改以及终结多个参与者参加的多媒体会话进程,会话成员可以使用组播、单播或者两者结合的形式进行通信,同时也支持重定向服务,便于实现综合业务数字网,智能网和个人移动业务。

二、SIP起源与发展

SIP最早是由Henning Schulzrinne

和Mark handley于1996年所设计,当初设

计的目标之一是实现类似PSTN中提供呼叫处理功能的扩展集,来完成类似普通电话的各种操作:拨号、振铃、回铃音等。随着网络技术的发展,如今SIP已被用来提供跨越internet的高级电话业务。IP电话正在演变为一种正式的商业电话模式,SIP协议就是支持这种演进的协议簇中重要的一员。

SIP的发展大致可分为四个阶段:

1996年,SIP的概念首先被提出,但只能处理会话的建立,用户一旦加入会话,信令就会终止,因此也无法实现对会话的中间控制。

1999年3月,IETF的多方多媒体会晤控制工作组(mmusic)提出了RFC2543建议。

2000年7月,已经从mmusic中分离出来的SIP工作组发表了SIP的草案。 2002年6月,IETF的SIP工作组又发表了RFC3261建议,取代了RFC2543.

从SIP的发展来看,协议首次被提出的时候,受限于当时的网络环境及多媒体技术的不足,协议仅仅针对文本应用。随着技术的发展,并通过和IETF中其他工作组如IP电话工作组(iptel)、IP网中电话选路工作组(trip)等的配合,在SIP协议中大大加强了对多媒体通信的支持。而3GPP使用了SIP标准来支持语音和数据,SIP协议得到了进一步的发展。SIP可以对语音进行很好的优化,并且由于它的可编译性,使移动业务能更好地面对灵活性和多样性的挑战。

三、SIP协议功能

12

中国科学技术大学本科毕业论文

量语音通话,使其蒙受高额话费损失。同时,攻击者还能够向特定终端发送SIP控制包,将用户当前的语音呼叫重定位至不同的设备,使用户无法与呼叫目标通话。

(6)对通话双方话音实时内容的恶意篡改

基于IP话音数据的分组特性,只要跟踪并锁定通过H.323或SIP建立呼叫的双方,就能故意在通话过程中实时加入恶意话音数据而导致沟通双方产生误解,实现攻击目的。

(7)对数据网络的安全威胁

随着VoIP的逐步普及,以TCP/IP协议栈为基础的IP语音设备如各种IP语音终端和服务器也面临着病毒、蠕虫和木马程序的攻击。病毒不但会严重降低VoIP业务的性能,甚至会传播到数据网络的服务器,使数据网络遭到破坏。 3.解决方案

针对上述威胁有一系列的VoIP安全机制解决方案: (1)选择合适的VoIP设备并及时加强软硬件的安全升级

尽管不同厂家的VoIP产品体系构架和操作平台不尽相同,但很多还是有相应的技术来保障其产品抵御病毒侵袭的能力。例如,管理网段和用户的IP话音网段在物理上隔离的机制,尽可能少地将端口暴露在外网上。 (2)利用各种相关协议安全性机制提高VoIP的安全

不断完善加强VoIP相关协议的安全性机制是保障VoIP网络安全的根本。VoIP可采取两种方法通过其相关协议安全机制加强其安全性。一是在VoIP协议的内部建立安全机制,即制定其自身完善的安全协议,如H.323协议的H.235安全协议。二是采用外部协议的安全机制,如采用传输层安全(TLS)、IP安全性(IPSec)等安全协议。

(3)利用VPN技术增强VoIP的安全性

一般来说,防火墙、加密是信息安全最行之有效的方法。虚拟专网(VPN)技术综合了两者优点,在IP网和VoIP网关之间添加网关型VPN或在IP网和移动主机间设置主机型VPN来增强VoIP的安全性。

VPN是利用开放性网络作为信息传输的媒体,通过加密、认证、封装,以及密钥交换技术在公网上开辟一条隧道,保证合法用户之间的安全通信。利用VPN

43

中国科学技术大学本科毕业论文

的安全机制来保证VoIP的安全,不但可为用户提供安全的语音服务,而可充分利用网络设施,降低营运成本。

VPN的安全机制是通过隧道技术来实现的。利用隧道技术,将待传输的原始信息进行加密和协议封装处理,经过(PPTP、L2TP或IPSec)封装后的数据包,只有源端和目的端的用户能够对隧道中的嵌套信息进行解释和处理,而对其他用户是毫无意义的,从而加强了信息的安全性。 (4)将VoIP网络和数据传输网络隔离

将VoIP终端集中到一个独立的虚拟局域网(VLAN)中,同时对进入该网段的无关PC终端进行限制,把VoIP终端的IP地址与其媒体访问控制(MAC)地址绑定,同时配合VLAN划分,实现IP语音设备和数据网在逻辑上的隔离,从而起到隔离病毒和防止攻击的目的。

44

中国科学技术大学本科毕业论文

第六章系统测试

第一节测试环境

一、搭建测试环境

根据图6-1搭建VoIP测试环境:

图6-1 VoIP测试方案

本终端的测试方案是在局域网内搭建基于SIP的小型VoIP通讯系统进行通讯测试,需要的设备是三台PC机以及一个无线路由器。将三台PC机通过路由器组网。第一台PC机运行SIP服务器软件作为SIP服务器,同时也在这个PC机上运行winshark网络抓包软件以实时查看SIP消息。采用的SIP服务器软件是小灵呼SIPServer,这是国内第一款基于Windows平台的SIP服务器软件,支持RFC3261标准。另外两台台PC机上运行Android虚拟机,并在虚拟机上运行本文设计的VoIP软件,我们将这两台PC机上的VoIP语音终端简称为用户A和用户B。

二、服务器的设置

将第一台PC机(服务器端)的IP地址设置为192.168.1.3,接着进入小灵呼设置本地服务器地址与服务器SIP端口号。进入新建用户界面创建两个用户,只需设置用户名和密码即可。2个用户名分别设置为904和905,对应用户A和用户B,用户列表可以通过查询界面看到。

45

中国科学技术大学本科毕业论文

三、用户软件设置

首先将终端通过WIFI接入互联网,之后运行SIPDroid软件设置帐号、密码、SIP服务器地址、SIP端口号、传输协议。两个用户名分别设置为904和905。

四、winshark抓包软件设置

由于抓包软件能显示PC机器上所有网络数据包,显得比较杂乱,因此要设置数据包过滤,只显示我们想要的数据包,设置udp端口使winshark只显示SIP消息的数据包。

第二节测试结果

一、注册测试

测试环境搭建好后,VoIP软件会自动向服务器提交SIP注册请求,服务器响应请求,并返回200(OK)响应消息后,软件会提示注册成功,如图6-2所示

图6-2 终端注册成功

其中905是用户名,@后边是服务器地址,preferred表示服务器验证了帐号合法性,接受注册请求。如图6-3,通过winshark,我们可以看到服务器收到注册请求消息。

图6-3 winshark抓取SIP注册消息包

二、拨号测试

用户A终端拨打904呼叫用户B,可以看到如下界面:

46

中国科学技术大学本科毕业论文

图6-4 终端拨号界面

三、来电测试

用户B拨打905呼叫用户A,之后可以看到用户A显示如下界面:

图6-5 终端来电界面

此时用户A接听电话,则可以看到如下界面:

47

中国科学技术大学本科毕业论文

user agent client(A)

redirect server

INVITE liu@ieee.org

user agent server(B)

(search location server)

ACK 302

INVITE

200 OK

ACK

图3-7 重定向呼叫过程

23

中国科学技术大学本科毕业论文

第四节其它与SIP相结合的协议

一、SIP与其他协议的协作

SIP仅涉及会话信令部分,因此需要结合其它IETF协议来建立完善的多媒体结构。例如:预约网络资源的资源预留协议RSVP,传输实时数据并反馈服务质量的实时传输协议RTP,控制实时媒体流的传输的实时流协议RTSP,通过组播发布多媒体会话的会话通知协议SAP,描述多媒体会话的会话描述协议SDP,为公用交换电话网络提供网关控制的媒体网关控制协议MEGACO等。IETF多媒体数据及控制体系协议栈结构如图3-8所示。

图3-8 IETF多媒体数据及控制协议栈

那么,我们下面着重介绍实时传输协议(RTP)和会话描述协议(SDP)。

二、传输协议(RTP)

1.RTP协议介绍

实时传输协议(RTP)是最典型、最广泛的服务于流媒体的传输层协议,VoIP系统普遍采用RTP协议。

RTP是用于Internet上针对于一对一或者一对多的多媒体数据流的一种传输协议,其目的是提供时间信息和实现流同步。RTP通常使用UDP来传送数据,但也可以在TCP或ATM等其它协议上工作。 2.RTP协议特点

RTP协议有以下特点: (1)协议灵活性

24

中国科学技术大学本科毕业论文

RTP协议不实现传输层协议完整功能,也不保证数据实时传输,不支持资源预留,也不提供服务质量保障。此外,部分传输层协议功能(比如流量控制)被上移到应用层完成,既能简化处理又能提高效率。

(2)数据流和控制流分离

RTP协议的数据报文和控制报文使用不同端口,实现了灵活性和简单性。 (3)协议的可扩展性和适用性

RTP协议往往通过一个具体的应用进程实现,并且只提供协议框架,开发者可以根据应用的具体要求来充分扩展协议。

三、会话描述协议SDP

SDP协议的信息结构和功能

会话是指一组多媒体发送方和接收方以及双方发送的数据流,这些媒体流是多点到多点信息流,且只在规定的时间区段内存在。SDP协议定义了会话描述的统一格式,告之某会话的存在,并给出参与该会话所必须的信息,但是并不分配多播地址,也不协商编码方案商,而是由下层协议来实现这些功能。 除此之外,SDP还可创建专用会话,即对会话描述加密处理。

能够使用SDP协议的会话传送协议包括:SAP,SIP,RTSP,HTTP和使用MIME的E-mail。

第五节 SIP协议的优越性

一、H.323与SIP的比较

音视频协议H.323和信令控制协议SIP设计之初都是作为多媒体通信的应用层控制(信令)协议,目前一般用于IP电话。功能基本相同,也都是基于RTP实现媒体传输,但设计风格截然不同,H.323是由国际电联提出来的,初衷是把IP电话当作传统电话的升级,只是传输方式由电路交换变成了分组交换。而SIP侧重于将IP电话作为Internet上的一个应用,只是相比于其他应用(如FTP,E-mail等)增加了信令要求。H.323推出较早,采用传统电话信令模式,便于与现有的电话网互通,但相对复杂。

二、SIP协议的优点

25

中国科学技术大学本科毕业论文

SIP借鉴了其他Internet标准和协议的设计思想,有其突出的优点。 1.首先,SIP协议采用基于文本的UTF-8编码方式,易于用Java等语言实现并且易于调试,具有良好的扩展性和灵活性;而H.323采用基于ASN.1和压缩编码规则的二进制方法表示其消息。因此,SIP对以文本形式表示的消息的词法和语法分析就相对简单。

2.其次,SIP协议同步进行会话请求和媒体协商等过程,因此呼叫建立时间短,而在H.323中呼叫建立过程和进行媒体参数等协商的信令控制过程是分开进行的。

3.再次,H.323为实现补充业务定义了专门的协议,如 H.450.1、H.450.2和H.450.3等。而SIP只要充分利用和简单扩展已定义的头域,就能支持补充业务。此外,低层协议可以为SIP协议层提供分组或字节流业务,可靠或非可靠业务。 SIP协议层首选UDP协议,当不能使用UDP协议时,使用TCP协议。

4.最后,H.323进行集中式控制。尽管便于管理,但是、H.323中执行会议控制功能的多点控制单元在控制大型电话会议时很可能成为瓶颈。而SIP借鉴了其他的Internet协议,具有分布式的组播功能。

在我国的IP电话领域,采用H.323协议已是定论。但我们必须重视SIP简单灵活、分布式控制等优点。相信在不久的将来,SIP必将伴随软交换机(SoftSwitch)等技术的发展取代H.323成为IP领域内运用最广泛的信令控制协议,

26

中国科学技术大学本科毕业论文

第四章Android平台下SIP协议栈的实现

第一节 Android平台简介

Android是2007年11月5日Google宣布的基于Linux平台的开源手机操作系统,包括操作系统、中间件、用户界面和应用软件。

它采用了软件堆层架构,主要分为三部分:底层以Linux核心为基础,由c语言开发,只提供基本功能。中间层包括函数库Library和虚拟机Virtual Machine,由C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以java编写。Android操作系统的组件如图4-1所示

图4-1 Android操作系统组件

以下所有的应用程序都由一系列的服务和系统组成,包括:

一个可扩展的视图(Views )可以用来建立应用程序,包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons)以及一个可嵌入的web浏览器 内容管理器(Content Providers )使得应用程序的数据(如联系人数据库)可以相互访问或者共享。

一个资源管理器(Resource Manager)提供本地字符串,图形,和分层文件等非

27

中国科学技术大学本科毕业论文

代码资源的访问。

一个通知管理器(Notification Manager)使得状态栏中可以显示应用程序对客户的通知信息。

一个活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

Android 程序库一个被 Android 系统中各种组件使用的 C/C++ 库集,通过 Android 应用程序框架为开发者提供服务。

Android 运行库一个提供了JAVA编程语言核心库的大多数功能的核心库。

第二节 Android平台下SIP协议栈实现

一、SIP协议栈的选择

要开发一个完整的SIP协议栈是一件相当复杂的工程,所以我们希望在网络上找到开源协议栈的帮助。目前SIP开源协议栈主要有六种:OPAL、VOCAL、sipX、ReSIProcate、oSIP和SIPDroid,各有千秋,我们选择的是SIPdroid。

SIPdroid协议栈是按照RFC3261(SIP)标准的一个公开源码的免费协议栈,可以应用与任何支持POSIX的系统当中,所以在嵌入式系统中得到广泛的应用。SIPDroid软件架构非常先进,高内聚低耦合,层次分明,便于开发者自己定制新功能。SIPDroid支持接入方式,包括WIFI、3G、EGPRS、蓝牙。其程序框架如图4-2所示

图4-2 SIPDroid程序框架

1.界面层:显示界面,为用户提供各种操作的接口。

28

中国科学技术大学本科毕业论文

2.核心层:软件核心处理层,启动服务,处理各种UI时间,维持配置文件信息,保存全局属性变量。其中包括UserProfile(用户配置文件属性),UserAgent(用户事件代理)。SipDroidEngine(SIP核心处理,调度所有的UI的事件,参数设计以及服务的启动),RegisterAgent(注册服务代理)。

3.会话层:负责完成会话邀请、来电的业务处理。

4.服务层:提供所有SIP消息模型,完成SIP消息的处理流程。包括发送,接收,封装,解码等。

5.网络层:监听SIP消息并且交付给SIP层,将封装好的SIP消息交付给传输层进行传输。

6.传输层:负责数据的传输与控制,采用了TCP、UDP协议。

二、SipDroid数据传递流程

只有先了解SIPdroid的数据传递流程,才能明白它的工作机制。SIPDroid的数据流主要有SIP信令消息和会话音频数据两种,分别使用不同的传输渠道。如图4-3所示

29

中国科学技术大学本科毕业论文

图4-3 SIPDroid数据传输流程图

1.信令数据的传输

用户在UI层的操作(比如拨号、接听等),会广播给SIPdroid Engine类,SIPdroid Engine会根据操作类型交付给UserAgent类或者RegisterAgent类,处理后产生的不同请求由SIPDroid Provide类解读,并将产生的SIP消息封装成包,之后交付给Udp Transport类,Udp transport是个接口类,SIPdroid Provider与Udp Provider之间的接口,可以提供数据传送、监听Udp数据包和封装或分解Udp数据包等服务。Udp Provider会调用Udp Socket,将目标地址映射至Udp Socket,最终调用Java的Datagram Socket将数据传输出去。当收到来自网络的数据包时,数据传递顺序则相反。 2.RTP数据包的传输

30

中国科学技术大学本科毕业论文

RTP数据包的简要传输流程如下:当终端把采样到的音频数据压缩编码后需要封装成RTP包传输出去时,会先建立一个虚拟的RTP传送器RtpStreamSender和一个用于接收RTP数据包的虚拟RTP接收器RtpStreamReceiver,这两个继承于线程,在对话建立后就不断运行。RTPStreamSender会把音频数据压缩编码后交付UDPtransport(或TCPtransport)处理,UDPtransport之后会调用RtpSocket将其封装成RTP包,,读取目标IP地址与协商好的RTP端口号,将数据传输出去。当收到来自网络的RTP数据包时,数据传递顺序则相反。

三、注册流程代码

注册流程如图4-4所示:

图4-4 SIPDroid注册流程图

31

中国科学技术大学本科毕业论文

根据SIP协议内容,在以下几种情况之下需要重新发送注册请求:启动SIP服务时、注册有效期已过、系统重启、有效连接断开重连。当需要发送注册请求消息时,要先调用MessageFactory.createRegisterRequest函数构建请求消息,将用户帐号信息、注册服务器地址等必要信息填充进请求消息的各字段,然后建立一个用来监管本次信令流程的线程TransactionClient。TransactionClient会调用SIPProvider来发送请求消息,同时会监听注册服务器的响应消息。当收到响应消息后,将响应消息传递给上层的SIPProvider进行处理。

四、拨号流程代码

拨号流程如图4-5所示:

32

本文来源:https://www.bwwdw.com/article/u1df.html

Top