什么是SIP协议?

November 18, 2006

会话发起协议

Session Initiation Protocol,缩写SIP)是一个由IETF MMUSIC 工作组开发的协议,作为标准被提议用于建立,修改和终止包括视频,语音,即时通信在线游戏虚拟现实等多种多媒体元素在内的交互式用户会话。2000年11月,SIP被正式批准成为3GPP信号协议之一,并成为IMS體系结构的一个永久单元。SIP与H.323一样,是用于VoIP最主要的信令协议之一。

协议设计

SIP的設計目标之一是提供類似公用交换电话网(PSTN)中呼叫处理功能的扩展集。在这个扩展集中,實現类似日常电话的操作:拨号,振铃,回铃音或者忙音,只是实现方式和术语有所不同。

SIP也实现了许多信令系统7(SS7)中更高级的呼叫处理功能,尽管这两个协议相差很远。SS7是一个高度集中处理的协议,其特点表现为高复杂度的中心网络结构和无智能的哑终端(传统的电话機)。SIP则是一个点对点协议,所以它只需要一个相對简单的(因此也高度可扩展的)核心网络,而将處理工作下放給連接在网络边缘的智能端点(装有硬件或软件的终端设备)。SIP的许多功能在端点中实现,这与传统的SS7将其在网络核心設備实现的作法大異其趣。

尽管有许多其它的VoIP信号协议存在,SIP的特点在于它的支持者植根于IP团体而不是电信產业。SIP最初由IETF标准化和管理,而H.323VoIP协议则从传统上与ITU有着更多的联系。尽管如此,这两个组织对两个协议在某些方面都相互认可。

SIP与许多其它的协议协同工作,仅仅涉及通信会话的信令部分(control message)。SIP報文內容傳送会话描述协议(SDP),SDP协议描述了会话所使用流媒体細節,如:使用哪個IP端口,采用哪種编解码器等等。SIP的一个典型用途是:SIP“会话”传输一些简单的经过封包的实时传输协议流。RTP本身才是语音或视频的载体。

第一个被提议的标准版本(SIP 2.0)在RFC 2543中定义。在RFC 3261中对这个协议有更深入的解释,尽管目前许多裝置仍然是參考以前的过渡版本而實現的。注意现在的版本还是2.0。

SIP同HTTP相似并采用了后者的一些设计原则:SIP報文是人类可读的,并且也是採取请求-应答的流程。SIP的倡导者宣称它比H.323简单。但是,有些人则保留地认为尽管SIP的原始目标很简单,现在它已經演變得跟H.323一 样复杂了。SIP借用了许多HTTP状态码,如常见的’404 not found’。SIP的发起者说:曾經在网络上出现的急速革新和应用发展的歷史将同样发生在电话產业上。SIP和H.323对语音通信毫无限制,能够传输 从语音到视频的任何通信会话,甚至未来还没有設想的应用。

SIP网络部件

拥有传统的电话机外表,触感和形状的硬件,但使用SIP和RTP通信的终端和设备,已经有多家厂商可以供货。这些产品中有些可以通过电子配号(ENUM)来把现存的电话号码翻译成使用DNS的SIP地址,所以即使你的服务商运营的网络还只是为传统电话号码服务的PSTN(并且对你收费),你也可以通过这些电话网络呼叫其它的SIP用户。

现在,软件SIP终端已经非常常见。微软公司的Windows Messenger使用了SIP。2003年6月,苹果电脑宣布并向公众发布了测试版的iChat AV,一个新版的兼容AOL Instant Messenger并支持通过SIP进行音视频聊天的客户端。

SIP要想成为实用的服务同样需要代理和注册网络部件。尽管两个SIP终端可以不藉由任何SIP基础设施的支持來进行通信(这也是为什么 SIP 被稱为点对点的協議),但是这种方式是不适于實際的公共服务。现在已经有了很多公司提供软交换系統(如NortelSonus等许多公司)。其他的一些以Ubiquity Software和Dynamicsoft为首的公司已经实现了一些基于被提议的标准,建立在JavaJAIN规范上的产品。
[Read more]