基于Android的IMS软终端系统的设计与实现
VIP免费
摘 要
IMS(IP Multimedia Subsystem) 是 由 3GPP(The 3rd Generation Partnership
Project)提出的一种网络融合技术,该技术将业务、控制与承载相分离,以融合、
开放为主要特征,是下一代互联网(NGN)的核心技术。由于发展时间较短,该技
术在理论和应用上,都还处于初级阶段。针对目前国内外对 IMS 应用技术研究
相对较少的现状,从应用的层面研究一种功能较为完整的 IMS 应用系统是有必
要的。
本文通过对 IMS 系统理论的剖析以及实际应用的需求分析,改进了常用的
协议栈解析方法,提出一种以哈希(Hash)算法为主要 SIP 协议解析算法、会话与
事务为主要处理机制的 IMS 协议栈(ANSIP),且在协议栈之外,设计了基于该
协议栈的终端应用——IMSandroid。该应用基于开源操作系统 Android,是结合
了IMS 系统的在网络多媒体方面中的特性而设计。IMSandroid 符合 IMS 标准,
采用分层结构,主要包括 IMS 协议栈(ANSIP)、上层界面和 JNI(Java 本地接口)三
部分。具体完成的工作如下:
首先,分析所设计的 IMS 终端需要完成的功能,提出以 IMS 协议栈为核心
的软件模式,并归纳出该模式中各个模块的详细需求。
在与传统协议栈对比并改进的基础上,提出以 Hash 算法为主要数据处理算
法、会话与事务为主要处理机制的协议栈软件模型,并在该模型的基础上实现一
个符合 IMS 标准的协议栈 ANSIP。
在Android NDK 的框架内,为 IMS 协议栈设计符合 Android 开发标准的应
用程序,实现 IMS 协议栈 ANSIP 接口的封装,为上层提供专用的 JNI 接口与
JAVA 类,并设计实现 Android SDK 规范的应用程序 IMSandroid。
经过模拟 IMS 环境的多次测试,测试的结果显示,IMSandroid 实现了作为
IMS 软终端所需具备的功能。通过对抓包工具 Winsock Expert 抓取的数据分析,
ANSIP 协议栈对 IMS 主要协议的解析也符合 IMS 系统对终端的要求,能较好地
完成 IMS 系统对用户设备(UE)功能和性能上需求,达到设计要求。
关键词:IP 多媒体子系统 Android SIP SDP 协议栈 NDK
ABSTRACT
Proposed by the 3GPP IMS is a network integration technology, which will be
operational, control and bearer separation to integration, opening up as the main
feature is the next generation Internet (NGN) core technology. As the development
time is shorter, the technology in theory and application, are still at an early stage.
Application for IMS technology at home and abroad on the status of a relatively
small, from the application of a function of the level of IMS application of a more
comprehensive system is necessary.
Through the analysis of the IMS system theory and practical application of the
needs analysis, this improved analytical methods commonly used protocol stack is
proposed in order to hash (Hash) algorithm as the main analytical methods to SIP
protocol stack (ANSIP), the protocol stack, but also designed based on the end
application of the protocol stack - IMSandroid. The application based on open source
operating system Android, a combination of IMS systems in the network of
multimedia design. IMSandroid meet the IMS system, using hierarchical structure,
mainly by the protocol stack (ANSIP), the upper interface and the JNI (Java Native
Interface) consists of three parts. All works done as follows:
First, analyzed the design of the function of IMS terminal needs to be done,
proposed to IMS as the core software stack model and the model summarized in the
detailed requirements of each module.
In contrast with the traditional protocol stack and improve, based on the Hash
algorithm proposed data processing algorithms as the core protocol stack software
model, and on the basis of the model to achieve a consistent standard IMS protocol
stack ANSIP;
Within the framework of the Android NDK, the IMS protocol stack designed to
meet the standard IMS development, package IMS protocol stack ANSIP, for the
upper JNI interface provides a dedicated JAVA classes, and design specifications to
achieve SDK application IMSandroid.
After several tests simulated IMS environment, from the test results, IMSandroid
IMS soft phone implemented as necessary for a function. Winsock through the tools
for its analysis of the data, core protocol stack for IMS system inline with the
analytical requirements of the terminal, can better complete the IMS system to user
equipment (UE) function and performance meet the design requirements.
Key Word: IMS Android, SIP, SDP, Protocol Stack, NDK
目 录
中文摘要
ABSTRACT
第一章 绪论.........................................................1
§1.1 设计背景与意义............................................1
§1.2 国内外发展现状及趋势......................................1
§1.3 论文的主要研究内容........................................3
第二章 IMS 软终端系统需求分析与技术准备.............................5
§2.1 系统需求分析...............................................5
§2.1.1 层次结构分析.........................................5
§2.1.2 层次模块需求分析.....................................6
§2.2 IMS 原理结构分析...........................................7
§2.2.1 用户信息和业务提供相关实体...........................7
§2.2.2 CSCF 功能相关实体....................................9
§2.2.3 媒体资源相关功能实体................................10
§2.2.4 与互通相关功能实体..................................10
§2.3 核心协议分析..............................................11
§2.3.1 SIP 协议............................................11
§2.3.2 SDP 协议............................................15
§2.3.3 RTP/RTCP 协议.......................................17
§2.4 会话控制分析..............................................19
§2.4.1 IMS 会话的发起......................................19
§2.4.2 IMS 用户的注册......................................20
第三章 协议栈设计与实现............................................22
§3.1 ANSIP 协议栈的设计........................................22
§3.1.1 ANSIP 设计原理......................................22
§3.1.2 数据存储结构体......................................22
§3.1.3 消息体数据存储......................................27
§3.1.4 Hash 算法...........................................27
§3.2 ANSIP 协议栈的实现........................................29
§3.2.1 ANSIP 的流程控制....................................30
§3.2.2 会话处理模块........................................30
§3.2.3 事务处理模块........................................32
§3.3 音频处理的实现...........................................33
§3.3.1 编码流程............................................33
§3.3.2 解码流程............................................34
§3.4 ANSIP 接口................................................35
§3.4.1 初始化函数..........................................35
§3.4.2 添加账户函数........................................35
§3.4.3 呼叫发起函数........................................35
§3.4.4 挂起函数与销毁函数..................................36
§3.5 Android.mk 规范...........................................36
§3.5.1 Android.mk 使用原则.................................36
§3.5.2 变量与宏函数........................................36
§3.5.3 编写 Android.mk 文件.................................37
第四章 IMSandroid 在 Andriod 上的实现...............................39
§4.1 Android 的 NDK框架........................................39
§4.2 JNI(Java 本地接口)实现....................................39
§4.2.1 com.android.ansip 类................................39
§4.2.2 JNI 头文件编写......................................40
§4.2.3 JNI 接口函数的实现..................................40
§4.3 IMS 应用程序开发..........................................41
§4.3.1 Android SDK.........................................41
§4.3.2 Android 应用程序组件................................42
§4.3.3 IMSandroid 用户界面.................................44
第五章 系统调试....................................................47
§5.1 调试环境.................................................47
§5.2 调试过程及数据结果.......................................48
§5.2.1 调试过程............................................48
§5.2.2 数据结果分析........................................49
§5.3 系统的扩展...............................................50
第六章 总结与展望..................................................52
§6.1 总结.....................................................52
§6.2 展望.....................................................53
附录...............................................................54
参考文献...........................................................62
第一章 绪论
第一章 绪论
§1.1 设计背景与意义
近年来,随着网络和终端设备的发展,智能手机已成为一种比较普及的通信
设备,而预装Andriod 操作系统的手机亦是其中发展最为迅速的一种。本文旨在设
计一种基于 Android 平台的IMS 软终端系统,充分利用Android 作为网络操作系
统 的 网 络 优势 , 在 各 种 不 同 规 范 、 不 同 制 式 的 无 线 网 络 (GPRS/
EDGE 、3G、4G、WLAN 等)中,提供统一的 IMS 服务,对于 IMS 系统的推广与发
展有着重要的意义。
在传统的通信技术中,网络数据的交换是基于电路交换的。传统电路域交换
系统(CS)是电路集成的、相对封闭的硬件结构系统。随着网络与通信的发展,已经
无法快速满足日益多样化的用户需求,因而也阻碍了全网业务部署的发展。而电
路域交换的这种不足,在下一代互联网(NGN)快速发展的今天,也越发显得突出
[1]。为了解决这种不足,NGN 架构采用分布的系统结构,将控制与承载相互分离,
不仅在整体组网方面降低了布局成本,整个网络的升级难度也有所降低,这对加
快新业务、应用的开发和部署也是非常有利的,因为其快速实现乐低成本、且全网
覆盖统一业务的网络结构[2,3]。这种设计不仅仅只是简化了网络层次结构,还提高
了网络资源的有效利用率。与传统网络的不同还在于,减少了电路交换中继互联
的复杂性,并且降低了承载网的成本。
而在商业领域,随着各运营商在实践领域向着全业务经营的方向不断迈进,
也促使学术界越来越深入的研究多张网络之间的融合问题。运营商可以通过移动
通信网、传统固定电话网、宽带接入网和 WLAN(无线局域网)等多种网络为用户提
供多种服务(如话音和数据业务),在未以“网络融合”的概念处理以上多种网络
之前,原理不同、功能各异、相互独立的接入方式之间就不可避免地形成竞争关系
因此,下一代互联网中,从多种接入方式的协调性来考虑,也迫切需要一种独立
于接入层的控制技术,通过统一的网络系统,将目前存在的各种不同的网络接入
方式及其资源高度整合,为全网络提供统一的多媒体业务,通过互补,最终形成
一个形式统一、数据交换自由的网络。
IMS 技术就在这种背景下形成和发展起来。IMS 为未来的网络应用,特别是
多媒体应用,提供一个通用的业务平台,是向ALL IP Network(全IP 网络)业务提
供体系演进的重要一步。
§1.2 国内外发展现状及趋势
国外对 IMS 的研究与国内相比,不管在理论还是应用实践上,均有一定的领
先优势。目前,研究基于 IMS 网络融合的国际标准组织主要有三个,分别是:
3GPP(The 3rd Generation Partnership Project)、欧洲电信标准化协会(ETSI TISPAN)
以及 ITU-T 下一代网络焦点研究组(FGNGN)。而这当中,3GPP 主要从移动网络的
角度对IMS 进行研究,而 TISPAN 则将主攻方向放在固定通信方面,也因此,两
者之间标准制订的协调性影响了整个标准化的进程,从而也在很大程度上影响着
设备的成熟和整个产业链的发展[2]。
3GPP 是IMS 网络研究中最早的机构之一,该组织目前已在网络框架、QoS(服
务质量)、网络安全、网络计费以及与其它类型网络的互联互通方面,都制定了一
系列的规范和标准。不过,由于各方面原因,在 SIP 协议和 BICC/IUSP 协议的映
射方面,3GPP 却始终没有一个完整的标准。与此同时,ETSI TISPAN 也在制订
1
基于 Android 的 IMS 软终端系统的设计与实现
NGN 相关规范,该组织的发行版本被命名为“TISPAN-NGN Release 1”,并在后
续正式发行版本中进行完善。TISPAN 和3GPP 的合作在标准的制定上,有大量的
学术交流,甚至成立了一个专门的联合工作组来研究“NGN-IMS”的相关问题。
为了与 3GPP 的架构兼容,TISPAN-NGN 重用了 IMS 的体系结构,但是,并不是
简单的重定义,它对核心功能单元 CSCF(呼叫/会话控制功能)和用户终端的功能,
重新制定了大量的规范,以对原有的 3GPP 标准定义的 IMS 的网络结构进行架构
和功能上的扩展。TISPAN 工作组的研究领域还涉及到 IMS 的网络安全、QoS(服务
质量)等。 国外还有一个比较重要的研究机构,那就是ITU-TFGNGN,该组织的主
要研究对象是NGN,但其研究领域涉及IMS 的业务及网络框架。ITU-TFGNGN 以
3GPP 发布的第六个版本中定义的业务将作为其业务研究的起点,与 3GPP 不同的
是,ITU-TFGNGN 更注重业务的生成能力。ITU-TFGNGN 的研究还首次包含IMS
的不同网络接入方式的融合技术:ITU-TFGNGN 率先提出了一个假设,即NGN-
IMS 的框架结构本质上应该是与接入无关的,因此在技术的实现上,必须支持当
前各种主流的网络接入技术,而不管这些方式是有线接入还是无线网络;而对于
SIP 会话的定义,ITU-TFGNGN 也以 IMS 为基础开始研究,这部分也或多或少地
参考了3GPP 的相关的协议规范[2~4]。
与国外相比,国内的 IMS 研究起步较晚。目前,国内对 IMS 应用的重心在于
移动运营商在下一代网络中对 IMS 网络的部署以及为已有的移动网络提供更多的
多媒体应用。相比较而言,固网运营商则更看重企业用户的需求,包括为其提供
融合企业内通信以及为将来的宽带用户(如光纤宽带用户)提供基于 IP 网络的
VoIP(Voice over IP)服务。这种在应用关注点上的显著差异,使得国内在 IMS 理论
上的研究也参差不齐。尽管国内主要的运营商都已完成了 IMS 实验组网的测试,
但由于并没有一个统一的 IMS 标准,在通信设备方面也很难做到大规模商用部署,
而新业务在推广方面本身就有所欠缺,因此,尽管学术界以及设备厂商都看好
IMS 系统,但当时主要运营商们最终还是保守的观望,以等待 IMS 系统大规模组
网的时机成熟。最近几年,为了更好地推动对多网络融合的 IMS 标准的研究和制
定,中国通信标准化协也开始了相关的“统一 IMS”的研究。该项研究由其下属
的网络与交换技术工作委员会(TC3)以及无线通信技术工作委员会(TC5)共同承担。
目前已经在网络架构上取得突破性进展。工业与信息产业部于 2010 年5月颁布了
《IP 多媒体子系统(IMS)工程设计暂行规定》,该规定是我国颁布的第一个 IMS 国
家标准,且于 2010 年10 月1日正式生效。这标志着我国正式将 IMS(乃至NGN)提
升到国家层面。该规定由中国移动通信集团设计院起草,多家国内高校、科研机构
以及商业公司参与规划制定,也是国内对于 IMS 技术的最新研究成果[5]。
§1.3 论文的主要研究内容
IMS 软终端必须符合相关的标准。因此,论文研究了最新的国际标准以及国
家标准草案(国内还没有正式的 IMS 标准),详细地分析和研究了 IMS 的基本原理
及其核心内容,包括 IMS 的应用、在下一代互联网中的地位及应用、IMS 中的核心
协议(如SIP 协议、SDP 协议、RTP/RTCP 协议等)以及 IMS 在实际的工作中的会话
控制等相关内容。在理论分析的基础上,通过优化协议栈的实现方法,采用 Hash
算法处理数据,提出将会话与事务相分离的协议栈处理机制,以此设计并实现了
一个 IMS 应用系统——IMSandroid。该 IMS 应用是基于 ANSIP 协议栈,其实现是
基 于 C语言,因此后半部 分 使用 到 Android 开发机制中的另一种框架
NDK。Andriod 的NDK 是用于开发非Java 程序的开发套件,使得 Andriod 的开发
2
摘要:
展开>>
收起<<
摘要IMS(IPMultimediaSubsystem)是由3GPP(The3rdGenerationPartnershipProject)提出的一种网络融合技术,该技术将业务、控制与承载相分离,以融合、开放为主要特征,是下一代互联网(NGN)的核心技术。由于发展时间较短,该技术在理论和应用上,都还处于初级阶段。针对目前国内外对IMS应用技术研究相对较少的现状,从应用的层面研究一种功能较为完整的IMS应用系统是有必要的。本文通过对IMS系统理论的剖析以及实际应用的需求分析,改进了常用的协议栈解析方法,提出一种以哈希(Hash)算法为主要SIP协议解融法、会话与事务为主要处理机制的IMS协议栈(...
相关推荐
作者:陈辉
分类:高等教育资料
价格:15积分
属性:59 页
大小:783KB
格式:DOC
时间:2024-11-19