• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

基于SIP协议的IP电话系统设计与实现介绍

发布: 2007-7-13 15:18 | 作者: sanandi | 来源: ccidnet | 查看: 166次 | 进入软件测试论坛讨论

领测软件测试网

网络IP电话不仅具有成本低廉、网络资源利用率高等诸多优点,而且还可以进一步集成多媒体信息(包括语音、图像、数据等),以实现交互式的实时通信等,具有很大的发展潜力,且有逐渐取代传统PSTN电话的趋势,成为NGN(Next General Network)中语音信息传输的主要形式。

 

目前构建IP电话系统结构的信令协议主要有H.323协议和SIP协议,二者完全平行,互不兼容。H.323协议是为多媒体会议系统而提出的。该协议采用传统电信网络繁琐的信令概念,非常庞大,无论从实现技术手段,还是使用和管理方法上都十分复杂。而SIP协议则是以现有的Internet协议为基础来构架IP电话业务网的应用层协议。它将网络设备的复杂性推向网络边缘,支持单播、多播通信、名称映射和重定向业务,还支持类似呼叫转发、呼叫拒绝等电信业务的实现以及支持用户移动性。与H.323相比,SIP更适用于智能用户终端,使用更加灵活,掌握更加容易。鉴于此,本文提出了一种客户机-服务器模式的符合SIP协议规范的IP电话系统设计实现方案。

 

该系统具有以下特点:

 

(1)它采用IP-IP通信模式;

 

(2)电话终端设备直接与用户机USB接口相连,可方便地实现与被叫者的文本、语音等数据的可靠传输;

 

(3)系统包含完整的用户数据管理系统和网络通话管理控制系统;

 

(4)提供较高的QoS。

 

该系统充分利用SIP协议,提供了诸多增值服务,使得系统除具备普通电话的功能和业务外,还可以提供自主设置留言、来电过滤、跟踪呼叫等多种功能,适用于大中型企业集团或单位内部使用。

 

1、 SIP协议概述

 

总体来说,SIP协议支持多媒体通信中以下几个方面的功能:

 

(1)用户定位:确定通信中终端的位置;

 

(2)用户可用性:确定被叫方是否愿意参与通信;

 

(3)性能协商:确定通信中所用媒体及媒体参数;

 

(4)会话建立:呼叫双方会话参数的建立;

 

(5)会话管理:包括会话转移和中止、会话参数变更、调用新业务等内容。

 

SIP协议是一个客户服务器协议,用于发起和管理用户间的会话。SIP终端系统称为用户代理,即UA(User Agent),含用户代理客户机UAC(User Agent C1ient)和用户代理服务器UAS(User Agent sever)两部分。中间单元称为代理服务器。它的消息分为两大类:从客户端到服务器的请求(Request)和从服务器到客户端的响应(Response)。无论请求消息还是响应消息都是由起始行(Start-Line)、消息头部(Message—Header)和可选的消息体(Message—Body)构成。

 

请求消息按请求行(起始行)可分为:

 

(1)Register:用于登记联系信息;

(2)Invite:用于邀请用户加入会话;

(3)ACK:用于对请求成功后作出的确认;

(4)Cancel:用于取消未完成的请求;

(5)Bye:会话结束;

(6)0pions:用于询问服务器的性能。

 

响应消息按状态行(起始行)中的状态码(3位),可分为:

 

(1)1XX:暂时响应;

(2)2XX:成功响应;

(3)3XX:重定向响应;

(4)4XX:客户端出错;

(5)5XX:服务器出错;

(6)6XX:全局故障。

 

SIP协议支持3种呼叫方式:用户代理客户机(UAC)向对方用户代理服务器(UAS)直接呼叫;由代理服务器代表用户代理向客户服务器发起代理呼叫(图1);由用户代理客户机在重定向服务器的辅助下进行重定向呼叫(图2)。呼叫方式2需要代理服务器转发用户的呼叫信令,因而加大了信息处理量。为了有效地将网络设备的压力推向网络边缘,呼叫信令3只指明目的地的方向,不保留每一呼叫状态,从而为组建大规模的IP网奠定基础。

 

2、 系统设计方案

 

本文给出的符合SIP协议规范的IP电话系统设计方案,采用客户机-服务器模式,主要由基于USB接口的IP电话终端设备、计算机网络终端(内含SIP用户代理)、局域网(或Internet网络)、SIP网络服务器等组成。其系统结构示意图见图3。整个系统布局分为若干域,每个子公司或部门为一个域,每个域内有多个终端用户,并由一服务器管理控制。

 

2.1 系统基本工作流程

 

(1)用户注册

 

用户开机上线后,通过用户代理客户机自动向其所在域的服务器端发送注册信息;该服务器的SIP注册服务模块接收注册信息后,要先对客户端进行身份验证,确认其合法后再对该用户的状态信息、IP地址信息等进行更新。

 

(2)会话建立

 

在本系统设计方案中采用代理呼叫和重定向呼叫相结合的方式进行会话建立。即同一域内客户之间采用代理呼叫方式,域之间采用重定向呼叫方式。

 

假设1域的用户A准备要与用户B建立一次通话时,A首先通过其用户代理客户机将呼叫请求传至其所在域的代理服务器1,服务器1首先判断B是否也属于该服务器所管理的域。

 

 

如果B和A同属1域,则通过该域服务器进一步查找B的有关信息,进行精确定位,服务器1判定B是否为可接通状态,如可以则将A的呼叫请求直接转发给B,否则向A返回拒绝信息。

 

 

如果B不在1域,而在其它域(如2域),则代理服务器1将请求信息转发至2域的重定向服务器2,重定向服务器2对B进行精确定位,并判定B是否为可接通状态,如可接通则将B的精确地址信息传送给代理服务器1,代理服务器1将A的呼叫请求传送给B;否则向代理服务器1返回不可接通信息,代理服务器1再向A返回拒绝信息。

 

(3)通话过程

 

如果A和B之间的通信链路建立成功,则他们之间直接进行通信直至会话结束,通话结束时向代理服务器发送会话结束请求。

 

2.2 服务器端设计

 

本系统中每个域都由一服务器负责管理和控制,其相当于该域中的智能集线器,即网守(Gatekeeper)。每个网络服务器主要分四个功能模块:代理服务模块、重定向模块、注册服务模块和增值业务模块。

 

(1) SIP代理服务模块(SIP proxy)

 

SIP代理服务模块接收到UAC呼叫请求后,通过对呼叫ID的解析确定被叫方所在域,然后将请求转发至下一跳服务器或UAS。

 

(2) SIP重定向服务模块(SIP redirect module)

 

SIP重定向模块收到请求,完成地址解析,将被叫方的地址信息返回给呼叫方,让呼叫方直接向下一跳发送请求。

 

(3) SIP注册服务模块(SIP register module)

 

SIP注册服务模块用于为新用户分配ID号,以及用户登陆注册后地址等信息的更新,同时提供定位服务。

 

(4)SIP增值业务模块(SIP value-added module)

 

由于服务器端除具备SIP协议中网守的功能外,还负责管理IP系统的数据库。它利用IP系统数据库提供的所有会话详细记录、客户注册信息等开放的接口,为用户提供多种SIP增值业务服务,诸如计费管理、话单查询、用户留言、来电过滤以及跟踪呼叫等。

 

系统的运行、使用以及增值业务等功能模块基本是以客户注册和会话详细记录等表为中心进行的。此外还有许多其它重要数据表,如用户IP地址表,用户费用表、级别权限表、业务表等。

 

2.3 客户端设计

 

客户端主要分两个模块:用户代理模块和语音模块。

 

(1)SIP用户代理模块(UA)又分为用户代理客户机(UAC)模块和用户代理服务器(UAS)模块。其中UAC向其它客户或服务器发起呼叫,UAS负责响应其它客户或服务器的呼叫。

 

(2)语音模块包括音频数据的采集/播放、A/D转换、编/解码、收/发等子模块。其中数据采集/播放和A/D互转模块由数字电话机终端设备实现。本系统的终端设备为一特别设计的一款基于USB接口的数字电话机。它采用以MCU为控制中心的体系结构,具有拨号、语音采集播放和A/D互转等功能。其中语音采样速率为8kHz,样本精度为8bit。

 

数据编/解码模块、收/发模块都由客户端上层应用软件实现。这样不仅可以减小下位机的负载,降低设备成本,并且可以在不需改变系统硬件设备的条件下,完成整个IP电话系统的配置更改或系统扩展。

 

在选择话音编码方式时,综合考虑带宽、编码迟延、应用需求等因素采用CCITT推荐的G.723编码技术。

 

2.4 系统协议结构

 

由于SIP不是垂直通信系统,不能独立提供业务,它必须与其他协议共同使用来建立一个完整的多媒体体系结构。本设计方案采用的协议结构如下:

 

在应用层,SIP协议主要用于会话建立、管理和性能协商等,由于SIP协议本身提供了可靠的确认机制,故在传输层选用UDP协议来支持信令的传输。

 

实时流协议(RTSP)用于控制“一点到多点”的多媒体数据流。

 

为了保证较高的系统服务质量QoS,系统采用了资源预留协议(RSVP)

 

和实时传输控制协议(RTCP)。前者规定了IP网络的资源保护技术,可将资源预留给一个(或多个)给定的会话,并且该会话优先于任何试图参与双方之间的其它媒介交换;后者用来检测并潜在地解决发送问题,从而监控会话质量和检测网络问题达到对QoS的监控。

 

实时传输协议(RTP)用于完成端到端的话音数据的实时传输业务。由于基于SIP协议的IP电话系统得到了端到端的QoS支持后,使用UDP协议,在网络负荷较重时,可以避免在超时连接时导致呼叫建立时延的增加。因此本方案在传输层选用UDP来传送语音信息。这里可以将RTP看作是在UDP协议上运行应用服务,构成支持实时数据传递所需的传输功能的不同部分。在RTP报头中包含有效负载格式、序列号、时间戳以及传送监视等信息。由于RTP数据单元是用UDP分组来承载,为了尽量减少时延,话音净荷通常都很短。IP、UDP和RTP报头都按最小长度计算。在此方式中将多路话音插入话音数据段中,有助于提高传输效率。

 

 

2.5 系统安全机制

 

本设计方案重点对服务器端数据库管理和网络语音数据传输两个环节的安全问题做了考虑。它通过代理更新机制、身份鉴定和授权机制可有效提高服务器端的数据安全性。系统严格限定UA对服务器的操作指令权限,并对用户身份鉴定,给不同的用户以不同的权限。

 

根据需要,本系统可以对会话参与者之间传送的语音数据进行加密。在客户终端的语音发送和接受模块嵌入数据加密算法,这样即使数据被截获,也能有效避免泄密。

 

3、 小结

 

本文提出的基于SIP协议的IP电话系统设计具有投资小、成本低、方便实用,可靠性强、安全性好等优点。该系统建立在通用的计算机网络上,可在局域网或Internet上使用,对用户无特殊要求;另外还可扩展成融文本、视频会议于一体的网络交互式多媒体系统;由于终端较多地借助了PC资源,所以系统具备了较高的智能性;系统设计规范,管理模块集中化,不仅降低了成本,而且更便于系统的操作和维护。由于该系统秉承了TCP/UDP协议族的简单性,绝大多数功能通过软件实现,进行简单的改进,即可以满足不同的应用和需要。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网