Home > 电话会议新闻动态 > 技术文档 > 基于SIP协议的IP电话语音系统设计与实现

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

2014/05/10 Tang

0 引 目
虽然VoIP技术出现只有几年时间,但其发展速度却十分惊人。从技术方面经历了如下几个阶段:第一阶段的H.323协议;第二阶段的H.248/MGCP协议;第三阶段的SIP/IMS。随着数据业务的发展,VoIP技术逐渐成为Internet应用领域令人瞩目的焦点。自3GPP在R5的IP多媒体子系统(IMS,IP Multimedia Subsys—tem中宣布以SIP为核心协议以来,ETSI和ITUT又在NGN体系中采用了IMs,使得SIP协议正在成为人们关注的热点。VoIP未来的发展将会遵循IETF的SIP协议,因此,基于SIP协议的VoIP技术,在互联网上应用相当广泛。

l V0IP基本原理
VOIP(VOIP Over Internet Protocol)是建立在IP技术上的分组化、数字化传输技术,其基本原理是:通过语音压缩算法对话音进行压缩编码处理,然后把这些语音数据按II)等相关协议进行打包,经过IP网络把数据包传输到目的地,再把这些语音数据包串起来,经过解码解压处理后,恢复成原来的语音信号,从而达到由II)网络传送话音的目的。

2 SIP协议
会话初始化协议SIP最初是由IETF提出的一个标准,用来解决.. IP网上的信令控制。在IP网络分层模型上,SIP是工作在应用层上的一个信令协议,可以用来建立、修改和终止有多方参与的多媒体会话进程。SIP协议的优势还表现在:可扩展性、灵活性、互操作性、可重用性以及提供了一种可以将简单的应用结合到复杂的服务中去的方法。SIP支持单播、多播会话,与网络协议独立,基于文本的协议,同时能支持多种协议,支持用户的移动f生和移动业务。基于SIP的网络主要包括以下几个部分:用户代理客户、用户代理服务器、代理服务器、重定向服务器、注册服务器、定位服务器。

3 系统设计与实现
3.1 系统概述
本系统主要由SIP服务器、基于Radius(Remote Authentication Dia1 User)协议服务器、用户注册平台以及Talk软电话四部分组成。VOIP系统网络拓扑结构在Talk系统的实现过程中,SIP服务器使用开源的OpenSER来完成。 OpenSER符合RF℃3261的协议规范且架构,工作在TCP和UDP之上的SIP协议,是一套高效能、易于修改组态成形的语音服务器系统。SIP服务器、Radius服务器及Apache、Mysql服务器均建立在同一机器上,此机器使用的操作系统为FreBSD,如图1所示,把系统规划为后端服务器层、前端应用程序服务器层、客户端及管理者端的应用层。 首先,依照服务器环境的需求将服务器安装在 FreBSD操作系统,并在此服务器上将依序安装以下各个服务器或系统:openSER(后端SIP语音服务器);MySqlserver(后端数据库服务器);Radius服务器用来做AAA认证;Apache Htttp Server(前端应用程序服务服务器);VoIP—Reg(前端网络电话服务系统系统);两个客户端使用Talk。本文利用OpenSER来提供SIP的语音相关服务,MySq1 server用来记录OpenSER提供服务时所产生的数据,作为账务产生的依据。经由Apache Http Server下通过VoIP—Reg来提供用户账号申请服务,两台用来测试OpenSER运作情形的机器,均安装上Talk客户端。

V0IP系统架构图

3.2 构架服务器端
由于SIP服务器是架设在FreBSD操作系统之上的,还需要添加软件编译环境,用来开发本系统。在服务器上安装好OpenSER后,通过对 0penSER的设定支持MySql数据库,保持用户的认证数据及记录用户位置。 Radius认证过程系统对用户认证时主要涉及3个数据包,分别是:认证请求包(Access-Re—quest)、认证响应包(Access-Accept)和认证拒绝包(Access—Reject)。第一个是用户认证时需要发给Radius服务器的数据包,后两个是Radius服务器返回给Radius客户端的认证通过或认证拒绝的响应数据包。本系统对用户认证时采用两次认证的方法。接下来创Radius数据库,首先需要在连接到MySql数据库系统,并在其中添加一个名为Radis此数据库用来存放Radius服务器所使用的数据表。完成以上数据库的安装后,下面就通过对FreeRadius来配置,使其能使用MySql数据库并通过MySql数据库来作认证。最后在OpenSer添加对Radius的支持。通过上面的配置,就实现了OpenSER服务器与MySql、Radius服务器的融合,开始运行测试。要实现一个实用的软件电话,要进行如下的过程:首先应该建立呼叫,然后针对一个点来实现话音的实时采集、处理、播放,并能进行可靠的传送和接收;这样PC和PC就可以通话;最后通话结束,拆除呼叫。呼叫的建立和拆除可以利用SIP协议的信令来完成。语音传送采用专门的语音传输协议RTP,因为RTP是处UDP之上,RTP能自动处理分组丢失和交付失序问题。从而确保收到的数据以正确的次序提交给用户。RTP还有一个伴随协议TCP,该协议为会话提供了大量的可供交换的信息和关于会话质量的反馈信息。基于分层设计的思想,将Talk软电话分为如下部分:用户界面层、核心接口层、功能层以及底层。

通过对本系统作了运行测试,如图2所示,主要包括软件配置,运行相关界面以及呼叫流程测试等。本系统能实现音频、视频通话,延时较小,连通成功率为94.41,与同类软件相比,成功率高于 OICQ超级语音,略低于Skype。考虑到网络连接的不稳定性因素,本系统已基本达到一个商业软件的要求。基本上实现了预期的目的,重要的是完全实现了对SIP协议的操作。

网络电话SIP协议测试结果图


4 结束语

本文在对SIP协议分析的基础上,主要研究基于sIP协议的VoIP系统的设计和实现。参考了主要IP电话的相关协议,探讨了SIP协议的工作原理和服务器的实现方式,基于开源的OpenSER构建了完整的VoIP系统,使之能够与Mysq1、Radius构建的服务器整合。设计了客户端软件,对基于SIP协议的VoIP系统的设计和实现问题作了一些研究。特别对实现中的一些关键技术进行了研究和分析,最后对系统进行了一些测试,简单介绍了其应用。SIP是VoIP领域的一种新协议,本文对其在实用方面的研究工作做了一些探索,对于促进VoIP技术的发展,特别是对于SIP这种下一代网络软交换体系的重要技术的广泛应用具有一定意义。

SIP, VoIP

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

copyright 2004-2013     粤ICP备12061155号-1

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