掌桥专利:专业的专利平台
掌桥专利
首页

基于XDP的高速数据转发方法、装置、语音网关及介质

文献发布时间:2024-04-18 19:59:31


基于XDP的高速数据转发方法、装置、语音网关及介质

技术领域

本申请涉及互联网技术领域,尤其涉及一种基于XDP(快速数据路径,eXpressData Path)的高速数据转发方法、装置、语音网关及存储介质。

背景技术

VoIP(基于网际互连协议的语音传输,Voice over Internet Protocol)语音网关是通过互联网打电话的接入设备,为IP(网际互连协议,Internet Protocol)话吧、中小企业以及家庭用户节约内部沟通和外部沟通成本(尤其是国内、国际长途电话和传真),使用语音网关以后,内部沟通成本几乎降为零,而与外部的沟通成本也比使用IP电话减低40%-60%。

现有的VoIP语音网关在通话过程中往往涉及大量的数据传输,常规的VoIP语音网关主要以保障数据的有效传输为主,难以兼顾数据传输的实时性,在涉及到多方的数据传输时,数据传输的速度较慢,延迟较高。

因此,如何提高VoIP语音网关的数据传输速度已成为本领域亟待解决的技术问题。

发明内容

本申请的主要目的在于提供一种基于XDP的高速数据转发方法、装置、语音网关及介质,旨在解决如何提高VoIP语音网关的数据传输速度的技术问题。

为实现上述目的,本申请提供一种基于XDP的高速数据转发方法,基于XDP的高速数据转发方法应用于语音网关,所述语音网关包括XDP模块,所述基于XDP的高速数据转发方法包括:

在接收到主叫设备输出的第一呼叫请求指令时,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接,其中,所述主叫设备与所述语音网关连接;

在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;

若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备,其中,所述第一设备为所述主叫设备或者所述被叫设备,所述第二设备为所述主叫设备和所述被叫设备中除所述第一设备外的设备。

可选的,在一种可行的实施例中,所述基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤,包括:

通过所述XDP模块解析所述第一呼叫请求指令以获得所述第一呼叫请求指令中的主叫地址和被叫地址;

判断所述主叫地址和所述被叫地址是否支持XDP技术;

若所述主叫地址和所述被叫地址均支持XDP技术,则通过所述XDP模块分别向所述主叫地址和所述被叫地址下发预设的转发规则,以供所述被叫设备基于所述第一呼叫请求指令与所述语音网关建立连接。

可选的,在一种可行的实施例中,在所述基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤之后,所述方法还包括:

在接收到所述主叫设备输出的保持指令时,将通话设置为保持状态,暂停接收所述第一设备输出的报文信息;

在所述通话为保持状态时,若接收到主叫设备输出的保持指令,则将所述通话设置为正常状态,持续接收所述第一设备输出的报文信息。

可选的,在一种可行的实施例中,在所述基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤之后,所述方法还包括:

在接收到第三方设备输入的第二呼叫请求指令时,通过所述XDP模块将所述第二呼叫请求指令输出至所述主叫设备;

在接收到所述主叫设备基于所述第二呼叫请求指令返回的呼叫切换指令时,通过所述XDP模块解析所述第二呼叫请求指令以获得所述第二呼叫请求指令中的第三方地址,并通过所述XDP模块将所述XDP模块的转发路径由所述被叫地址切换为所述第三方地址。

可选的,在一种可行的实施例中,在所述暂停接收所述第一设备输出的报文信息的步骤之后,所述方法还包括:

接收第三方设备输入的第二呼叫请求指令,并通过所述XDP模块将所述第二呼叫请求指令输出至所述主叫设备;

在接收到所述主叫设备基于所述第二呼叫请求指令返回的三方通话指令时,通过所述XDP模块解析所述第二呼叫请求指令以获得所述第二呼叫请求指令中的第三方地址,并基于所述第三方地址与所述第三方设备进行通信连接;

通过所述XDP模块将所述第三方地址输出至被叫设备,并将所述被叫地址输出至所述第三方设备,以供所述被叫设备与所述第三方设备进行通信连接;

在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;

若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备和第三设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备和所述第三设备,其中,所述第一设备为所述主叫设备或者被叫设备或者所述第三方设备,所述第二设备为所述主叫设备、所述被叫设备和所述第三方设备中除所述第一设备外的设备中的任一设备,所述第三设备为所述主叫设备、所述被叫设备和所述第三方设备中除所述第一设备和所述第二设备外的设备。

可选的,在一种可行的实施例中,在所述基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤之后,所述方法还包括:

在接收到所述主叫设备输出的盲转指令时,通过所述XDP模块解析所述盲转指令,以获得所述盲转指令中的第三方地址;

通过所述XDP模块将所述第三方地址转发至所述被叫设备,并将所述被叫地址转发至所述第三方地址对应的第三方设备,以供所述被叫设备与所述第三方设备进行通信连接。

可选的,在一种可行的实施例中,在所述基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤之后,所述方法还包括:

在接收到所述主叫设备输出的询问转移指令时,通过所述XDP模块解析所述询问转移指令,以获得所述询问转移指令中的第三方地址;

通过所述XDP模块将所述询问转移指令转发至所述第三方地址对应的第三方设备,并检测是否接收到所述第三方设备的响应信息;

若接收到所述响应信息,则通过所述XDP模块解析所述询问转移指令,以获得所述询问转移指令中的第三方地址;

通过所述XDP模块将所述第三方地址转发至所述被叫设备,并将所述被叫地址转发至所述第三方设备,以供所述被叫设备与所述第三方设备进行通信连接。

此外,为实现上述目的,本申请还提供一种基于XDP的高速数据转发装置,所述基于XDP的高速数据转发装置为虚拟装置,基于XDP的高速数据转发装置设置于语音网关,所述语音网关包括XDP模块,所述基于XDP的高速数据转发装置包括:

连接模块,用于在接收到主叫设备输出的第一呼叫请求指令时,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接,其中,所述主叫设备与所述语音网关连接;

规则匹配模块,用于在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;

转发模块,用于若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备,其中,所述第一设备为所述主叫设备或者所述被叫设备,所述第二设备为所述主叫设备和所述被叫设备中除所述第一设备外的设备。

此外,为实现上述目的,本申请还提供一种语音网关,所述语音网关包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的基于XDP的高速数据转发方法的步骤。

本申请还提供一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的基于XDP的高速数据转发方法的步骤。

本申请提供一种基于XDP的高速数据转发方法、装置、语音网关及介质,基于XDP的高速数据转发方法包括:基于XDP的高速数据转发方法应用于语音网关,所述语音网关包括XDP模块,所述基于XDP的高速数据转发方法包括:在接收到主叫设备输出的第一呼叫请求指令时,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接,其中,所述主叫设备与所述语音网关连接;在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备,其中,所述第一设备为所述主叫设备或者所述被叫设备,所述第二设备为所述主叫设备和所述被叫设备中除所述第一设备外的设备。

相比于常规的语音网关,本申请基于XDP的高速数据转发方法通过在语音网关中设置XDP模块,将数据通过XDP模块进行处理和传输。语音网关与主叫设备连接,并处于公网或者局域网中,可以与其他语音网关进行通信,用户通过主叫设备进行拨号,拨号后,语音网关基于用户的拨号与被叫设备的语音网关进行连接,在连接后,用户通过主叫设备或者被叫设备输入报文信息,XDP模块在接收到信息后,对报文信息进行转发规则匹配,如果报文信息与预设的转发规则匹配,则可以通过XDP技术对报文信息进行转发,在转发时,基于转发规则中被叫设备或者主叫设备对应的地址对应关系调整报文信息的转发路径,报文信息无需入栈即可通过XDP模块直接转发至第二设备的语音网关。

如此,本申请基于上述通过设置的XDP模块进行数据高速传输的方法,与常规的语音网关相比,本申请基于XDP的高速数据转发方法在处理和转发数据时,数据能够通过XDP模块直接进行处理和转发,无需入栈,从而能够在不影响数据传输的质量的情况下提高数据传输的速度。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域默认技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例方案涉及的设备硬件运行环境的语音网关结构示意图;

图2为本申请基于XDP的高速数据转发方法第一实施例的实施流程示意图;

图3为本申请基于XDP的高速数据转发方法一实施例涉及的交互图;

图4为本申请基于XDP的高速数据转发方法一实施例涉及的三方通话场景图;

图5为本申请实施例方案涉及基于XDP的高速数据转发装置的功能模块示意图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

需要说明的是,VoIP语音网关是通过互联网打电话的接入设备,为IP话吧、中小企业以及家庭用户节约内部沟通和外部沟通成本(尤其是国内、国际长途电话和传真),使用语音网关以后,内部沟通成本几乎降为零,而与外部的沟通成本也比使用IP电话减低40%-60%。

现有的VoIP语音网关在通话过程中往往涉及大量的数据传输,常规的VoIP语音网关主要以保障数据的有效传输为主,难以兼顾数据传输的实时性,在涉及到多方的数据传输时,数据传输的速度较慢,延迟较高。

因此,如何提高VoIP语音网关的数据传输速度已成为本领域亟待解决的技术问题。

为解决上述问题,本申请提供一种基于XDP的高速数据转发方法、装置、语音网关及介质,基于XDP的高速数据转发方法包括:基于XDP的高速数据转发方法应用于语音网关,所述语音网关包括XDP模块,所述基于XDP的高速数据转发方法包括:在接收到主叫设备输出的第一呼叫请求指令时,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接,其中,所述主叫设备与所述语音网关连接;在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备,其中,所述第一设备为所述主叫设备或者所述被叫设备,所述第二设备为所述主叫设备和所述被叫设备中除所述第一设备外的设备。

相比于常规的语音网关,本申请基于XDP的高速数据转发方法通过在语音网关中设置XDP模块,将数据通过XDP模块进行处理和传输。语音网关与主叫设备连接,并处于公网或者局域网中,可以与其他语音网关进行通信,用户通过主叫设备进行拨号,拨号后,语音网关基于用户的拨号与被叫设备的语音网关进行连接,在连接后,用户通过主叫设备或者被叫设备输入报文信息,XDP模块在接收到信息后,对报文信息进行转发规则匹配,如果报文信息与预设的转发规则匹配,则可以通过XDP技术对报文信息进行转发,在转发时,基于转发规则中被叫设备或者主叫设备对应的地址对应关系调整报文信息的转发路径,报文信息无需入栈即可通过XDP模块直接转发至第二设备的语音网关。

如此,本申请基于上述通过设置的XDP模块进行数据高速传输的方法,与常规的语音网关相比,本申请基于XDP的高速数据转发方法在处理和转发数据时,数据能够通过XDP模块直接进行处理和转发,无需入栈,从而能够在不影响数据传输的质量的情况下提高数据传输的速度。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参照图1,图1为本申请实施例方案涉及的设备硬件运行环境的语音网关结构示意图。

需要说明的是,本发明实施例涉及的终端设备可以是执行本申请基于XDP的高速数据转发方法的语音网关。

如图1所示,该语音网关可以包括:处理器1001,例如CPU,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。

可选地,该语音网关还可以包括用户接口1003、网络接口1004、相机、RF(RadioFrequency,射频)电路,传感器、音频电路、WiFi模块等等。用户接口可以包括显示屏(Display)、输入子模块比如键盘(Keyboard),可选的,用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可包括标准的有线接口、无线接口(如WIFI接口)。

本领域技术人员可以理解,图1中示出的语音网关结构并不构成对语音网关的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及计算机程序。操作系统是管理和控制语音网关硬件和软件资源的程序,支持计算机程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与基于XDP的高速数据转发装置中其它硬件和软件之间通信。

在图1所示的语音网关中,处理器1001用于执行存储器1005中存储的计算机程序,并执行以下操作:

在接收到主叫设备输出的第一呼叫请求指令时,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接,其中,所述主叫设备与所述语音网关连接;

在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;

若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备,其中,所述第一设备为所述主叫设备或者所述被叫设备,所述第二设备为所述主叫设备和所述被叫设备中除所述第一设备外的设备。

进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:

通过所述XDP模块解析所述第一呼叫请求指令以获得所述第一呼叫请求指令中的主叫地址和被叫地址;

判断所述主叫地址和所述被叫地址是否支持XDP技术;

若所述主叫地址和所述被叫地址均支持XDP技术,则通过所述XDP模块分别向所述主叫地址和所述被叫地址下发预设的转发规则,以供所述被叫设备基于所述第一呼叫请求指令与所述语音网关建立连接。

进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:

在接收到所述主叫设备输出的保持指令时,将通话设置为保持状态,暂停接收所述第一设备输出的报文信息;

在所述通话为保持状态时,若接收到主叫设备输出的保持指令,则将所述通话设置为正常状态,持续接收所述第一设备输出的报文信息。

进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:

在接收到第三方设备输入的第二呼叫请求指令时,通过所述XDP模块将所述第二呼叫请求指令输出至所述主叫设备;

在接收到所述主叫设备基于所述第二呼叫请求指令返回的呼叫切换指令时,通过所述XDP模块解析所述第二呼叫请求指令以获得所述第二呼叫请求指令中的第三方地址,并通过所述XDP模块将所述XDP模块的转发路径由所述被叫地址切换为所述第三方地址。

进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:

接收第三方设备输入的第二呼叫请求指令,并通过所述XDP模块将所述第二呼叫请求指令输出至所述主叫设备;

在接收到所述主叫设备基于所述第二呼叫请求指令返回的三方通话指令时,通过所述XDP模块解析所述第二呼叫请求指令以获得所述第二呼叫请求指令中的第三方地址,并基于所述第三方地址与所述第三方设备进行通信连接;

通过所述XDP模块将所述第三方地址输出至被叫设备,并将所述被叫地址输出至所述第三方设备,以供所述被叫设备与所述第三方设备进行通信连接;

在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;

若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备和第三设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备和所述第三设备,其中,所述第一设备为所述主叫设备或者被叫设备或者所述第三方设备,所述第二设备为所述主叫设备、所述被叫设备和所述第三方设备中除所述第一设备外的设备中的任一设备,所述第三设备为所述主叫设备、所述被叫设备和所述第三方设备中除所述第一设备和所述第二设备外的设备。

进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:

在接收到所述主叫设备输出的盲转指令时,通过所述XDP模块解析所述盲转指令,以获得所述盲转指令中的第三方地址;

通过所述XDP模块将所述第三方地址转发至所述被叫设备,并将所述被叫地址转发至所述第三方地址对应的第三方设备,以供所述被叫设备与所述第三方设备进行通信连接。

进一步地,处理器1001可以调用存储器1005中存储的计算机程序,还执行以下操作:

在接收到所述主叫设备输出的询问转移指令时,通过所述XDP模块解析所述询问转移指令,以获得所述询问转移指令中的第三方地址;

通过所述XDP模块将所述询问转移指令转发至所述第三方地址对应的第三方设备,并检测是否接收到所述第三方设备的响应信息;

若接收到所述响应信息,则通过所述XDP模块解析所述询问转移指令,以获得所述询问转移指令中的第三方地址;

通过所述XDP模块将所述第三方地址转发至所述被叫设备,并将所述被叫地址转发至所述第三方设备,以供所述被叫设备与所述第三方设备进行通信连接。

基于上述的结构,提出基于XDP的高速数据转发方法的各个实施例。

在本申请基于XDP的高速数据转发方法的第一实施例中,请参照图2,图2为本申请基于XDP的高速数据转发方法第一实施例的流程示意图。

本发明实施例提供了基于XDP的高速数据转发方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。在本实施例中,基于XDP的高速数据转发方法的执行主体为语音网关,以下为便于描述,省略执行主体进行各实施例的阐述。在本实施例中,所述基于XDP的高速数据转发方法应用于语音网关,所述语音网关包括XDP模块,所述基于XDP的高速数据转发方法包括:

步骤S10,在接收到主叫设备输出的第一呼叫请求指令时,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接,其中,所述主叫设备与所述语音网关连接;

需要说明的是,在本实施例中,语音网关中包括有多个FXS(外部交换站,ForeignExchange Station)电话接口,FXS电话接口是一种话音接口,是数字电话交换系统和POTS(模拟电话业务,Plain Old Telephone Service)电话之间的一个线路端连接,电话机或者传真机可以通过FXS电话接口与语音网关进行连接。

语音网关中还包括有多个网络接口,可以通过网线与交换机连接,交换机再通过网线与PC(个人计算机,personal computer)或者便携式电脑连接。

在本实施例中,主叫设备可以是电话机、传真机或者模拟话机,主叫设备与语音网关连接,用户在用电话机拨号后,电话机向语音网关输出第一呼叫请求指令,语音网关获取到电话机输出的第一呼叫请求指令后,分配本地的媒体地址以作为报文转发的中继地址,根据第一呼叫请求指令中存储的用户拨的号码或者IP地址与被叫设备进行通信连接,被叫设备包括有被叫的语音设备(例如电话机、传真机或者模拟话机)和与被叫的语音设备连接的语音网关,语音网关之间通过互联网建立通信连接,建立连接的方式可以有多种,在此不再赘述。

进一步地,在一种可行的实施例中,上述的步骤S10中,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤,包括:

步骤S101,通过所述XDP模块解析所述第一呼叫请求指令以获得所述第一呼叫请求指令中的主叫地址和被叫地址;

需要说明的是,在本实施例中,用户可以通过话机拨打被叫号码或者输入目标IP地址来进行拨号,因此,被叫地址可以为被叫号码或者被叫IP地址。

在本实施例中,用户在通过话机进行拨号,输入被叫号码或者被叫IP地址后,话机将携带被叫地址的第一呼叫请求指令下发给语音网关,语音网关在接收到第一呼叫请求指令后,XDP模块直接按照预设的协议规则对第一呼叫请求指令进行解析,获取第一呼叫请求指令中的各类信息,其中包括有被叫地址和主叫地址,预设的协议规则可以为多种常规的协议规则,在此不做限定。

步骤S102,判断所述主叫地址和所述被叫地址是否支持XDP技术;

步骤S103,若所述主叫地址和所述被叫地址均支持XDP技术,则通过所述XDP模块分别向所述主叫地址和所述被叫地址下发预设的转发规则,以供所述被叫设备基于所述第一呼叫请求指令与所述语音网关建立连接。

在本实施例中,在XDP模块解析获得被叫地址和主叫地址后,判断主叫地址和被叫地址是否支持XDP技术,判断的方式有多种,在此不做赘述,在确定主叫地址和被叫地址都支持XDP技术后,向主叫地址和被叫地址下发转发规则,转发规则中包括:主叫端远端媒体地址-主叫端本端媒体地址,被叫端远端媒体地址-被叫端本端媒体地址,在本实施例中,主叫端远端媒体地址和被叫端远端媒体地址均为语音网关的本地地址,主叫端本端媒体地址为主叫地址,被叫端本端媒体地址为被叫地址,从而使得主叫端与被叫端进行网络连接。

示例性的,请参照图3,图3为本申请基于XDP的高速数据转发方法一实施例涉及的交互图,如图3所示,主叫用户A在电话机上拨打被叫用户B的号码,主叫语音网关在接收到A的拨号指令后,基于A拨出的号码与B对应的被叫语音网关进行通信连接,从而,用户B可以通过电话机与用户A通话,A与B在通话的过程中,双方的语音网关接收己方电话机和对方语音网关输出的信息,通过XDP模块对信息分别进行转发。

步骤S20,在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;

需要说明的是,在本实施例中,XDP模块是基于Linux操作系统的eBpf(ExtendedBerkeley Packet Filter,扩展的伯克利分组过滤器)技术实现的,eBpf技术可以在操作系统中给用户提供更多的hook(钩子)点,用户可以充分利用操作系统中各个hook点实现所需的功能,并且eBpf技术还可以bypass(旁路)操作系统中的一些冗余的操作和处理。

XDP模块是eBpf技术提供的Linux操作系统的内核态中的一个hook点,XDP模块可以在业务报文到达网卡驱动层时,对业务报文进行处理,并直接从网卡驱动层对业务报文进行转发,可以绕过Linux操作系统的内核态中的协议栈,也就是无需通过Linux操作系统的内核态中的协议栈对业务报文进行转发,并且XDP模块具有高效的报文处理能力。

在本实施例中,语音网关中设置有XDP模块,能够对指令或者数据进行高速处理和转发,语音网关在与被叫设备中的语音网关建立通信后,持续接收第一设备输出的报文信息,用户在通过电话机进行说话时,电话机持续将用户的报文信息输出至语音网关,语音网关在接收到报文信息后,由于报文信息为模拟信息,无法在互联网中进行转发,因此,需要先通过模数转换功能将模拟信息转换为可在互联网中转发的数字信息,在获得处理后的报文信息后,触发XDP模块直接报文信息进行转发,在转发前,需要通过XDP模块判断报文信息是否符合转发规则,即,报文信息中是否包括本端媒体地址和远端媒体地址。

步骤S30,若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备,其中,所述第一设备为所述主叫设备或者所述被叫设备,所述第二设备为所述主叫设备和所述被叫设备中除所述第一设备外的设备。

在本实施例中,在确定报文信息符合转发规则后,通过XDP模块基于转发规则对报文信息的远端地址和本端地址进行替换,将本端地址替换为语音网关的本地地址,远端地址替换为第二设备的地址,从而将报文信息的转发路径由第一设备至语音网关调整为语音网关至第二设备,其中,在第一设备为主叫设备时,第二设备为被叫设备,同样的,在第一设备为被叫设备时,第二设备为主叫设备。

如此,本申请基于上述通过设置的XDP模块进行数据高速传输的方法,与常规的语音网关相比,本申请基于XDP的高速数据转发方法在处理和转发数据时,数据能够通过XDP模块直接进行处理和转发,无需入栈,从而能够在不影响数据传输的质量的情况下提高数据传输的速度。

进一步地,基于上述本申请基于XDP的高速数据转发方法的第一实施例,提出本申请基于XDP的高速数据转发方法的第二实施例。

在本申请基于XDP的高速数据转发方法的第二实施例中,在上述的步骤S10中,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤之后,所述方法还包括:

步骤A10,在接收到所述主叫设备输出的保持指令时,将通话设置为保持状态,暂停接收所述第一设备输出的报文信息;

步骤A20,在所述通话为保持状态时,若接收到主叫设备输出的保持指令,则将所述通话设置为正常状态,持续接收所述第一设备输出的报文信息。

需要说明的是,在本实施例中,通话保持状态即为暂停当前的通话连接,但是不挂断当前通话,请求保持的一方可以通过再次请求保持来恢复通话。

在本实施例中,用户在通话的过程中如果希望通话保持,可以通过触发话机上的实体或者虚拟控件来下达保持指令,语音网关在接收到保持指令时,将当前的通话设置为保持状态,停止接收来自第一设备输出的报文信息,直到用户再次触发控件以下达保持指令时,恢复通话,持续接收报文信息,并基于XDP模块对报文信息进行处理转发。从而使得用户能够在进行高速实时通话的同时,能够对通话进行保持。

另外,被叫用户同样可以通过话机上的实体或者虚拟控件来下达保持指令。

示例性的,用户A在与用户B进行通话时,用户A因为突发事件需要保持通话,则用户A可以通过在电话机上按下“flash(闪存)”按钮来保持当前通话,如果话机上没有“flash”按钮,则可以按下“hook flash(拍叉)”按钮,在保持通话时,用户A和用户B都无法收听到对方的声音,在用户A希望恢复通话时,可以再次按下“flash”按钮,即可恢复通话。

进一步地,在一种可行的实施例中,在上述的步骤S10中,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤之后,所述方法还包括:

步骤B10,在接收到第三方设备输入的第二呼叫请求指令时,通过所述XDP模块将所述第二呼叫请求指令输出至所述主叫设备;

步骤B20,在接收到所述主叫设备基于所述第二呼叫请求指令返回的呼叫切换指令时,通过所述XDP模块解析所述第二呼叫请求指令以获得所述第二呼叫请求指令中的第三方地址,并通过所述XDP模块将所述XDP模块的转发路径由所述被叫地址切换为所述第三方地址。

需要说明的是,呼叫切换指令用于在通话过程中存在第三方来电时,对通话进行切换。

在本实施例中,主叫用户在与被叫用户进行通话时,如果有第三方同时向主叫设备进行呼叫,主叫的语音网关会接收到第三方设备输入的第二呼叫请求指令,主叫语音网关通过XDP模块直接将第二呼叫请求指令转发至主叫用户的话机,在话机中进行提示,主叫用户可以通过触发话机上的实体或者虚拟控件来下达呼叫切换指令,主叫语音网关在接收到呼叫切换指令后,通过XDP模块对第二呼叫请求指令进行解析,获得第三方地址,并将XDP模块的转发地址切换为第三方地址,接收地址也切换为第三方地址,即,能够将与被叫用户的通话保持,并将通话切换至第三方。

示例性的,用户A在与用户B进行通话时,用户C呼叫用户A,用户A会接收到呼叫等待语音(例如三声短促的哔哔声),则表示有新用户的电话呼入,用户A可以通过在电话机上按下“flash”按钮来将通话在用户B与用户C之间进行切换。

进一步地,在一种可行的实施例中,在上述的步骤A10中,暂停接收所述第一设备输出的报文信息的步骤之后,所述方法还包括:

步骤C10,接收第三方设备输入的第二呼叫请求指令,并通过所述XDP模块将所述第二呼叫请求指令输出至所述主叫设备;

步骤C20,在接收到所述主叫设备基于所述第二呼叫请求指令返回的三方通话指令时,通过所述XDP模块解析所述第二呼叫请求指令以获得所述第二呼叫请求指令中的第三方地址,并基于所述第三方地址与所述第三方设备进行通信连接;

步骤C30,通过所述XDP模块将所述第三方地址输出至被叫设备,并将所述被叫地址输出至所述第三方设备,以供所述被叫设备与所述第三方设备进行通信连接;

步骤C40,在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;

步骤C50,若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备和第三设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备和所述第三设备,其中,所述第一设备为所述主叫设备或者被叫设备或者所述第三方设备,所述第二设备为所述主叫设备、所述被叫设备和所述第三方设备中除所述第一设备外的设备中的任一设备,所述第三设备为所述主叫设备、所述被叫设备和所述第三方设备中除所述第一设备和所述第二设备外的设备。

在本实施例中,用户可以通过语音网关实现三方会议,用户在与被叫设备的通话保持后,接收来自第三方的第二呼叫请求指令,XDP模块将第二呼叫请求指令转发至主叫用户,主叫用户在接听电话与第三方建立连接后,通过触发话机上的实体或者虚拟控件来下达三方通话指令,主叫语音网关在接收到三方通话指令后,作为被叫用户与第三方用户之间的桥梁,将从被叫用户处接收到的报文信息同步转发给第三方语音网关,并将从第三方处接收到的报文信息同步转发给被叫语音网关,并且将主叫用户输入的报文信息同步转发给被叫语音网关和第三方语音网关,从而实现高速实时的三方通话。

示例性地,请参照图4,图4为本申请基于XDP的高速数据转发方法一实施例涉及的三方通话场景图,如图4所示,用户A在呼叫用户B后,用户B接听电话,用户A和用户B进入通话状态,此时,用户A通过按下话机上的“flash”或者“hook flash”按钮来将与B的通话保持,此时,用户C呼叫用户A,用户A在接听电话后与用户C进行通话,用户A再次按下话机上的“flash”或者“hook flash”按钮来将与C的通话也保持,此时,用户可以通过按下“1”键切换至与用户B的通话,可以按下“2”键切换至与用户C的通话,按下“3”键即可实现与用户B和用户C的三方通话。

进一步地,在一种可行的实施例中,在上述的步骤S10中,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤之后,所述方法还包括:

步骤D10,在接收到所述主叫设备输出的盲转指令时,通过所述XDP模块解析所述盲转指令,以获得所述盲转指令中的第三方地址;

步骤D20,通过所述XDP模块将所述第三方地址转发至所述被叫设备,并将所述被叫地址转发至所述第三方地址对应的第三方设备,以供所述被叫设备与所述第三方设备进行通信连接。

需要说明的是,在本实施例中,盲转指令用于用户可以在不需要告知被转接者有来电的情况下将正在通话的来电转接至第三方。

在本实施例中,主叫用户在与被叫用户进行通话时,主叫用户可以输出盲转指令,XDP模块在接收到盲转指令后,对盲转指令进行解析得到第三方地址,然后XDP模块直接将第三方地址转发至被叫语音网关,并将被叫地址转发至第三方语音网关,使被叫用户与第三方进行通话,即可实现高速实时通话中的呼叫转移。

示例性的,如果用户A在和用户B通话时,用户A想将与用户B的通话转移到用户C,用户A可先按下“flash”或者“hook flash”按钮,在听到拨号音后拨号“*87”然后拨用户C的电话号码后按下“#”键结束,主叫用户A在听到确认声后,即可挂断电话,此时用户B与用户C进行通话。

进一步地,在一种可行的实施例中,在上述的步骤S10中,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接的步骤之后,所述方法还包括:

步骤E10,在接收到所述主叫设备输出的询问转移指令时,通过所述XDP模块解析所述询问转移指令,以获得所述询问转移指令中的第三方地址;

步骤E20,通过所述XDP模块将所述询问转移指令转发至所述第三方地址对应的第三方设备,并检测是否接收到所述第三方设备的响应信息;

步骤E30,若接收到所述响应信息,则通过所述XDP模块解析所述询问转移指令,以获得所述询问转移指令中的第三方地址;

步骤E40,通过所述XDP模块将所述第三方地址转发至所述被叫设备,并将所述被叫地址转发至所述第三方设备,以供所述被叫设备与所述第三方设备进行通信连接。

在本实施例中,主叫用户在与被叫用户进行通话时,主叫用户可以通过XDP模块向第三方输出询问转移指令,第三方如果同意转移则向主叫用户输出响应信息,在接收到响应信息后,主叫用户即可通过XDP模块解析获得第三方地址,然后通过XDP模块将第三方地址转发至被叫用户,再将被叫地址转发至第三方用户,即可实现高速实时通话中的询问转移。

示例性的,主叫用户A和用户B正在通话,主叫用户A想将通话转移到C,主叫用户A按电话上的“flash”按钮等待拨号音,然后拨打用户C的电话号码以#号结束(或等待4秒钟),以向语音网关输出询问转移指令,如果被叫用户C应答了呼叫并允许转接,则主叫用户A挂断电话,用户B和用户C进入通话状态,完成转接,如果用户C无应答或不允许转接,则主叫用户A再次按下“flash”键,恢复和用户B的通话。

此外,请参照图5,图5为本申请基于XDP的高速数据转发装置的功能模块示意图,本申请还提供一种基于XDP的高速数据转发装置,基于XDP的高速数据转发装置设置于语音网关,所述基于XDP的高速数据转发装置包括:

连接模块10,用于在接收到主叫设备输出的第一呼叫请求指令时,基于所述请求指令与所述请求指令对应的被叫设备进行通信连接,其中,所述主叫设备与所述语音网关连接;

规则匹配模块20,用于在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;

转发模块30,用于若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备,其中,所述第一设备为所述主叫设备或者所述被叫设备,所述第二设备为所述主叫设备和所述被叫设备中除所述第一设备外的设备。

可选地,连接模块还用于:

通过所述XDP模块解析所述第一呼叫请求指令以获得所述第一呼叫请求指令中的主叫地址和被叫地址;判断所述主叫地址和所述被叫地址是否支持XDP技术;若所述主叫地址和所述被叫地址均支持XDP技术,则通过所述XDP模块分别向所述主叫地址和所述被叫地址下发预设的转发规则,以供所述被叫设备基于所述第一呼叫请求指令与所述语音网关建立连接。

可选地,基于XDP的高速数据转发装置还包括:

保持模块,用于在接收到所述主叫设备输出的保持指令时,将通话设置为保持状态,暂停接收所述第一设备输出的报文信息;在所述通话为保持状态时,若接收到主叫设备输出的保持指令,则将所述通话设置为正常状态,持续接收所述第一设备输出的报文信息。

可选地,基于XDP的高速数据转发装置还包括:

等待模块,用于在接收到第三方设备输入的第二呼叫请求指令时,通过所述XDP模块将所述第二呼叫请求指令输出至所述主叫设备;在接收到所述主叫设备基于所述第二呼叫请求指令返回的呼叫切换指令时,通过所述XDP模块解析所述第二呼叫请求指令以获得所述第二呼叫请求指令中的第三方地址,并通过所述XDP模块将所述XDP模块的转发路径由所述被叫地址切换为所述第三方地址。

可选地,基于XDP的高速数据转发装置还包括:

三方通话模块,用于接收第三方设备输入的第二呼叫请求指令,并通过所述XDP模块将所述第二呼叫请求指令输出至所述主叫设备;在接收到所述主叫设备基于所述第二呼叫请求指令返回的三方通话指令时,通过所述XDP模块解析所述第二呼叫请求指令以获得所述第二呼叫请求指令中的第三方地址,并基于所述第三方地址与所述第三方设备进行通信连接;通过所述XDP模块将所述第三方地址输出至被叫设备,并将所述被叫地址输出至所述第三方设备,以供所述被叫设备与所述第三方设备进行通信连接;在接收到第一设备输出的报文信息时,通过所述XDP模块判断所述报文信息是否符合预设的转发规则;若所述报文信息符合所述转发规则,则通过所述XDP模块基于所述转发规则中第二设备和第三设备对应的地址对应关系调整所述报文信息的转发路径,以将所述报文信息转发至所述第二设备和所述第三设备,其中,所述第一设备为所述主叫设备或者被叫设备或者所述第三方设备,所述第二设备为所述主叫设备、所述被叫设备和所述第三方设备中除所述第一设备外的设备中的任一设备,所述第三设备为所述主叫设备、所述被叫设备和所述第三方设备中除所述第一设备和所述第二设备外的设备。

可选地,基于XDP的高速数据转发装置还包括:

盲转模块,用于在接收到所述主叫设备输出的盲转指令时,通过所述XDP模块解析所述盲转指令,以获得所述盲转指令中的第三方地址;通过所述XDP模块将所述第三方地址转发至所述被叫设备,并将所述被叫地址转发至所述第三方地址对应的第三方设备,以供所述被叫设备与所述第三方设备进行通信连接。

可选地,基于XDP的高速数据转发装置还包括:

询问转移模块,用于在接收到所述主叫设备输出的询问转移指令时,通过所述XDP模块解析所述询问转移指令,以获得所述询问转移指令中的第三方地址;通过所述XDP模块将所述询问转移指令转发至所述第三方地址对应的第三方设备,并检测是否接收到所述第三方设备的响应信息;若接收到所述响应信息,则通过所述XDP模块解析所述询问转移指令,以获得所述询问转移指令中的第三方地址;通过所述XDP模块将所述第三方地址转发至所述被叫设备,并将所述被叫地址转发至所述第三方设备,以供所述被叫设备与所述第三方设备进行通信连接。

本申请基于XDP的高速数据转发装置的具体实施方式与上述基于XDP的高速数据转发方法各实施例基本相同,在此不再赘述。

此外,本申请还提出一种存储介质,所述存储介质为计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上所述本申请基于XDP的高速数据转发方法的步骤。

本申请存储介质的具体实施例与上述基于XDP的高速数据转发方法各实施例基本相同,在此不作赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

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

相关技术
  • 一种水性封闭型聚异氰酸酯交联剂及其制备方法
  • 一种高解封温度的水性封闭型聚异氰酸酯交联剂及其制备方法
  • 一种水性异氰酸酯衍生物交联剂及其制备方法
  • 一种含环氧基团的封闭型水性聚异氰酸酯交联剂及其制备方法与应用
技术分类

06120116524404