《基于SIP的嵌入式终端软件系统.pdf》由会员分享,可在线阅读,更多相关《基于SIP的嵌入式终端软件系统.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、http:/ 1基于 SIP 的嵌入式终端软件系统 任昱光 北京邮电大学电信工程学院 北京(100876)Email: 摘要:摘要:本文设计了一种基于 sip 的软电话嵌入式终端的软件系统。该终端的操作系统、图形界面、协议栈用 uclinux,minigui,exosip,mediastreamer,ORTP 等开源软件、协议栈来实现。该系统具有易于实现,可移植性好,稳定性好等优点。关键词:关键词:sip 协议栈、uclinux、minigui。1.引 言 1.引 言 近年来随着开源事业的不断推进,各种开源软件层出不穷,这就降低了各种应用软件开发的难度和费用。本文设计出一种使用 uclinux
2、、minigui、exosip、mediastreamer、ORTP、osip2 等开源软件、协议栈来实现的简单的 VOIP 嵌入式智能终端软件系统。2.SIP 简介 2.SIP 简介 SIP(Session Initiation Protocol,会话发起协议),是由 IETF 于 1999 年提出的一个基于 IP 网络中实现实时通信应用的一种信令控制协议,用于创建、修改和释放一个或多个参与者的会话1。这些会话可以是 Internet 多媒体会议、IP 电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。在 SIP中,系统采用了
3、因特网常用的客户机/服务器结构,由用户代理和服务器两大部分组成。其中用户代理又分为用户代理客户(UAC:UserAgentClient)和用户代理服务器(UAS:UserAgent Server)两种5。UAC 用来发起会话请求,UAS 用来接受并响应会话请求。这两者只是逻辑上的功能,实际上网络终端应同时具备这两种功能,既能发起会话,又能接受、相应会话。服务器分为代理服务器(Proxy Server)、重定向服务器(Redirected Server)和注册服务器(Registrar)。sip 标准的信令信息是基于文本的,采用符合 iso10646 的 utf-8 编码6。SIP 系统的构造结
4、构相对灵活,终端和服务器的实现也相对容易成本也较低,从网络运营商的角度考虑,构造一个大规模视频通讯网络,采用 sip 系统的成本要廉价许多,而且也更具有可实现性。SIP 信令协议中有以下特点:SIP 消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。SIP 如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNS、RTP、RSVP 等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。对 SIP 的扩充易于定义,可由服
5、务提供商在新的应用中添加,不会损坏网络。网络中基于 SIP 的旧设备不会妨碍基于 SIP 的新服务。例如,如果旧 SIP 实施不支持新的 SIP 应用所用的方法/标头,则会将其忽略。SIP 独立于传输层。因此,底层传输可以是采用 ATM 的 IP。SIP 使用用户数据报协议(UDP)以及传输控制协议(TCP),将独立于底层基础设施的用户灵活地连接起来。SIP 支持多设备 2功能调整和协商。如果服务或会话启动了视频和语音,则仍然可以将语音传输到不支持视频的设备,也可以使用其他设备功能,如单向视频流传输功能。3.VOIP 智能终端简介 3.VOIP 智能终端简介 电话一直使人们最重要的远程通讯手段
6、。但是随着科学技术的进步和人民生活水平的提高,传统的语音电话已经无法满足人们的通讯需求。人们希望在进行语音通讯的同时,可以看到对方的容貌,并且可以进行其它类型的数据通信。基于电路交换的电信网络已经无法满足人们对许多数据业务的日益增长的需要,于是人们尝试在基于 TCP/IP 协议的数据通信网上传输诸如语音、图像等多媒体业务。这较之传统的电话网,后者具有成本低、利润高、价格便宜、易推出新的业务等诸多优势。因此,传统电话向多媒体终端的转换已是大势所趋。VoIP 是 Voice over Internet Protocol 的缩写,指的是将模拟的声音讯号经过压缩与封包之后,以数据封包的形式在 IP 网
7、络的环境进行语音讯号的传输2。VoIP 的基本原理是:通过语音的压缩算法对语音数据编码进行压缩处理,然后把这些语音数据按 TCP/IP 标准进行打包,经过 IP 网络把数据包送至接收地,再把这些语音数据包串起来,经过解压处理后,恢复成原来的语音信号,从而达到由互联网传送语音的目的。VoIP 多媒体终端近年来随着由于传输技术的提高和宽带网络的普及,以其优良的影音品质和强大的功能,备受人们关注。SIP 协议以其自身具备的诸多优点成为终端 IP 信令控制协议中的首选。基于 SIP 的 VoIP 多媒体智能终端可以提供移动桌面、同时振铃、依次振铃等业务,大大提高了企业和个人通信的效率,并显著地降低企业
8、在管理内部通信网络的成本。在多媒体通信业务方面,可以提供即时消息、同址浏览、协同工作、流媒体话音服务等业务。在个性化业务方面,可以提供重定向、个性化问候、呼叫屏蔽、姓名地址录、点击呼叫、通话日志、主叫号码显示、主叫图像显示等业务从而大大提高了客户在呼叫处理方面的灵活性。4.智能终端系统架构设计 4.智能终端系统架构设计 本文设计出一种使用 uclinux、minigui、exosip、mediastreamer、ORTP 等开源软件、协议栈来实现的简单的 VOIP 嵌入式智能终端软件系统。该系统使用 SIP 协议作为信令控制协议,能实现基本的语音通话,视频通话,视频会议等功能。由于该智能终端的
9、操作系统使用的 uclinux 是从 linux 发展而来,故该系统稍加给进即可用于 linux 系统之上。由于嵌入式终端的处理速度和各种资源有限,因此在系统设计上要综合考虑。首先要保证系统的稳定性,其次要节省资源,还要尽量提高运行效率。基于以上考虑,本文将智能终端软件系统设计为操作系统模块(uclinux)、用户界面模块(minigui)、客户端控制模块、协议栈模块。其中协议栈模块又包括 exosip 模块、mediastreamer 模块、ORTP 模块、osip2模块。各模块之间的调用关系见下图。http:/ 3 图 1 系统各模块调用关系图 5.系统各模块功能设计 5.系统各模块功能设
10、计 智能终端软件系统由操作系统模块(uclinux)、用户界面模块(minigui)、客户端控制模块、协议栈模块四个模块组成。其中协议栈模块又包括 exosip 模块、mediastreamer 模块、ORTP 模块。各模块功能描述如下:(1)操作系统模块:本模块控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作,为用户提供一个使用方便可扩展的工作环境,从而起到连接计算机和用户的接口作用。uclinux 是 micro-conrol-linux 的缩写,它是针对嵌入式处理器的特点设计的一种操作系统,具有内嵌网络协议、支持多种文件系统。最初的 uclinux 基于 Linu
11、x 2.0 内核。随着系统的日益改进,支持的内核版本从 2.0、2.2、2.4 一直到现在最新的 2.6。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式 Linux,其编译后目标文件可控制在几百 k 量级。uclinux 本身没有关注实时问题,但 uclinux 可以使用 RT-Linux的 patch,来增强 uclinux 的实时性。RT-Linux 执行管理器把普通 Linux 的内核当成一个任务运行,同时还管理了实时进程。uclinux 是专门针对没有 MMU 的处理器而设计的,采用实存储器管理策略,通过地址总线对物理内存进行直接访问。所有程序中访问的地址都是实际的物理地
12、址,所有的进程都在一个运行空间中运行(包括内核进程),在操作系统不提供保护的情况下必需小心设计程序和数据空间,以免引起应用程序进程甚至是内核的崩溃。http:/ 4(2)用户界面模块:该模块负责用户与系统的交互,是用户与系统交互的平台。用户通过该模块来操作和使用软件。该模块使用 minigui 作为用户图形界面支持系统。MiniGUI 是一个非常适合于实时嵌入式产品的高效、可靠、可定制、小巧灵活的图形用户界面支持系统3。和其它针对嵌入式产品的图形系统相比,MiniGUI 具有占用资源少性,可配置,靠性好,跨操作系统等技术优势。本终端应用于嵌入式软件开发,对功能的剪裁同样有需求。基于目前 VOI
13、P 软终端支持的音视频编解码的情况,考虑兼容性及对终端大小的需求,把代码中关于语音编解码的方法进行了剪裁。去掉了对以下编解码的支持:GSM、iLBC、1015、speex8000、speex16000。同时去掉了原有的 GNOME 界面支持及视频输出需要使用的 SDL 库,因此终端达到了精巧的目的,更使用于嵌入式终端的开发。用户界面模块的具体功能包括:1)通话相关功能按钮(输入对方 URI、呼叫、挂机、显示状态信息);2)配置界面及选项(语音视频的编解码方法,可登陆的服务器列表及要登陆新服务器的置);3)登陆(密码输入)。如果不能正确输入密码,则一直停留在登录界面;4)视频图像的输出(通话时同
14、时显示本地和远端的视频图像信息);(3)客户端控制模块:该模块根据用户界面模块的各种请求(呼叫、挂机、显示状态信息),协调调度各协议栈,使各协议栈有序工作,实现各种通信请求。客户端控制模块内部负责系统初始化的工作,并进入一个循环结构,这个循环结构定时查询来自网络的 sip 事务,根据事务的类型进行相应得处理。同时客户端模块还要处理用户界面的请求(呼叫、挂机、显示状态信息)。客户端处理模块主程序流程图如下:图 2 主程序流程图 http:/ 5(4)协议栈模块:该模块主要实现 SIP 协议。该模块又包括 exosip 模块、mediastreamer模块、ORTP 模块。exosip 是 Osi
15、p2 的一个扩展协议集,它部分封装了 Osip2 协议栈(Osip2是一个开放源代码的 sip 协议栈),使得它更容易被使用。如 exosip 增加了 call、dialog、registration、subscription 等过程的解析,使得实用性更强。它实现了作为单个 sip 终端的大部分功能,如 register、call、subscription 等。exosip 使用 UDP socket 套接字实现底层 sip 协议的接收/发送,并且封装了 sip 消息的解释器。本设计中 exosip 使用定时轮循的方式调用 Osip2 的 transaction 处理函数,这部分是协议栈运转的
16、核心。透过添加/读取 transaction 消息管道的方式,驱动 transaction 的状态机,使得来自远端的 sip 信令能汇报给调用程序,来自调用程序的反馈能通过 sip 信令回传给远端。Exosip 模块对各个类型 transaction 都进行了超时处理,确保所有资源都能循环使用,不会被耗用殆尽。Exosip 模块使用消息管道来向上通知调用程序底层发生的事件,调用程序只要读取该消息管道,就能获得感兴趣的事件,进行相关的处理。Mediastreamer模块负责语音及铃音等的处理及传输,包括语音的编解码(PCM、GSM、SPEEX 等)、视频的编解码、声卡的选择等。ORTP 模块对语
17、音及铃音等信息(mediastreamer 模块处理后)依据rtp 协议进行打包,并通过指定端口进行收发。exosip 再借助于 ORTP 和 mediastreamer 开发库,为我们的软电话增加和与系统语音接口交互及语音编码功能,即可以快速开发出一个可用的软电话。6.结束语结束语 基于 SIP 协议的 IP 多媒体通信是目前也是下一代网络的研究重点内容,其在 NGN 的演进中也扮演了重要的角色。本文设计了一种基于各种开源软件、协议栈来实现的 voip 智能终端软件系统,通过上述方式可简单的实现语音通信业务。本方案仅是一个初步方案,有些地方还存在着不足,本系统将在以后的实践中做进一步的改进。
18、参考文献 参考文献 1 张智江,刘润洁.SIP 协议及其应用M.北京:电子工业出版社,2005,2 沈鑫剡等.多媒体传输网络与 VOIP 系统设计M.北京:人民邮电出版社,2005 3 周立功等.ARM 嵌入式 MiniGUI 初步与应用开发范例 M.北京:北京航空航天大学出版社,2005 4 Neil Matthew,Richard Stones.Beginning Linux Programming M.Wiley Publishing Inc,2004 5 Roach A.Session Initiation Protocol(SIP)-Specific Event Notificati
19、on rfc3265,2002 6 Rosenberg J,Schulzrinne H.SIP:Session Initiation Protocol rfc3261,2002.http:/ 6 The Design of a Software Systems Based on SIP in Embedded Terminal Ren Yuguang Department of Telecommunication,BeiJing University of Posts and Telecommunications Beijing(100876)Abstract With the progres
20、s of open-source software,the variety of open-source software continuously emerge,which significantly reduces difficult and costs of application software development.This paper design a software systems in embedded terminal,which is based on the sip.The terminal operating system used uclinux,graphical interface used minigui,protocol stack used exosip,mediastreamer and ORTP to achieve.All of those software,protocol stacks are open-source.The system is stable and easy to transplante.Keywords:sip,uclinux,minigui http:/