对基于SIP协议的VoIP的研究金晶北京邮电大学计算机科学与技术系,北京(100876)E-mail:cathrine0816@摘要:在网络技术不断发展的今天,传统的电话方式已经不能满足人们的需要了,对V oIP 的研究与应用已经变得越来越重要。
在本文中将首先对V oIP的基本原理、框架等进行解释,然后会对SIP协议的相关内容进行概述,最后介绍了一中采用SIP协议的V oIP设计方案。
关键词:SIP协议,互联网,V oIP,媒体网关1.引言随着网络技术的不断发展,传统的电话服务在网络电话来势汹汹的挑战面前,已经显露出陈旧、乏味和呆板的疲态。
越来越多的公司推出了网络电话服务,V oIP技术和传统电话之间的竞争也趋于白热化的状态,语音和综合业务IP化已经是不可逆转的历史潮流,是大趋势所向,整个语音IP化正在实现。
2.VoIP的基本原理V oIP-V oice over IP,即透过IP网络传输的语音讯号或影像讯号,所以V oIP就是一种可以在IP网络上互传模拟音讯或视讯的一种技术。
简单地说,它是藉由一连串的转码、编码、压缩、打包等程序,好让该语音数据可以在IP网络上传输到目的端,然后再经由相反的程序,还原成原来的语音讯号以供接听者接收。
2.1 VoIP架构一个基本的V oIP架构包含4个基本元素[1]:1)媒体网关器(MdeiaGateWay):主要扮演将语音讯号转换为IP封包的角色;2)媒体网关控制器(Media Gateway Controller):主要负责管理讯号传输与转换的工作;3)语音服务器:主要提供电话不通、占先或忙线时的语音响应服务4)信号网关器(Signaling Gateway):主要在交换过程中进行相关控制,以决定通话建立与否,以及提供相关应用的增值服务;由于V oIP在短期内不可能完全取代已经发展成熟并且市场占有率高的PSTN电路交换网,所以两者相并存的局面必将维持很长一段时间。
为了让两者间能相互沟通,必须要建立个互通的接口和管道,媒体网关器与网关管理器,由于其具有将媒体数据流及IP封包转译成不同网络所支持的各类协议,所以就扮演了这样的中介角色。
其运作原理是,媒体网关器先将语音转换为IP封包,然后交由媒体网关控制器加以控制管理,并决定IP封包在网络中的传送路径。
至于信号网关器则负责将SS7信号格式转换为IP封包。
2.2 VoIP三大主流协议要想在IP网络中正确的寻找到要通话的对方并建立对答,同时还要能依照彼此自生的处理能力来传送语音数据,必须藉由国际电信组织所拟定的标准协议才能达到。
目前使用较多的是H.323、SIP及MGCP这3种标准协议。
H.323是由ITU-T第16研究组在1996年颁布的,在原则上,该协议提供了基础网络架构上的多媒体通讯系统标准,并为IP网络上的多媒体通讯应用提供了技术基础。
但H.323协议本身也具有一些问题,如采用H.323协议的IP电话网络在接入端仍要经过当地的PSTN 电路交换网等等。
SIP是由IETF所制定,其特性几乎与H.323相反,原则上它是一种比较简单的会话初始化协议,也就是只提供会话或呼叫的建立与控制功能[2]。
SIP支持单点播送和群播功能,也即用户可以随时加入一个已经存在的视讯会议之中。
另外,SIP是属于一种基于文本的协议,采用SIP规则资源定位语言描述,所以其灵活性与扩展性比H.323要好一些。
MGCP在原则上去前两种协议皆不同,MGCP与IP电话网络无关,之牵涉到网关分解上的问题,所以这个协议可同时适用于支持H.323或SIP协议的网络电话系统。
基于这三种协议的VOIP架构的主要特征如表1所示。
表1 基于三种协议V oIP比较H.323 SIP MGCP拟定组织ITU-T IETF IETF架构P2P P2P 主从式设计对象 ISDN及ATM Internet GatewayQoS 无有N/A复杂度高低N/A扩充性低高中延伸性中高低传真中继传输T.38 T.38 T.38编码二进位编码基于文本编码N/A3.SIP协议概述SIP――会话初始协议――作为一个应用层的多媒体会话信令协议,可以被用来发起一个会话进程、在会话中邀请其他参加者加入会议。
其主要用于语音与数据相结合的业务、多媒体业务的呼叫建立与释放[3]。
SIP协议是想借鉴Web的成功经验,它通过使用SIP终端将网络设备的复杂性推向网络的边沿,同时SIP可以充分利用已定义的头域,对其进行简单必要的扩充就能很方便地支持各项新业务和智能业务,有利于与Internet的各项应用集成开发V oIP 的增值业务。
SIP协议遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到因特网开放而复杂的网络环境下的安全问题,同时,SIP协议也充分考虑了对传统公共电话网的各种业务,包括IN 业务和ISDN业务的支持。
SIP协议采用基于文本格式的客户-服务器方式,以文本的形式表示消息的语法、语义和编码。
其主要用于SIP终端和软交换之间、软交换和软交换之间以及软交换与应用服务器之间。
图1 SIP客户-服务器方式3.1 SIP基本信令功能1) 用户定位:确定参加通信的终端用户的位置;2) 用户能力:确定通信采用的媒体类型和参数;3) 用户可用性:确定被叫是否愿意加入通信过程;4) 呼叫建立:包括向被叫“振铃”,确定主叫和被叫的连接参数;5) 呼叫处理:包括呼叫重定向、呼叫转移、终止呼叫等等。
3.2 SIP网络组件SIP网络包含两类组件:用户代理和网络服务器[4]。
1) 用户代理:用户代理有分为用户代理客户端(UAC)和服务器(UAS)。
UAC负责发起SIP呼叫请求,UAS负责对呼叫请求作出响应。
2) 网络服务器主要为用户代理提供注册,认证,鉴权,路由等服务,分为代理服务器,重定向服务器和注册服务器。
代理服务器提供路由功能,代理其他客户机发起的请求,请求由本地服务器响应或可能被翻译之后再传送给其他服务器。
代理服务器在转发请求之前需要对原请求消息进行解释,而且必要的话则还必须重写原请求消息;重定向服务器是一个接受SIP请求、把该地址映射成零个或更多个新地址并把这写地址返回给请求客户。
不同于代理服务器,重定向服务器不发起它自己的SIP请求,并且它也不接受呼叫;注册服务器接受终端的Register请求,用户终端在启动后都需要进行注册,纪录。
一个注册服务器通常和一个代理或重定向服务器位于同一个物理实体中。
并可提供定位服务。
3.3 SIP典型流程SIP的核心通信机制是请求响应。
一个基本的SIP呼叫过程可分为以下3部分[5]:1) UAC发出呼叫邀请,在请求消息起始行中写入INVITE,在头部字段To中写入被叫的SIP URI地址。
代理服务器收到请求后,将自己的地址压入头部字段Via栈中。
当消息到达被叫用户代理服务器时,代理服务器向定位服务器查询被叫当前的位置信息,如果被叫的位置信息未发生更新,请求消息则直接发给被叫;如果发生了更新,则继续根据新的地址转发请求消息,直到到达被叫UAS。
2) 被邀请时,quAs收到请求消息后,回送响应。
响应分为两种类型:一是中间响应,报告呼叫进展情况,如用户空闲、正在振铃等;一类是最终响应,如成功响应和异常失败响应。
响应根据请求消息中的Via字段,原路返回主叫UAC。
对于表示成功的响应,UAC使用“确认”(ACK)方法向被叫UAS发请求消息,被叫UAC收到确认消息后,主被叫间会话建立,双方通过RTP协议互发信息。
3) 通信结束后,任何一方向对方发送“再见”(BYE)请求,请求终止会话,接收方回送成功响应,则会话结束。
在通信过程中,任何一方如果想更改会话的状态可以再次发起呼叫INVITE请求,使用相同的Call?ID,并在命令序列字段Cseq中对原有请求的Cseq加1,请求的接收方根据收到的头部信息和消息体,与以前的进行对比,调整相应的状态和媒体参数。
4.用SIP实现VoIP以下介绍一种采用SIP协议的V oIP设计方案,主要由基于USB接口的IP终端、计算机网络终端(内含SIP用户代理)、局域网、SIP网络服务器等组成。
整个系统布局分为若干域,每个部门为一个域,每个域内有多个终端用户,并由统一的服务器管理控制。
4.1 系统基本工作流程4.1.1 用户注册用户上线后,首先通过代理客户机向其所在域的服务器发送注册信息;该服务器的SIP 注册服务模块接收到注册信息后,对该用户进行身份验证,确认其合法后对该用户的状态信息、IP地址信息等进行更新。
4.1.2 会话建立本方案采用代理呼叫和重定向呼叫相结合的方式进行会话建立。
即同一域的客户用代理呼叫方式,域之间的用户采用重定向呼叫方式。
如A域的小王准备要与小钱建立一次通话,小王首先通过用户代理客户机将呼叫请求传至其所在域的代理服务器1,服务器1首先判断小钱是否也属于该服务器所管理的域。
如果属于同一个域,就通过服务器查找小钱的有关信息并精确定位,同时,服务器判定小钱是否为可接通状态,如果是,就将小王的请求发给小钱,否则就发给小王拒绝信息;如果小钱不属于同一个域,那么代理服务其1就将请求转发给小钱所在的域的重定向服务器2,该服务器对小钱精确定位,并判定它是否为可接通状态,如果可以,就将小钱的地址信息传送给代理服务器1,代理服务器1把小王的呼叫请求传给小钱,否则,就向代理服务器1返回不可接通信息,由代理服务器1向小王返回拒绝信息。
4.1.3 通话过程如果小王和小钱之间的通信建立成功,那么他们直接进行通话直至会话结束,通话结束时向代理服务器发送会话技术请求。
4.2 服务器端设计系统中每个域都由一个服务器负责管理和控制,每个网络服务器主要分四个功能模块:代理服务模块、重定向模块、注册服务模块和增值业务模块。
4.2.1 代理服务器模块SIP代理服务模块接收到UAC呼叫请求后,通过对呼叫ID的解析确定被叫方所在域,然后将请求转发至下一跳服务器或UAS。
4.2.2 重定向服务模块SIP重定向模块收到请求,完成地址解析,将被叫方的地址信息返回给呼叫方,让呼叫方直接向下一跳发送请求。
4.2.3 注册服务模块SIP注册服务模块用于为新用户分配ID号,以及用户登陆注册后地址等信息的更新,同时提供定位服务。
4.2.4 增值业务模块它利用IP系统数据库提供的所有会话详细记录、客户注册信息等开放的接口,为用户提供多种SIP增值业务服务,诸如计费管理、话单查询、用户留言、来电过滤以及跟踪呼叫等。
系统的运行、使用以及增值业务等功能模块基本是以客户注册和会话详细记录等表为中心进行的。
此外还有许多其它重要数据表,如用户IP地址表,用户费用表、级别权限表、业务表等。
4.3 客户端设计客户端主要分两个模块:用户代理模块和语音模块。