SmallCYL 2010-09-08
随着网络的发展,VoIP业务以及统一通信的平台越发让人关注起来。那么当中的SIP协议,又是一个令人兴奋的焦点。可能有人就会问了,SIP协议是什么呢?它到底有什么好的呢?这里我们就来深入讲解一下有关内容吧。
SIP协议的中文意思是进程初始化协议,SIP协议的存在主要是为了促进用户通讯系统更加个性化、有更多选择、更好的连接以及更加的开放兼容,属于一种通讯协议。SIP协议是由全球非盈利组织——国际互联网标准制定组织进行制定的。目前SIP协议已经被世界各地的主要电讯服务供应商所采用。SIP还被用于新一代3GPP移动通讯网的呼叫控制。微软公司将它用于Xbox和Windows Messenger。AOL和许多其他公司将它用于即时留言系统。
从SIP协议诞生之时,它就采用了和HTTP相似的模式。和HTTP 一样,它也基于IP网络。互联网最有影响力的优势之一就是,在网络服务器和浏览器之间可以展开各种应用,而不必依赖于IP网络。以SIP协议为基础的进程也是这样(当用户和其他方开始联络时,进程开始,联络结束时,进程结束)。SIP协议服务器(如敏迪网络的3050综合通讯平台)和用户(如敏迪网络的5055 SIP话机)能够完全控制整个进程(语音、视频、会议、即时留言等等)。这和传统的电路交换方式提供的服务模式形成鲜明的对比。在传统模式下,象话机这样的终端产品是没有呼叫控制功能的,对所有服务功能的控制都集中在中央交换单元。SIP协议则为企业管理人员和系统拥护提供了最大的灵活性。
和以往的VoIP协议相比,SIP协议将通讯系统的可扩容性和可协作性提高到了一个新的水准,在它之上,可以更容易地建立起很多新的服务。
现在我们明白了SIP协议是什么了,但是想要更深入地了解这个协议,我们还需要看看它的工作原理。
SIP协议的实现机制
SIP是一个分层结构的协议,这意味着它的行为根据一组平等独立的处理阶段来描述,每一阶段之间只是松耦合.协议分层描述是为了表达,从而允许功能的描述可在一个部分跨越几个元素.它不指定任何方式的实现.当我们说某元素包含某层,我们是指它顺从该层定义的规则集.
不是协议规定的每个元素都包含各层.而且,由SIP规定的元素是逻辑元素,不是物理元素.一个物理实现可以选择作为不同的逻辑元素,甚至可能在一个个事务的基础上.
SIP的最底层是语法和编码.它的编码使用增强Backus-Nayr形式语法(BNF)来规定.
第二层是传输层.它定义了网络上一个客户机如何发送请求和接收响应以及一个服务器如何接收请求和发送响应.所有的SIP元素包含传输层.
第三层是事务层.事务是SIP的基本元素.一个事务是由客户机事务发送给服务器事务的请求(使用传输层),以及对应该请求的从服务器事务发送回客户机的所有响应组成.事务层处理应用层重传,匹配响应到请求,以及应用层超时.任何用户代理客户机(UAC)完成的任务使用一组事务产生.用户代理包含一个事务层,有状态的代理也有.无状态的代理不包含事务层.事务层具有客户机组成部分(称为客户机事务)和服务器组成部分(称为服务器事务),每个代表有限的状态机,它被构造来处理特定的请求.
事务层之上的层称为事务用户(TU).每个SIP实体,除了无状态代理,都是事务用户.当一个TU希望发送请求,它生成一个客户机事务实例并且向它传递请求和IP地址,端口,和用来发送请求的传输机制.一个TU生成客户机事务也能够删除它.当客户机取消一个事务时,它请求服务器停止进一步的处理,将状态恢复到事务初始化之前,并且生成特定的错误响应到该事务.这由CANCEL请求完成,它构成自己的事务,但涉及要取消的事务.
SIP通过EMAIL形式的地址来标明用户地址.每一用户通过一等级化的URL来标识,它通过诸如用户电话号码或主机名等元素来构造(例如:SIP:[email protected]).因为它与EMAIL地址的相似性,SIPURLs容易于用户的EMAIL地址关联.
SIP提供它自己的可靠性机制从而独立于分组层,并且只需不可靠的数据包服务即可.SIP可典型地用于UDP或TCP之上.
SIP提供必要的协议机制以保证终端系统和代理服务器提供以下业务:
◆用户定位
◆用户能力
◆用户可用性
◆呼叫建立
◆呼叫处理
◆呼叫前转,包括:(1)等效800类型的呼叫,(2)无应答呼叫前转,(3)遇忙呼叫前转,(4)无条件呼叫前转
◆呼叫号码传递,该号码可以是任何命名机制.
◆个人移动性,例如通过一个单一的、位置无关的地址来到达被呼叫方,即使被呼叫方改变了终端.
◆终端类型的协商和选择:呼叫者可以给出选择如何到达对方,例如通过因特网电话,移动电话或应答业务等.
◆终端能力协商
◆呼叫者和被呼叫者鉴权
◆不知情和指导式的呼叫转移
◆多播会议的邀请
当一用户希望呼叫另一用户,呼叫者用INVITE请求初始呼叫,请求包含足够的信息用以被呼叫方参与会话.如果客户机知道另一方的位置它能够直接将请求发送到另一方的IP地址.如果不知道,客户机将请求发送到本地配置的SIP网络服务器.如果服务器是代理服务器它将解析被呼叫用户的位置并且将请求发送给它们.有很多方法完成上步,例如搜索DNS或访问数据库.服务器也可以是重定向服务器,它可以返回被呼叫用户的位置到呼叫客户机用以它直接与用户联系.在定位用户的过程中,SIP网络服务器当然能够代理或重定向呼叫到其它的服务器,直到到达一个明确地知道被呼叫用户IP地址的服务器.
一旦发现用户地址,请求就发送给该用户,此时将产生几种选择.在最简单的情况,用户电话客户机接收请求——也就是,用户的电话振铃.如果用户接受呼叫,客户机用客户机软件的指定能力响应请求并且建立连接.如果用户拒绝呼叫,会话将被重定向到语音邮箱服务器或另一用户."指定能力"参照用户想启用的功能.例如,客户机软件可以支持视频会议,但用户只想使用音频会议,那则只会启用音频功能.
SIP还具有另外两个有重要意义的特征.第一个是有状态SIP代理服务器具有分割入呼叫或复制入呼叫的能力,从而可以同时运行几个扩展分支.第一个应答的分支接受呼叫.该特征在用户工作在两位置之间(例如实验室和办公室)或者同时对经理和其秘书振铃时是非常便利的.