SIP
协议简介
SIP
(
Session Initiation Protocol
,会话发起协议)是一个用于建立,更改和终止多媒体会话的应用层控制协议,其中的会话可以是
IP
电话、多媒体分发及多媒体会议。它是
IETF
多媒体数据和控制体系结构的核心协议(最新
RFC
文档是
RFC3261
)。其主要目的是为了解决
IP
网中的信令控制,以及同软交换平台的通信,从而构成下一代的增值业务平台,对电信,银行,金融等行业提供更好的增值业务。
SIP
用于发起会话,它能控制多个参与者参加的多媒体会话的建立和终结,并能动态调整和修改会话属性,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等。
SIP
协议基于文本编码,大量借鉴了成熟的
HTTP
协议,并且具有易扩展,易实现等特点,因此非常适合用来实现基于因特网的多媒体会议系统。
SIP
协议采用
Client/Server
模型,主要通过与
Proxy Server
之间的通信来完成用户呼叫的建立过程。
SIP
终端通过发送“邀请”消息给会话目的终端,消息中携带了自己的描述信息。目的终端可以根据“邀请”信息和自身的能力接受或拒绝请求。
SIP
可以通过称为“代理服务器”的实体来转发“邀请”消息。代理服务器可以完成确定目的终端的位置、查找路由的工作,根据会话终端的要求进行认证和授权,还能提供会话终端的呼叫路由策略。
SIP
通过“注册服务器”记录各终端的描述信息,包括地址信息,路由信息,号码信息等,各
SIP
终端可以通过发送“注册”消息给注册服务器,以登记或更新其描述信息。
另外,
SIP
作为应用层协议,在传输层上可以使用
TCP
,也可以使用
UDP
。
SIP
可以支持
IPv4
和
IPv6
。
重要概念说明
1. 多媒体会话
多媒体会话(
Multimedia Session
),根据
RFC2327
的定义,是指一组多媒体发送者和接受者以及从发送者到接受者的数据流。例如一个多媒体会议就是一个多媒体会话。一个会话由一组用户名称、会话
ID
、网络类型、地址类型以及各个单元的地址来确定。
2. 用户代理
用户代理(
UA
,
User Agent
)也称
SIP
终端,是指支持
SIP
协议的多媒体会话终端。例如
SIP
电话、
SIP
网关、支持
SIP
的路由器等。
3. 用户代理客户机
用户代理客户机(
UAC
,
User Agent Client
)是指在
SIP
会话建立过程中主动发送会话请求的设备。例如,主叫
SIP
终端。当代理服务器向被叫终端发送会话请求时,也是作为用户代理客户机。
4. 用户代理服务器
用户代理服务器(
UAS
,
User Agent Server
)是指在
SIP
会话建立过程中接收会话请求的设备。例如,被叫
SIP
终端。当代理服务器接收主叫终端发送会话请求时,也是作为用户代理服务器。
5. 代理服务器
代理服务器(
Proxy Server
)是代理主叫
UA
(
SIP
终端)向被叫
UA
发送会话请求,并代理被叫
UA
向主叫
UA
发送应答消息的设备。代理服务器在接收到主叫
UA
的会话请求后,首先要向注册服务器请求查找被叫的位置以及主、被叫的呼叫策略信息。只有找到被叫并且此呼叫是允许的,代理服务器才会向被叫发送会话请求。
6. 重定向服务器
重定向服务器(
Redirect Server
)是为主叫
UA
指明重新呼叫被叫
UA
的位置。当重定向服务器收到主叫
UA
发送的会话请求消息后,查找被叫
UA
的位置信息,并向主叫
UA
返回一个位置信息,使其重新向该位置发起会话请求。此位置可以直接是被叫
UA
的位置,也可以是一个代理服务器的位置。接下来主叫
UA
如同直接呼叫被叫
UA
或者向代理服务器呼叫的流程一样。
7. 位置服务器
位置服务器器(
Location Server
)是为代理服务器和重定向服务器等提供用户代理信息的设备。位置服务器记录了注册服务器接收到的用户代理的信息。位置服务器与注册服务器通常在同一个设备上。
8. 注册服务器
注册服务器(
Registration Server
)是记录
UA
的位置信息并向代理服务器提供查询
UA
的位置信息的设备。在简单的应用中,注册服务器和代理服务器通常也在同一个设备上。
SIP的功能和特点
SIP
主要有五个基本功能:
l
确定用户位置:确定被叫
SIP
终端所在的位置。
SIP
的最强大之处就是用户定位功能。
SIP
本身含有向注册服务器注册的功能,也可以利用其他定位服务器如
DNS
、
LDAP
等提供的定位服务器来增强其定位功能。
l
确定用户可用性:确定被叫会话终端是否可以参加此会话。
SIP
支持多种地址描述和寻址,包括:用户名
@
主机地址、被叫号码
@PSTN
网关地址和普通电话号码(如
Tel
:
01012345678
)的描述等。这样,
SIP
主叫按照被叫地址,就可以识别出被叫是否在传统电话网上,然后通过一个与传统电话网相连的网关向被叫发起并建立呼叫。
l
确定用户能力:确定被叫终端可用于参加会话的媒体类型及媒体参数。
SIP
终端在消息交互过程中携带自身的媒体类型和媒体参数,这使得会话都可以明确对方的会话能力。
l
建立会话:建立主被叫双方的会话参数。
SIP
会话双方通过协商媒体类型和媒体参数,最终选择双方都具有的能力建立起会话。
l
管理会话:可以更改会话参数或中止会话。
SIP
的特点如下:
l
标准的开放性。可以将不同运营商引进的各种新的功能、产品和服务整合在一起,用户可以自由地选择。
l
配置的灵活性。兼容多种拨号方式、有线和无线的设备,可以进行高度灵活的配置,并且能够和其它系统协同工作。
l
系统可扩容性。随着企业规模的扩大,系统也可以随之扩充。
l
支持远端用户。无论用户身在何方,都可以将企业的网络延伸到那里。
l
为企业带来更多竞争优势的潜力。基于
SIP
的新的业务与服务陆续出台。
l
企业各部分通讯方式的一致性。分支机构、家庭办公室和出差人员使用同样的拨号方式和系统访问方式,便于管理。
l
迅速启动。当建立新的分支机构、吸纳新的员工,或重新安排员工工作或改变其工作地点时,系统相应变更非常迅速。
l
易安装、可维护。非专业人士也可以安装或维护
SIP
系统配置。
SIP工作原理
1. 登记注册
在完整的
SIP
系统中,所有的
SIP
终端作为
User Agent
都应该向注册服务器(
SIP Registration Server
)登记注册,以告知其位置信息、会话能力信息、呼叫策略等等。
通常,
SIP
终端开机启动时或者配置管理员执行注册操作时,就向注册服务器发送注册请求消息(
REGISTER
),该消息中携带了所有需要登记的信息。注册服务器收到注册请求消息后向终端发送回应消息,以告知其请求消息已收到。如果注册成功,就再向终端发送“成功”消息。如下图所示。
图
6-1 User Agent
向
SIP Location Server
注册的消息交互
2. 建立呼叫
SIP
协议采用
Client/Server
模型,主要通过
UA
与
Proxy Server
之间的通信来完成用户呼叫的建立过程。
图
6-2 UA
通过
PROXY
连接
例如,如上图所示,电话
1
需要呼叫电话
2
,两个路由器作为
SIP
终端(
UA
)。当电话
1
拨完电话
2
的号码后,路由器
1
向
SIP Server
发送会话请求消息。
SIP Server
通过查找电话
2
的号码所对应的信息,向路由器
2
发送会话请求消息。路由器
2
收到请求后,如果电话
2
可用,就向
SIP Server
发送应答,并使电话
2
振铃。
SIP Server
收到应答后,向路由器
1
发送应答消息。这里所说的应答包括两个消息,一个临时应答和一个“成功”应答。整个过程中的消息交互如下图所示。
图
6-3 UA
通过
Proxy Server
的呼叫流程图
这个例子是一种简单的应用,只使用了一个代理服务器,并且没有使用注册服务器。在复杂的应用中,可以有多个代理服务器,以及注册服务器。
3. 重定向呼叫
SIP
重定向服务器收到会话请求消息后,不是转发会话请求消息,而是在回应消息中告知被叫
SIP
终端的地址。主叫终端从而重新直接向被叫终端发送会话请求消息。被叫终端也将直接向主叫发送应答消息。呼叫过程的消息交互如下图所示。
图
6-4 UA
重定向呼叫流程图
这是比较常见的一种应用。从原理上来说,重定向服务器也可以向主叫终端回复一个代理服务器的地址,接下来的呼叫过程就和使用代理服务器的呼叫过程一样。