会话发起协议SIP,使用H.323建议可以使各种不同的产品进行互操作,它已经被一些厂商采用。但是H.323建议过于复杂,因此IETF制定了另一套较为简单的标准,即会话发起协议SIP(Session Initiation Protocol),它使用了HTTP的 许多头部、编码规则及一些鉴别机制,同时也和RTP和RTCP协议结合起来,提供与H.323类似的服务,并具有更强的可扩展性。
1.SIP概述
SIP(Session Initiation Protocol,会话发起协议)是由IETF 提 出的IP电话信令协议。SIP用于发起会话,能控制多个参与者参加的多媒体会话的建立和终结,并能动态调整和修改会话属性,如会话带宽要求、传输的媒体类型(语音、视频和数据等)、媒体的编解码格式、对多播和单播的支持等。
2.SIP的特点
(1)协议格式:SIP借鉴了超文本传输协议(HTTP)的设计思路和体系结构,使用了许多HTTP的消息类型和报头域,用实体(内容类型的描述)标识信息流的内容,并且考虑认证、授权,所使用的认证、授权方法类同于Web中所使用的认证、授权方法。而H.323采用基于ASN.1和压缩编码规则的二进制方法表示其消息,因此,SIP更易于阅读和调试。
(2)协议的扩展性:SIP在设计上充分考虑了对其他协议的扩展适应性,支持许多种地址描述和寻址,包括用户名@主机地址、被叫号码@PSTN网关地址和如Tel:020-62581234这样普通电话号码的描述等。这样,SIP主叫按照被叫地址,就可以识别出被叫是否在PSTN上,然后通过一个与PSTN相连的网关向被叫发起并建立呼叫。
(3)用户定位:SIP的最强大之处就是通过统一资源定位符(URL)来实现用户定位功能。SIP的URL甚至可以被嵌入到Web页或其他超文本链路中,用户只需用鼠标一点即可发出一个呼叫,这样就使得音频和视频的应用与其他多媒体的应用综合变得简单。而且SIP本身含有向注册服务器注册的功能,也可以利用其他定位服务器如DNS、LDAP等提供的定位服务器来增强其定位功能。
(4)呼叫建立:SIP会话请求过程和媒体协商过程等是一起进行的,因此呼叫建立时间短,而在H.323中呼叫建立过程和进行媒体参数等协商的信令控制过程是分开进行的。这种快速呼叫建立机制可以通过消息数目比较得出:H.323在建立媒体信道前,需要建立H.225初始化消息和H.245控制通道以及相关的确认消息,控制协议非常繁琐。利用SIP建立媒体信道的效率很高——被叫到主叫的媒体通道在一个往返中就能建立,而且被叫媒体通道可以在一个半往返时间内建立。
(5)补充功能的扩充:H.323为实现补充业务定义了专门的协议,如 H.450.1、H.450.2和H.450.3等,而SIP只要充分利用已定义的头域,必要时对头域进行简单扩展就能很方便地支持补充业务或智能业务。
(6)多点传送:H.323不支持多点发送(Multicast)协议,只能采用多点控制单元(MCU)构成多点会议,因而同时只能支持有限的多点用户。SIP本身就是由IETF MMUSIC(Multiparty Multimedia Session Control,多方多媒体会话控制)工作组制定的,所以支持多点协议是它无可厚非的优势。会话参加者和媒体种类可以随时加入一个已存在的会议。
3.SIP的描述语法
SIP使用的SDP(Session Description Protocol)会话描述协议是IETF制定的一个标准。SDP的基本目的是为传送消息定义标准的语法,如UDP目的端口、使用的音频或视频的编码标准、活动时间表、会话的名称/简短描述等。它用于传输类似于H.245协议中容量交换机制的协议信息。例如在呼叫中,SDP可被用于传输交换过程中的编解码标识。SDP也被用来实时信息协议(RTSP)的消息。
SDP是种易读的文本协议,由几个=行组成,每行用CRLF结束。与H.323 ASN.1那样的二进制编码不同,它是牺牲带宽来方便编程和调试的。但是在实际运用过程中,这种专业性不强便于多方参与的描述协议更容易被用户方所接受。
4.SIP的实体
SIP的设计思路建立在主机间按对等层(Peer-to-Peer)原则的会话上,SIP定义了可选用的SIP服务器,用来取代复杂的H.323寻址过程以缩短呼叫建立时间。SIP采用的模式是非常适于在Web环境中使用客户机/服务器(Client/Serve)操作型类型。客户机是指为了向服务器发送请求而与服务器建立连接的应 用程序。用户代理(User Agent)和代理(Proxy)中含有客户机。服务器是用于向客户机发来的请求提供服务并回送应答的应用程序。共有4类基本服务器。
(1)用户代理服务器:当接到SIP请求时联系用户,并代表用户返回响应。
(2)代理服务器:可以一边作为一个服务器接受请求,一边作为一个客户端发送请求。代理服务器能够将请求不加任何改变地转发到最终目的地,也能在请求通过的时候过滤原请求消息中的内容。
(3)重走向服务器:接收SIP请求,把请求中的原地址映射成零个或多个新地址,返回给客户机。
(4)注册服务器:接收客户机的注册请求,完成用户地址的注册。它工作的实质就是完成用户SIP地址到IP地址的映射。
用户终端程序往往需要包括用户代理客户机和用户代理服务器。代理服务器、重定向服务器和注册服务器可以看作是公众性的网络服务器。在SIP中还经常提到“定位服务器”的概念,但是定位服务器不属于SIP服务器。SIP服务器请求定位服务的方式也不在SIP的讨论范围之内。
5.SIP呼叫概要
(1)呼叫建立:SIP端点通过使用UDP或TCP信令发送邀请消息(invite)呼叫另一个SIP端点。邀请消息通常包含足够的信息使被叫终端能立刻建立与主叫端点之间被请求的媒体连接。这些信息包括主叫端点能够支持的媒体性能,以及主叫端点希望被叫端发送媒体数据的传送地址。
(2)编解码协商:当被叫端不接受主叫端编解码方式时,会送附有协商失败的原因和提议使用方式的消息;主叫端可以通过网络中代理服务器重新发起一个邀请消息,经代理服务器转换后满足被叫端编解码的要求。
(3)通话过程:双方在已知的端口地址上传送媒体信息。需要指出的是,SIP 没有像H.323所定义的逻辑通道的概念。当一个客户提议在几个UDP或TCP端口上接收几种类型的媒体时,它必须立即准备好在其中任何一个端口上接收媒体。
(4)终止呼叫:当任何一方要求终止呼叫时,它应该向另一方发送一个结束请求(bye),经确认后整个呼叫就彻底完成。
SIP尚在开发试验阶段,不像H.323那样已被广泛接受,但已有不少厂家(如3Com、思科、北电网络等)在积极开发中,今后的发展趋势是SIP或H.323与MGCP配合使用。