Home > 电话会议新闻动态 > 技术文档 > 基于VolP的SIP服务器和嵌入式终端的研究和实现

基于VolP的SIP服务器和嵌入式终端的研究和实现

2014/04/25 Tang

0 引言
VoIP(Voice over IP)是利用IP网络实现语音通信的一种先进通信手段,与传统的PBX电话系统相比, VolP价格低廉,可以大大降低运营商的成本;且网络结构开放,不同厂商的设备之间可以实现互连互通。随着嵌式技术的不断发展,嵌人式系统快速向消费类电子产品领域扩展。嵌入式系统是指以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用环境对功能、实时性、可靠性、成本、体积、功耗等严格约束的专用计算机系统,具有专用性、可嵌人性、实时性、可靠议作为控制信令用于用户交互信息;资源预留协议 性、移动性、分布式等特点。本文通过对VoIP系统的研究,综合上述技术的优点,实现了基于PXA270(ARMIO)芯片的嵌入式终端和服务器,成本低,性能良好,语音通话质量较高,易于扩展,在中小型企业或小区内部替代传统PBX电话终端,可以有效降低运营成本,并可以支持新的应用。

1 VolP体系结构和关键技术
如图1的VoIP体系结构所示,H.323或SIP协议作为控制信令用于用户交互信息;资源预留协议RVSP和实时传输控制协议RTCP主要用于提供服务质量QoS的保证;G.7xx和H.263为音频压缩编码标准;经过压缩的媒体数据经实时传输协议RTP进行封装并传输;实时流协议RTSP主要用于语音信箱的控制;网络传输层主要是TCP和UDP。

VoIP体系结构图

VoIP包括的关键技术有:
(1)信令技术。完成呼叫的建立,应答和交互用户信息等,保证会话的顺利进行。现有网络中主要有H.323和SIP等协议。
(2)媒体编码技术。对媒体流进行压缩等处理,使其适于在IP网络中传输,主要包括语音压缩编码和视频压缩编码以及静音抑制技术,回声消除技术等,如G.711和CELP等。
(3)实时传输技术。负责媒体流的实时传输,主要采用实时传输协议RTP以及实时传输控制协议RTCP,提供了用时间标签来控制不同数据流同步的机制,也可以提供接收端到发送组的服务质量反馈。
(4)QoS保障技术。主要通过采用资源预留协议RSVP和实时传输控制协议RTCP来保证服务质量,避免网络拥塞。

2 SIP协议

2.1 介绍
SIP(Session Initiation Protoco1)协议是由互联网工程任务组IETF制定的应用层控制协议。它用来创建、修改以及终结一个或多个参与者参加的会话进程。与H.323协议相比,SIP协议采用分布式控制,具有简单灵活和易于扩展等优点。SIP主要支持多媒体通信的以下信令功能:

(1)用户定位:确定参与通信的终端(用户)。
(2)用户通信能力和协商:确定通信的媒体类型和参数。
(3)呼叫参与者管理:呼叫中参与者能够引入其它用户加入呼叫或取消到其它用户的连接。
(4)呼叫处理和控制:包括呼叫重定向、呼叫转移、咨询呼叫、中止呼叫等。

2.2 基于SIP的网络体系结构
SIP体系结构主要包括两个SIP实体:用户代理和SIP服务器;用户代理是呼叫的终端系统,而SIP服务器是处理与呼叫相关信令的网络设备。SIP网络体系结构如图2所示。

SIP网络体系结构

用户代理UA(User Agent)是SIP电话终端系统,是与用户进行交互的SIP实体。根据在会话中扮演的角色的不同,用户代理可分为用户代理客户机(UAC)和用户代理服务器(UAS)。用户代理客户机 (UAC)基于外部激励产生SIP请求,发起呼叫请求;用户代理服务器(UAS)接收呼叫请求,联系用户并且代表用户返回SIP响应。SIP网络有三种形式的服务器存在,分别是代理服务器,重定向服务器和注册服务器,但SIP网络中一个物理设备可以具有多种SIP服务器的逻辑功能。代理服务器(Proxy)是作为UAS和UAC的中间实体,将SIP请求路由到UAS,并将SIP响应返回到UAC。如果需要,代理服务器在转发消息之前可解释和重写消息。根据是否保存呼叫信息,代理服务器可分为有状态代理服务器和无状态代理服务器。重定向服务器(Redirect Server)接收SP请求查询被呼叫方的可替代的位置,返回一个SIP响应将被呼叫方的SIP地址映射成零个(如果没有可知地址)或多个新地址。注册服务器(Registrar)接受用户代理SP地址的注册,在呼叫时注册服务器和网络DNS服务器共同解决被呼叫用户的定位问题。

3 嵌入式终端的设计与实现
嵌入式SIP终端是一个运行在嵌入式操作系统上的SIP用户代理。主要包括SIP电话的注册、呼叫、接听、挂断等功能。它直接与用户交互,接收输人信息,进行格式检查,根据用户的动作初始化SIP消息;同时得到本地语音媒体接口信息,形成SDP媒体描述载荷,完成UDP或TCP封装。

3.1 硬件平台
从功能角度来讲,本嵌入式SIP电话终端的硬件平台包括微处理器,存储器,以太网接口,LCD显示屏,键盘,音频接口等模块,如图3所示。以微处理器为核心,通过处理器接口的扩展以及硬件平台的支持,把外围硬件单元整合到系统里,并通过CPLD等转化器和硬件电路完成对设备的读写等操作。

硬件结构图

出于对电话终端性能的考虑以及可扩展性的需要,采用基于Intel PXA270(ARM10)嵌入式处理器的开发板。PXA270系列嵌入式处理器基于ARMv5E的Xscale核心,最高频率可达624MHz。其接口丰富,功耗低且体积较小,具有较高的性价比并完全满足对SIP电话终端陛能的需要及支持后续开发的扩展。

3.2 软件的设计与实现
SIP嵌入式客户端的软件部分主要分为三大模块,主控制模块,SIP信令模块和音频处理模块。如图4所示,其中SIP信令模块和音频处理模块为较为独立的模块。两者通过主控制模块交互信息。

软件总体设计


3.2.1 主控制模块

主控制模块完成软件的初始化,呼叫的建立、修改和终止等功能。软件的初始化包括SIP协议栈初始化、音频编解码初始化和RTP协议栈初始化等。初始化完成后,程序进入就绪状态,等待用户输入命令的同时监听SIP端口(默认5060)是否有SIP消息到来,根据消息的内容判断由协议栈进行处理或是交给上层用户。主控模块可以与用户直接交互,控制和管理其他各模块的工作和模块间的通信,并作为SIP用户代理的运行平台,负责整个系统的呼叫的发起、响应和结束等过程。

3.2.2 SIP信令模块
该模块主要是用于呼叫的建立、协商,修改和终止。SIP信令模块建立在SIP协议栈基础上,核心协议栈使用了GNU项目组的oSIP library。oSIP基于ANSI C编写,短小精悍,具有模块化、移植性好、可扩展性好等特点,适合嵌入式系统的移植。

3.2.3 音频处理模块
该模块主要负责语音数据的采集与回放、编解码、RTP的封装以及R TP的语音传输。其中,音频编解码部分采用了基于CELP的SPEEX编码。SPEEX具有较高的通话质量和较强的带宽适应能力,并实现了噪声消除,在对语音数据的压缩比、失真度、还原能力处理上显著优于其他的音频编解码器;SPEEX可以根据带宽调整压缩率,可以在绝大部分的网络条件下正常工作,特别是在低比特率传输的情况下比同类编解码器更具优势。RTP/RTCP实时传输模块利用了GNU项目组的ORTP协议栈,ORTP可以实现对语音流的R 封装,通
过RTCP调整传输策略等来保证语音传输的实时性。

4 服务器的设计实现

4.1 服务器的软件结构
服务器是整个VoIP系统的控制管理中心,它需要提供储存用户信息,接受用户的注册,对用户的定位与地址解析等功能。本文基于SIP协议,实现了把SIP服务器中的注册服务器、重定向服务器和代理服务器这三种逻辑功能合为一个实体的服务器。

服务器的软件结构

如图5所示,SIP服务器程序可以分为五个模块,认证、代理、注册、定位和系统配置模块。模块的功能如下:
(1)系统配置:配置系统必要信息,如服务器的IP地址、服务器名、接收发送端口、传输协议、数据库路径等。

(2)代理:它是服务器的核心,实现SIP协议中代理服务器的功能。作为SIP信令消息进入服务器系统的接入点,接收来自外部设备或其它模块的各种 SIP消息,对接收到的消息进行分析处理以后,生成消息的响应并发送到其他模块或者外部设备。

(3)注册:实现SIP注册服务器功能,同时把用户注册信息保存到用户信息数据库里。

(4)认证:实现对用户的认证,防止用户欺骗攻击。

(5)定位:实现定位服务器功能。用于保存用户注册信息并为代理服务器提供下一跳地址。

4.2 服务器的软件实现

服务器程序利用了GNU项目组的oSIP library作为SIP协议栈,服务器程序的主要流程如图6所示。在主程序中首先读取命令行参数,可以根据命令行参数来决定E l志文件的等级和程序的运行级别等。然后读取服务器的系统配置文件,来配置服务器的IP地址、服务端口和NAT穿透等参数,初始化日志文件和日志记录的等级等。接下来开始服务器核心的初始化,初始化SIP协议栈,用户注册数据库,并对代理服务器线程和注册线程进行初始化。随后从静态数据库中读取固定用户的注册信息,最后加载注册服务器线程和代理服务器线程,服务器就此开始服务。

服务器软件流程图


5 系统性能分析和测试


5.1 嵌入式客户端测试

(1)功能测试。
通过SIP嵌入式电话两端建立端到端的通话,测试信令交互的成功率。测试结果如表1所示。

信令交互测试表

根据表1结果可以看出,嵌入式终端可以完成正常的信令交互,且成功率较高。

(2)话音质量。
通过在局域网内建立通话进行测试,通话双方听到的声音清晰、流畅、失真和延时较小。

5.2服务器测试
(1)功能测试。
使用研发的嵌入式SIP电话终端和开源软件Linphone对服务器进行功能测试,均可以实现SIP终端的注册、信令的转发和处理等功能,SIP电话客户端可以实现双向通话,证明实现了服务器的基本功能。

(2)性能测试。
对于SIP电话服务器来说,性能测试主要就是指压力测试,即对其最大并发呼叫处理能力的测试。采用开源的SIPp来模拟生成大量的SIP信令,并对其处理时间进行统计。基于不同的呼叫频率,用SIPp对一台配置为单CPU(P4 1.6GHz),内存为512MB的服务器分别进行了10次测试,测试数据如表2所示。

服务器的压力测试

通过表2可以看到,SIP服务器软件在一台中等配置的主机上的呼叫成功率还是较高的,随着呼叫频率的增大,服务器的平均应答时间也随着增大,这主要是由于主机的处理能力的限制,通过提高主机的处理能力或增加服务器的数目,组成服务器集群,可以大大提高系统的容量和并行处理速度。

6 结束语
基于VoIP的电话系统采用的分组交换技术在组网、管理等方面都比传统的电路交换技术具有更好的优越性。本系统可以实现SIP电话的基本功能,具有良好的扩展性(如实现视频会议系统)且部署方便,可以在企业或小区内利用现有宽带建立电话系统,实现数据网和电话网的合二为一,降低运营和维护成本。

IP电话, 嵌入式Linu

如没特殊注明,文章均为好会通科技原创,转载请注明来自 http://www.meeteasy.com.cn/archives/2712.htm.

copyright 2004-2013     粤ICP备12061155号-1

Sitemap|XML|RSS|隐私政策|EN|