马旭涛 朱晓民 徐鹏 廖建新
北京邮电大学网络与交换国家重点实验室 100876
摘 要 本文首先说明了基于Parlay API(Application Programming Interface)技术的呼叫禁止业务的功能结构,然后描述了该业务的框架接入消息交互和业务消息交互,最后阐述了业务处理模块和业务话音管理模块的功能和实现细节。
关键词 Parlay API 呼叫禁止业务 下一代业务
一、引言
Parlay API(Application Programming Interface)是一种基于分布式技术的、开放的、面向对象的下一代业务开发技术,它通过协议映射技术把底层网络的通信细节抽象成标准的API形式供业务开发者开发业务逻辑程序。它带来的好处是降低了业务开发的技术门槛,能使业务开发者更快捷地满足用户的个性化需要,提供丰富多彩的业务,为下一代网络的应用和发展提供最有效的驱动力。
框架服务器接口和业务能力接口是Parlay API定义的两类主要接口。业务逻辑程序通过Parlay网关中框架服务器接口鉴权后,被授权接入规定的业务,然后使用框架服务器接口提供的业务能力发现和业务能力选择功能,通过签订在线业务能力使用协议,获得在框架服务器中注册的、满足业务需求的业务能力管理类接口引用。业务逻辑通过获得业务能力管理类接口引用就可以和其对应的业务能力接口进行通信,实现特定业务逻辑的呼叫控制、用户交互、计费等功能。文本主要在结合实践的基础上,说明如何实现基于Parlay API技术的呼叫禁止业务的基本功能。
二、业务功能结构
当主叫用户呼叫申请了呼叫禁止业务的用户时,要求主叫用户输入被叫的设定的PIN(Personal Identification Number)码,如果呼叫禁止业务逻辑发现输入的PIN码正确,则允许把该呼叫接续到被叫用户目的地址,否则提示主叫用户并禁止该呼叫。
呼叫禁止业务功能结构由框架接入模块、业务消息通知接口、业务话音管理模块、业务处理模块、后台数据库和业务支撑接口六部分组成。
框架接入模块通过Parlay网关框架服务器接口提供的接入鉴权、授权、业务能力发现、业务能力选择等功能获得呼叫禁止业务逻辑所需的一般呼叫控制能力管理类接口对象引用和用户交互能力管理类接口对象引用。业务逻辑使用一般呼叫控制能力管理类接口对象的方法要求Parlay网关上报定制的呼叫禁止业务事件,使用用户交互能力管理类接口对象方法创建用户信息交互对象,向用户发送系统提示音收集用户输入的交互信息。
呼叫禁止业务逻辑通过业务消息接口收集Parlay网关的呼叫消息和用户交互信息,它们也是标准的Parlay API接口,由Parlay网关使用对象回调的方式调用呼叫禁止业务逻辑提供的这些接口对象中的方法,实现消息的传递。业务消息接口根据消息类型和业务逻辑当前状态把接收到的消息传递给业务话音管理模块和业务处理模块。
业务话音管理模块的功能主要是允许用户在系统语音提示下在线设置、修改和删除PIN码;而业务处理模块的功能主要是判断主叫用户输入的PIN码是否和被叫设置的PIN码一致,以决定是否允许接续本次呼叫到被叫用户。它们都涉及到对后台数据库的操作,主要是读写用户设置的PIN码信息。
业务支撑接口主要是接收和响应系统管理操作、业务管理操作、用户管理操作和用户业务定制操作,它在呼叫禁止业务逻辑产品化过程中占有重要的地位。
三、消息交互
呼叫禁止业务和Parlay网关间的消息交互是基于Parlay API方法调用的,它主要由框架接入消息交互和业务消息交互两部分组成。
1. 框架接入消息交互
框架接入消息交互依照接入流程的先后次序由初始接入、业务能力发现和业务能力选择三组交互序列组成。
在初始接入时业务逻辑框架接入模块调用Parlay网关框架服务器通过名字服务方式向外公布的初始接入对象IpInitial的认证初始化方法InitialAuthentication,然后使用selectEncryptionMethod选择和框架服务的鉴权机制。业务逻辑和框架服务需相互认证,只有当相互认证成功后,业务逻辑才可以调用requestAccess方法获得一个IpAccess对象引用,业务逻辑通过调用该对象的selectSigningAlgorithm方法和框架服务器协商交易签署算法。
业务逻辑在完成初始接入后,使用obtainInterface方法获得框架服务器提供的业务发现接口对象,然后调用该对象的listServiceTypes方法列出在网络中哪些业务能力类型被支持。业务逻辑在其获得的业务能力类型列表中,使用describeServiceType方法获得它所感兴趣的一个确定业务类型的属性,然后使用discoverService方法获得跟它需要的业务属性相匹配的已注册的、包含业务能力标识符和特征描述的列表。
在业务能力发现过程中获得的包含业务能力标识符和特征描述的列表中,包含有多个业务能力版本,它们通过serviceID来标识,在进行业务能力选择时,业务逻辑从中确定其最终使用的业务能力,通过调用selectService方法获得一个针对该业务能力的私有标识符,它被用在签署业务能力使用条约的过程中。业务逻辑和框架服务器间相互签署业务使用条约,如果签署成功,则业务逻辑就获得了一个指向该业务能力管理接口的引用。
在呼叫禁止业务逻辑使用上述流程获得一般呼叫控制能力管理接口引用后,还需充分业务能力发现和业务能力选择流程,以获得用户交互能力管理接口的引用。
2. 业务消息交互
呼叫禁止业务通过Parlay网关提供的一般呼叫控制对象和用户交互对象下网络发送消息,通过在业务消息接口中实现的一般呼叫控制应用对象和用户交互应用对象接收Paraly网关的传递给业务逻辑的消息。
呼叫禁止业务逻辑在完成框架接入消息流程后。首先业务逻辑使用enableCallNotification方法要求Parlay网关通知底层网络上报跟呼叫禁止业务相关的业务触发事件,如上报对申请了呼叫禁止业务用户的呼叫触发事件,上报呼叫禁止业务话音管理触发事件。Parlay网关通过一般呼叫控制应用对象的callEventNotifify方式上报业务触发事件,根据事件类型,把消息传递给业务处理模块或业务话音管理模块。随后业务模块通过用户交互对象向用户发送提示音收集用户信息,一般根据需要这样的语音提示信息收集过程要进行多次。业务逻辑根据用户信息决定业务逻辑后续执行动作,如在业务处理模块中,当获得的主叫用户输入PIN码和被叫用户设定的PIN码相同时,则使用Parlay网关的routeReq方法允许底层网络接续本次呼叫。呼叫结束后需使用callEnded方法通知业务逻辑,业务逻辑使用deassignCall方法释放Parlay网关中的呼叫对象和底层网络中的相关呼叫资源。
四、业务模块
业务模块可分为业务处理模块和业务话音管理模块,它们是呼叫禁止业务逻辑的核心部分,在后台数据库的配合下,由它们实现呼叫禁止业务的业务处理和业务话音管理功能。
1. 业务处理模块
当主叫用户呼叫申请了呼叫禁止业务的用户时,底层网络交换设备把该初始呼叫事件通过Parlay网关上报给呼叫禁止业务逻辑,业务逻辑在其IpAppCallControlManager对象的callEventNotify方法中接收到该事件后,业务逻辑程序进入业务处理模块,创建一个线程处理该呼叫,随后使用Parlay网关IpUICall对象的sendInfoAndCollectReq方法向用户发送系统提示音要求主叫用户输入被叫设定的PIN码,业务逻辑逻辑通过其的IpAppUICall对象的sendInfoAndCollectRes收集到主叫输入的PIN码。
业务逻辑从后台数据库中读出被叫用户设定的PIN码,并和收集到的主叫用户输入的PIN码相比较,当不一致时,如果主叫用户输入错误PIN的次数没有超过规定的最大次数,则发送系统提示音告知用户输入PIN码不正确,需重新输入,如果主叫用户输入错误PIN的次数超过规定的最大次数,则告诉用户呼叫失败,随后释放本次呼叫。
当主叫输入的PIN码和被叫设定的相一致时,终止和主叫用户的信息交互,然后使用Parlay网关IpCall对象的routeReq方法运行底层网络交换设备继续本次呼叫,当呼叫结束时,Parlay网关上报呼叫结束事件,业务逻辑释放本次呼叫对象和资源。
2. 业务话音管理模块
呼叫禁止业务话音管理功能对应着一个特服号,当用户拨打该特服号号时,Parlay网关通过调用业务逻辑的callEventNotify方法把来自底层网络交换设备的该事件上报给业务逻辑,业务逻辑程序进入业务话音管理模块,创建一个线程处理该业务话音管理呼叫,实现用户PIN码设定、删除和修改功能。
业务逻辑查询后台数据库该用户是否已申请了呼叫禁止业务,如果没有申请,则提示用户是否要设定被叫时的PIN码,如果用户要求设定,则业务逻辑同样通过Parlay网关的sendInfoAndCollectReq和业务逻辑的sendInfoAndCollectRes方法收集用户设定的PIN码,如果两次输入的PIN码相同,则把该用户和PIN码对应的信息写到后台数据库中,并提示用户设定成功。
如果用户已设定了被叫时的PIN码,则提示用户是否删除或修改PIN码。如果用户选择删除PIN码,则业务逻辑从后台数据库中清除该用户设定的PIN码,本次会话结束。如果用户选择修改PIN码,则只有当用户现正确输入原PIN码后,才可设定新的PIN码。
五、结束语
Parlay API是进行下一代业务开发的重要技术,作者通过对基于Parlay API的呼叫禁止业务的开发,熟悉了Parlay API的基本原理,掌握了一定的业务逻辑工程实现技术,为开发其他各种基于Parlay API技术的下一代业务奠定了技术基础。
----《中国数据通信》
|