售前电话
135-3656-7657
售前电话 : 135-3656-7657
VoIP软交换协议适配的目标是将不同的协议转换成统一的BCSM到用户的接入指示,以驱动BCSM按照其预定义的方式运转,并实现与外部网络设备之间的交互。简单地说,就是将接收的不同信令消息解释成呼叫模型可以识别的BCSM指示,并将呼叫模型发出的BCSM指示转换为相应的协议行为。不同协议的信令流程是有差别的,通过一定的映射关系,就可以转换成统一的BCSM指示。但是,由千协议是多样的,它们与标准BCSM指示之间的适配方式并不固定,如果适配模式设计不合理,就会导致呼叫处理操作与用户设备实际执行动作之间的偏差,这就需要尽可能采用规范化的模式来处理不同协议与BCSM模型之间的适配规则。
协议适配的核心是消息映射以及过程匹配,因此可以认为协议适配需要实现两方面的功能:静态映射和动态交互。静态映射主要是实现特定协议的消息/事件到BCSM指示/事件的映射,这种映射包括消息格式、消息名称、消息参数的转换等;动态交互则主要考虑如何使协议处理过程适应标准化的BCSM处理过程的需要,比如在呼叫挂起时,实现协议处理过程的暂停和恢复等,尤其是在需要接入外部业务的时候。概括地说,上述静态映射和动态交互功能,就是以BCSM为基础,对特定协议的语义和语法进行解释的过程。
UniNet软交换设备的设计中,协议适配功能也是以有限状态机为基础进行实现的,可以称之为协议映射状态机。首先通过状态等价映射的方式找出协议消息与BCSM指示的对应方式(静态匹配);然后通过FSM叠加的方式实现两者状态迁移的联动过程(动态匹配)。
1.协议映射状态机设计
协议适配的核心就是映射状态机的设计,协议映射状态机设计的难点是对其状态的设定。通常情况下,通信协议采用有限状态机的方式对协议功能进行形式化描述,并实现对协议消息收发上下文的管理。在一定程度上,可以认为这个状态机就是针对该协议的“基本呼叫状态模型”。因此,在协议适配的实现机制中,可以在各协议已定义的协议状态机的基础上,首先实现它们与BCSM之间的状态映射,这是进行消息映射的基础。显而易见,如果两个状态机在某个状态上是等价的,那么它们的输入事件和输出事件都应该是等价的,因此只要找出协议状态机与BCSM在状态上的对应关系,就可以很容易给出协议消息与BCSM指令之间的对应关系。
在前文中已提到,UniNetBCSM是通过提取各协议呼叫处理流程的共性部分所形成的。在功能上,BCSM所代表的呼叫处理功能与各协议本身所具有的功能是不完全一致的。比如,H.323和SIP都具有处理多媒体呼叫的功能,但是在处理简单语音呼叫时,只需要它们提供BCSM所要求的功能就可以,其他的功能可以认为是这个协议的特殊能力,只是暂时不需要。而且,不同的协议由于应用环境的不同,其协议的定义方式也各有特点。比如SIP协议主要是针对无传输保证的IP网设计的,在协议中设计了“三次握手”的机制。而在H.323以及IUSP协议中就没有这种机制,所以在BCSM中也不会采用。因此,由于协议特点的不同以及协议本身处理能力的不同,在协议状态机与BCSM状态机对等映射过程中,经常出现的情况是两个FSM(状态模型)不具有同样数目的状态,或者说,在两个状态模型之间不存在完全等价关系。在这种情况下,就需要根据应用目标对映射方式进行补偿。对千软交换设备的设计而言,协议映射的最终目的是按照BCSM的要求进行呼叫处理,所以当存在不完全等价映射时,应以BCSM为基准进行补偿。这就可能导致某协议状态机中的多个状态会被映射到BCSM中的单一状态(即忽略VoIP软交换协议处理中的某些特殊能力),或者反之,BCSM中的单一状态被映射到协议状态机中的多个状态(即对协议处理进行一定的扩展,一般用千业务提供的需要)。下图进一步解释了FSM状态映射的几种表现方式。
呼叫模型状态映射方式示意图
在上图中,以FSMA(基本呼叫状态模型)为基准,FSMA与FSMB(协议状态模型)之间的状态映射有4种方式:
•一对一,如Q到l;
•一对多,如P到G、H;
•多对一,如T、U到K;
•多对多,如R、S到J和K。
在上述映射方式中,多个状态之间的交叉映射(即出现多对多映射的情况)是我们所不希望出现的情况,因为它可能带来二义性问题。比如在上图中,FSMA中的状态S被分别映射到FSMB的状态J和状态K,但是FSMB中的状态J与FSMA中的状态R也存在一个映射。这样,在将FSMA中的状态R到状态S的迁移过程映射到FSMB时,存在二义性的解释方式,FSMB将不存在唯一的迁移方式:它可能从状态J迁移到状态K,也可能继续停留在状态J上。