fccjxxw.com
非常超级学习网 学习超级帮手
当前位置:首页 >> >>

基于PDA的多媒体会晤系统


http://www.paper.edu.cn

基于 PDA 的多媒体会晤系统
邹钰,邓芳
北京邮电大学计算机科学与技术学院,北京(100876)
E-mail:hopkings2008@gmail.com

摘 要:本文在分析 sip 协议,sip 的扩展协议及嵌入式系统的基础上,提出了一种可以用 于 pda 等 arm 体系结构的移动终端上的多媒体会晤系统的框架, 并给出了一个相应的系统模 型。 关键词:SIP,ARM 体系结构,嵌入式系统,PDA

1. 引言
当今,随着移动通信技术的不断发展,手机,pda等各种移动终端也能够通过如 CDMA1X,GPRS,WLAN等接入方式访问互联网上的资源。而多媒体资源在日常生活中起 着越来越重要的作用,视频,音频等多媒体网络应用给人们带来了更多更直观的信息,因此 怎样使用户利用pda、手机等移动终端通过互联网更方便更有效的共享多媒体资源是当前研 究的重要问题。 SIP的出现,使各种移动终端能够很好的漫游于各种网络之间,并且能够更有效的访问 IP网络中的资源。 基于PDA的多媒体会晤系统为移动终端访问互联网上的多媒体资源提供了 一种平台。

2. SIP协议及嵌入式系统简介
2. 1 SIP协议简介
SIP(Session initial protocol)会话初始化协议[2],是一种新的应用层的信令控制协议。 它可以用于会话的建立,连接与释放,如建立因特网电话间的连接,请求和分发存在信息 (Presence Information[4])和即时消息(Instant Message[3]) 利用 SIP 协议能够使通信对方 。 加入已存在的会话当中。并且可以在当前的会话当中任意添加与删除媒体(Media[1]) 由 。 于 SIP 协议是利用类似域名的机制而不是 IP 地址与对方进行通信,因此 SIP 对于用户移动 性的支持非常好, 不管用户所属网络的实际位置在哪, 只要将类似于域名的用户标识符向相 应的代理服务器进行注册,即可与对方发起会话的连接,协商媒体的各个参数(如 IP 地址, 端口号等) ,从而与对方进行通信[1]。

2. 2 嵌入式系统简介
PDA 等移动终端属于嵌入式手持设备。嵌入式系统一般由嵌入式微处理器、外围硬件设 备、 嵌入式操作系统以及用户的应用程序等四个部分组成。 由于嵌入式微处理器的体系结构 和普通计算机的体系结构不同, 因此, 为普通计算机开发的程序不能直接运行在嵌入式设备 上,一般必须针对特定的系统架构进行适当的裁减和编译,才能运行在嵌入式设备上。 嵌入式系统和普通的计算机系统有着很大的差异。首先,在处理器的性能上,嵌入式设 备的处理器相对于普通计算机性能比较低,但是功耗低,耗电量小,体积小,携带方便。其 次,嵌入式系统相对于普通计算机其存储容量小,但是要求存储速度快。 目前嵌入式操作系统分为两大阵营,以 linux 为代表的如 UC/OS-II,linux familar 等。另 一个是以 windows 为代表的如 WindowsCE。 由于 linux 的开放性, 对各种硬件设备的支持比 较好,性能稳定,具有可伸缩性,支持 arm 体系结构,所以本系统平台选择基于 linux 的嵌
-1-

http://www.paper.edu.cn

入式操作系统。Linux familiar 是专门针对手持设备的嵌入式 linux 操作系统,其系统结构小 巧,性能稳定,扩展性好的优点,而且代码开源,开发者可以根据需要扩充其功能。

3. 基于PDA的多媒体会晤系统设计
随着网络技术的不断发展,人们可以随时随地的通过无线网络和互联网相互通信,而 PDA 这种移动手持设备给人们之间的相互通信带来了很多方便。基于 PDA 的多媒体系统可 以使人们更方便的访问网络上的各种资源,进行诸如即时消息,文本传输,存在消息的接收 和发送等操作,为人们的日常生活提供了便利。

3. 1 多媒体会晤系统的结构设计
多媒体会晤系统基于 SIP 协议,主要分为用户界面模块,用户输入模块,SIP 协议栈模 块,消息发送模块和消息接收模块。其中用户界面模块主要由好友存在信息子模块,好友列 表子模块组成;用户输入模块主要由即时消息子模块,文件传输子模块,多媒体游戏子模块 组成。此系统的总体架构如下图所示:

好友存在信息

好友列表

即时消 息

文件传 输

多媒体 游戏

用户界面

用户输入

SIP 协议栈

消息发送

消息接收

图1

多媒体会晤系统总体架构图

在各个模块当中,SIP 协议栈模块是核心模块,主要负责 SIP 消息的解析和处理,并和 消息发送模块,消息接收模块相互配合,实现消息的接收和发送。好友存在信息子模块和好 友列表子模块主要负责好友存在信息的维护,并将好友的各种存在信息提供给用户界面模 块,便于向用户展示好友的存在状态,如上线、下线等信息。用户输入模块主要包括即时消 息子模块,文本传输子模块和多媒体游戏子模块,如果用户需要,可对其进行相应的扩展, 以更好的满足用户的需求。 SIP 协议栈模块主要分为以下几个子模块:用户代理子模块,事务处理子模块,消息封 装与解析子模块,传输子模块。如下图所示:

-2-

http://www.paper.edu.cn

SIP 协议栈模块

事务用户层模块

消息封装

事务处理模块

消息解析

传输模块

图 2

多媒体会晤系统 SIP 协议栈模块组成图

其中事务用户层子模块主要负责与用户界面模块和用户输入模块相交互。 事务处理子模 块是 SIP 协议栈模块的核心模块,主要负责事务状态机的处理,协调各个事务的执行。消息 封装和消息解析子模块主要负责 SIP 消息的封装和解析。 传输子模块主要负责与消息发送模 块和消息接收模块的交互,进行消息的发送和接收。

3. 2 多媒体会晤系统的SIP信令处理
SIP 协议是应用层的信令控制协议,SIP 信令的各种交互是通过 SIP 代理服务器和 SIP 存在服务器实现的。代理服务器主要用于转发 SIP 信令,存在服务器主要用于记录当前用户 的各种存在信息。本系统中,用户的存在信息主要利用 SIMPLE 协议来实现的。 SIMPLE 协议大体上分为两类,一类用于即时消息,一类用于存在消息。 MESSAGE 消息[3] MESSAGE 消息主要用于即时消息的接收和分发。MESSAGE 消息的各式如下 MESSAGE sip:tom@domain.com SIP/2.0 Via: SIP/2.0/TCP tomcenter.domain.com;branch=z9hG4bK775abcdef Max-Forwards: 70 From: sip:tom@domain.com;tag=1234 To: sip:tom@domain.com Call-ID: 1234567@1.2.3.4 CSeq: 1 MESSAGE Content-Type: text/plain Content-Length: 18

PUBLISH 消息[4] PUBLISH 消息属于存在信息控制消息,用来发布用户当前的存在信息。PUBLISH 消息
-3-

http://www.paper.edu.cn

的格式如下:

PUBLISH sip:tom@domain.com SIP/2.0 Via:SIP/2.0.UDP 2001:250:f007:130::777;branch=z9hG4bKabcdefg To:<sip:tom@domain.com> From:<sip:tom@domain.com> Call-ID:1010@domain.com Cseq:1 PUBLISH Expires:180 Event:presence Contact:<sip:tom@domain.com> Content-Type:application/xpidf+xml Content-length: //the length of the body Message Body: //the body in xml format

SUBSCRIBE 消息[4] SUBSCRIBE 消息属于存在信息控制消息,用来订阅存在信息。SUBSCRIBE 消息的格 式如下:

SUBSCRIBE sip:you_want@domain.com SIP/2.0 Via: SIP/2.0/UDP tom.domain.com;branch=z9hG4bKabcdefg To: <sip:you_want@domain.com> From: <sip:tom@domain.com>;tag=1234 Call-ID: 12345@domain.com CSeq: 1 SUBSCRIBE Max-Forwards: 70 Event: presence Accept: application/pidf+xml Contact: <sip:tom@domain.com> Expires: 600 Content-Length: 0

NOTIFY 消息[4] NOTIFY 消息属于存在信息的控制消息,主要是服务器用来向订阅者发送所订阅的信 息,NOTIFY 消息的格式如下:

-4-

http://www.paper.edu.cn

NOTIFY sip:tom@domain.com SIP/2.0 Via: SIP/2.0/UDP domain.com;branch=z9hG4bK3566abc From: <sip:you_want@domain.com>;tag=2345 To: <sip:tom@domain.com>;tag=3456 Call-ID: 3010@domain.com Event: presence Subscription-State: active;expires=400 Max-Forwards: 70 CSeq: 2 NOTIFY Contact: sip:domain.com Content-Type: application/pidf+xml Content-Length: the length of body

REGISTER 消息[2] REGISTER 消息属于存在信息的控制消息,当前用户可用它来向服务器注册自己当前 的 IP 地址,REIGSTER 消息的格式如下:

REGISTER sip:domain.com SIP/2.0 Via: SIP/2.0/UDP [2001:250:f007:130::7777]:5060;branch=z9hG4bK234567 Max-Forwards: 70 To: <sip:tom@domain.com> From:<sip:tom@domain.com>;tag=123456 Call-ID: 3010@domain.com CSeq: 1 REGISTER Contact: <sip:tom@domain.com> Content-Length: 0

利用 SIMPLE 协议, 用户就可以通过 SIP 代理服务器与通信对方发起会话请求, 从而建 立会话的连接,进行各种媒体通信。本系中,用于会话建立所使用的各种信令的交互过程 如下图所示,代理服务器与存在服务器的具体交互流程没有详细标出。

-5-

http://www.paper.edu.cn

Presence Server

User Agent1

Proxy Server

User Agent2

REGISTER 200OK PUBLISH 200OK SUBSCRIBE 200OK NOTIFY 200OK MESSAGE MESSAGE 200OK

200OK INVITE

INVITE 180Ring 200OK

180Ring 200OK

MEDIA SESSION

BYE 200OK

图3

基于 PDA 的多媒体会晤系统 SIP 信令流程图

-6-

http://www.paper.edu.cn

4. 基于PDA的多媒体会晤系统的实现
基 于 PDA 的 多 媒 体 会 晤 系 统 运 行 于 Linux Familiar 操 作 系 统 之 上 , 采 用 基 于 QT-Embedded 的图形用户界面,使用 GCC-3.2.3 交叉编译器。 具体的开发过程主要分为三步进行,如下图所示

建立交叉编译环 境

编写源代码

交叉编译源代码 生成 PDA 上的 可执行程序

图4

基于 PDA 的多媒体会晤系统开发流程图

其中交叉编译环境的建立借助 GNU 提供的工具链来进行。GNU 的工具链主要包括: gcc , glibc , binutility 等 。 交 叉 编 译 环 境 的 建 立 的 具 体 步 骤 可 参 照 官 方 网 站 (http://www.gnu.org/software/osip)提供的相关资料进行。 由于 PDA 的多媒体会晤系统主要由 SIP 消息处理模块和用户访问模块组成,因此,此 系统的具体实现也主要围绕着这两大模块展开。

4. 1 SIP协议栈
目前有很多开源的 SIP 协议栈, 考虑到运行速度和可移植性这两方面因素, 选择 OSIP[5] 作为此系统的协议栈。OSIP[5]是由 ANSI C 写的开源协议栈,在运行速度上和可移植方面都 表现得非常优秀。但是 OSIP[5]协议栈只提供了 SIP 消息的解析功能和事务处理机制,因此 SIP 协议栈的其他功能必须由开发者自己搭建,这在一定程度上为开发者也提供了更灵活的 应用方式。 利用 OSIP[5]协议栈,根据本系统的结构设计可以搭建 SIP 协议栈模块中的事务处理模 块,消息封装和消息解析模块。传输层模块,事务用户层模块,消息发送和消息接收模块都 需要自己搭建,这些均采用 ANSI C 来完成。其中消息发送模块和消息接收模块主要采用 UDP 的方式进行传输,由于 UDP 是不可靠的数据报传输,因此上层应用需要有相应的错误 处理机制,这个机制可以由 SIP 协议栈来控制,如果 SIP 协议栈发送的消息在一定时间内没 有响应的话, 那么会再次通知传输层模块, 传输层模块会调用消息发送模块重传上次所发的 消息,直到超过规定的时间为止。

4. 2 用户界面
此多媒体会晤系统运行于 Linux Familiar 这个操作系统之上,对于用户界面部分主要利 用 QT-Embedded 库来实现。QT-Embedded 库很好的支持了多种平台的图形显示,具有良好 的跨平台性。多媒体会晤系统的用户界面部分主要借助 QT-Embedded 库来实现。 首先,利用 QT-DESIGNER 设计好图形界面,不包含功能部分。 其次,利用 uic 工具分离出.h 头文件和.cpp 文件。并在此基础上添加功能模块。 最后,使用交叉编译工具,结合 QT-Embedded 库交叉编译上述文件,生成可执行文件。

-7-

http://www.paper.edu.cn

5. 总结
本文介绍了基于 PDA 多媒体会晤系统的设计并给出了一个具体的实现。 随着无线网络技 术和互联网技术的不断发展,使各种移动终端访问网络的资源成为可能。本文介绍的基于 PDA 的多媒体会晤系统可以更好的为用户服务,使移动用户之间通过互联网更有效的通信。

参考文献
[1] [2] [3] [4] [5] Alan B. Johnston。SIP: Understanding the Session Initiation Protocol(Second Edition) ,2004 J. Rosenberg.G. Camarillo.A. Johnston.RFC3261,2002 B. Campbell, Ed.H. Schulzrinne.D. Gurle.RFC3428,2002 J. Rosenberg.RFC3856,2004 http://www.gnu.org/software/osip/

A Mulitmedia Meeting System Based On PDA
Zou Yu,Deng Fang
Institute of computer,Beijing University of Posts and Telecommunications,Beijing (100876) Abstract
This article provides a multimedia communication system archetecture based on PDA and gives a correspondent system model after analysing the knowledge about SIP protocol,SIP extention protocol and embedded system. Keywords:SIP,Embedded,System,PDA

-8-


更多相关文章:

非常超级学习网 fccjxxw.com

copyright ©right 2010-2021。
非常超级学习网内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图