H.245消息解析方法技术

技术编号:11325058 阅读:60 留言:0更新日期:2015-04-22 13:47
本发明专利技术涉及一种H.245消息解析方法,含有下列步骤:1、H.245解码信令树的构建;2、消息定义、映射;3、解码:对每一条消息结构编写对应的解码函数,调用解码函数库对应的消息解码函数,完成解码工作;4、消息比特提取;5、H.245信令树的数据填充:对于每条控制信息,通过调用自己的解码函数返回所取的比特值,解码函数将对应的数值填充到本条消息对应的节点上;6、解码结果输出:调用输出显示模块,对此条消息的信令树进行遍历,逐级读取各层节点上填充的数据值,并进行可视化输出,验证解码的正确性;本发明专利技术能为可视电话业务数据帧的复用提供关键参数和函数接口。

【技术实现步骤摘要】
H.245消息解析方法(一)、
:本专利技术涉及一种消息解析方法,特别是涉及一种H.245消息解析方法。(二)、
技术介绍
:H.245协议(Controlprotocolformultimediacommunication)是H.323协议族中用于媒体信道控制的协议,主要完成多媒体通信中每个逻辑通道的建立、维护和释放,具体包括逻辑通道的打开和关闭、参数设定、收发双方的能力协商等控制功能,同时它还要完成多点会议呼叫中逻辑信道的配合控制功能。H.245定义了在通信过程中交互消息的语法和语义,对主要消息的交互过程进行了描述,其对消息语法的定义采用一种逐层嵌套的消息结构。H.245在OSI框架中属于应用层协议,其功能决定了H.245消息要用到非常复杂的信令,因此使用抽象语法表示法ASN.1来定义信令的类型和格式,采用非对齐的紧缩编码规则(PER,PacketEncodingRules)来进行表示。由于PER是以比特为单位编码的,且每个信息单元之间没有填充,因此实现起来比较复杂。(三)、
技术实现思路
:本专利技术要解决的技术问题是:提供一种H.245消息解析方法,该方法能为可视电话业务数据帧的复用提供关键参数和函数接口。本专利技术的技术方案:一种H.245消息解析方法,含有下列步骤:步骤1、H.245解码信令树的构建:H.245消息的顶层是多媒体系统的控制消息(MultimediaSystemControlMessage),多媒体系统的控制消息含有四种类型:接收方需响应并且应答的请求消息(RequestMessage)、应答请求消息(RequestMessage)的响应消息(ResponseMessage)、接收方需响应但无需应答的命令消息(CommandMessage)、接收方不响应且无需应答的指示消息(IndicationMessage);这四种类型的消息是H.245控制协议的第一级消息类型,每种类型消息结构又包含了N种子消息类型,作为下一层子树,以此类推,依层嵌套,最终形成H.245整体信令消息;按照H.245整体信令消息的层次性嵌套结构,将其整个协议消息定义为一个树形的结构类型;对于H.245信令树结构,一条控制消息单元在树形结构中可能有很多条路径可以到达,但是对于待解码的比特流,每次有且只有一条路径有效,可以到达。要得到底层节点的信息,必须走完上层的节点,所以在解码时,必须考虑所有可能出现的路径,才能保证解码的正确性。步骤2、消息定义、映射:将用ASN.1PER定义描述的H.245数据类型和对应的消息结构定义、映射为程序语言描述的数据结构文件,这是解码的基础;映射后的结构具有足够的信息进行编码或者具有足够的域存放解码后的数据;映射完成的功能是将ASN.1描述的每种数据类型都映射到其对应的解码函数中去,这些解码函数再调用下层相应的解码函数实现消息的解码功能。步骤3、解码:当数据类型和消息结构映射到程序文件后,接下来就是利用解码函数库进行解码,解码函数库是H.245解析的核心部分;依据H.245信令数结构,必须对每一条消息结构编写对应的解码函数;由于H.245消息的解码函数中包括对于基本数据类型和复合数据结构的调用,所以对于基本的数据类型和复合数据结构,也需要对应的解码函数库;解码函数部分以API接口向其它模块提供调用接口,其本身也对接口模块透明,消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;通过接口部分接收经过ASN.1PER编码后的H.245数据流,然后调用解码函数库对应的消息解码函数,完成解码工作,并将结果通过接口部分送出;步骤4、消息比特提取:对于H.245信令树,即使所需单元是必选单元并且比特数固定,仍需逐比特的按照树形结构走到信息所在的节点。为此,在解析模块中设计一个灵活地从比特流中取出任意比特的函数,此函数接受解码函数的调用,提取对应的信息流比特位,并将数值返回给解码函数;函数自身返回所取比特的位数,以验证提取比特位数量的正确性,并且根据所取比特位数调整双指针的位置;这样,即使H.245的信息层层嵌套,也可以通过反复调用此函数实现对信息单元的提取。步骤5、H.245信令树的数据填充:对于每条控制信息,通过调用自己的解码函数返回所取的比特值,解码函数将对应的数值填充到本条消息对应的节点上,本级其余节点不填充,值为空;步骤6、解码结果输出:当一条H.245信令解析完毕后,消息对应的信令树填充完毕,调用输出显示模块,对此条消息的信令树进行遍历,逐级读取各层节点上填充的数据值,并进行可视化输出,验证解码的正确性。步骤2中的H.245数据类型含有基本类型和复合类型。步骤4中的根据所取比特位数调整双指针的位置是指后移双指针的位置。在调用解码函数库之前,必须执行初始化操作,完成双指针的置0、H.245信令树各节点清空这些操作;消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;比特提取函数取得所需要的比特后,将内容返回给对应的解码函数,自身返回所取比特的位数,以验证正确性,并且根据所取比特位数调整双指针的位置;双指针是关键,不能轻易修改位置;C语言中,并没有对应存储比特位(小于8)的数据结构,因此,比特数值的读取方法为:将包含待读取比特(n位)的字节从缓冲区中取出,先进行左移(由bit指针确定),进行左对齐,然后进行右对齐,将所取比特位之前的bit位清0,完成实际比特位读取;每条H.245消息的结构定义就是复合数据类型的定义,各消息的解码函数最终需要调用基本类型的解码函数,将返回值填入信令树对应节点;对于H.245消息定义中个数不定的参数,根据实际消息中参数数量的多少,提供不同的存储空间分配方案;如果参数数量较少,则使用静态存储空间;如果静态空间不足以存放参数,则动态申请空间。这种方法既能适应协议定义出的各种情况,又能在大多数消息解码过程中保证效率。本专利技术的有益效果:1、本专利技术在深入研究ASN.l描述的紧缩编码规则PER基础上首先提出了PER树型解码结构,并设计实现了可用于通信系统的PER解码器;本专利技术针对信令树中每个结点对应的消息编写对应的解码函数,层层嵌套;在对消息解码时,以深度优先搜索方式对信令树进行遍历,消息的解码函数调用包含的基本和复合类型数据对应的解码函数,提取对应的比特值,并将数据值逐层填充到消息信令树对应的结点上,直到叶子结点结束。本专利技术对经过ASN.1PER编码后的消息结构进行解码分析,获取控制消息的具体内容,为可视电话业务数据帧的复用提供关键参数和函数接口。(四)、附图说明:图1为H.245信令树结构示意图;图2为H.245数据类型与消息结构到C数据结构文件的映射示意图;图3为解码程序流程图。(五)、具体实施方式:H.245消息解析方法含有下列步骤:步骤1、H.245解码信令树的构建:H.245消息的顶层是多媒体系统的控制消息(MultimediaSystemControlMessage),多媒体系统的控制消息含有四种类型:接收方需响应并且应答的请求消息(RequestMessage)、应答请求消息(RequestMessage)的响应消息(ResponseMessage)、接收方需响应但无本文档来自技高网...
H.245消息解析方法

【技术保护点】
一种H.245消息解析方法,其特征是:含有下列步骤:步骤1、H.245解码信令树的构建:H.245消息的顶层是多媒体系统的控制消息,多媒体系统的控制消息含有四种类型:接收方需响应并且应答的请求消息、应答请求消息的响应消息、接收方需响应但无需应答的命令消息、接收方不响应且无需应答的指示消息;这四种类型的消息是H.245控制协议的第一级消息类型,每种类型消息结构又包含了N种子消息类型,作为下一层子树,最终形成H.245整体信令消息;按照H.245整体信令消息的层次性嵌套结构,将其整个协议消息定义为一个树形的结构类型;步骤2、消息定义、映射:将用ASN.1 PER定义描述的H.245数据类型和对应的消息结构定义、映射为程序语言描述的数据结构文件;映射后的结构具有足够的信息进行编码或者具有足够的域存放解码后的数据;步骤3、解码:对每一条消息结构编写对应的解码函数;由于H.245消息的解码函数中包括对于基本数据类型和复合数据结构的调用,所以对于基本的数据类型和复合数据结构,也需要对应的解码函数库;解码函数部分以API接口向其它模块提供调用接口,其本身也对接口模块透明,消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;通过接口部分接收经过ASN.1 PER编码后的H.245数据流,然后调用解码函数库对应的消息解码函数,完成解码工作,并将结果通过接口部分送出;步骤4、消息比特提取:在解析模块中设计一个灵活地从比特流中取出任意比特的函数,此函数接受解码函数的调用,提取对应的信息流比特位,并将数值返回给解码函数;函数自身返回所取比特的位数,以验证提取比特位数量的正确性,并且根据所取比特位数调整双指针的位置;步骤5、H.245信令树的数据填充:对于每条控制信息,通过调用自己的解码函数返回所取的比特值,解码函数将对应的数值填充到本条消息对应的节点上,本级其余节点不填充,值为空;步骤6、解码结果输出:当一条H.245信令解析完毕后,消息对应的信令树填充完毕,调用输出显示模块,对此条消息的信令树进行遍历,逐级读取各层节点上填充的数据值,并进行可视化输出,验证解码的正确性。...

【技术特征摘要】
1.一种H.245消息解析方法,其特征是:含有下列步骤:步骤1、H.245解码信令树的构建:H.245消息的顶层是多媒体系统的控制消息,多媒体系统的控制消息含有四种类型:接收方需响应并且应答的请求消息、应答请求消息的响应消息、接收方需响应但无需应答的命令消息、接收方不响应且无需应答的指示消息;这四种类型的消息是H.245控制协议的第一级消息类型,每种类型消息结构又包含了N种子消息类型,作为下一层子树,最终形成H.245整体信令消息;按照H.245整体信令消息的层次性嵌套结构,将其整个协议消息定义为一个树形的结构类型;步骤2、消息定义、映射:将用ASN.1PER定义描述的H.245数据类型和对应的消息结构定义、映射为程序语言描述的数据结构文件;映射后的结构具有足够的信息进行编码或者具有足够的域存放解码后的数据;步骤3、解码:对每一条消息结构编写对应的解码函数;由于H.245消息的解码函数中包括对于基本数据类型和复合数据结构的调用,所以对于基本的数据类型和复合数据结构,也需要对应的解码函数库;解码函数部分以API接口向其它模块提供调用接口,其本身也对接口模块透明,消息的解码函数必须确定其所取得的比特数,并初始化缓冲区字节和比特两个指针位置,传给比特提取函数;通过接口部分接收经过ASN.1PER编码后的H.245数据流,然后调用解码函数库对应的消息解码函数,完成解码工作,并将结果通过接口部分送出;步骤4、消息比特提取:在解析模块中设计一个从比特流中取出任意比特的函数,此函数接受解码函数的调用,提取对应的信息流比特位,并将数值返回给解码函数;函数自身返回所取比特的位数,以验证提取比特位数量的正确性,并且根据所取比特位数调整缓冲区字节和比特两个指针的位置;步骤5、H.245信令树的...

【专利技术属性】
技术研发人员:许明艳葛国栋柏溢王晓雷季新生彭建华汤红波秦小刚陈云杰王领伟
申请(专利权)人:中国人民解放军信息工程大学
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1