VoIP技术的另一主流是IETF的SIP协议。SIP(Session Initiation Protocol,会话初始协议)技术基本是基于动态互联网模式构建网络,它不是多层次的结构,而是扁平单层次网络,其呼叫流程与PSTN网有所不同。SIP依靠动态数据库方式寻址,甚至无长途、短途之分。SIP模式的优点是与互联网紧密结合,适于开发新的与互联网结合的语音应用。这里以IETF的RFC2543、RFC3261为基础,阐述SIP体系结构、消息类型、呼叫信令流程等内容。通过SIP协议的产生背景、功能、网络元素、实现机制、SIP消息组成、SIP呼叫过程等几方面,对SIP进行全方位概要介绍,使读者对SIP有初步了解与认识。
1.SIP协议产生背景与具备的功能
SIP是IETF标准进程的组成部分,是在SMTP和HTTP基础之上建立起来。它可完成建立、改变和终止基于IP网络的用户之间的呼叫功能。SIP的产生是为了提供互联网的高级电话业务,IP电话的商业模式不断演进,应用SIP能够确保演进的实现。SIP已成为下一代网络系列协议的重要组成和3G子域中的重要协议。
若要提供电话的业务功能,需要结合不同的标准与协议:如确保传输、与当前电话网的信令互连、确保语音质量、提供目录(LDAP)和鉴权用户(RADIUS)等。
SIP协议能描述生成、修改和终结一个或多个参与者之间的会话。会话包括基于互联网的多媒体会议、IP电话呼叫和多媒体的发布,会话成员可通过多播或单播方式的网络通信,支持会话描述及允许参与者在兼容媒体类型上达成一致,并通过代理和重定向请求到用户当前位置,支持用户的移动性。在SIP应用中,其协议不与任何特定的会议控制协议捆绑。
SIP提供以下功能:
●进行名字翻译和用户定位,无论被呼叫方在何处都能确保呼叫达到。定位信息映射和支持确保会话细节。
●允许与呼叫有关的组(如多方呼叫)在所支持的特征上达成一致,即具有特征协商的功能。如对视频的支持或不支持。
●呼叫当中,参与者能引入其他用户加入呼叫或取消与其连接。用户可被转移或设置呼叫保持。
●具备呼叫特征改变功能。用户可改变呼叫过程中的呼叫特征。例如,一个呼叫可设置为“voice-only”,
但在呼叫过程中,用户即时又开启了视频的功能,即呼叫可改变呼叫特征。
SIP类似于HTTP的基于文本的协议,并独立于底层传输协议TCP/UDP,支持代理、重定向及登录定位用户及用户移动等功能。由于SIP和HTTP存在相似之处,并基于IP协议和IP网络,因此可减少应用的开发时间。目前已有一些SIP技术生成的网络应用,如著名的基于互联网的实时语音应用系统Skype,即时消息传递应用程序(MSN Messenger)等。
2.SIP元素
SIP主要有两个元素:SIP用户代理和SIP网络服务器。前者是呼叫的终端系统元素,后者是处理与多个呼叫相关联信令的网络设备。
用户代理本身具有一个客户机元素(用户代理客户机UAC)和一个服务器元素(用户代理服务器UAS)。客户机元素初始呼叫而服务器元素应答呼叫,点到点呼叫通过客户机/服务器协议完成。
SIP服务器元素提供三种类型的服务器:有状态代理服务器、无状态代理服务器和重定向服务器。因为呼叫者未必知道被呼叫方的IP地址或主机名,SIP服务器提供名字解析与用户定位,可获E-mail形式的地址或与被呼叫方关联的电话号码。利用这些信息,呼叫者的用户代理能确定特定服务器解析地址信息。代理服务器接收请求,并决定将请求传送到下一服务器,并应用路由原理,在网中可多跳。
有状态和无状态代理服务器区别是:有状态代理服务器记住其接收的入请求及回送的响应和转送的出请求。有状态代理服务器通常是离用户代理最近的本地设备,控制用户域并且是应用服务的主要平台。而无状态代理服务器一旦转送请求后就丢弃所有的入、出信息,服务器响应快,为SIP结构的骨干。
重定向服务器接收请求,但不把请求传给下一个服务器,而是向呼叫者发送响应以指示被呼叫用户的地址,这使得呼叫者可直接联系下一服务器上被呼叫方的地址。
3.SIP协议的实现机制
SIP协议为分层结构。其实现机制是根据一组平等独立的处理阶段而进行,每一阶段之间为松耦合。协议分层描述,功能描述可在一个部分跨越几个元素。
每个元素并非都包含各层,因SIP规定的元素为逻辑元素而非物理元素,所以,一个物理实现可选择不同的逻辑元素,甚至可能是在一个事务的基础上。
SIP最底层是语法和编码,编码使用增强Backus-Naur形式语法(BNF)。第二层是传输层,定义网络上一个客户机如何发送请求和接收响应,及一个服务器如何接收请求和发送响应,所有SIP元素都包含传输层。第三层是事务层,是SIP的基本元素。一个事务是由客户机事务发送给服务器事务请求,以及对应该请求的从服务器事务发送回客户机的所有响应组成。事务层处理应用层的重传,匹配响应到请求,以及应用层超时处理。
任何用户代理客户机完成的任务使用一组事务产生。用户代理包含一个事务层,有状态的代理包含事务层,无状态的代理不包含事务层。事务层具有客户机组成部分(客户机事务)和服务器组成部分(服务器事务)。
事务层的上层称为事务用户(TU)。每个SIP实体,除了无状态代理,均为事务用户。当一个事务用户希望发送请求,则生成一个客户机事务实例并向它传递请求和IP地址、端口和用以发送请求的传输机制。当客户机取消一个事务时,它请求服务器停止进一步的处理,将状态恢复到事务初始化前,并且生成特定的错误响应到该事务,客户机事务即可删除。删除由CANCEL请求完成。
SIP通过E-mail形式的地址标明用户地址。每一用户通过一个等级化的URL标识,通过诸如用户电话号码或主机名等元素进行构造(如SIP:user@company.com)。因它与E-mail地址相似,SIP URLs易与用户E-mail地址关联。
SIP提供自身的可靠性机制从而独立于分组层,因此只需不可靠的数据包服务即可,可典型应用于UDP或TCP上。
SIP协议保证终端系统和代理服务器提供的主要业务如下:用户定位;呼叫建立;呼叫处理;呼叫前转(包括等效800类型呼叫、无应答呼叫前转、遇忙呼叫前转、无条件呼叫前转);呼叫号码传递;移动性(可通过单一、位置无关的地址到达被呼叫方,即使被呼叫方改变了终端);终端类型协商与选择(呼叫者可给出选择如何到达对方,如通过互联网电话,移动电话或应答业务等);终端能力协商;呼叫者与被呼叫者鉴权;多播会议邀请。
当一用户呼叫另一用户,呼叫者用INVITE请求初始呼叫,若客户机知道另一方位置可直接将请求发送到它的IP地址;若不知道位置,客户机则将请求发送到本地配置的SIP服务器,若服务器为代理服务器,将解析被呼叫用户的位置并将请求发送给它们。可有多种方法完成上述步骤,如搜索DNS或访问数据库。服务器也可为重定向服务器,它可返回被呼叫用户的位置到呼叫客户机,使其直接与用户联系。一旦发现用户地址,请求就发送给该用户,此时将产生几种选择:最简单的情况是,用户电话客户机接收请求,即用户电话振铃。此时若用户接受呼叫,客户机响应请求并建立连接;若用户拒绝呼叫,会话将被重定向到语音邮箱服务器或另一用户。(www.xing528.com)
SIP除具有上功能外,还有两个重要意义的特征:第一是有状态SIP代理服务器还具有分割入呼叫或复制入呼叫的能力,从而能够同时运行几个扩展分支。该特征在用户工作在两位置之间(如实验室和办公室)或同时对经理和其秘书振铃时非常便利,首先应答的分支接受呼叫。第二个特征是SIP独有的返回不同媒体类型的能力。当SIP服务器接收到客户机的连接请求,可通过Web交互式语音响应页面来返回到用户客户机,该页面具有可获得的部门分支或提供列表上的用户,单击链接后将发送一个请求到所选用户,从而建立起呼叫。
4.SIP消息的组成
请求:从客户机发到服务器。SIP请求消息包含3个元素:请求行、头、消息体。
响应:从服务器发到客户机。SIP响应消息包含3个元素:状态行、头、消息体。
请求行、头则根据业务、地址和协议特征定义呼叫的本质,而消息体则独立于SIP协议并且可包含任何内容。
5.SIP呼叫过程
SIP定义INVITE邀请用户加入呼叫,通常基于UDP传输,但SIP工具必须同时支持TCP。一条SIP消息由两个部分组成:①信封(envelope),以头字段形式描述一个请求或请求结果(响应)。信封是文本格式,但内容可以是文本,也可是二进制格式。②有效负载(payload),即内容包含有关请求的数据(可选)。
这里分析一次典型的SIP呼叫,如图11-9所示。此场景中,用户A欲呼叫用户B,呼叫过程及解释见表11-9。
图11-9 一次典型的SIP呼叫
表11-9 SIP呼叫解释
(续)
SIP消息的第一行包含消息的类型和所使用的SIP 2.0版本。在请求中,这一行还包含称做SIP URL的地址。这条代表消息的目的地。该例说明如何使用请求消息INVITE、ACK和BYE,以及200OK响应消息。SIP还有许多其他消息,下面列出一些请求消息,见表11-10。
表11-10 SIP请求消息
现列出一些常用响应消息,见表11-11。
表11-11 SIP常用响应
消息使用类似的头字段类型,下面是其中的一些,见表11-12。
表11-12 头字段类型
(续)
还有一些与消息路由选择功能相关的头字段,如Via、Route和Record-Route。一些头字段提供Accept、User-Agent和Supported功能。其他头字段提供Authorization、Privacy和WWW-Authenticate安全性功能等。字段许多有缩写语法(如From=f,To=t等)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。