专利名称:一种Diameter协议接口系统及其实现方法
技术领域:
本发明涉及通信领域,尤其涉及一种Diameter协议接口系统及其实现方法。
背景技术:
现代通信领域中,各业务节点都是通过Diameter协议去在线计费系统(OCS)扣 费、补费等操作的。标准的Diameter协议(RFC3588、RFC4006)对协议的框架和基本属性 对(AVP,Attribute Value Pairs)进行了定义,但无法满足某些具体计费过程中的需要。 为此,各运营商在标准的Diameter协议基础上,相继进行了扩充,分别定义了一些自己的 AVP。而各运营商对AVP的定义又是不相同的。目前,对于Diameter协议的开发只能针对不同的运营商分别开发,并分别维护一套代码。这给项目的开发和维护造成了不便,也使项目的成本提高。
发明内容
本发明要解决的问题是提供一种Diameter协议接口系统及其实现方法,可以适 应各运营商对标准Diameter协议的扩充。为解决上述技术问题,本发明提供了一种Diameter协议接口实现方法,包括接收第一消息后,根据预配置的第一消息的格式定义,解析所述第一消息,从所述 第一消息中提取内容数据,按照预定存储规则保存提取出的内容数据,根据预配置的第二 消息的格式定义确定构造第二消息需要的内容数据,根据所述存储规则提取出所述需要的 内容数据,将所述内容数据封装为第二消息。进一步地,所述第一消息为非Diameter协议消息,所述第二消息为Diameter协议 消息。进一步地,所述第二消息为信用控制请求(CCR)消息。进一步地,所述第一消息为Diameter协议消息,所述第二消息为非Diameter协议 消息。进一步地,所述第一消息为信用控制应答(CCA)消息。为解决上述技术问题,本发明还提供了一种diameter协议接口系统,包括第一消息格式定义模块,用于保存预配置的第一消息的格式定义;第二消息格式定义模块,用于保存预配置的第二消息的格式定义;运算及控制模块,用于接收第一消息,根据第一消息格式定义模块保存的第一消 息的格式定义,解析所述第一消息,从所述第一消息中提取内容数据,送保存模块保存;以 及用于根据预配置的第二消息的格式定义确定构造第二消息需要的内容数据,根据存储规 则从保存模块的相应存储单元中提取出所述需要的内容数据,将所述内容数据封装为第二 消息;保存模块,用于按照预定存储规则保存提取出的内容数据。进一步地,所述第一消息为非Diameter协议消息,所述第二消息为Diameter协议消息。进一步地,所述第一消息格式定义模块,进一步用于保存预先配置的非Diameter 协议消息的消息格式;所述第二消息格式定义模块,进一步用于保存组成Diameter协议消息所需要的 AVP格式以及每种AVP格式对应的AVP数据的来源,所述来源包括以下一种或几种内容保 存模块、配置模块、会话模块;所述保存模块进一步包括内容保存模块、配置模块和会话模块,其中所述内容保存模块,用于保存接收到的非Diameter消息的内容数据;所述配置模块,用于保存预先配置的在消息交互过程中使用的常用配置项;所述会话模块,用于保存非Diameter协议消息中的需要在向发送端应答时携带 的参数;所述运算及控制模块,进一步用于在接收到发送端发送的非Diameter协议消息 后,根据所述第一消息格式定义模块中保存的该非Diameter协议消息的消息格式,解析 该非Diameter协议消息,从中提取出消息内容保存在所述内容保存模块中,并将需要在向 发送端应答时携带的参数保存在会话模块中;根据所述第二消息格式定义模块中保存的 AVP格式对应的AVP数据的来源,从相应的模块中提取数据构造AVP,将构造的AVP封装为 Diameter协议消息。进一步地,所述第一消息为Diameter协议消息,所述第二消息为非Diameter协议 消息。进一步地,所述第一消息格式定义模块,进一步用于保存预先配置的Diameter协 议消息的AVP格式;所述第二消息格式定义模块,进一步用于保存预先配置的非Diameter协议消息 的消息格式以及该消息格式中数据的来源,所述来源包括以下一种或几种内容保存模块、 配置模块、会话模块;所述保存模块进一步包括内容保存模块、配置模块和会话模块,其中所述内容保存模块,用于保存接收到的Diameter消息的内容数据;所述配置模块,用于保存预先配置的在消息交互过程中使用的常用配置项;所述会话模块,用于保存非Diameter协议消息中的需要在向发送端应答时携带 的参数;所述运算及控制模块,进一步用于在接收到Diameter协议消息后,根据第一消息 格式定义模块中保存的该Diameter协议消息的AVP格式,解析该Diameter协议消息,从中 提取出AVP数据,并将AVP数据保存在内容保存模块中;根据所述第二消息格式定义模块中 保存的数据的来源,从相应的模块中提取数据构造非Diameter协议消息。应用本方法开发的接口软系统,能够运用于任何运营商,不必再为每个运营商单 独开发一个接口,各运营商可统一使用一套代码,为项目节省成本和时间。
图1为接口结构图;图2为CCR请求生成流程图3为CCA应答生成流程图。
具体实施例方式本发明通过接口系统,对接收到非Diameter协议消息进行处理,将其转化为 Diameter协议消息,发送给其他Diameter设备,以及对从其他Diameter设备处接收到的 Diameter协议消息进行处理,将其转化为非Diameter协议消息,发送给相应设备。本发明的方法包括接收第一消息后,根据预配置的第一消息的格式定义,解析所述第一消息,从所述 第一消息中提取内容数据,按照预定存储规则保存提取出的内容数据,根据预配置的第二 消息的格式定义确定构造第二消息需要的内容数据,根据所述存储规则提取出所述需要的 内容数据,将所述内容数据封装为第二消息。第一消息为非Diameter协议消息,如任何接收到的非Diameter消息,以下称请求 消息,第二消息为Diameter协议消息,如信用控制请求(CCR,CreditControl Request)消 肩、ο
第一消息为Diameter协议消息,如信用控制应答(CCA,Credit ControlAnswer) 消息,第二消息为非Diameter协议消息,如应答消息。所述按照预定存储规则保存提取出的内容数据是指按照预配置的规则将数据分 别存储在不同的位置,以便构造第二消息时使用。实现本发明方法的系统包括第一消息格式定义模块,用于保存预配置的第一消息的格式定义;第二消息格式定义模块,用于保存预配置的第二消息的格式定义;运算及控制模块,用于接收第一消息,根据第一消息格式定义模块保存的第一消 息的格式定义,解析所述第一消息,从所述第一消息中提取内容数据,送保存模块保存;以 及用于根据预配置的第二消息的格式定义确定构造第二消息需要的内容数据,根据存储规 则从保存模块的相应存储单元中提取出所述需要的内容数据,将所述内容数据封装为第二 消息;保存模块,用于按照预定存储规则保存提取出的内容数据。具体地 第一消息为非Diameter协议消息,第二消息为Diameter协议消息时,将非 Diameter协议消息转化为Diameter协议消息的系统如图1所示,包括第一消息格式定义模块为图1中的请求定义模块,其用于保存预先配置的非 Diameter协议消息的消息格式,如该消息由哪些字段组成,并且每个字段的类型等信息;第二消息格式定义模块为图1中的CCR结构定义模块,其用于保存组成Diameter 协议消息所需要的AVP格式以及每种AVP格式对应的AVP数据的来源,所述来源包括 以下模块中的一个或几个内容保存模块、配置模块、会话模块;如CCR中第一个AVP是 OriginHost (发送端主机标识)并且其数据来源为配置模块等;保存模块包括配置模块、会话模块以及内容保存模块,其中内容保存模块,用于保存接收到的非Diameter消息的内容数据;在本实施例中, 内容保存模块和请求定义模块合设在一起,在其他实施例中,两模块也可以分开设置;
配置模块,用于保存预先配置的在消息交互过程中使用的常用配置项,如本机IP 和OCS的IP等;会话模块,用于保存非Diameter协议消息中的需要在向发送端应答时携带的参 数,可根据配置决定;运算及控制模块为图1中的运算模块,用于在接收到发送端发送的非Diameter 协议消息后,根据请求定义模块中保存的该非Diameter协议消息的消息格式,解析该非 Diameter协议消息,从中提取出消息内容,将消息内容数据保存在请求定义模块(中的内 容保存模块)中,并将其中需要在向发送端应答时携带的参数保存在会话模块中;根据所 述CCR结构定义模块中保存的AVP格式对应的AVP数据的来源,从相应的模块中提取数据 构造AVP,将构造的AVP封装为Diameter协议消息。通常一个Diameter协议消息中包含多个AVP。
第一消息为Diameter协议消息,第二消息为非Diameter协议消息时,将 Diameter协议消息转化为非Diameter协议消息的系统包括在本实施例中,第一消息格式定义模块为CCA结构定义模块,用于保存预先配置 的Diameter协议消息的AVP格式;第二消息格式定义模块为请求定义模块,用于保存预先配置的非Diameter协议 消息的消息格式以及该消息格式中数据的来源,所述来源包括以下模块中的一个或几个 内容保存模块、配置模块、会话模块;保存模块包括配置模块、会话模块以及内容保存模块,其中内容保存模块,用于保存接收到的Diameter消息的内容数据;在本实施例中,内 容保存模块和CCA结构定义模块可以合设在一起,在其他实施例中,两模块也可以分开设 置;配置模块,用于保存预先配置的在消息交互过程中使用的常用配置项,如本机IP 和OCS的IP等;会话模块,用于保存非Diameter协议消息中的需要在向发送端应答时携带的参 数;运算模块,用于在接收到Diameter协议消息后,根据CCA结构定义模块中保存的 该Diameter协议消息的AVP格式,解析该Diameter协议消息,从中提取出AVP数据,保存 在CCA结构定义模块(中的内容保存模块)中;根据所述请求定义模块中保存的数据的来 源,从相应的模块中提取数据构造非Diameter协议消息。程序启动后,从配置文件读取配置模块、CCR结构定义模块、请求定义模块和会话 模块的信息,并初始化数据。将请求消息转化为CCR消息的具体流程如图2所示步骤201 运算模块收到请求消息;步骤202 运算模块从请求定义模块读取请求消息的消息格式定义信息,并根据 消息格式定义解析请求消息;步骤203 将解析后的请求消息存入请求定义模块,以备后面生成CCR消息用;在本实施例中,内容保存模块与请求定义模块合设在一起。然后,开始扫描CCR结构定义模块,并根据此模块的信息生成CCR消息,如下
步骤204 扫描至CCR结构定义模块的第一个域,即第一个AVP,发现此AVP的数据 源是请求定义模块;步骤205 根据数据源是请求定义模块这一信息,去请求定义模块查找相应数据;步骤206 将查找到的数据复制到CCR数据缓冲区的第一个AVP区域中;至此,完成第一个AVP数据的生成。循环执行步骤204-206,生成AVP2、AVP3和 AVP4的数据。
步骤207 扫描至CCR结构定义模块的第五个域,即第五个AVP,发现此AVP的数据 源是配置模块;步骤208 根据数据源是配置模块这一信息,去配置模块查找相应数据;步骤209 将查找到的数据复制到CCR数据缓冲区的第五个AVP区域中;步骤210 根据会话模块的信息,将需要缓存的数据从请求模块复制到会话模块。本步骤不限于在此时执行,也可以收到数据后就执行。 至此,完成整个CCR的数据组装,将通过TCP/IP发送给0CS。将CCA消息转化为应答消息的具体流程如图3所示步骤301 接口收到OCS返回的应答消息(CCA);步骤302 运算模块从CCA结构定义模块读取CCA的消息格式定义信息,并根据其 消息格式定义解析应答消息;步骤303 将解析后的应答消息存入CCA结构定义模块,以备后面生成应答消息 用;然后,开始扫描请求定义模块,并根据此模块的信息生成应答消息,如下步骤304 扫描至请求定义模块的第一个域,发现此字段的数据源是CCA应答消息 中的一个AVP ;步骤305 根据数据源是CCA这一信息,去CCA结构定义模块查找相应数据;步骤306 将查找到的数据复制到应答数据缓冲区的第一个区域中;至此,完成第一个字段数据的生成。按照这个方法生成第二个、第三个和第四个字 段的数据。步骤307 扫描至请求定义模块的第五个域,发现此字段的数据源是会话模块(会 话模块的数据是在步骤210中生成的);步骤308 根据数据源是会话模块这一信息,去会话模块查找相应数据;步骤309 将查找到的数据复制到应答数据缓冲区的第五个区域中。至此,应答消息生成,并发送给发送请求方。流程结束。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘 等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应 地,上述实施例中的各模块可以采用硬件的形式实现,也可以采用软件功能模块的形式实 现。本发明不限制于任何特定形式的硬件和软件的结合。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。
权利要求
一种Diameter协议接口实现方法,包括接收第一消息后,根据预配置的第一消息的格式定义,解析所述第一消息,从所述第一消息中提取内容数据,按照预定存储规则保存提取出的内容数据,根据预配置的第二消息的格式定义确定构造第二消息需要的内容数据,根据所述存储规则提取出所述需要的内容数据,将所述内容数据封装为第二消息。
2.如权利要求1所述的方法,其特征在于所述第一消息为非Diameter协议消息,所述第二消息为Diameter协议消息。
3.如权利要求2所述的方法,其特征在于 所述第二消息为信用控制请求(CCR)消息。
4.如权利要求1所述的方法,其特征在于所述第一消息为Diameter协议消息,所述第二消息为非Diameter协议消息。
5.如权利要求4所述的方法,其特征在于 所述第一消息为信用控制应答(CCA)消息。
6.一种diameter协议接口系统,包括第一消息格式定义模块,用于保存预配置的第一消息的格式定义; 第二消息格式定义模块,用于保存预配置的第二消息的格式定义; 运算及控制模块,用于接收第一消息,根据第一消息格式定义模块保存的第一消息的 格式定义,解析所述第一消息,从所述第一消息中提取内容数据,送保存模块保存;以及用 于根据预配置的第二消息的格式定义确定构造第二消息需要的内容数据,根据存储规则从 保存模块的相应存储单元中提取出所述需要的内容数据,将所述内容数据封装为第二消 息;保存模块,用于按照预定存储规则保存提取出的内容数据。
7.如权利要求6所述的系统,其特征在于所述第一消息为非Diameter协议消息,所述第二消息为Diameter协议消息。
8.如权利要求7所述的系统,其特征在于所述第一消息格式定义模块,进一步用于保存预先配置的非Diameter协议消息的消 息格式;所述第二消息格式定义模块,进一步用于保存组成Diameter协议消息所需要的AVP格 式以及每种AVP格式对应的AVP数据的来源,所述来源包括以下一种或几种内容保存模 块、配置模块、会话模块;所述保存模块进一步包括内容保存模块、配置模块和会话模块,其中 所述内容保存模块,用于保存接收到的非Diameter消息的内容数据; 所述配置模块,用于保存预先配置的在消息交互过程中使用的常用配置项; 所述会话模块,用于保存非Diameter协议消息中的需要在向发送端应答时携带的参数;所述运算及控制模块,进一步用于在接收到发送端发送的非Diameter协议消息后, 根据所述第一消息格式定义模块中保存的该非Diameter协议消息的消息格式,解析该 非Diameter协议消息,从中提取出消息内容保存在所述内容保存模块中,并将需要在向 发送端应答时携带的参数保存在会话模块中;根据所述第二消息格式定义模块中保存的AVP格式对应的AVP数据的来源,从相应的模块中提取数据构造AVP,将构造的AVP封装为 Diameter协议消息。
9.如权利要求6所述的系统,其特征在于所述第一消息为Diameter协议消息,所述第二消息为非Diameter协议消息。
10.如权利要求9所述的系统,其特征在于所述第一消息格式定义模块,进一步用于保存预先配置的Diameter协议消息的AVP格式;所述第二消息格式定义模块,进一步用于保存预先配置的非Diameter协议消息的消 息格式以及该消息格式中数据的来源,所述来源包括以下一种或几种内容保存模块、配置 模块、会话模块;所述保存模块进一步包括内容保存模块、配置模块和会话模块,其中 所述内容保存模块,用于保存接收到的Diameter消息的内容数据; 所述配置模块,用于保存预先配置的在消息交互过程中使用的常用配置项; 所述会话模块,用于保存非Diameter协议消息中的需要在向发送端应答时携带的参数;所述运算及控制模块,进一步用于在接收到Diameter协议消息后,根据第一消息格式 定义模块中保存的该Diameter协议消息的AVP格式,解析该Diameter协议消息,从中提取 出AVP数据,并将AVP数据保存在内容保存模块中;根据所述第二消息格式定义模块中保存 的数据的来源,从相应的模块中提取数据构造非Diameter协议消息。
全文摘要
本发明公开了一种Diameter协议接口系统及其实现方法,可以适应各运营商对标准Diameter协议的扩充。所述方法包括接收第一消息后,根据预配置的第一消息的格式定义,解析所述第一消息,从所述第一消息中提取内容数据,按照预定存储规则保存提取出的内容数据,根据预配置的第二消息的格式定义确定构造第二消息需要的内容数据,根据所述存储规则提取出所述需要的内容数据,将所述内容数据封装为第二消息。应用本方法开发的接口软系统,能够运用于任何运营商,不必再为每个运营商单独开发一个接口,各运营商可统一使用一套代码,为项目节省成本和时间。
文档编号H04L29/06GK101873322SQ20101020368
公开日2010年10月27日 申请日期2010年6月17日 优先权日2010年6月17日
发明者尹宏伟 申请人:中兴通讯股份有限公司