NGN网络核心协议—SIP协议详解( 二 )


重定向服务器接收请求,但不是将这些请求传递给下一服务器而是向呼叫者发送响应以指示被呼叫用户的地址 。这使得呼叫者可以直接联系在下一服务器上被呼叫方的地址 。
三、SIP协议的实现机制
SIP是一个分层结构的协议,这意味着它的行为根据一组平等独立的处理阶段来描述,每一阶段之间只是松耦合 。协议分层描述是为了表达,从而答应功能的描述可在一个部分跨越几个元素 。它不指定任何方式的实现 。当我们说某元素包含某层,我们是指它顺从该层定义的规则集 。
不是协议规定的每个元素都包含各层 。而且,由SIP规定的元素是逻辑元素,不是物理元素 。一个物理实现可以选择作为不同的逻辑元素,甚至可能在一个个事务的基础上 。
SIP的最底层是语法和编码 。它的编码使用增强Backus-Nayr形式语法(BNF)来规定 。
第二层是传输层 。它定义了网络上一个客户机如何发送请求和接收响应以及一个服务器如何接收请求和发送响应 。所有的SIP元素包含传输层 。
第三层是事务层 。事务是SIP的基本元素 。一个事务是由客户机事务发送给服务器事务的请求(使用传输层),以及对应该请求的从服务器事务发送回客户机的所有响应组成 。事务层处理应用层重传,匹配响应到请求,以及应用层超时 。任何用户代理客户机(UAC)完成的任务使用一组事务产生 。用户代理包含一个事务层,有状态的代理也有 。无状态的代理不包含事务层 。事务层具有客户机组成部分(称为客户机事务)和服务器组成部分(称为服务器事务),每个代表有限的状态机,它被构造来处理特定的请求 。
事务层之上的层称为事务用户(TU) 。每个SIP实体,除了无状态代理,都是事务用户 。当一个TU希望发送请求,它生成一个客户机事务实例并且向它传递请求和IP地址,端口,和用来发送请求的传输机制 。一个TU生成客户机事务也能够删除它 。当客户机取消一个事务时,它请求服务器停止进一步的处理,将状态恢复到事务初始化之前,并且生成特定的错误响应到该事务 。这由CANCEL请求完成,它构成自己的事务,但涉及要取消的事务 。
SIP通过EMAIL形式的地址来标明用户地址 。每一用户通过一等级化的URL来标识,它通过诸如用户电话号码或主机名等元素来构造(例如:SIP:user@company.com) 。因为它与EMAIL地址的相似性,SIP URLs轻易于用户的EMAIL地址关联 。

SIP提供它自己的可靠性机制从而独立于分组层,并且只需不可靠的数据包服务即可 。SIP可典型地用于UDP或TCP之上 。
SIP提供必要的协议机制以保证终端系统和代理服务器提供以下业务:

● 用户定位
● 用户能力
● 用户可用性

● 呼叫建立

● 呼叫处理

● 呼叫前转,包括:(1)等效800类型的呼叫,(2)无应答呼叫前转,(3)遇忙呼叫前转,(4)无条件呼叫前转
● 呼叫号码传递,该号码可以是任何命名机制 。
● 个人移动性,例如通过一个单一的、位置无关的地址来到达被呼叫方,即使被呼叫方改变了终端 。
● 终端类型的协商和选择:呼叫者可以给出选择如何到达对方,例如通过因特网电话,移动电话或应答业务等 。
● 终端能力协商
● 呼叫者和被呼叫者鉴权
● 不知情和指导式的呼叫转移
● 多播会议的邀请
当一用户希望呼叫另一用户,呼叫者用INVITE请求初始呼叫,请求包含足够的信息用以被呼叫方参与会话 。假如客户机知道另一方的位置它能够直接将请求发送到另一方的IP地址 。假如不知道,客户机将请求发送到本地配置的SIP网络服务器 。假如服务器是代理服务器它将解析被呼叫用户的位置并且将请求发送给它们 。有很多方法完成上步,例如搜索DNS或访问数据库 。服务器也可以是重定向服务器,它可以返回被呼叫用户的位置到呼叫客户机用以它直接与用户联系 。在定位用户的过程中,SIP网络服务器当然能够代理或重定向呼叫到其它的服务器,直到到达一个明确地知道被呼叫用户IP地址的服务器 。

推荐阅读