本发明涉及互联网VoIP网络电话通信领域,尤其是涉及一种VoIP信令与媒体数据关联系统、方法及计算机存储介质。
背景技术:
在复杂的互联网流量环境中,大量的信息与媒体流量分离。而信令流量由于存在复杂的情况,主要分为三类:一是VoIP存在中转代理,支持多层转发,由于代理标准化程度偏低,转发过程中导致协商信息丢失,使得信令媒体无法关联成功;二是VoIP存在NAT映射不完整的情况,VoIP数据在流经NAT网关、隧道等中间设备中,会损失控制信令中的协商信息,如SDP中的IP端口仍为内网地址,没有更新网关IP无法与RTP进行成功关联;三是VoIP厂商存在大量自行使用变种SIP协议对部分协议字段变换的情况,造成了媒体与信令无法关联。
如图1所示,为经典的互联网用户使用VoIP电话使用SIP(Session Initiation Protocol,会话初始协议)协议拨打VoIP终端用户的呼叫流程,包括:
用户使用终端A向VoIP信令服务器发起INVITE消息;
VoIP信令服务器在请求消息头via中插入自身地址后,并向消息的TO域所指示的被叫终端B发送INVITE请求;
VoIP信令服务器向终端A发送100Trying应答消息;
终端B向VoIP信令服务器发送100Trying应答消息;
终端B向VoIP信令服务器发送180Ringing振铃消息;
VoIP信令服务器向终端A转发180Ringing振铃消息;
终端B用户接通后,终端B向VoIP信令服务器发送200OK应答消息;
VoIP信令服务器向终端A转发200OK应答消息;
终端A收到消息后,向VoIP信令服务器发送ACK消息;
VoIP信令服务器向终端B转发ACK消息;
至此主被叫建立通信连接,开始通话。
如图2所示,传统的信令媒体关联是使用信令交互过程中的INVITE、18X、200OK等带有SDP信息的消息中提取协商的两端IP端口信息,然后根据两端的端信息使用二元组或者四元组作为索引key从相关的媒体链路中查询到关联的媒体通话。在复杂的网络情况下,针对存在协商信息丢失、协商的IP信息为私有网络地址或者针对SIP标准协议进行部分改变时,传统的方式无法有效地进行信令与媒体链路的关联。因此,需要一种系统和方法,可以在出现上述场景的情况下,实现针对互联网复杂流量情况下对VoIP网络电话信令与媒体数据的关联处理。
技术实现要素:
发明目的:本发明要解决的技术问题是提供一种VoIP信令与媒体数据关联系统、方法及计算机存储介质,解决了复杂网络情况下无法有效进行信令和媒体链路关联的不足,采用多维度数据对互联网VoIP网络电话协议信令与媒体数据进行有效关联,即实现了关联又保证了关联结果的质量,具有高有效性、高可靠性和高扩展性。
技术方案:本发明所述的VoIP信令与媒体数据关联系统,包括识别过滤装置、解析处理装置、核心关联装置、数据分析反馈装置;
所述的识别过滤装置接入互联网分光数据,根据协议特征识别过滤出VoIP信令与媒体数据,将其发送到解析处理装置;
所述解析处理装置接收识别过滤装置发送的VoIP信令与媒体数据,在所述VoIP信令中提取信令通话信息,在所述媒体数据中提取媒体链路信息,并将所提取的信令通话信息和媒体链路信息发送到核心关联装置和数据分析反馈装置;
所述核心关联装置接收解析处理装置发送的信令通话信息和媒体链路信息,接收数据分析反馈装置发送的反馈信息,根据信令通话信息中的协商端信息、媒体链路信息中的负载类型信息和反馈信息中的VoIP网关信息将信令通话信息和媒体链路信息进行多维数据关联,并将关联结果发送到数据分析反馈装置;
所述数据分析反馈装置接收解析处理装置发送的信令通话信息、媒体链路信息和核心关联装置发送的关联结果,根据IP、链路端口、Via和Agent信息,建立VoIP网关模型和拓扑结构,并将其作为反馈信息发送到核心关联装置。
进一步的,识别过滤装置中的协议特征包括SIP协议、H323协议和RTP协议的关键字和固定字节流。
进一步的,解析处理装置中所提取的信令通话信息包括主被叫信息、通话起始时间、通话结束时间、协商端信息、协商的负载类型信息、使用的Agent类型信息,所提取的媒体链路信息包括链路起始时间、链路结束时间、媒体数据使用的负载类型信息、SSRC信息。
进一步的,所述的核心关联装置包括接收子装置、第一关联子装置、第二关联子装置、第三关联子装置和发送子装置;
接收子装置接收解析处理装置发送的信令通话信息和媒体链路信息,接收数据分析反馈装置发送的反馈信息;
所述第一关联子装置判断信令通话信息中协商端信息是否存在,如果存在则使用端信息四元组或者二元组作为索引条件搜索媒体链路信息,如果使用端信息四元组索引成功,则完成关联并转到发送子装置处理,如果使用端信息二元组索引成功则转到第三关联子装置处理,如果不存在协商端信息或者索引不成功,则转到第二关联子装置处理;
所述第二关联子装置使用媒体链路信息中负载类型信息和反馈信息中VoIP网关信息作为索引条件搜索媒体链路信息,如果索引得到的媒体链路信息等于1条,则完成关联,转到发送子装置处理,如果索引得到的媒体链路信息大于1条,则转到第三关联子装置处理;
所述第三关联子装置使用信令通话信息中通话起始时间和通话结束时间作为索引条件搜索前述关联子装置索引得到的媒体链路信息,若索引得到的媒体链路信息等于1条,则完成关联,转到发送子装置处理,若索引得到的媒体链路信息不等于1条,则放弃关联;
所述发送子装置将关联结果发送到数据分析反馈装置。
进一步的,所述数据分析反馈装置的VoIP网关模型包括网关的端信息和网关的类型信息。
本发明所述的VoIP信令与媒体数据关联方法,包括以下步骤:
(1)系统接入互联网分光数据,根据协议特征识别过滤出VoIP信令与媒体数据;
(2)在步骤(1)中所述的VoIP信令中提取信令通话信息,在所述媒体数据中提取媒体链路信息;
(3)根据信令通话信息中的协商端信息、媒体链路信息中的负载类型信息和步骤(4)反馈信息中的VoIP网关信息将信令通话信息和媒体链路信息进行数据关联;
(4)根据步骤(3)中的关联结果,使用IP、链路端口、Via和Agent信息建立VoIP网关模型和拓扑结构,并将其作为反馈信息。
进一步的,步骤(2)中所述的信令通话信息包括主被叫信息、通话起始时间、通话结束时间、协商端信息、协商的负载类型信息、使用的Agent类型信息,所述媒体链路信息包括链路起始时间、链路结束时间、媒体数据使用的负载类型信息、SSRC信息。
进一步的,步骤(3)中的数据关联具体为:
(3.1)判断信令通话信息中协商端信息是否存在,如果存在则使用端信息四元组或者二元组作为索引条件搜索媒体链路信息,如果使用端信息四元组索引成功,则完成关联并转到步骤(4),如果使用端信息二元组索引成功则转到步骤(3.3)处理,如果不存在协商端信息或者索引不成功,则转到步骤(3.2)处理;
(3.2)使用媒体链路信息中负载类型信息和反馈信息中VoIP网关信息作为索引条件搜索媒体链路信息,如果索引得到的媒体链路信息等于1条,则完成关联并转到步骤(4),如果索引得到的媒体链路信息大于1条,则转到步骤(3.3)处理;
(3.3)使用信令通话信息中通话起始时间和通话结束时间作为索引条件搜索上述索引得到的媒体链路信息,若索引得到的媒体链路信息等于1条,则完成关联并转到步骤(4),若索引得到的媒体链路信息不等于1条,则放弃关联;
进一步的,步骤(4)中的VoIP网关模型包括网关的端信息和网关的类型信息。
本发明所述的计算机存储介质,其上存储有计算机程序,所述计算机程序在被计算机处理器执行时实现上述任一项所述的方法。
有益效果:本发明能够采用多维度数据对互联网VoIP网络电话协议信令与媒体数据进行关联,从功能上,既保证了关联结果的高质量性,又保证关联结果的高数量性,从可靠性上,对关联结果的后续分析并将分析结果反馈给关联使用,逐步优化系统的关联效果,从可扩展性上,采用多层多装置处理的方式,使得需要拓展功能时,只需要修改或者扩展单装置的功能而不影响整体的功能以及效果。
附图说明
图1是VoIP网络电话的经典呼叫接听流程示意图;
图2是现有技术的VoIP信令与媒体链路的关联示意图;
图3是本实施方式的系统结构和数据流动示意图。
具体实施方式
本实施方式所述系统结构如图3所示,系统是一种针对互联网VoIP网络电话的信令与媒体关联系统,应用于互联网VoIP网络电话中,包括识别过滤装置、解析处理装置、核心关联装置、数据分析反馈装置。识别过滤装置接入来自互联网的分光数据,根据各协议特征,从大量复杂的互联网流量数据中识别过滤出含在其中占比较少的VoIP信令以及媒体协议数据流量,并将这些流量转发到解析处理装置进行关联多维数据的解析提取处理。这些协议特征包括SIP协议特征、H323协议特征以及RTP协议特征中的关键字以及固定字节流等。解析处理装置接收识别过滤装置过滤出的所有疑似VoIP信令以及媒体协议数据流量,在对流量数据进行精细化的识别后,对信令数据提取信令通话信息,信令通话信息包括主被叫信息、通话起始时间、通话结束时间、协商的端信息、协商的负载类型信息、使用的Agent类型等信息,对媒体数据提取链路数据信息,包括链路起始时间、链路结束时间、媒体数据使用的负载类型值、SSRC等信息。然后将这些数据提供给核心关联层以及数据分析和反馈层进行关联以及分析处理。
核心关联装置接收来自解析处理层提供的信令通话信息、媒体链路数据信息以及数据分析和反馈层的反馈信息,使用信令通话中的协商端信息、负载类型等信息以及反馈的VoIP网关信息进行信令通话链路与媒体链路的多维度数据关联,然后将关联结果提供给数据分析反馈装置进行分析处理。核心关联装置包括接收子装置、第一关联子装置、第二关联子装置、第三关联子装置和发送子装置。接收子装置接收解析处理装置发送的信令通话信息和媒体链路信息,接收数据分析反馈装置发送的反馈信息;所述第一关联子装置判断信令通话信息中协商端信息是否存在,如果存在则使用端信息四元组或者二元组作为索引条件搜索媒体链路信息,例如端信息四元组为客户端IP和端口以及服务端IP和端口,端信息二元组为客户端或者服务端的IP和端口,如果使用端信息四元组索引成功,则完成关联并转到发送子装置处理,如果使用端信息二元组索引成功则转到第三关联子装置处理,如果不存在协商端信息或者索引不成功,则转到第二关联子装置处理;所述第二关联子装置使用媒体链路信息中负载类型信息和反馈信息中VoIP网关信息作为索引条件搜索媒体链路信息,如果索引得到的媒体链路信息等于1条,则完成关联,转到发送子装置处理,如果索引得到的媒体链路信息大于1条,则转到第三关联子装置处理;所述第三关联子装置使用信令通话信息中通话起始时间和通话结束时间作为索引条件搜索前述关联子装置索引得到的媒体链路信息,若索引得到的媒体链路信息等于1条,则完成关联,转到发送子装置处理,若索引得到的媒体链路信息不等于1条,则放弃关联;所述发送子装置将关联结果发送到数据分析反馈装置。
数据分析反馈装置接收解析处理层提取的信令通话信息和媒体链路数据信息以及接收核心关联层的关联结果,通过分析大量的数据模型,根据IP频率、链路的端口、Via以及Agent类型等数据信息模型,使用数量统计、碰撞以及聚类的方法,建立起潜在的VoIP网关模型以及拓扑结构,如网关的信令与媒体服务端IP以及开发的端口、网关的类型(是否为代理网关)、网关之间的连接关系。即统计IP以及端口信息得出潜在的网关端信息,使用via信息(包含网关路由信息)得出网关之间的连接关系、使用agent、IP信息通过聚类和碰撞得出网关类型信息。最后将这些分析结果提供给核心关联层作为多维数据继续优化关联处理效果。上述的VoIP网关模型主要包含网关的端信息、网关的类型信息,拓扑结构主要是网关之间的连接关系。网关的端信息主要指服务IP以及服务开放端口,类型信息主要是指网关的服务软件名称(比如:VOS)。拓扑关系主要是指哪些网关属于同一服务商提供的,并描述其各网关之间的通联关系,比如:a与b互联b与c互联,但abc同属于一个服务商所有。
本实施方式所述的方法具体包括以下步骤:
(1)、识别过滤装置接入来自互联网的分光数据或者旁路光数据,根据SIP协议特征、H323协议特征以及RTP协议特征,包括关键字以及固定字节流等,从大量复杂的互联网流量数据中识别过滤出含在其中占比较少的VoIP信令以及媒体协议数据流量,并将这些流量分发到解析处理装置进行关联多维数据的解析提取处理。
(2)、解析处理装置接收识别过滤层过滤出的所有疑似VoIP信令以及媒体协议数据流量,对流量数据进行精细化的识别,进一步筛选出其中真正的VoIP信令媒体协议数据。
(3)、解析处理装置对信令数据提取主被叫信息、通话起始时间、通话结束时间、协商的端信息、协商的负载类型信息、使用的Agent等信息;对媒体数据提取链路起始时间、链路结束时间、媒体数据使用的负载类型值、SSRC等信息。然后将这些数据提供给核心关联装置以及数据分析和反馈装置进行关联以及分析处理。
(4)、核心关联装置接收来自解析处理层提供的信令通话信息、媒体链路数据信息以及数据分析和反馈层的反馈信息,在信令协商的端信息存在的情况下,优先使用协商的媒体端信息四元组(客户端IP和端口以及服务端IP和端口)以及二元组(客户端或者服务端的IP和端口)作为索引key搜索媒体链记录信息,即媒体数据信息,使用四元组索引成功的,则完成关联直接调到步骤(7),使用二元组进行索引的,如果结果只有一条,则关联成功跳至步骤(7),否则,对索引结果进行通话开始时间以及通话结束时间比对,如果过滤出一条结果,则关联成功,跳至步骤(7),否则关联失败。
(5)、在第(4)步失败的情况下,核心关联装置接着使用负载类型以及反馈的VoIP网关信息作为索引条件搜索媒体数据信息,如果存在一条符合条件的媒体链记录,则关联成功,并转到步骤(7)执行。
(6)、在第(5)步搜索得到多条记录的情况下,核心关联装置针对搜索后的媒体链记录信息使用信令通话起始时间以及通话结束时间作为索引条件,如果只存在一条符合条件的媒体链记录,则关联成功;否则,关联工作失败,本次处理结束。
(7)、数据分析反馈装置接收解析处理装置提取的信令通话信息和媒体链路数据信息以及接收核心关联层的关联结果,通过分析大量的数据模型,建立起潜在的VoIP网关模型以及拓扑结构,并将这些分析结果提供给核心关联层作为多维数据继续优化关联处理效果。
在实际应用中,所述设备中的各个单元所实现的功能,均可由位于终端中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
本发明实施例如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实例不限制于任何特定的硬件和软件结合。
相应的,本发明的实施例还提供了一种计算机存储介质,其上存储有计算机程序。当所述计算机程序由处理器执行时,可以实现前述的方法,或者实现上述系统中各装置和子装置的功能。例如,该计算机存储介质为计算机可读存储介质。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。