SIP技术介绍


SIP

SIP协议简介

SIPSession Initiation Protocol,会话初始协议)是一个用于建立、更改和终止多媒体会话的应用层控制协议,其中的会话可以是IP电话、多媒体会话或多媒体会议。SIPIETF多媒体数据和控制体系结构的核心协议(最新RFC文档是RFC 3261)。其主要目的是为了解决IP网中的信令控制,以及同软交换平台的通信,从而构成下一代的增值业务平台,对电信、银行、金融等行业提供更好的增值业务。

SIP用于发起会话,它能控制多个参与者参加的多媒体会话的建立和终结,并能动态调整和修改会话属性,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等。SIP协议基于文本编码,大量借鉴了成熟的HTTP协议,并且具有易扩展、易实现等特点,因此非常适合用来实现基于因特网的多媒体通信系统。

基本概念介绍

1. 多媒体会话

根据RFC 2327的定义,多媒体会话(Multimedia Session)是指一组多媒体发送者和接受者,以及从发送者到接受者的数据流。例如一个多媒体会议就是一个多媒体会话。一个会话由一组用户名称、会话ID、网络类型、地址类型以及各个单元的地址来确定。

2. 用户代理

用户代理(UAUser Agent)也称SIP终端,是指支持SIP协议的多媒体会话终端。一般使用支持SIP协议的路由器作为SIP UA

UA包括用户代理客户端(UACUser Agent Client)和用户代理服务器(UASUser Agent Server)。一般说的UA均是指二者的总称,因为在一次呼叫中,一个SIP终端既要处理SIP请求,又要发起SIP请求。

用户代理客户端是指在SIP会话建立过程中主动发送会话请求的设备。例如,主叫SIP终端。当代理服务器向被叫终端发送会话请求时,它就成为用户代理客户端。

用户代理服务器是指在SIP会话建立过程中接收会话请求的设备。例如,被叫SIP终端。当代理服务器接收主叫终端发送会话请求时,也作为用户代理服务器。

3. 代理服务器

代理服务器(Proxy Server)的作用就是传递主叫UA发送的会话请求到被叫UA,然后将被叫UA的响应传递回主叫UA,它相当于主叫UA和被叫UA之间传递会话消息的一座桥梁。代理服务器在接收到主叫UA的会话请求后,首先要向位置服务器请求查找被叫UA的位置以及主、被叫UA的呼叫策略信息。只有找到被叫UA并且此呼叫是允许的,代理服务器才会向被叫UA发送会话请求。代理服务器一般在SIP会话中都是需要的。

4. 重定向服务器

重定向服务器(Redirect Server)用来指示客户端连接的新地址。比如,主叫UA呼叫被叫UA,当重定向服务器收到主叫UA发送的会话请求消息后,查找被叫UA的位置信息,然后将其返回给主叫UA,使主叫UA重新向该位置发起会话请求。此位置可以是被叫UA的位置,也可以是一个代理服务器的位置。接下来主叫UA如同直接呼叫被叫UA或者向代理服务器呼叫的流程一样。

5. 位置服务器

位置服务器(Location Server)是为代理服务器和重定向服务器等提供UA信息的设备。位置服务器记录了注册服务器接收到的UA的信息。二者可以独立存在,也可以作为逻辑组件存在于同一台服务器上。

6. 注册服务器

注册服务器(Registrar Server)接受用户注册,注册的内容(如本地号码等信息)一般是存储在位置服务器上,供后续查询使用。二者都是逻辑组件,一般存在于同一台服务器上。

SIP的功能和特点

1. 功能

SIP主要有五个基本功能:

l              确定用户位置:确定被叫SIP用户所在的位置。SIP的最强大之处就是用户定位功能,它可以利用SIP终端在注册服务器上的注册信息实现用户定位,也可以利用其他定位服务器,如DNSLDAP等提供的定位服务来增强其定位功能。

l              确定用户可用性:确定被叫会话终端是否可以参加此会话。SIP支持多种地址描述和寻址方式,包括SIP-URI(比如sip[email protected])、Tel-URL(比如tel+1312000)和SIPS-URIsips[email protected])。这样,SIP主叫根据被叫地址,就可以识别出被叫是否在传统电话网上,然后通过一个与传统电话网相连的网关向被叫发起并建立呼叫。

l              确定用户能力:确定被叫终端可用于参加会话的媒体类型及媒体参数。SIP终端在消息交互过程中携带自身的媒体类型和媒体参数,这使得会话双方都可以明确对方的会话能力。

l              建立会话:建立主被叫双方的会话。SIP会话双方通过协商媒体类型和媒体参数,最终选择双方都具有的能力建立起会话。

l              管理会话:可以更改会话参数或中止会话。

2. 特点

SIP的特点如下:

l              标准的开放性。可以将不同运营商引进的各种新的功能、产品和服务整合在一起,供用户自由地选择。

l              配置的灵活性。兼容多种拨号方式,能在有线或无线的设备上实现,可以进行高度灵活的配置,并且能够和其它系统协同工作。

l              系统可扩容性。随着企业规模的扩大,系统也可以随之扩充。

l              支持远端用户。无论用户身在何方,都可以将企业的网络延伸到那里。

l              企业各部分通讯方式的一致性。分支机构、家庭办公室和出差人员使用同样的拨号方式和系统访问方式,便于管理。

l              迅速启动。当建立新的分支机构、吸纳新的员工,或重新安排员工工作或改变其工作地点时,系统相应变更非常迅速。

l              易安装、可维护。非专业人士也可以安装或维护SIP系统。

SIP消息

SIP消息采用文本方式编码,包括请求消息与响应消息两类。

SIP请求消息包括INVITEACKOPTIONSBYECANCELREGISTER等。RFC 3261定义的请求消息有以下六种。

l              INVITE请求消息用于邀请用户加入一个呼叫。

l              ACK:用于对请求消息的响应消息进行确认。

l              OPTIONS:用于请求协商能力信息。

l              BYE:用于释放已建立的呼叫。

l              CANCEL:用于释放尚未建立的呼叫。

l              REGISTER:用于向SIP注册服务器登记用户位置等信息。

SIP响应消息用于对请求消息进行响应,指示呼叫或注册的成功或失败状态。不同类的响应消息由状态码来区分,状态码包含三位整数,状态码的第一位用于定义响应类型,另外两位用于进一步对响应进行更加详细的说明。响应消息的分类 1所示。

表 1 响应消息编号

状态码编号

消息含义

消息归类

100~199

请求被收到,正在处理中

临时消息

200~299

收到请求,并被成功处理,接受该请求

处理成功

300~399

要完成该请求需要更进一步的操作

重定向

400~499

消息语法错误,服务器不能处理该请求

客户端出错

500~599

由于UAS/Server的原因,无法处理该请求

服务器出错

600~699

该请求在任何UAS/Server上都不能完成

全局错误

 

SIP工作原理简介

1. 登记注册

在完整的SIP系统中,所有的SIP终端作为User Agent都应该向注册服务器登记注册,以告知其位置、会话能力、呼叫策略等信息。

通常,SIP终端开机启动或者配置管理员执行注册操作时,就向注册服务器发送注册请求消息(REGISTER),该消息中携带了所有需要登记的信息。注册服务器收到注册请求消息后向终端发送回应消息,以告知其请求消息已收到。如果注册成功,就再向终端发送“200 OK”消息。如 1所示。

图 1 UARegistrar注册的消息交互

 

2. 建立呼叫

SIP协议采用Client/Server模型,主要通过UA与代理服务器之间的通信来完成用户呼叫的建立过程。

图 2 UA通过Proxy Server建立呼叫

 

2所示,Telephone A需要呼叫电话Telephone B,两台路由器作为SIP终端(UA)。当Telephone A拨完电话Telephone B的号码后,Router AProxy Server发送会话请求消息。Proxy Server通过查找Telephone B的号码所对应的信息,向Router B发送会话请求消息。Router B收到请求后,如果Telephone B可用,就向Proxy Server发送应答,并使Telephone B振铃。Proxy Server收到应答后,向Router A发送应答消息。这里所说的应答包括:两个临时应答(100 Trying 180 Ringing)和一个成功应答(200 OK)。整个过程中的消息交互如 3所示。

图 3 UA通过Proxy Server建立呼叫的流程图

 

这个例子是一种简单的应用,只使用了一个代理服务器。在复杂的应用中,可以有多个代理服务器,以及注册服务器。

3. 重定向呼叫

SIP重定向服务器收到会话请求消息后,不是转发会话请求消息,而是在回应消息中告知被叫SIP终端的地址。主叫终端从而重新直接向被叫终端发送会话请求消息。被叫终端也将直接向主叫终端发送应答消息。呼叫过程的消息交互如 4所示。

图 4 UA重定向呼叫流程图

 

这是比较常见的一种应用。从原理上来说,重定向服务器也可以向主叫终端回复一个代理服务器的地址,接下来的呼叫过程就和使用代理服务器的呼叫过程一样。

SIP支持的传输协议

SIP是一个应用层的会话协议,与一般协议不同的是,SIP协议可以同时支持各种传输协议:

l              SIP支持UDP传输:UDP是一个无连接的协议,且不提供可靠性。在UDP上建立SIP连接存在不可靠性。

l              SIP支持TCP传输:增加了SIP报文和语音传输的可靠性,通过TCP协议自身的特点为基于SIPVoIP通信提供了面向连接和可靠的传输。SIP使用TCP传输协议后,SIP协议可以不需要考虑报文丢失和重传问题。

l              SIP支持TLSTransport Layer Security,传输层安全)传输:SIP支持TCP传输仅仅保证了SIP报文和语音传输的可靠性,而SIP支持TLS传输则保证了SIP报文传输的安全性,具体内容请参见“信令加”。

以上三种传输协议各具特点,用户可以根据实际的应用环境采用不同的传输协议,目前不支持呼叫中切换传输协议。

SIP安全

信令加密

TLS本身运行于TCP之上,并且提供了通信双方身份识别和加密SIP报文的一整套安全方案,为应用层协议服务。建立TLS连接时需要认证双方用户的身份,因此用户双方必须有各自合法的数字证书,只有通过认证的用户才可以进行后续的通信。使用TLS传输SIP报文,SIP报文在整个传输过程全部被加密,这样能够大程度的保护用户数据不被他人非法窃取,提高了语音通信的安全性。

媒体流加密

目前支持的媒体流协议包括:RTPReal-time Transport Protocol,实时传输协议)和RTCPReal-Time Transport Control Protocol,实时传输控制协议)。RTP用于为具有实时特征的数据(如交互音频和视频)提供端到端网络的实时传输服务;RTCP用于实时监控传输质量,并提供拥塞控制和流控制。RTPRTCP配合使用,就能以有效的反馈和最小的开销使传输效率更佳。在网络中媒体流是明文传输的,为了保证通信内容的安全性,SRTP协议应运而生。

SRTPSecure Real-time Transport Protocol,安全RTP协议)通过对RTP/RTCP报文的有效负载进行加密,实现对RTP/RTCP报文的加密、认证以及报文重传保护。

采用SRTP加密媒体流,首先需要协商加密信息,目前仅支持在SDPSession Description Protocol,会话描述协议)中通过crypto头域进行加密协商。发起方将本端支持的加密属性信息发送给接收方进行协商,协商成功后,接收方返回相应的加密属性信息。会话建立后,双方各自使用自己的密钥加密RTP/RTCP报文,使用对端的密钥解密对方发送的RTP/RTCP报文。

SDP协商主要包括以下参数信息:

表 2 加密属性参数

参数名称

参数含义

说明

Tag

加密属性信息标识符,在不同的加密属性行中的tag值必须不同,接收方根据Tag值来决定使用哪一组加密属性

必选协商参数

Crypto-Suite

加密套件,定义加密和认证使用的算法。目前只支持AES_CM_128_HMAC_SHA1_80AES_CM_128_HMAC_SHA1_32两种套件

必选协商参数

Key Parameters

密钥参数定义密钥信息,主要包括密钥生成方法和密钥值

必选协商参数

Session Parameters

会话信息定义了与该会话相关的参数,如密钥衍生率、UNENCRYPTED_SRTPUNENCRYPTED_SRTCPUNAUTHENTICATED_SRTPFEC

可选协商参数,暂不支持

 

使用SRTP协议加密RTP/RTCP报文时,如果使能加密引擎,则使用加密引擎进行报文加密和认证处理,若未使能加密引擎,则使用CPU进行报文加密和认证处理。

组合使用

TLS可以保护通话中的控制信令,防止用户信息被窃取。SRTP协议可以对语音媒体流进行加密和认证等保护措施。两者可以单独使用,也可以同时使用, 3列举了四种组合方式。

表 3 组合列表

信令是否使用TLS

媒体是否使用SRTP

描述

信令报文是安全的,用户的个人信息能够得到有效保护

媒体报文是安全的,用户的通话内容能够得到有效保护

推荐使用

信令报文是不安全的,用户的个人信息无法得到有效保护

媒体报文是安全的,用户的通话内容能够得到有效保护

信令报文是安全的,用户的个人信息能够得到有效保护

媒体报文是不安全的,用户的通话内容无法得到有效保护

信令报文是不安全的,用户的个人信息无法得到有效保护

媒体报文是不安全的,用户的通话内容无法得到有效保护

 

SIP-T支持QSIG基本呼叫

5所示,使用QSIG信令的ISDN网络发起呼叫,跨越SIP网络到达另一侧使用QSIGISDN网络,在此应用中,连接ISDN网络和SIP网络的接口网关设备充当了对QSIG信令和SIP信令的互相转换的功能。目前的此类网关设备大多只能对基本呼叫信令进行转换,对于大量的补充业务所涉及到的业务相关QSIG信令消息无法完全进行QSIGSIP信令间的互相映射,这些都需要使用一种在SIP消息体中封装携带原始的QSIG信令内容的方法和新的流程,这种在SIP消息中以类似隧道的方式传输ISDN信令的方法称为SIP-T协议。

图 5 SIP承载QSIG信令消息呼叫流程图

 

SIP-T协议的核心就是对ISDN消息进行封装及解封装。以上图为例,Router ARouter B之间运行SIP协议,SIP网络连接两端ISDN网络。对于两端ISDN网络之间的呼叫,发送端的QSIG信息最终将由入口网关处理,封装到SIP报文中后再发送给出口网关。接收到SIP报文后,出口网关重新提取在SIP请求中封装的QSIG信令发送到接收端ISDN侧。

和简单的对QSIG信令和SIP信令消息进行映射相比,SIP-T协议增强了ISDN信令内容的完整性和丰富性,使一端发送的ISDN信令信息可以无损传输到跨SIP网络的ISDN另一侧

目前,设备仅支持在SIP消息中携带QSIG信令。

 

 

附件下载

联系我们