会话发起协议(SessionInitiationProtocol,缩写SIP)
会话发起协议(Session Initiation Protocol,缩写SIP)是⼀个由IETF MMUSIC ⼯作组开发的协议,作为标准被提议⽤于建⽴,修改和终⽌包括视频,语⾳,即时通信,在线游戏和虚拟现实等多种多媒体元素在内的交互式⽤户会话。2000年11⽉,SIP被正式批准成为3GPP信号协议之⼀,并成为IMS体系结构的⼀个永久单元。SIP与H.323⼀样,是⽤于VoIP最主要的信令协议之⼀。
SIP是⼀项类似于HTTP的基于⽂本的协议。⽐较有意义的是,SIP可以减少应⽤特别是⾼级应⽤的开发时间。⽽且,由于HTTP和SIP之间存在相似之处,已有许多⼈准备采⽤SIP来⽣成应⽤,包括Web设计师。这是⽆线服务商第⼀次有机会让⼤批富有才智的Web设计师来为他们的⽤户设计极具价值的因特⽹应⽤,也让Web设计师第⼀次可以真正了解并操作⽆线通信协议。使⽤简单、能够创造即时的增收机遇,这些理由⾜以让运营商现在就要⾼度重视SIP。⽽且,由于基于IP协议的SIP利⽤了IP⽹络,固定⽹运营商也会逐渐认识到SIP技术对于他们的深远意义。
协议设计
会话发起协议典型的呼叫建⽴流程图SIP的设计⽬标之⼀是提供类似公⽤交换电话⽹(PSTN)中呼叫处理功能的扩展集。在这个扩展集中,实现类似⽇常电话的操作:拨号,振铃,回铃⾳或者忙⾳,只是实现⽅式和术语有所不同。
SIP也实现了许多信令系统7(SS7)中更⾼级的呼叫处理功能,尽管这两个协议相差很远。SS7是⼀个⾼度集中处理的协议,其特点表现为⾼复杂度的中⼼⽹络结构和⽆智能的哑终端(传统的电话机)。SIP则是⼀个点对点协议,所以它只需要⼀个相对简单的(因此也⾼度可扩展的)核⼼⽹络,⽽将处理⼯作下放给连接在⽹络边缘的智能端点(装有硬件或软件的终端设备)。SIP的许多功能在端点中实现,这与传统的SS7将其在⽹络核⼼设备实现的作法⼤异其趣。
尽管有许多其它的VoIP信号协议存在,SIP的特点在于它的⽀持者植根于IP团体⽽不是电信产业。SIP最初由IETF标准化和管理,⽽H.323VoIP协议则从传统上与ITU有着更多的联系。尽管如此,这两个组织对两个协议在某些⽅⾯都相互认可。
SIP与许多其它的协议协同⼯作,仅仅涉及通信会话的信令部分。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 Mesnger使⽤了SIP。2003年6⽉,苹果电脑宣布并向公众发布了测试版的iChat AV,⼀个新版的兼容AOL Instant Mesnger并⽀持通过SIP进⾏⾳视频聊天的客户端。
SIP要想成为实⽤的服务同样需要代理和注册⽹络部件。尽管两个SIP终端可以不借由任何SIP基础设施的⽀持来进⾏通信(这也是为什⼳ SIP 被称为点对点的协议),但是这种⽅式是不适于实际的公共服务。现在已经有了很多公司提供软交换系统(如Nortel,Sonus等许多公司)。其他的⼀些以Ubiqui
ty Software和Dynamicsoft为⾸的公司已经实现了⼀些基于被提议的标准,建⽴在JavaJAIN规范上的产品。
"SIP使⽤代理服务器(Proxy rver)的部件来协助转发信令报⽂到⽬标⽤户⽬前⽹络位置,提供⽤户认证和授权服务,实现服务提供商的呼叫路由策略,和提供给⽤户各种附加
功能。"
"SIP同样提供了注册功能以允许⽤户上传他们⽬前的联⽹位置供代理服务器使⽤。"
"因为注册动作在SIP协议中扮演重要的⾓⾊,掌控⽤户注册信息的[ ⽤户代理服务器 ]有⼀个特殊的名字注册服务器(registrar)。"
关于生死的诗句"有⼀个重要的概念,那就是各种SIP服务器之间的区别是逻辑上的,⽽不是物理上的。"
即时消息(IM)和Prence
⼀个基于SIP标准针对及时信息的扩展,被称为SIMPLE已经被提议并正在开发中。SIMPLE可以传递Prence信息:被叫⽤户是否有意愿加⼊对话?使⽤终端是否有能⼒加⼊对话?。Prence信息的⾓⾊如同MSN Mesnger和AIM、等IM客户端中已普遍实现的好友状态功能。
已经有⼈在努⼒把基于SIP的VoIP和Jabber使⽤的XMPPprence规范整合在⼀起。最著名的是将XMPP扩展到整合语⾳的Google Talk,它计划整合SIP。Gizmo⼯程,曾经实现了SIP,现在已经在他们的客户端和服务中加⼊了XMPP。
商业应⽤
⽤于搭载媒体流的实时传输协议(RTP)并不能简单的穿越NAT路由器。⼤部分SIP客户端可以通过STUN的协助穿越full cone,restricted cone和port restricted cone的NAT但对于对称的(symmetric)NAT还是有问题。⼀些较新的带 ALG 功能的路由器,现在可以识别SIP通信并让其通过。RTP代理服务器,⼀种在上世纪九⼗年代普遍使⽤的类似于HTTP代理服务器的专⽤于SIP的线速处理器,可以启⽤CALEA并穿越⽼式的⽆法识别SIP的NAT设备。
倒计时ppt
正如它的发明者所预见的,SIP的点对点特性⽆法使⽤⼀些⽹络本⾝提供的服务。例如,⽹络不能很容易的⽀持合法的呼叫侦听(在美国由法律控制的窃听,CALEA)。紧急呼叫(在美国呼叫E911)难以路由。因为IP终端本⾝具有移动性,⽹络并没有任何定位的能⼒,要确定正确的公共服务应答点PSAP很困难。然⽽,当商业SIP服务商们正准备放弃时,⼀些实⽤的解决⽅案却在进⾏试验。由3GPP和3GPP2等公司开发的标准定义了基本SIP模型的⼀些应⽤,这些应⽤推动了商业化并⽀持了⽹络中⼼的能⼒,如CALEA。
Vonage和SIPphone等公司是消费SIP的先锋,他们拥有⼀个快速增长的⽤户基础。⼀些较⼤的公司,如AT&T和Level(3)也不⽢⽰弱。传统的电信⼯业(包括Lucent Technologies和Nortel)现在都在集中开发基于SIP架构模型和扩展的系统,如3GPP的IP多媒体⼦系统(IMS)。
陕北小吃
⼀些VoIP电话公司,如BroadVoice,允许⽤户使⽤它们⾃⼰的SIP设备,包括兼容SIP的电话机,AsteriskPBX,或者软电话。新的消费SIP设备市场正在继续膨胀。
open source团体开始提供越来越多的建⽴终端,代理和注册服务器所需的技术,既让这些技术⾛进了⼈们的⽇常⽣活,⼜加速了其向全球推⼴。SIPfoundry已经开发了多种SIP协议栈,客户端应⽤程序和SDK,还有⼀整套可以与市场上⼤部分由⼚商销售的IP PBX实现相竞争的IP PBX解决⽅案。
软件
SIP通信⽅案:
3Com SIP PBX - 基于SIP的企业级IP电话应⽤套件
Asterisk开源SIP/IAX PBX
Brekeke OnDO PBX
Microsoft Office Live Communications Server
pbxnsip PBX
幼儿园厕所
草房子读书心得Rostrvm Switchless - 使⽤SIP的呼叫中⼼架构
sipX - 开源的SIP PBX (带商业⽀持Pingtel.)
SIP服务器:
Micromethod SIPMethod Platform
Ubiquity SIP应⽤服务器
3Com VCX IP电话模块: 背靠背⽤户代理SIP PBX
BEA WebLogic SIP服务器
Brekeke OnDO SIP服务器,适⽤于Windows,Linux,和Mac OS X。⽤于个⼈和教育⽤途免费。
Cisco SIP代理服务器
Nortel SIP多媒体通信服务器5200
IPTel 免费软件 SIP Express Router路由器 [1]喜成语
Pingtel Call Manager (基于SIP Foundry开源)
SIP客户端:
GNOME Meeting: H323和SIP客户端(⽬前版本1.3-opal)for GNU/Linux。
Gizmo Project: 提供,适⽤于Mac OS X,Windows和Linux。
文艺复兴油画
sipXphone - ⼀个适⽤于Windows和Linux的SIP客户端
PhoneGaim SIP免费软件,基于Gaim。
X-Lite ⼀个流⾏的Windows和Linux软电话,可以完全免费使⽤。
eyeBeam 与X-Lite出⾃于同⼀家公司,功能更为强⼤,需要付费使⽤。
KCall ⼀个使⽤Qt库的Linux软电话。
KPhone ⼀个使⽤Qt库的Linux软电话。
Linphone ⼀个使⽤GTK库的Linux软电话。
Pingtel SIP soft phone (单⽤户版,企业版和⽤于嵌⼊式的OEM版。OEM版嵌⼊到Earthlink Vling服务中。) SJPhone ⼀个免费的SIP客户端,可以运⾏在Mac OS X,Windows,PocketPC和Linux上。
Jajah ⼀个免费的Softphone,运⾏在Windows上,Mac OS X和Linux版本稍后推出。
OpenWengo ⼀个开源的SIP客户端,运⾏在Windows和Linux上。Mac OS X和PocketPC版本稍后推出。SFLPhone ⼀个开源的SIP客户端。
ZAP ⼀个开源的,基于XUL的SIP客户端。
SIP测试⼯具:
SFTF: SIP论坛⽤户代理测试框架(开源;由SIP论坛编写)。
SIPp: ⼀个开源的SIP测试⼯具(⽤于功能和性能测试)。
Sipsak: sipsak是⼀个命令⾏⼯具,它能够发送简单的请求到SIP服务器(开源)。
带宽VoIP测试: 提供了⼀个可以测试⽹络上SIP端⼝的⼯具。
SIP协议栈:
ReSIProcate: 开源SIP协议栈。