会话发起协议

1个分类: 应用层网络协议

会话发起协议(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与许多其它的协议协同工作,仅仅涉及通信会话的信令部分。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 被称为点对点的协议),但是这种方式是不适于实际的公共服务。现在已经有了很多公司提供软交换系统(如Nortel,Sonus等许多公司)。其他的一些以Ubiquity Software和Dynamicsoft为首的公司已经实现了一些基于被提议的标准,建立在JavaJAIN规范上的产品。

来自RFC:

"SIP使用代理服务器(Proxy server)的部件来协助转发信令报文到目标用户目前网络位置,提供用户认证和授权服务,实现服务提供商的呼叫路由策略,和提供给用户各种附加

功能。"

"SIP同样提供了注册功能以允许用户上传他们目前的联网位置供代理服务器使用。"
"因为注册动作在SIP协议中扮演重要的角色,掌控用户注册信息的[ 用户代理服务器 ]有一个特殊的名字注册服务器(registrar)。"
"有一个重要的概念,那就是各种SIP服务器之间的区别是逻辑上的,而不是物理上的。"

即时消息(IM)和Presence

一个基于SIP标准针对及时信息的扩展,被称为SIMPLE已经被提议并正在开发中。SIMPLE可以传递Presence信息:被叫用户是否有意愿加入对话?使用终端是否有能力加入对话?。Presence信息的角色如同MSN Messenger和AIM、等IM客户端中已普遍实现的好友状态功能。

已经有人在努力把基于SIP的VoIP和Jabber使用的XMPPpresence规范整合在一起。最著名的是将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设备。

正如它的发明者所预见的,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
    • 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.org 免费软件 SIP Express Router路由器 [1]
    • Pingtel Call Manager (基于SIP Foundry开源)
  • SIP客户端:
    • GNOME Meeting: H323和SIP客户端(目前版本1.3-opal)for GNU/Linux。
    • Gizmo Project: SIPphone.com提供, 适用于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测试: Bandwidth.com提供了一个可以测试网络上SIP端口的工具。
  • SIP协议栈:
    • ReSIProcate: 开源SIP协议栈。

See also

  • Earthlink SIPshare
  • Media Gateway Control Protocol (MGCP)
  • IP Multimedia Subsystem

External links

  • SIP 资讯
  • ONsip.org – 致力于基于SIP的VoIP解决方案的开源团体。
  • Henning Schulzrinne合著者的SIP标准协议栈的页面。
  • SIP论坛
  • Packetizer的SIP信息站点
  • 汇思通信SIP论坛(中文简体版)

SIP-会话发起协议相关推荐

  1. SIP(会话发起协议)

    1.简介 SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信 ...

  2. SIP协议 会话发起协议(二)

    SIP - 响应码 SIP响应是由用户代理服务器(UAS)或SIP服务器生成的用于回复客户端生成的请求的消息.这可能是一个正式的确认,以防止UAC转发请求. 响应可能包含UAC所需的一些额外的信息头字 ...

  3. 【SIP教程】 SDP(Session Description Protocol)会话描述协议

    概述 SDP用来描述多媒体会话的应用层控制协议,为会话通知.会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述. 是一个基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛 ...

  4. 会话初始协议---SIP协议【详解】

    目录 ​ 一.SIP协议简介 二.SIP消息的两种会话模式 1.Session Model 2.Pager Model 三.SIP消息体格式 1.请求行(request-line) 2.状态行(sta ...

  5. SIP(Session Initiation Protocol,会话初始协议)

    SIP(Session Initiation Protocol,会话初始协议)的开发目的是用来帮助提供跨越因特网的高级电话业务.因特网电话(IP电话)正在向一种正式的商业电话模式演进,SIP就是用来确 ...

  6. 会话初始协议SIP与SDP简介

    SIP(Session Initiation Protocol,会话初始协议)是一个控制发起.修改和终结交互式多媒体(音视频.聊天.游戏等)会话的信令协议(RFC 3261).SIP是一个基于文本的协 ...

  7. 基于SIP和RTP协议的开源VOIP之QuteCom简单介绍

    **************************************************************************************************** ...

  8. SDP: Session Description Protocol(会话描述协议) (RFC2327)

    SDP: SessionDescription Protocol(会话描述协议) (RFC2327) 1概述 SDP也是MMUSIC工作组的一个产品,在MBONE内容中用得很多.其目的就是在媒体会话中 ...

  9. SIP和ISUP协议互通的研究

    SIP和ISUP协议互通的研究 凌 颖, 钮颖彬, 李 青 (中国电信集团上海研究与开发中心, 上海 200122) 摘 要:本文是基于软交换(SoftSwitch)技术的发展而提出的,从网络融合的角 ...

最新文章

  1. 两个linux之间拷贝文件及文件夹
  2. vue 后台翻译_vue translate peoject实现在线翻译功能【新手必看】
  3. 数据科学篇| Seaborn库的使用(四)
  4. 山寨版项目管理经验小结
  5. 网页与 alert() 一样用于弹框却比之多了一个取消选项的方法 confirm()
  6. 把自定义encoder加入ffmpeg源码
  7. 倍福TwinCAT3中控制台达A2伺服使用
  8. 关于django中render_to_response()的用法以及外键的使用
  9. linux 内核 sd卡驱动,Linux3.4内核SD卡驱动移植
  10. C#实现百度翻译功能
  11. Java ist reverse_GKCTF 2020 Reverse Writeup
  12. 2021年终总结 : 聚焦发展,稳步突破
  13. 2012 5.4青年节--上海出差
  14. Herrig Schiefspiegler望远镜
  15. 隐藏index.php
  16. Python生成汉字字符以及对应分辨率的图片
  17. 懒猫社长便利店成焦虑boy的温暖港湾!
  18. 整数有约 | AI智能篆刻:活学活用,让传统文化“潮”起来
  19. 个人述职岗位竞聘报告PPT模板
  20. 服务器重装系统c盘过大,一键重装系统c盘变大了

热门文章

  1. 30天搞定spark源码系列-RDD番外篇-shuffledRDD
  2. Struts2类型转换的说明及案例分析
  3. 家居家具行业如何做好舆情风险防范?
  4. 使用树莓派定时给微信群发消息
  5. 英特尔移动CPU命名及列表
  6. 愚(鱼)人节到啦!CRI鱼人语制作小讲堂开班!
  7. 01什么是FPGA?
  8. Objective-C中的类别(Category)的使用
  9. 麒麟操作系统V10默认的大页大小
  10. 魔兽服务器负载显示新,魔兽世界部分服务器的负载过高 官方将会开启免费转服服务...