SIP定义
什么是SIP,这里讲的SIP是一种voip网络通信协议,SIP是一种应用层协议,全称叫会话初始协议,是英文Session initialization Protocol缩写,也是互联网上现代交互式通信(语音通话,视频通话等)的基础。
注意:SIP (系统级封装(System In a Package)与本文无关,了解这个请移步:系统级封装_百度百科 sip还有一种解释:SIP(系统完整性保护) 本文主要介绍SIP通信协议。
SIP(SessionInitiationProtocol,会话发起协议)是由IETF推出的一种用于建立、修改和终止多媒体会话的应用层控制协议。这些多媒体会话包括Internet多媒体会议、远程教育、Internet电话等。SIP侧重于将SIP网络电话作为互联网上的一个应用,所以SIP继承了互联网协议简单、开放、灵活的特点,既保证了对用户和会话的可管理性,又使网络核心负担大大减轻,实现可伸缩性。同时,与其他互联网应用(如FTP、E-mail等)相比较,SIP还增加了信令和QoS控制的要求。
作为一个IETF提出的标准,SIP协议在很大程度上借鉴了其他各种广泛存在的Internet 协议,如HTTP (超文本传输协议)、SMTP (简单邮件传输协议)等,和这些协议一样,SIP 也采用基于文本的编码方式,这也是SIP协议同视频通信领域其他现有标准相比最大的特点 之一。
SIP协议的提出和发展,是伴随着Internet的发展而发展的,到目前为止它走过了以下几 个阶段。
Mark Handley 和 Eve Schooler 开发了会话邀请协议(Session Invitation Protocol) SIPvl, 于1996年2月22日递交IETFo SIPvl协议仅仅处理会话的建立,一旦用户加入会话,则信 令就终止,而且会议也无中间控制。
在 IETF 第 35 次会议上,Schulzrinne 提出了 SCIP (Simple Conference Invitation Protocol, 简单会议发起协议),经过讨论,将SIPvl和SCIP进行合并,最终的协议保留了 SIP作为名 字,但意义已经改为 Session Initiation Protocol。
随后 Mark Hanley > Schulzrinne 和 Schooler 于 1996 年将 SIPv2 递交给 IETF 第 37 次会议, 这是一个基于HTTP新的SIP。
1999年3月,IETF的多方、多媒体会晤控制(mmusic)工作组提出了 RFC2543建议, 供各厂商和机构讨论。
1999年9月,SIP工作组从mmusic中分离并独立岀来,成立了 SIP工作组,最初由Joerg Ott、Jonathan Rosenberg和Dean Willis担任主席,并于2000年7月发表了 SIP的草案。
2002年6月,IETF的SIP工作组又发表了 RFC3261建议,以取代RFC2543-由于网络环境以及相关多媒体技术的不足,在SIP协议首次提出的时候,仅仅针对各种文 本应用,随着技术的发展,并通过和IETF中IP电话工作组(iptel)、IP网中电话选路(trip) 工作组等兄弟工作组配合工作,在SIP协议中大大加强了对多媒体通信的支持。
近年来,在建设下一代网络的过程中发生了一个很明显的变化:很多设备厂商都开始将 其下一代网络的协议标准向SIP方向倾斜。SIP成为追逐的标准,最大的优势就是开发简单, 同时SIP具有继承性,对于拥有传统网络的运营商来说,SIP在网络发展过程中,无疑是一个 承上启下最好的切入点。
在3GPP中使用SIP标准来支持语音和数据是SIP协议得以发展的一个重要原因,SIP可 以对语音进行很好的优化,并且由于它的可编程性,使移动业务面临灵活性和多样性的变化 时,有了很好的保证。
另外,基于SIP的终端丰富多彩有利于从网络接入到最终用户的完整产业链的完成。SIP 能够对手机、PDA等移动设备提供良好的支持,对于在线即时交流、语音和视频数据传输等 多媒体应用也能够很好地完成。
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信令过程
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功能
SIP被描述为用来生成、修改和终结一个或多个参与者之间的会话。这些会话包括Internet多媒体会议,Internet(或任何IP网络)电话呼叫和多媒体发布。
会话中的成员能够通过多播或单播联系的网络来通信。SIP支持会话描述,它允许参与者在一组兼容媒体类型上达成一致。它同时通过代理和重定向请求到用户当前位置来支持用户移动性。SIP不与任何特定的会议控制协议捆绑。本质上,SIP提供以下功能:
名字翻译和用户定位:
无论被呼叫方在哪里都确保呼叫达到被叫方、执行任何描述信息到定位信息的映射,确保呼叫(会话)的本质细节被支持。
特征协商:
它允许与呼叫有关的组(这可以是多方呼叫)在支持的特征上达成一致(注意:不是所有各方都能够支持相同级别的特征)。例如,视频可以或不可以被支持。总之,存在很多需要协商的范围。
呼叫参与者管理:
呼叫中参与者能够引入其他用户,加入呼叫或取消到其他用户的连接。此外,用户可以被转移或置为呼叫保持。
呼叫特征改变:
用户应该能够改变呼叫过程中的呼叫特征。例如,一个呼叫可以被设置为“voice-only”,但是在呼叫过程中,用户可以开启视频功能。也就是说一个加入呼叫的第三方为了加入该呼叫可以开启不同的特征。
SIP网络单元
SIP系统基本组成
SIP协议虽然主要为IP网络设计的,但它并不关心承载网络,也可以在ATM、帧中继等承载网中工作,它是应用层协议,可以运行于TCP,UDP,SCTP等各种传输层协议之上。SIP用户是通过类似于e-mail地址的URL标识,例如:sip:myname@mycompany.com,通过这种方式可以用一个统一名字标识不同的终端和通信方式,为网络服务和用户使用提供充分的灵活性。按逻辑功能区分,SIP系统由4种元素组成:用户代理、代理服务器、重定向服务器以及注册服务器。
1.用户代理
用户代理(UserAgent)分为两个部分:
-
客户端(UserAgentClient),负责发起呼叫;
-
用户代理服务器(UserAgentServer),负责接受呼叫并做出响应。
二者组成用户代理存在于用户终端中。用户代理按照是否保存状态可分为有状态代理、有部分状态用户代理和无状态用户代理。
2.代理服务器
代理服务器(ProxyServer),负责接收用户代理发来的请求,根据网络策略将请求发给相应的服务器,并根据收到的应答对用户做出响应。它可以根据需要对收到的消息改写后再发出。
3.重定向服务器
重定向服务器(RedirectServer),用于在需要时将用户新的位置返回给呼叫方。呼叫方可根据得到的新位置重新呼叫。
4.注册服务器
注册服务器(Registrar),用于接收和处理用户端的注册请求,完成用户地址的注册。
以上几种服务器可共存于一个设备,也可以分布在不同的物理实体中。SIP服务器完全是纯软件实现,可以根据需要运行于各种工作站或专用设备中。UAC,UAS,ProxyServer,RedirectServer是在一个具体呼叫事件中扮演的不同角色,而这样的角色不是固定不变的。一个用户终端在会话建立时扮演UAS,而在主动发起拆除连接时,则扮演UAC。一个服务器在正常呼叫时作为ProxyServer,而如果其所管理的用户移动到了别处,或者网络对被呼叫地址有特别策略,则它将扮演RedirectServer,告知呼叫发起者该用户新的位置。
除了以上部件,网络还需要提供位置目录服务,以便在呼叫接续过程中定位被叫方(服务器或用户端)的具体位置。这部分协议不是SIP协议的范畴,可选用LDAP(轻量目录访问协议)等。
理论上,SIP呼叫可以只有双方的用户代理参与,而不需要网络服务器。设置服务器,主要是服务提供者运营的需要。运营商通过服务器可以实现用户认证、管理和计费等功能,并根据策略对用户呼叫进行有效的控制。同时可以引入一系列应用服务器,提供丰富的智能业务。
SIP的组网很灵活,可根据情况定制。在网络服务器的分工方面:位于网络核心的服务器,处理大量请求,负责重定向等工作,是无状态的,它个别地处理每个消息,而不必跟踪纪录一个会话的全过程;网络边缘的服务器,处理局部有限数量的用户呼叫,是有状态的,负责对每个会话进行管理和计费,需要跟踪一个会话的全过程。这样的协调工作,既保证了对用户和会话的可管理性,又使网络核心负担大大减轻,实现可伸缩性,基本可以接入无限量用户。SIP网络具有很强的重路由选择能力,具有很好的弹性和健壮性。
对话启动协议提供了一种既可在终端设备或代理服务器之间,也可向网关设备传输呼叫控制信息的方法,像许多现有的Internet协议一样,SIP中也包含了常用的HTTP协议。
SIP被认为是一种轻量级协议,因为该协议使用的是能被终端设备轻易生成并分析的简单文本命令。SIP只使用6个指令管理呼叫控制信息,SIP协议的简单易行是极低成本应用系统选择该协议的重要原因。
SIP并未对媒体传输机制加以定义,因此该协议能用在媒体传输作为专用设备的应用系统,这可以提高效率并降低成本。SIP也允许通过任意数据报协议传输呼叫控制信息,使其在非TCP/IP环境(如Novell或其他专有协议)中也能有效使用。
SIP的部分优点包括:
该协议具有可扩展特性,可以轻松定义并迅速实现新功能。可以简单易行地嵌入廉价终端用户设备。该协议可确保互操作能力,并使不同的设备进行通信。便于那些非电话领域的开发人员理解该协议。
SIP的缺点包括:
SIP问世不久,因此大多数应用尚处于原型阶段。该协议单独应用的范围较窄。但与其他协议协同使用时,具有较强的灵活性。SIP只是完整解决方案的一小部分,还需要许多其他的软件来构建完整的SIP网络电话产品。
低成本终端产品无疑是SIP最自然的应用了,像无线电话、以太网电话及其他带有有限计算和内存资源的设备都能使用该协议。由于SIP是一种优越的呼叫控制协议,因此是当前取代MGCP呼叫控制协议的首选。
上述每个协议强调了开发SIP网络电话系统所需技术的不同方面,当前开发的许多系统中至少包含其中一种协议,而且这些协议通常要求互操作性。所有这些协议在构建复杂SIP网络电话系统的过程中不断发展。各制造商都在尝试研制具备互操作性的系统,所以互操作能力将继续成为未来的一大挑战。由IETF和ITU衍生而来的新标准协议MGC(H.248/Megaco)有望成为MGCP在传输市场最强有力的竞争对手。
SIP协议组网方式
SIP协议组网方案设计视具体的应用场景和需求而定。以下是一个基础的音频通信的SIP组网示例:
-
核心网络设备:核心网设备通常包括SIP服务器(如:SIP代理服务器,SIP注册服务器等),以及其他网络设备如防火墙、路由器等。
-
终端设备:终端设备可能是IP电话、智能手机、电脑等支持SIP协议的设备,它们通过用户代理(User Agents)运行SIP协议。
假设我们需要为两个办公室(A与B)设计一个SIP组网方案,他们希望使用IP电话进行音频通信。步骤如下:
第一步:在每个办公室中设备使用SIP协议的IP电话作为终端设备。
第二步:在网络核心位置部署SIP服务器,可以是专业的硬件设备,也可以是运行在PC或者云服务器上的软件服务。例如,Asterisk、FreeSWITCH或Kamailio等开源软件。
第三步:设置防火墙规则,允许SIP协议(通常使用5060或者5061端口)和音频数据流(RTP协议,通常使用10000-20000端口)的通行。
第四步:所有 IP 电话注册到 SIP 服务器上,当 A 办公室的 IP 电话想要呼叫 B 办公室的 IP 电话时,它将请求发送到 SIP 服务器,SIP 服务器根据 B 办公室的 IP 电话地址进行路由,然后将请求转发到 B 办公室的 IP 电话。
第五步:B办公室的IP电话响应请求,并通过SIP服务器将响应返回给A办公室。
第六步:当A办公室的IP电话收到响应后,两台电话将直接建立起音频数据流,开始通话。
以上就是一个SIP协议组网的基础方案。具体实施时,可能需要根据网络条件、功能需求、安全需求等因素进行调整,可能需要引入更复杂的网络设计元素,如VPN、NAT穿透、SIP防火墙等。