首页> 中国专利> 一种基于XML的SIP协议数据传输方法及系统

一种基于XML的SIP协议数据传输方法及系统

摘要

本发明公开了一种基于XML的SIP协议数据传输方法及系统,所述方法包括源系统通过第一SIP协议数据处理装置生成SIP请求协议数据并将其发送给目标系统的步骤,所述步骤包括:通过第一SIP协议数据处理装置初始化第一协议构建器对象ProtocolBuilder;第一协议构建器对象ProtocolBuilder依据用户定制的目标索要信息中的每条数据创建相应的协议节点及协议节点的属性以生成SIP请求协议数据;源系统发送所述SIP请求协议数据至目标系统。采用本发明,可以极大降低系统之间传输数据的难度,提高了开发效率。

著录项

  • 公开/公告号CN103428180A

    专利类型发明专利

  • 公开/公告日2013-12-04

    原文格式PDF

  • 申请/专利权人 南京中兴力维软件有限公司;

    申请/专利号CN201210157874.9

  • 发明设计人 杨霄;

    申请日2012-05-18

  • 分类号H04L29/06;H04L29/08;

  • 代理机构深圳市世纪恒程知识产权代理事务所;

  • 代理人胡海国

  • 地址 211153 江苏省南京市江宁区东善桥正方中路888号中兴软件园

  • 入库时间 2024-02-19 21:44:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-28

    授权

    授权

  • 2014-11-26

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20120518

    实质审查的生效

  • 2013-12-04

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,具体而言,尤其涉及一种在基于Java语音 开发的系统之间传输基于XML(Extensible Markup Language,可扩 展标记语言)的SIP(Session Initiation Protocol,信令控制协 议)协议数据的传输方法及系统。

背景技术

目前,XML已经成为一种通用的数据交换格式,由于其具有平台无关性 和语言无关性,给数据的生成和交互带来了极大的便利,使得它运用 的场合越来越广泛。

SIP协议可以依托XML在基于Java语言开发的系统之间进行协议数据的 传输,传统的SIP协议数据传输方式是:采用Java语言自带的API ( Application Program Interface,应用程序编程接口)在源系统按 照SIP协议的要求组装SIP请求协议并将其发送给目标系统,在目标系 统接收到该请求协议后,对SIP请求协议中的XML文档进行解析,获取 请求协议中包含的数据信息,并依据所述信息获取源系统请求的数据 ,再按照SIP协议的要求组装SIP返回协议并将其发送给源系统,在源 系统收到目标系统返回的返回协议数据后,对返回协议数据中的XML文 档进行解析,获取目标数据。

下面以源系统和目标系统之间传递局站信息为例,详细说明现有技术 在两个系统之间传递SIP协议数据的流程。

源系统组装SIP请求协议的步骤包括:

步骤一,通过现有的API创建一个XML文档的文档对象Document;

步骤二,给文档对象添加消息元素Message,给消息元素Message增加 版本属性Version,并给属性赋值为1.0;

步骤三,给消息元素添加消息头元素Header,给消息头元素Header增 加 消息类型属性Message_Type、序列号属性Sequence_Number、会话编号 属性Session_ID、源系统编号属性Source_ID、目标系统编号属性Des tination_ID,并给这些属性赋值;

步骤四,给消息元素Message添加用户元素User,给用户元素User增加 用户编号属性id并赋值;

步骤五,给消息元素Message添加区域元素Precinct,给区域元素Pre cinct增加区域编号属性id并赋值;

步骤六,给消息元素Message添加错误号元素ErrorCode并赋值。

例如,通过以上步骤生成的源系统发送给目标系统的SIP协议数据格式 如下:

以上是通过Java语言针对XML解析的API生成基于XML文档的SIP协议的 流程,可以看出,现有的直接使用Java自带API组织SIP协议数据非常 复杂繁琐,此外,一旦协议头里面的内容由于实际需要而发生了变化 ,那么势必会造成源系统和目标系统之间交互的SIP协议都需要做更改 。

目标系统解析SIP返回协议的步骤如下:

第一步,通过API创建该XML文档对应的文件对象File;

第二步,通过API生成读取XML文档的读取对象SAXReader;

第三步,用第二步生成的读取对象SAXReader解析第一步生成的文件对 象File得到XML文档对象Document;

第四步,利用XML文档对象Document获取根节点消息元素Message;

第五步,利用根节点消息元素Message循环遍历子节点局站Site,并获 取子节点中的属性值,存放到Java容器对象中。

例如,通过上述步骤,目标系统返回给源系统的SIP协议数据格式如下 :

以上是通过Java语言针对XML解析的API对收到的SIP协议进行解析的流 程,在实际应用当中,如果数据有层次关系时,则目标系统返回的SI P协议数据将非常复杂,此时源系统解析起来就非常麻烦。

通过上述现有技术提供的在两个系统之间传递SIP协议数据的处理方法 可以看出,目前其主要存在着以下两方面的问题:

一、在组装或者解析基于XML文档的SIP协议的时候需要初始化很多用 来组装或解析SIP协议的Java对象,然后用这些Java对象处理SIP协议 数据,使得在两个系统之间传递SIP协议变得复杂;

二、在解析复杂数据结构时,例如数据之间有层次关系,则代码量会 很大,导致容易在编写代码时出错。

发明内容

为了减少系统之间传递基于XML的SIP协议数据的难度,提高开发效率 ,本发明的目的在于提供一种基于XML的SIP协议数据传输方法及系统 。

为了达到本发明的目的,本发明采用以下技术方案实现:

一种基于XML的SIP协议数据传输方法,包括:

源系统通过第一SIP协议数据处理装置生成SIP请求协议数据并将其发 送给目标系统的步骤,所述步骤包括:

通过第一SIP协议数据处理装置初始化第一协议构建器对象ProtocolB uilder;

第一协议构建器对象ProtocolBuilder依据用户定制的目标索要信息中 的每条数据创建相应的协议节点及协议节点的属性以生成SIP请求协议 数据;

源系统发送所述SIP请求协议数据至目标系统。

一种更为优选的实施方式下,所述基于XML的SIP协议数据传输方法还 包括目标系统通过第二SIP协议数据处理装置解析获取的SIP请求协议 数据的步骤,所述步骤包括:

第二SIP协议数据处理装置获取协议编号,在目标系统找到相同协议编 号的协议类;

第二协议构建器对象ProtocolBuilder解析并获取SIP请求协议数据的 协议节点或协议节点链表,并依据所述协议节点或协议节点链表获取 其相应节点的属性信息,其中,如果是协议节点,则直接获取协议节 点的属性信息;如果是协议节点链表,则遍历协议节点链表并获取每 个协议节点的属性信息。

一种更为优选的实施方式下,所述基于XML的SIP协议数据传输方法还 包括目标系统通过第二SIP协议数据处理装置生成SIP返回协议数据并 将其发送至源系统的步骤,所述步骤包括:

依据协议节点或协议节点链表的属性信息从目标系统的数据库中获取 相应的目标索要数据;

第二SIP协议数据处理装置依据所述目标索要数据所对应的业务实体将 这些数据转化为相应的协议节点;

第二协议构建器对象ProtocolBuilder添加所述协议节点以生成SIP返 回协议数据;

目标系统发送所述SIP返回协议数据至源系统。

一种更为优选的实施方式下,所述基于XML的SIP协议数据传输方法还 包括源系统通过第一SIP协议数据处理装置解析获取的SIP返回协议数 据的步骤,所述步骤包括:

第一SIP协议数据处理装置获取SIP返回协议数据;

第一协议构建器对象ProtocolBuilder解析并获取SIP返回协议数据的 协议节点信息;

初始化业务实体;

第一SIP协议数据处理装置将所述协议节点转化为相应的业务实体;

第一SIP协议数据处理装置将所述业务实体增加至业务实体链表中。

一种更为优选的实施方式下,第一SIP协议数据处理装置基于Java反射 机制将所述协议节点转化为相应的业务实体。

一种基于XML的SIP协议数据传输系统,包括源系统以及目标系统,其 中,所述源系统用于通过第一SIP协议数据处理装置生成SIP请求协议 数据并将其发送给目标系统,其处理步骤包括:

通过第一SIP协议数据处理装置初始化第一协议构建器对象ProtocolB uilder;

第一协议构建器对象ProtocolBuilder依据用户定制的目标索要信息中 的每条数据创建相应的协议节点及协议节点的属性以生成SIP请求协议 数据;

源系统发送所述SIP请求协议数据至目标系统。

一种更为优选的实施方式下,所述目标系统用于通过第二SIP协议数据 处理装置解析获取的SIP请求协议数据的步骤,其处理步骤包括:

第二SIP协议数据处理装置获取协议编号,在目标系统找到相同协议编 号的协议类;

第二协议构建器对象ProtocolBuilder解析并获取SIP请求协议数据的 协议节点或协议节点链表,并依据所述协议节点或协议节点链表获取 其相应节点的属性信息,其中,如果是协议节点,则直接获取协议节 点的属性信息;如果是协议节点链表,则遍历协议节点链表并获取每 个协议节点的属性信息。

一种更为优选的实施方式下,所述目标系统还用于通过第二SIP协议数 据处理装置生成SIP返回协议数据并将其发送至源系统的步骤,其处理 步骤 包括:

依据协议节点或协议节点链表的属性信息从目标系统的数据库中获取 相应的目标索要数据;

第二SIP协议数据处理装置依据所述目标索要数据所对应的业务实体将 这些数据转化为相应的协议节点;

第二协议构建器对象ProtocolBuilder添加所述协议节点以生成SIP返 回协议数据;

目标系统发送所述SIP返回协议数据至源系统。

一种更为优选的实施方式下,所述源系统还用于通过第一SIP协议数据 处理装置解析获取的SIP返回协议数据的步骤,其处理步骤包括:

第一SIP协议数据处理装置获取SIP返回协议数据;

第一协议构建器对象ProtocolBuilder解析并获取SIP返回协议数据的 协议节点信息;

初始化业务实体;

第一SIP协议数据处理装置将所述协议节点转化为相应的业务实体;

第一SIP协议数据处理装置将所述业务实体增加至业务实体链表中。

一种更为优选的实施方式下,第一SIP协议数据处理装置基于Java反射 机制将所述协议节点转化为相应的业务实体。

通过上述本发明的技术方案可以看出,在源系统以及目标系统上应用 本发明提供的SIP协议数据处理装置,可以对基于XML文档的SIP协议数 据进行接收和发送,应用本发明提供的基于XML的SIP协议数据传输方 法以及系统,开发人员不需要对SIP协议有任何了解,只需要使用协议 构建器ProtocolBuilder和协议节点ProtocolNode两个对象就能迅速组 织和解析协议,极大的降低了系统之间传输数据的难度,提高了开发 效率。

此外,SIP协议数据处理装置还可以基于Java反射机制将协议节点数据 一步转化为实际业务实体数据,其初始化的对象明显减少,代码量极 大降低。

因此,基于目前企业管理的数据越来越复杂,数据量也越来越庞大, 采用本发明,可以有效提高前期的开发速度,降低后期维护难度,从 而实现降 低软件产品成本的目标。

附图说明

图1是本发明实施例提供的基于XML的SIP协议数据传输系统结构示意图 ;

图2是本发明实施例中的请求协议处理流程图;

图3 本发明实施例中的返回协议之协议组装处理流程图;

图4本发明实施例中的返回协议之协议解析处理流程图。

本发明目的的实现、功能特点及优异效果,下面将结合具体实施例以 及附图做进一步的说明。

具体实施方式

下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描 述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但 所举实施例不作为对本发明的限定。

如图1所示,本发明实施例提供的一种基于XML的SIP协议数据传输方法 ,包括源系统通过第一SIP协议数据处理装置生成SIP请求协议数据并 将其发送给目标系统的步骤,所述步骤包括:

1)通过第一SIP协议数据处理装置初始化第一协议构建器对象Protoc olBuilder;

2)第一协议构建器对象ProtocolBuilder依据用户定制的目标索要信 息中的每条数据创建相应的协议节点及协议节点的属性以生成SIP请求 协议数据;

3)源系统发送所述SIP请求协议数据至目标系统。

一种更为优选的实施方式下,所述基于XML的SIP协议数据传输方法还 包括目标系统通过第二SIP协议数据处理装置解析获取的SIP请求协议 数据的步骤,所述步骤包括:

1)第二SIP协议数据处理装置获取协议编号,在目标系统找到相同协 议编号的协议类;

2)第二协议构建器对象ProtocolBuilder解析并获取SIP请求协议数据 的协议节点或协议节点链表,并依据所述协议节点或协议节点链表获 取其相应节点的属性信息,其中,如果是协议节点,则直接获取协议 节点的属性信息;如果是协议节点链表,则遍历协议节点链表并获取 每个协议节点的属性信息。

一种更为优选的实施方式下,所述基于XML的SIP协议数据传输方法还 包括目标系统通过第二SIP协议数据处理装置生成SIP返回协议数据并 将其发送至源系统的步骤,所述步骤包括:

1)依据协议节点或协议节点链表的属性信息从目标系统的数据库中获 取相应的目标索要数据;

2)第二SIP协议数据处理装置依据所述目标索要数据所对应的业务实 体将这些数据转化为相应的协议节点;

3)第二协议构建器对象ProtocolBuilder添加所述协议节点以生成SI P返回协议数据;

4)目标系统发送所述SIP返回协议数据至源系统。

一种更为优选的实施方式下,所述基于XML的SIP协议数据传输方法还 包括源系统通过第一SIP协议数据处理装置解析获取的SIP返回协议数 据的步骤,所述步骤包括:

1)第一SIP协议数据处理装置获取SIP返回协议数据;

2)第一协议构建器对象ProtocolBuilder解析并获取SIP返回协议数据 的协议节点信息;

3)初始化业务实体;

4)第一SIP协议数据处理装置将所述协议节点转化为相应的业务实体 ;

5)第一SIP协议数据处理装置将所述业务实体增加至业务实体链表中 。

其中,具体实施时,所述第一SIP协议数据处理装置基于Java反射机制 将所述协议节点转化为相应的业务实体。

第一SIP协议数据处理装置内部具有与第二SIP协议数据处理装置进行 通讯的访问代理(图中未示出),该访问代理通过第二SIP协议数据处 理装置的IP地址、端口号以及客户端类型(目前支持的有Web、CS、S erver三种方式, 如果是Web类型的系统,优先选用Web方式)进行初始化,初始化完成 后,便可用该访问代理对象向第二SIP协议数据处理装置发送协议。

如图1所示,本发明实施例还提供了一种基于XML的SIP协议数据传输系 统,包括源系统10以及目标系统20,其中,所述源系统10用于通过第 一SIP协议数据处理装置101生成SIP请求协议数据并将其发送给目标系 统20,其处理步骤包括:

1)通过第一SIP协议数据处理装置101初始化第一协议构建器对象Pro tocolBuilder;

2)第一协议构建器对象ProtocolBuilder依据用户定制的目标索要信 息中的每条数据创建相应的协议节点及协议节点的属性以生成SIP请求 协议数据;

3)源系统10发送所述SIP请求协议数据至目标系统20。

优选实施方式下,所述目标系统20用于通过第二SIP协议数据处理装置 201解析获取的SIP请求协议数据的步骤,其处理步骤包括:

1)第二SIP协议数据处理装置201获取协议编号,在目标系统20找到相 同协议编号的协议类;

2)第二协议构建器对象ProtocolBuilder解析并获取SIP请求协议数据 的协议节点或协议节点链表,并依据所述协议节点或协议节点链表获 取其相应节点的属性信息,其中,如果是协议节点,则直接获取协议 节点的属性信息;如果是协议节点链表,则遍历协议节点链表并获取 每个协议节点的属性信息。

优选实施方式下,所述目标系统20还用于通过第二SIP协议数据处理装 置201生成SIP返回协议数据并将其发送至源系统10的步骤,其处理步 骤包括:

1)依据协议节点或协议节点链表的属性信息从目标系统20的数据库中 获取相应的目标索要数据;

2)第二SIP协议数据处理装置201依据所述目标索要数据所对应的业务 实体将这些数据转化为相应的协议节点;

3)第二协议构建器对象ProtocolBuilder添加所述协议节点以生成SI P返回协议数据;

4)目标系统20发送所述SIP返回协议数据至源系统10。

优选实施方式下,所述源系统10还用于通过第一SIP协议数据处理装置 101解析获取的SIP返回协议数据的步骤,其处理步骤包括:

1)第一SIP协议数据处理装置101获取SIP返回协议数据;

2)第一协议构建器对象ProtocolBuilder解析并获取SIP返回协议数据 的协议节点信息;

3)初始化业务实体;

4)第一SIP协议数据处理装置101将所述协议节点转化为相应的业务实 体;

5)第一SIP协议数据处理装置101将所述业务实体增加至业务实体链表 中。

一种更为优选的实施方式下,第一SIP协议数据处理装置101基于Java 反射机制将所述协议节点转化为相应的业务实体。

依据本发明的一实施例,其基于XML的SIP协议数据传输方法的处理步 骤包括:

第一步:如图2所示,源系统10通过第一SIP协议数据处理装置101生成 SIP请求协议数据,该装置将SIP请求协议数据发送给目标系统20,其 中,源系统10包括的第一SIP协议数据处理装置101组装SIP请求协议数 据的流程如下:

步骤S101:通过第一SIP协议数据处理装置101初始化第一协议构建器 对象ProtocolBuilder;

步骤S102:第一协议构建器对象ProtocolBuilder对于要发送给目标系 统20的目标索要信息(即源系统10向目标系统20索要的目标信息)采 用创建节点和增加相应节点属性的方式构建,每条数据均视作一个协 议节点ProtocolNode,数据中的各个字段均视作协议节点的属性,如 果数据之间有父子关系,则可以通过创建子节点的方式实现。

第二步:如图3所示,目标系统20收到源系统10发送的SIP请求协议数 据后,通过第二SIP协议数据处理装置201获取协议编号,在目标系统 20 找到相同协议编号的协议类,用本装置解析收到的SIP请求协议,其中 ,第二SIP协议数据处理装置201解析获取的SIP请求协议数据的具体步 骤如下:

步骤S201:通过第二协议构建器对象ProtocolBuilder获取协议节点或 者协议节点链表,如果是协议节点,则直接获取协议节点的属性信息 ;如果是协议节点链表,则需要遍历协议节点链表获取每个协议节点 的属性信息;

第三步:依据解析源系统10发送的SIP请求协议的内容,依据目标索要 信息从目标系统20获取源系统10请求的数据,通过第二SIP协议数据处 理装置201对数据进行组装,作为SIP返回协议数据发送给源系统10, 其中,第二SIP协议数据处理装置201组装SIP返回协议数据的具体步骤 如下:

步骤S202:遍历从目标系统20获取的数据;

步骤S203:第二SIP协议数据处理装置201通过数据对应的业务实体将 数据直接转化为协议节点ProtocolNode;

步骤S204:通过第二协议构建器对象ProtocolBuilder增加相应的协议 节点。

第四步:如图4所示,源系统10收到SIP返回协议数据后,通过第一SI P协议数据处理装置101对目标系统20返回的SIP返回协议数据进行解析 ,将协议节点数据转化为业务实体链表,具体步骤描述如下:

步骤S301:通过源系统10的第一协议构建器对象ProtocolBuilder获取 协议节点信息;

步骤S302:初始化业务实体;

步骤S303:采用第一SIP协议数据处理装置101将协议节点ProtocolNo de直接转化为业务实体;

步骤S304:将业务实体增加到业务实体链表中。

一种具体实施例下,首先定义系统之间交互的协议的格式,例如,协 议号由七位数字组成,分为系统协议和普通协议,系统协议是以889开 头,普通协议是以888开头,协议的第4位表示的是功能模块编号,从 0到9可以表示10个模块,最后3位是协议流水号,从001到999,可以表 示某个模块的999条协议。

协议又分为请求协议和响应协议:请求协议的协议数据区头包括协议 类型、包序号、会话ID、通讯源平台ID、通讯目的平台ID,协议数据 区内容包括请求数据条件信息,目的平台根据条件信息能获取符合条 件的数据;响应协议也称返回协议,是通讯目的平台返回给通讯源平 台的数据信息,协议数据区头包括一个错误号,如果为0表示成功。

以上介绍了交互的协议格式,下面仍以查看局站信息为例说明基于XM L文档的SIP协议收发器的工作原理,以此能达到对比的目的。

步骤1:假设在源系统10和目标系统20传递局站信息,首先是源系统1 0通过第一SIP协议数据处理装置101组装SIP请求协议数据并将其发送 给目标系统20。

步骤S401, 通过第一SIP协议数据处理装置101初始化协议编号为88 80005的协议构建器对象ProtocolBuilder;

步骤S402,通过第一协议构建器对象ProtocolBuilder创建用户User节 点,并设置其用户编号id属性为当前访问用户的用户编号;

步骤S403,使用第一SIP协议数据处理装置101向目标系统20发送SIP请 求协议数据。

步骤2:目标系统20收到SIP请求协议数据后,通过第二SIP协议数据处 理装置201对SIP请求协议数据进行解析,获取协议数据,通过目标系 统20获取满足SIP请求协议数据条件的局站信息。

步骤S501,第二SIP协议数据处理装置201从收到的SIP请求协议数据中 获取用户User节点信息;

步骤S502,第二SIP协议数据处理装置201从用户User节点获取用户编 号属性id信息;

步骤S503,通过目标系统20获取所有该用户有权查看的局站信息,第 二SIP协议数据处理装置201通过反射机制将局站对象直接转化为协议 节点ProtocolNode;

步骤S504,第二SIP协议数据处理装置201将协议节点ProtocolNode附 加到返回协议中。

步骤3:源系统10收到目标系统20发送的SIP返回协议后,利用第一SI P协议数据处理装置101解析数据,以业务实体链表的形式返回给源系 统10。

步骤S601,使用第一SIP协议数据处理装置101从返回协议中获取所有 局站协议节点;

步骤S602,初始化局站实体类型的链表;

步骤S603,遍历局站协议节点,用第一SIP协议数据处理装置101通过 发射机制转化为局站实体对象;

步骤S604,将局站实体对象加入到局站实体类型的链表中,重复步骤 S703,直到遍历完毕。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围 ,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换 ,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的 专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号