通信百科

什么是SIP协议?

什么是SIP,这里讲的SIP是一种voip网络通信协议,首先我们要知道要了解网络电话协议有哪些,请参考:https://www.dsliu.com/wenti/4984.html
1,SIP是类似于HTTP的基于文本的协议。
2,SIP可以减少应用特别是高级应用的开发时间。由于基于IP协议的SIP利用了IP网络,固定网运营商也会逐渐认识到SIP技术对于他们的深远意义
SIP协议详细说明
    SIP(SessionInitiationProtocol,会话发起协议)是由IETF推出的一种用于建立、修改和终止多媒体会话的应用层控制协议。这些多媒体会话包括Internet多媒体会议、远程教育、Internet电话等。SIP侧重于将IP电话作为互联网上的一个应用,所以SIP继承了互联网协议简单、开放、灵活的特点,既保证了对用户和会话的可管理性,又使网络核心负担大大减轻,实现可伸缩性。同时,与其他互联网应用(如FTP、E-mail等)相比较,SIP还增加了信令和QoS控制的要求。
         SIP共定义了两类实体:用户代理(UserAgent)和网络服务器,与此相关的还有SIP终端和定位服务器。SIP用户代理包括两部分:用户代理客户机(UAC,UserAgentCli­ent)和用户代理服务器(UAS,UserAgentServer)。UAC主要用于发出SIP请求,UAS则对SIP请求做出响应并接受、重定向或拒绝呼叫。SIP网络服务器也有两类:代理服务器(ProxyServer)和重定向服务器(redirectserver)。Proxy用于转发收到的SIP请求,通常Proxy的转发基于对其他终端或下一跳服务器的查询结果,它本身不直接处理SIP请求。重定向服务器则类似于域名解析服务器(DNS,DomainNameServer)的角色,向发出SIP请求的用户代理返回下一跳服务器的地址,它一般不会发出SIP请求或接受SIP呼叫。
          SIP是一种基于文本的协议,它的语法和消息非常类似于HTTP协议,不同之处在于SIP不仅可以用TCP,也可以用UDP封装。SIP采用统一资源定位(URL,UniformResourceLocators)来指示会话的发起方(From八当前请求的目的地(RequestURL)和最终的接收方(To)。SIP的消息分为两大类:一类为客户发往服务器的请求消息;另一类为服务器返回的响应消息。SIP在消息体中采用SDP(SessionDescriptionProtocol,会话描述协议)来描述多媒体会话的媒体信息。SIP最大的特点是仅需利用已有的消息头字段,对其进行简单必要的扩充,就能很方便地支持各项新业务和智能业务,具有很强的灵活性和可扩充性。SIP协议天然具有对移动性的支持。SIP的动态注册机制,使用户端的移动变得十分方便。SIP协议为实现固定和移动业务的无缝融合创造了条件。3GPPR5版本已经选定SIP作为3G移动通信多媒体域的信令协议来实现基于IP的移动语音和多媒体通信。SIP的这些优越特征使其在NGN中占据很重要的主导地位。下图显示了一个典型的SIP呼叫建立的信令过程,具体过程如下。
建立呼叫的SIP信令过程
建立呼叫的SIP信令过程
1、呼叫方对某个用户SIP:userA@company.com发起INVITE请求,该请求中提供了足够的信息,以便被叫方能参加该会话,包括媒体流的类型和格式以及地址和端口等信息,以SDP格式来表示,INVITE请求被送到本地的SIP代理服务器A;
2、本地的SIP代理服务器A通过DNS查询,得到company.com域中处理SIP请求的重定向服务器的IP地址,并将接收到的请求转发到该SIP重定向服务器;
3、SIP重定向服务通过查询,了解到用户userA@company.com当前并不在本地,而是以userB@univeristy.edu登记(company.com的服务器可以通过静态配置数据库入口来获得这些消息,或者用户通过使用SIPREGISTER消息动态通知重定向服务器),然后该服务器将请求重定向到university.edu;
4、本地的SIP代理服务器A通过DNS查询,得到university.edu域中处理SIP请求的代理服务器B的IP地址,并将接收到的INVITE请求转发到该SIP代理服务器B;
5、university.edu域中的SIP代理服务器B查询本地的位置服务数据库;
6、本地数据库返回有关userB@univeristy.edu的消息,指示该用户在本地是以userC@cs.university.edu注册的;
7、university.edu域的SIP代理服务器B将该INVITE请求转发到cs.university.edu域中的SIP代理服务器C;
8、cs.university.edu域中的SIP代理服务器C知道用户userC@cs.university.edu当前所登记的机器的IP地址,并将该INVITE请求转发到该地址;
9、被叫方userC@cs.university.edu接受该呼叫,并发回一个响应。该响应沿着10、11、 12到达呼叫方,然后呼叫方返回一个确认(图中未标出),至此呼叫已经建立,可以开始在它们之间直接传输媒体流了。
SIP协议设计:SIP最早由Henning Schulzrinne和Mark Handley于1996年所设计. SIP的设计目标之一是提供类似公用交换电话网(PSTN)中调用处理功能的扩展集。在这个扩展集中,实现类似日常电话的操作:拨号,振铃,回铃音或者忙音,只是实现方式和术语有所不同。
        SIP也实现了许多七号信令系统(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对语音通信毫无限制,能够传输从语音到视频的任何通信会话,甚至未来还没有设想的应用。
/uploads/allimg/190216/1-1Z21611303NK.jpg
SIP网络单元
SIP 会话使用多达四个主要组件:SIP 用户代理、SIP注册服务器、SIP 代理服务器和 SIP 重定向服务器。这些系统通过传输包括了 SDP 协议(用于定义消息的内容和特点)的消息来完成 SIP 会话。
SIP 用户代理 (UA) 是终端用户设备,如用于创建和管理 SIP 会话的移动电话、多媒体手持设备、PC、PDA 等。用户代理客户机发出消息。用户代理服务器对消息进行响应。
SIP 注册服务器是包含域中所有用户代理的位置的数据库。在 SIP 通信中,这些服务器会检索参与方的 IP 地址和其他相关信息,并将其发送到 SIP 代理服务器。
SIP 代理服务器接受 SIP UA 的会话请求并查询 SIP注册服务器,获取收件方 UA 的地址信息。然后,它将会话邀请信息直接转发给收件方 UA(如果它位于同一域中)或代理服务器(如果 UA 位于另一域中)。
SIP 重定向服务器允许 SIP 代理服务器将 SIP 会话邀请信息定向到外部域。SIP 重定向服务器可以与 SIP 注册服务器和 SIP 代理服务器同在一个硬件上。
用户代理(User Agent):SIP用户代理是一个SIP逻辑网络端点,用于创建、发送、接收SIP消息并管理一个SIP会话。SIP用户代理又可分为用户代理客户端UAC(User Agent Client)和用户代理服务端UAS(User Agent Server)。UAC创建并发送SIP请求,UAS接收处理SIP请求,发送SIP响应。
代理服务器(Proxy):SIP代理服务器(PROXY)在网络上位于SIP UAC和UAS之间,用于帮助UAC和UAS间的消息路由。PROXY也可以执行路由策略控制(比如,检查SIP消息的合法性,确认消息是否允许被路由)。PROXY在转发SIP消息时,可能根据需要修改SIP消息的某些部分。
注册服务器(Register):SIP注册服务器用于接收SIP注册请求,并保存发送注册请求的UA的位置信息。
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规范上的产品。"SIP使用代理服务器(Proxy server)的部件来协助转发信令报文到目标用户当前网络位置,提供用户认证和授权服务,实现服务提供商的调用路由策略,和提供给用户各种附加功能。"SIP同样提供了注册功能以允许用户上传他们当前的联网位置供代理服务器使用。""因为注册动作在SIP协议中扮演重要的角色,掌控用户注册信息的[ 用户代理服务器]有一个特殊的名字注册服务器(registrar)。""有一个重要的概念,那就是各种SIP服务器之间的区别是逻辑上的,而不是物理上的。"
即时消息(IM)和Presence:一个基于SIP标准针对及时信息的扩展,被称为SIMPLE已经被提议并正在开发中。SIMPLE可以传递Presence信息:被调用户是否有意愿加入对话?使用终端是否有能力加入对话?。Presence信息的角色如同MSN Messenger和AIM、等IM客户端中已普遍实现的好友状态功能。
即时消息(IM)和Presence
       已经有人在努力把基于SIP的VoIP和Jabber使用的XMPPpresence规范集成在一起。最著名的是将XMPP扩展到集成语音的Google Talk,它计划集成SIP。Gizmo工程,曾经实现了SIP,现在已经在他们的客户端和服务中加入了XMPP。
SIP商业应用
        用于搭载媒体流的实时传输协议(RTP)并不能简单的穿越NAT路由器。大部分SIP客户端可以通过STUN的协助穿越完全圆锥形和端口限制圆锥形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)也不甘示弱。传统的电信工业(包括朗讯科技和北电网络)现在都在集中开发基于SIP架构模型和扩展的系统,如3GPP的IP多媒体子系统(IMS)。一些VoIP电话公司,如BroadVoice,允许用户使用它们自己的SIP设备,包括兼容SIP的电话机,AsteriskPBX,或者软电话。新的消费SIP设备市场正在继续膨胀。
开源团队开始提供越来越多的创建终端,代理和注册服务器所需的技术,既让这些技术走进了人们的日常生活,又加速了其向全球推广。SIPfoundry已经开发了多种SIP协议栈,客户端应用程序和SDK,还有一整套可以与市场上大部分由厂商销售的IP PBX实现相竞争的IP PBX解决方案。
        SIP它既不是会话描述协议,也不提供会议控制功能。为了描述消息内容的负载情况和特点,SIP 使用 Internet 的会话描述协议 (SDP) 来描述终端设备的特点。SIP 自身也不提供服务质量 (QoS),它与负责语音质量的资源保留设置协议 (RSVP) 互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议 (LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。
        SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。SIP消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。SIP如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNS、RTP、RSVP 等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。对 SIP 的扩充易于定义,可由服务提供商在新的应用中添加,不会损坏网络。网络中基于 SIP 的旧设备不会妨碍基于 SIP 的新服务。例如,如果旧 SIP 实施不支持新的 SIP 应用所用的方法/标头,则会将其忽略。SIP 独立于传输层。因此,底层传输可以是采用 ATM 的 IP。SIP 使用用户数据报协议 (UDP) 以及传输控制协议 (TCP),将独立于底层基础设施的用户灵活地连接起来。SIP 支持多设备功能调整和协商。如果服务或会话启动了视频和语音,则仍然可以将语音传输到不支持视频的设备,也可以使用其他设备功能,如单向视频流传输功能。
更多请参考SIP百科:http://baike.baidu.com/link?url=LZ_bZolrY0EcOfjoBHUPIteYOFzFFfYWzYMgE2CIrcNq2ns4MaoCreTV6lVAU7_Pw7kWsiywI8WlOEM_BlNzxK
我公司提供丰富的SIP终端产品:语音网关、SIP电话及服务器IPPBX、SIP软交换

详细再一次了解 什么是SIP协议?