下一代网络在业务层面上的一个显著特点和优势是业务提供能力的开放性。针对业务开放能力的要求,各个电信研究机构和组织都进行了广泛的研究,其中获得业界广泛支持的是3GPP和Parlay研究组提出的Parlay协议规范,该规范采用API的方式将电信网络的业务提供能力描述,从而提供了IT开发人员进行电信业务开发的能力。Parlay协议规范也称为OSA API。
Parlay API的当前版本已经发展到Parlay 4.0版本,但是Parlay 4.0协议规范在IT开发人员看来,还是相当的庞杂,对于IT开发人员而言,采用Parlay 4.0协议规范开发创建基于电信网络的应用还是有一定的难度。
针对此,3GPP提出了Parlay 4.1协议规范,也成为Parlay X协议。Parlay X协议在原有Parlay API协议的基础上,对API进行了进一步的抽象,并使用基于Web业务的WSDL语言对API进行描述,从而提供了IT开发人员一个更为清晰、简洁、抽象、易于理解的电信业务开发接口。这样IT开发人员无需掌握电信网络专业知识,即可以根据Parlay X协议接口开发、应用下一代网络业务。从而促进下一代网络业务的发展。
1 Parlay X协议综述
Parlay X采用WSDL的方式对Parlay API进行定义。每一个Parlay X Web业务都是来自Parlay API对电信网络业务能力集的一个抽象,并且将相关的电信网络能力通过Parlay X协议的方式提供给开发人员。
Parlay API和Parlay X Web业务的关系可以用图1进行描述。
对于Parlay X协议体系:
(1)由Parlay X Web业务提供的网络能力可以是单一的(如只包括呼叫控制部分的能力),也可以是混合的(如既包括终端定位的能力,也包括用户状态的能力)。
(2)使用Parlay X Web业务的应用和执行此项服务的服务器之间采用基于XML的消息交互机制。消息的交互采用同步的请求/响应模式,并且必须由应用启动消息交互,而来自Parlay X Web服务器的响应是可选的。然而,需要指出的是,异步的由执行Parlay X Web业务的服务器(又称为Parlay X网关)发起的到应用的请求也是需要的,如执行一个通知类型的Web业务。在这种情况下,消息的交互将激活一个应用侧的Web业务,并且使用类似的,同步方式的请求/响应机制。
(3)Parlay X Web业务之间是不相关的,并且从应用的角度看,Web业务本身是没有状态机制的。尤其需要指出的是,如果Parlay 网关发起一个到应用的异步通知,不需要执行应用侧启动的激活动作,用于提供或者禁止Parlay X业务侧的,和通知业务有关的准则。
(4)Parlay X业务尽量采用简单的语法描述机制来对协议进行描述,从而允许IT开发人员将精力集中在通过通用的Web业务编程能力技术进行电信业务的开发上。
(5)尽管一个电信业务能力可能涉及到多个类型的网络,但PARLAY X业务是和网络设备无关的,也是和具体的网络无关的。
(6)Parlay X Web采用Web业务技术,并且使用WSDL语言用于进行Web业务的描述。
2 Parlay X提供的第三方呼叫接口
Parlay X提供的第三方呼叫接口包括:
makeACall,该接口提供了应用创建一个语音呼叫的能力,在该接口中,应用提供将创建的呼叫的主叫和被叫地址(号码)。应用可以通过该接口返回的新创建应用的标识符,对该呼叫进行后续的监视,如获取呼叫的状态信息。
getCallInformation,该接口用于获取一个呼叫当前的状态信息。应用可以在一个通话过程中进行多次调用该接口获取呼叫状态。即使呼叫已经结束,应用也可以通过该接口对呼叫信息进行查询。(呼叫结束后,呼叫信息在Parlay X网关中保留的时间由运营商进行确定)。
endCall,该接口用于应用结束一个呼叫,若呼叫仍处于创建过程中,该接口和cancelCallRequest实现的功能是一致的。
cancelCallRequest,该接口用于应用取消呼叫的创建,若呼叫已经创建,该接口对呼叫没有任何作用。
3 Parlay X提供的网络初始的第三方呼叫接口
Parlay X提供的网络初始的第三方呼叫接口包括:
handleBusy,当Parlay X网关发现一个呼叫的被叫忙时,触发并调用此协议接口,应用将指示Parlay X网关如何处理呼叫。处理的方式包括 : ‘继续’,‘结束呼叫’,‘前转’。
handleNotReachable,当Parlay X网关发现一个呼叫的被叫不可达到时,触发并调用此协议接口,应用将指示Parlay X网关如何处理呼叫。处理的方式包括 : ‘继续’,‘结束呼叫’,‘前转’。
handleNoAnswer,当Parlay X网关发现一个呼叫的被叫无应答时,触发并调用此协议接口,应用将指示Parlay X网关如何处理呼叫。处理的方式包括 :‘继续’,‘结束呼叫’,‘前转’。
handleCalledNumber,当Parlay X网关发现主叫号码试图呼叫一个被叫号码,而该被叫号码(如,该号码可以是一个业务号码,而不是一个实际的电话号码)尚未被接续时,Parlay X网关触发并调用此协议接口,应用将指示Parlay X网关如何处理呼叫。处理的方式包括 :‘继续’,‘结束呼叫’,‘前转’。
handleOffHook,当Parlay X网关发现一个主叫号码试图发起一个呼叫时,触发并调用此协议接口,应用将指示Parlay X网关如何处理呼叫。处理的方式包括 :‘继续’,‘结束呼叫’,‘前转’。
4 Parlay X提供的短消息接口
Parlay X提供的短消息发送接口包括:
sendSms,该接口提供了应用发送一个短消息的功能,当网络发送短消息后,返回应用一个本次发送的标识符,用于应用后续进行短消息发送状态的查询。
sendSmsLogo,该接口提供了应用发送一个短消息LOGO的功能,当网络发送短消息后,返回应用一个本次发送的标识符,用于应用后续进行短消息LOGO发送状态的查询。
sendSmsRingtone ,该接口提供了应用发送一个短消息铃音的功能,当网络发送短消息后,返回应用一个本次发送的标识符,用于应用后续进行短消息铃音发送状态的查询。
getSmsDeliveryStatus,该接口提供应用查询先前进行的短消息发送的状态情况。
Parlay X提供的短消息通知接口包括:
notifySmsReception,该接口由应用侧的Web业务实现,当Parlay X网关发现有新的短消息需要通知应用接收时,将触发此接口,通知应用有新短消息进入。该接口只有在新短消息满足应用指定的短消息过滤条件时,方才触发此接口。
Parlay X提供的短消息接收接口包括:
getReceivedSms,该接口将返回应用,Parlay X接收到的,自上次返回后的满足过滤条件的所有短消息。
5 Parlay X提供的多媒体消息接口
和第三方接口功能目前面临的情形类似,为了发起和接收多媒体消息,应用程序需要使用专用的协议才能使用网络提供的多媒体消息业务功能。这就要求业务开发人员有较高网络专业知识。即使使用Parlay API接口进行开发,由于Parlay API接口对于业务开发人员而言,仍然是一个比较复杂的协议接口,因此,业务开发人员不掌握特定的网络技术知识很难开发出基于短消息的应用。
Parlay X协议提供一个简单的接口集合用于发送多媒体消息,从而使得业务开发人员无需掌握具体的网络知识即可以发送和接收短消息。
对于多媒体消息,包括短消息、扩展的短消息、多媒体消息、E-mail等,分别映射到不同的网络上。因此,从协议的涉及角度出发,即可以为每个网络提供的消息能力分别定义一套单独的Parlay X接口,也可以定义一个统一的协议接口来为所有的网络提供消息服务。这里,Parlay X协议采用一个统一的协议接口用于提供多媒体消息服务。
对于消息的发送和接收,采用和短消息发送和接收类似的机制。
Parlay X协议提供的多媒体消息发送接口包括:
sendMessage,该接口提供了应用发送一个多媒体消息的功能,当网络发送短消息后,返回应用一个本次消息发送的标识符,用于应用后续进行短消息发送状态的查询。多媒体消息的内容采用MIME或者DIME的编码格式,作为SOAP附件进行发送。
getMessageDeliveryStatus,该接口用于应用轮询先前发送的多媒体消息的发送情况。
Parlay X提供的多媒体消息接收接口包括:
getReceivedMessages,该接口用于应用轮询查询满足过滤条件的多媒体消息,Parlay X网关返回所有发送到应用的消息的引用。
getMessageURI,该接口用于读取多媒体消息的不同部分,Parlay X网关将多媒体消息不同的部分分别创建本地的文件,并返回引用到这些部分的URI。应用可以根据这些URI简单地读取每一个文件,或者将这些应用作为链接发送给终端用户。
getMessage,该接口返回消息的所有内容。消息内容采用SOAP附件的方式进行传送。
Parlay X提供的多媒体消息通知接口包括:
notifyMessageReception,该接口由应用侧的Web业务实现,当Parlay X网关发现有新的多媒体消息满足指定的过滤条件时,将触发此接口,通知某一应用有新短消息进入,并携带上所有的消息内容的引用。过滤条件和应用侧Web业务的对应关系采用离线的方式进行定义。
6 Parlay X需要进一步研究的内容
上面,我们就Parlay X协议及该协议所提供的接口进行了简单的描述和研究,可以看出Parlay X和其他协议相比:
(1)提供了一个更为抽象的协议接口,用于IT开发人员进行下一代网络业务的开发工作。
(2)提供了更为简单的接口API,用于进行网络操作的描述。
(3)采用基于Web业务的方式,提供业务能力的实现,并使用WSDL进行接