一、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。
二、重要概念说明
多媒体会话(Multimedia Session),根据RFC2327的定义,是指一组多媒体发送者和接受者以及从发送者到接受者的数据流。例如一个多媒体会议就是一个多媒体会话。一个会话由一组用户名称、会话ID、网络类型、地址类型以及各个单元的地址来确定。
2.2 用户代理用户代理(UA,User Agent)也称SIP终端,是指支持SIP协议的多媒体会话终端。例如SIP电话、SIP网关、支持SIP的路由器等。
2.3 用户代理客户机用户代理客户机(UAC,User Agent Client)是指在SIP会话建立过程中主动发送会话请求的设备。例如,主叫SIP终端。当代理服务器向被叫终端发送会话请求时,也是作为用户代理客户机。
2.4 用户代理服务器
用户代理服务器(UAS,User Agent Server)是指在SIP会话建立过程中接收会话请求的设备。例如,被叫SIP终端。当代理服务器接收主叫终端发送会话请求时,也是作为用户代理服务器。
2.5 代理服务器
代理服务器(Proxy Server)是代理主叫UA(SIP终端)向被叫UA发送会话请求,并代理被叫UA向主叫UA发送应答消息的设备。代理服务器在接收到主叫UA的会话请求后,首先要向注册服务器请求查找被叫的位置以及主、被叫的呼叫策略信息。只有找到被叫并且此呼叫是允许的,代理服务器才会向被叫发送会话请求。
2.6 重定向服务器
重定向服务器(Redirect Server)是为主叫UA指明重新呼叫被叫UA的位置。当重定向服务器收到主叫UA发送的会话请求消息后,查找被叫UA的位置信息,并向主叫UA返回一个位置信息,使其重新向该位置发起会话请求。此位置可以直接是被叫UA的位置,也可以是一个代理服务器的位置。接下来主叫UA如同直接呼叫被叫UA或者向代理服务器呼叫的流程一样。
2.7 位置服务器
位置服务器器(Location Server)是为代理服务器和重定向服务器等提供用户代理信息的设备。位置服务器记录了注册服务器接收到的用户代理的信息。位置服务器与注册服务器通常在同一个设备上。
2.8 注册服务器
注册服务器(Registration Server)是记录UA的位置信息并向代理服务器提供查询UA的位置信息的设备。在简单的应用中,注册服务器和代理服务器通常也在同一个设备上。
三、SIP的功能和特点
SIP主要有五个基本功能:
- 确定用户位置:确定被叫SIP终端所在的位置。SIP的最强大之处就是用户定位功能。SIP本身含有向注册服务器注册的功能,也可以利用其他定位服务器如DNS、LDAP等提供的定位服务器来增强其定位功能。
- 确定用户可用性:确定被叫会话终端是否可以参加此会话。SIP支持多种地址描述和寻址,包括:用户名@主机地址、被叫号码@PSTN网关地址和普通电话号码(如Tel:01012345678)的描述等。这样,SIP主叫按照被叫地址,就可以识别出被叫是否在传统电话网上,然后通过一个与传统电话网相连的网关向被叫发起并建立呼叫。
- 确定用户能力:确定被叫终端可用于参加会话的媒体类型及媒体参数。SIP终端在消息交互过程中携带自身的媒体类型和媒体参数,这使得会话都可以明确对方的会话能力。
- 建立会话:建立主被叫双方的会话参数。SIP会话双方通过协商媒体类型和媒体参数,最终选择双方都具有的能力建立起会话。
- 管理会话:可以更改会话参数或中止会话。
SIP的特点如下:
- 标准的开放性。可以将不同运营商引进的各种新的功能、产品和服务整合在一起,用户可以自由地选择。
- 配置的灵活性。兼容多种拨号方式、有线和无线的设备,可以进行高度灵活的配置,并且能够和其它系统协同工作。
- 系统可扩容性。随着企业规模的扩大,系统也可以随之扩充。
- 支持远端用户。无论用户身在何方,都可以将企业的网络延伸到那里。
- 为企业带来更多竞争优势的潜力。基于SIP的新的业务与服务陆续出台。
- 企业各部分通讯方式的一致性。分支机构、家庭办公室和出差人员使用同样的拨号方式和系统访问方式,便于管理。
- 迅速启动。当建立新的分支机构、吸纳新的员工,或重新安排员工工作或改变其工作地点时,系统相应变更非常迅速。
- 易安装、可维护。非专业人士也可以安装或维护SIP系统配置。
四、SIP工作原理1. 登记注册
在完整的SIP系统中,所有的SIP终端作为User Agent都应该向注册服务器(SIP Registration Server)登记注册,以告知其位置信息、会话能力信息、呼叫策略等等。
通常,SIP终端开机启动时或者配置管理员执行注册操作时,就向注册服务器发送注册请求消息(REGISTER),该消息中携带了所有需要登记的信息。注册服务器收到注册请求消息后向终端发送回应消息,以告知其请求消息已收到。如果注册成功,就再向终端发送“成功”消息。如下图所示。
图4-1 User Agent向SIP Location Server注册的消息交互
2. 建立呼叫
SIP协议采用Client/Server模型,主要通过UA与Proxy Server之间的通信来完成用户呼叫的建立过程。
图4-2 UA通过PROXY连接
例如,如上图所示,电话1需要呼叫电话2,两个路由器作为SIP终端(UA)。当电话1拨完电话2的号码后,路由器1向SIP Server发送会话请求消息。SIP Server通过查找电话2的号码所对应的信息,向路由器2发送会话请求消息。路由器2收到请求后,如果电话2可用,就向SIP Server发送应答,并使电话2振铃。SIP Server收到应答后,向路由器1发送应答消息。这里所说的应答包括两个消息,一个临时应答和一个“成功”应答。整个过程中的消息交互如下图所示。
图4-3 UA通过Proxy Server的呼叫流程图
这个例子是一种简单的应用,只使用了一个代理服务器,并且没有使用注册服务器。在复杂的应用中,可以有多个代理服务器,以及注册服务器。
3. 重定向呼叫
SIP重定向服务器收到会话请求消息后,不是转发会话请求消息,而是在回应消息中告知被叫SIP终端的地址。主叫终端从而重新直接向被叫终端发送会话请求消息。被叫终端也将直接向主叫发送应答消息。呼叫过程的消息交互如下图所示。
图6-4 UA重定向呼叫流程图
这是比较常见的一种应用。从原理上来说,重定向服务器也可以向主叫终端回复一个代理服务器的地址,接下来的呼叫过程就和使用代理服务器的呼叫过程一样。
转载:http://myswirl.blog.163.com/blog/static/51318642201071410425729/