对开放下一代网络的呼叫控制API的研究

中国电信集团北京研究院冯建强
未来的通信网络将融合分组网(IP或ATM)、电路交换网(PSTN)和无线网络,不仅业务提供商需要提供综合这些网络的业务,更重要的是,为了快速有效地提供业务,需要开放、标准、安全的网络API,使第三方业务开发商和软件商进入电信业务市场 。其中最主要的是呼叫控制API,它决定着电信网络的开放程度,以及从网络之外控制电信核心网络的能力,最终将影响着第三方业务提供商所开发业务的功能 。
一.呼叫控制模型
过去已经开发了几个呼叫模型以及相关的API,包括IN、JTAPI、TAPI,虽然这些模型面向不同的结构和应用,具有很多不同点,但它们的整体目标是相似的,都是为了发起呼叫、控制呼叫,方便开发在呼叫之前、呼叫之间、呼叫之后执行的应用 。
1. IN呼叫模型
IN呼叫模型是专为PSTN应用开发的,所以假定了一个非凡的分布式结构,电话交换机执行基本的呼叫控制过程,在呼叫之前、呼叫之间的增值业务执行在业务逻辑执行环境中,如业务控制点(SCP) 。IN呼叫模型基于基本呼叫状态模型(BCSM),如图1所示,该模型本质上由两个元素组成,第一个元素是一组有限状态机,代表分别在发起和终止交换机中的呼叫过程 。第二个元素是触发的概念,触发点定义为发起和终止交换机中有限状态机的特定状态,当呼叫处理进入有限状态机定义并激活的触发点后,当前的处理过程悬挂起来,调用在远程网络元素(如SCP)中执行的称为业务逻辑的程序,当业务逻辑执行完成后,恢复被悬挂的呼叫过程继续执行,直到完成整个呼叫 。
BCSM用呼叫点(PIC)和触发点(DP)定义呼叫进程,PIC由进入事件、离开事件、PIC内执行的动作和PIC结束后可用的信息定义,DP点设置在PIC之间,并与特定PIC关联,检测基本呼叫过程的指定事件 。而触发点设置在DP点内,假如DP点检测到满足触发点的触发条件时,就执行相应的业务逻辑,否则呼叫过程继续进行 。
IN呼叫模型是以交换为中心的,呼叫过程视为交换机的功能,而业务逻辑视为呼叫过程的补充 。应用开发者必须理解发起和终止有限状态机的细节,才能与有限状态机中指定状态的呼叫处理过程进行交互,它没有清楚地抽象出能使程序员控制整个呼叫、呼叫Leg和呼叫中的主要逻辑实体(如主叫和被叫的地址和电话号码)的概念,而且没有采用面向对象的方式,但IN的有限状态机确实捕捉到呼叫过程的主要状态,便于应用开发者介入呼叫过程 。
2. JTAPI呼叫模型
JTAPI由JavaSoft发布,它为基于Java的计算机电话应用提供面向对象的接口 。这里的呼叫指双方或多方间的通信会话,各方都是参加呼叫的一个Leg(或者连接),它定义的呼叫模型支持基本的呼叫建立和许多扩展,主要是建立呼叫中心、多方会议呼叫、呼叫路由等模型 。核心模型由一些电话类及其相互关系组成,如图3所示 。每个对象对应呼叫中的一个逻辑或物理实体 。提供者是电话业务提供者的抽象,提供者类负责治理代表呼叫过程各个阶段的呼叫对象,维护它域内的终端和地址对象的静态集合 。终端对象代表呼叫的物理端点,而连接对象代表呼叫的逻辑端点,每个地址可以与多个终端相关,反之亦然 。这集中反映了呼叫中心的标准配置 。每个呼叫的呼叫对象、连接对象、终端对象都是动态生成,呼叫对象代表整个呼叫的状态和操作模型 。呼叫的每个Leg由连接对象代表,连接对象代表呼叫和指定地址间的逻辑状态和操作模型 。最后,终端连接代表连接和一个终端间的逻辑状态和操作模型 。电话呼叫的状态由与呼叫相关的有限状态机维护,有限状态机的完整定义在JTAPI规范中说明 。

推荐阅读