一种信令消息处理方法、装置、设备及介质与流程

文档序号:32601691发布日期:2022-12-17 16:19阅读:80来源:国知局
一种信令消息处理方法、装置、设备及介质与流程

1.本发明涉及即时语音通信技术领域,特别涉及一种信令消息处理方法、装置、设备及介质。


背景技术:

2.随着移动终端的普及,移动互联用户越来越多,为了适配用户在呼叫建立过程及通话中网络切换的使用场景,需要正确处理同一次通话的所有信令消息。voip(voice over internet protocol,即基于ip的语音传输)是一种经由互联网的语音通话技术。voip网络电话通过把语音信号经过数字化处理、压缩编码、加密打包、透过网络传输、然后解密解码、把数字信号还原成声音,让通话对方听到。sip(session initialization protocol,即会话初始协议)是voip的核心协议之一,广泛应用于控制多媒体通信会话,如ip网上的语音和视频通话。sip用于创建、修改、终止由一个或多个媒体流组成的会话,并且能用于两方或多方会话。在信令传输阶段,采用了tls协议(transport layer security,即安全传输协议)进行保护,即sip协议工作在tls协议建立的长连接通道上。
3.现有技术维持用户的长连接状态时,一种做法是状态共享:持久化到数据库,成员间访问共享数据库,但设计较复杂,交互次数较多、延迟高,在实际的实现过程中成本较高,开发难度大,系统的可靠性不高;另一种做法是使用长连接服务器使用固定ip或域名来保证用户的长连接每次都连接到同一个服务器,因此要使用的ip或域名资源较多,客户端也需要修改,比较复杂。
4.综上,如何在不依赖数据库与分布式缓存等中间件的情况下,将客户端发送的所有信令消息转发至同一台服务器进行处理,以降低成本并提高系统的可靠性是目前有待解决的问题。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种信令消息处理方法、装置、设备及介质,能够在不依赖数据库与分布式缓存等中间件的情况下,将客户端发送的所有信令消息转发至同一台服务器进行处理,以降低成本并提高系统的可靠性。其具体方案如下:
6.第一方面,本技术公开了一种信令消息处理方法,包括:
7.获取客户端发送的sip信令消息,并检测所述sip信令消息中是否携带用于表征目标服务器的地址标识;
8.若否,则基于所述sip信令消息计算所述地址标识,并向所述客户端发送包括所述地址标识的应答消息,以便所述客户端将所述地址标识添加至所述sip信令消息;
9.获取携带有所述地址标识的所述sip信令消息,并从所述sip信令消息中提取出所述地址标识,然后根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。
10.可选的,所述检测所述sip信令消息中是否携带用于表征目标服务器的地址标识
之后,还包括:
11.若是,则根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。
12.可选的,所述获取客户端发送的sip信令消息,并检测所述sip信令消息中是否携带用于表征目标服务器的地址标识,包括:
13.获取主叫客户端发送的主叫sip信令消息和被叫客户端发送的被叫sip信令消息;
14.检测所述主叫sip信令消息和所述被叫sip信令消息中是否携带用于表征目标服务器的地址标识;
15.相应的,若否,则基于所述sip信令消息计算所述地址标识,包括:
16.若所述主叫sip信令消息和所述被叫sip信令消息中均未携带所述目标服务器的地址标识,则基于所述sip信令消息计算所述地址标识。
17.可选的,所述基于所述sip信令消息计算所述地址标识,包括:
18.获取所述sip信令消息中的主叫客户端标识和被叫客户端标识,基于所述主叫用户标识和所述被叫用户标识并利用哈希算法计算所述地址标识。
19.可选的,所述向所述客户端发送包括所述地址标识的应答消息,包括:
20.获取所述主叫sip信令消息中的to消息头,并向所述to消息头的tag参数中添加所述地址标识以得到第一应答信息,然后将所述第一应答信息发送至所述主交客户端;
21.获取所述被叫sip信令消息中的from消息头,并向所述from消息头的tag参数中添加所述地址标识以得到第二应答信息,然后将所述第二应答信息发送至所述被叫客户端。
22.可选的,所述从所述sip信令消息中提取出所述地址标识,包括:
23.检测所述sip信令消息中的tag参数,从所述tag参数中提取出所述地址标识。
24.可选的,所述基于所述sip信令消息计算所述地址标识之后,还包括:
25.检测与所述地址标识对应的目标服务器是否处于宕机状态或超载状态;
26.若是,则从服务器集群中筛选出未处于宕机状态和超载状态的服务器以作为新的所述目标服务器。
27.第二方面,本技术公开了一种信令消息处理装置,包括:
28.标识检测模块,用于获取客户端发送的sip信令消息,并检测所述sip信令消息中是否携带用于表征目标服务器的地址标识;
29.标识计算模块,用于若否,则基于所述sip信令消息计算所述地址标识,并向所述客户端发送包括所述地址标识的应答消息,以便所述客户端将所述地址标识添加至所述sip信令消息;
30.消息转发模块,用于获取携带有所述地址标识的所述sip信令消息,并从所述sip信令消息中提取出所述地址标识,然后根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。
31.第三方面,本技术公开了一种电子设备,包括:
32.存储器,用于保存计算机程序;
33.处理器,用于执行所述计算机程序,以实现前述公开的信令消息处理方法的步骤。
34.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的信令消息处理方法的步骤。
35.可见,本技术获取客户端发送的sip信令消息,并检测所述sip信令消息中是否携带用于表征目标服务器的地址标识;若否,则基于所述sip信令消息计算所述地址标识,并向所述客户端发送包括所述地址标识的应答消息,以便所述客户端将所述地址标识添加至所述sip信令消息;获取携带有所述地址标识的所述sip信令消息,并从所述sip信令消息中提取出所述地址标识,然后根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。由此可见,本技术当获取到客户端发送的sip信令消息后,则检测sip信令消息中是否携带用于表征目标服务器的地址标识,若没有,则计算出相应的地址标识,并添加至sip信令消息,以便后续获取sip信令消息时,提取出sip信令消息中携带的地址标识,以基于该地址标识将sip信令消息转发至目标服务器。如此一来,在不依赖数据库与分布式缓存等中间件的情况下,即可客户端发送的所有信令消息转发至同一台服务器进行处理,以降低成本并提高了系统的可靠性。
附图说明
36.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
37.图1为本技术公开的信令消息处理方法所适用的系统框架示意图;
38.图2为本技术公开的一种信令消息处理方法流程图;
39.图3为本技术公开的一种具体的信令消息处理方法流程图;
40.图4为本技术公开的一种具体的信令消息处理方法流程图;
41.图5为本技术公开的一种向主叫客户端回复应答消息的示意图;
42.图6为本技术公开的一种信令消息处理装置结构示意图;
43.图7为本技术公开的一种电子设备结构图。
具体实施方式
44.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.现有技术维持用户的长连接状态时,一种做法是状态共享:持久化到数据库,成员间访问共享数据库,但设计较复杂,交互次数较多、延迟高,在实际的实现过程中成本较高,开发难度大,系统的可靠性不高;另一种做法是使用长连接服务器使用固定ip或域名来保证用户的长连接每次都连接到同一个服务器,因此要使用的ip或域名资源较多,客户端也需要修改,比较复杂。为此,本技术实施例公开了一种信令消息处理方法、装置、设备及介质,能够在不依赖数据库与分布式缓存等中间件的情况下,将客户端发送的所有信令消息转发至同一台服务器进行处理,以降低成本并提高系统的可靠性。
46.本技术采用的系统框架具体可以参见图1所示,具体可以包括:voip客户端01、外网介入防火墙02、lvs负载均衡器03、voip服务器04。其中voip客户端01包括主叫客户端和
被叫客户端,lvs负载均衡器03能够支持voip,voip服务器04用于执行获取客户端发送的sip信令消息,并检测所述sip信令消息中是否携带用于表征目标服务器的地址标识;若否,则基于所述sip信令消息计算所述地址标识,并向所述客户端发送包括所述地址标识的应答消息,以便所述客户端将所述地址标识添加至所述sip信令消息;获取携带有所述地址标识的所述sip信令消息,并从所述sip信令消息中提取出所述地址标识,然后根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理的步骤。
47.参见图2所示,本技术实施例公开了一种信令消息处理方法,该方法包括:
48.步骤s11:获取客户端发送的sip信令消息,并检测所述sip信令消息中是否携带用于表征目标服务器的地址标识。
49.本实施例中,由服务器集群中的当前voip服务器获取到获取客户端发送的sip信令消息,并检测sip信令消息中是否有携带用于表征目标服务器的地址标识,上述客户端具体为voip用户客户端。
50.步骤s12:若否,则基于所述sip信令消息计算所述地址标识,并向所述客户端发送包括所述地址标识的应答消息,以便所述客户端将所述地址标识添加至所述sip信令消息;
51.本实施例中,若sip信令消息中没有携带用于表征目标服务器的地址标识,则基于sip信令消息计算出目标服务器的地址标识,并向客户端回复或发送包括该地址标识的应答信息,以便客户端收到应答信息并将该地址标识添加到后续sip信令消息。
52.在另一种具体实施例中,上述检测所述sip信令消息中是否携带用于表征目标服务器的地址标识之后,还包括:若是,则根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。也即,若sip信令消息中携带了用于表征目标服务器的地址标识,则直接将sip信令消息转发至目标服务器,以便通过目标服务器对sip信令消息进行处理。
53.需要注意的是,上述基于所述sip信令消息计算所述地址标识之后,还包括:检测与所述地址标识对应的目标服务器是否处于宕机状态或超载状态;若是,则从服务器集群中筛选出未处于宕机状态和超载状态的服务器以作为新的所述目标服务器。可以理解的是,当计算出地址标识后,需要检测与该地址标识对应的目标服务器是否处于宕机状态或超载状态,也即需要确保目标服务器能够正常工作运行,若目标服务器处于宕机状态或超载状态,则表示该目标服务器无法正常工作运行,那么则需从服务器集群中筛选出未处于宕机状态和超载状态的服务器以作为新的所述目标服务器。在选择新的目标服务器时,可以随机选择也可以按照一定的规则进行筛选,例如,可以按照服务器的编号依次筛选等。
54.步骤s13:获取携带有所述地址标识的所述sip信令消息,并从所述sip信令消息中提取出所述地址标识,然后根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。
55.本实施例中,当sip信令消息中携带地址标识后,则提取出该地址标识,并将sip信令消息转发至与地址标识对应的目标服务器,以便目标服务器对sip信令消息进行处理。可以理解的是,在一种具体实施例中,若当前voip服务器为与地址标识对应的目标服务器,那么则无需再进行转发。
56.可见,本技术获取客户端发送的sip信令消息,并检测所述sip信令消息中是否携
带用于表征目标服务器的地址标识;若否,则基于所述sip信令消息计算所述地址标识,并向所述客户端发送包括所述地址标识的应答消息,以便所述客户端将所述地址标识添加至所述sip信令消息;获取携带有所述地址标识的所述sip信令消息,并从所述sip信令消息中提取出所述地址标识,然后根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。由此可见,本技术当获取到客户端发送的sip信令消息后,则检测sip信令消息中是否携带用于表征目标服务器的地址标识,若没有,则计算出相应的地址标识,并添加至sip信令消息,以便后续获取sip信令消息时,提取出sip信令消息中携带的地址标识,以基于该地址标识将sip信令消息转发至目标服务器。如此一来,在不依赖数据库与分布式缓存等中间件的情况下,即可客户端发送的所有信令消息转发至同一台服务器进行处理,以降低成本并提高了系统的可靠性。
57.参见图3和图4所示,本技术实施例公开了一种具体的信令消息处理方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:
58.步骤s21:获取主叫客户端发送的主叫sip信令消息和被叫客户端发送的被叫sip信令消息。
59.本实施例中,需要获取主叫客户端发送的主叫sip信令消息和被叫客户端发送的被叫sip信令消息,需要指出的是,发起voip呼叫的用户客户端为主叫客户端,收到voip呼叫的用户客户端为被叫客户端,也即打电话的为主叫,接电话的为被叫。
60.步骤s22:检测所述主叫sip信令消息和所述被叫sip信令消息中是否携带用于表征目标服务器的地址标识。
61.本实施例中,分别检测主叫sip信令消息和被叫sip信令消息中是否携带用于表征目标服务器的地址标识。具体为检测主叫sip信令消息中to-tag参数参数中是否包含目标服务器的地址标识,以及被叫sip信令消息from-tag参数中是否包含目标服务器的地址标识。
62.步骤s23:若所述主叫sip信令消息和所述被叫sip信令消息中均未携带所述目标服务器的地址标识,则基于所述sip信令消息计算所述地址标识。
63.本实施例中,若主叫sip信令消息和被叫sip信令消息中均未携带目标服务器的地址标识,则基于sip信令消息计算地址标识,相应的,若主叫sip信令消息或被叫sip信令消息中任意一方携带有目标服务器的地址标识,则根据地址标识将sip信令消息转发至目标服务器。
64.上述基于所述sip信令消息计算所述地址标识,包括:获取所述sip信令消息中的主叫客户端标识和被叫客户端标识,基于所述主叫用户标识和所述被叫用户标识并利用哈希算法计算所述地址标识。可以理解的是,本实施例中通过利用哈希算法计算出地址标识,具体为获取sip信令消息中的主叫客户端标识和被叫客户端标识,该标识具体可以为用户id,然后选取主叫客户端和被叫客户端对应的用户id中较小的id值,并利用哈希算法进行处理,得到index(索引)值,将与index值对应的服务器作为目标服务器,以及获取该目标服务器的地址标识,具体可以为ip地址。
65.步骤s24:向所述客户端发送包括所述地址标识的应答消息,以便所述客户端将所述地址标识添加至所述sip信令消息。
66.本实施例中,上述向所述客户端发送包括所述地址标识的应答消息,具体可以包
括:获取所述主叫sip信令消息中的to消息头,并向所述to消息头的tag参数中添加所述地址标识以得到第一应答信息,然后将所述第一应答信息发送至所述主交客户端;获取所述被叫sip信令消息中的from消息头,并向所述from消息头的tag参数中添加所述地址标识以得到第二应答信息,然后将所述第二应答信息发送至所述被叫客户端。可以理解的是,需要将地址标识编码到主叫sip信令消息中to消息头的tag参数里,以及被叫sip信令消息中from消息头的tag参数里,并且sip协议规定了客户端必须在消息里带上tag参数,因此服务器检查消息头中的tag参数,就能将消息转发给目标服务器。图5为本技术公开的一种向主叫客户端回复应答消息的示意图,图5中斜体部分则为在主叫sip信令消息中to消息头的tag参数中添加目标服务器的地址标识。
67.步骤s25:获取携带有所述地址标识的所述sip信令消息,并检测所述sip信令消息中的tag参数,从所述tag参数中提取出所述地址标识,然后根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。
68.本实施例中,由于sip信令消息携带有tag参数,而tag参数中已添加了地址标识,那么通过检测sip信令消息中的tag参数,并从tag参数中提取出地址标识,则可根据该地址标识将sip信令消息转发至目标服务器。
69.可见,本技术实施例能够在符合标准、保证兼容性的前提下,将目标服务器的地址编码到sip信令消息中相应的tag参数中。那么当处理后续的sip信令消息时,从sip信令消息的tag参数中提取相应的地址标识,则可将sip信令消息转发至目标服务器。如此一来,能够在不依赖数据库与分布式缓存等中间件的情况下,将客户端发送的所有信令消息转发至同一台服务器进行处理,降低了成本,并提高了系统的可靠性,且延迟低,性能好。
70.参见图6所示,本技术实施例公开了一种信令消息处理装置,该装置包括:
71.标识检测模块11,用于获取客户端发送的sip信令消息,并检测所述sip信令消息中是否携带用于表征目标服务器的地址标识;
72.标识计算模块12,用于若否,则基于所述sip信令消息计算所述地址标识,并向所述客户端发送包括所述地址标识的应答消息,以便所述客户端将所述地址标识添加至所述sip信令消息;
73.消息转发模块13,用于获取携带有所述地址标识的所述sip信令消息,并从所述sip信令消息中提取出所述地址标识,然后根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。
74.可见,本技术获取客户端发送的sip信令消息,并检测所述sip信令消息中是否携带用于表征目标服务器的地址标识;若否,则基于所述sip信令消息计算所述地址标识,并向所述客户端发送包括所述地址标识的应答消息,以便所述客户端将所述地址标识添加至所述sip信令消息;获取携带有所述地址标识的所述sip信令消息,并从所述sip信令消息中提取出所述地址标识,然后根据所述地址标识将所述sip信令消息转发至所述目标服务器,以便通过所述目标服务器对所述sip信令消息进行处理。由此可见,本技术当获取到客户端发送的sip信令消息后,则检测sip信令消息中是否携带用于表征目标服务器的地址标识,若没有,则计算出相应的地址标识,并添加至sip信令消息,以便后续获取sip信令消息时,提取出sip信令消息中携带的地址标识,以基于该地址标识将sip信令消息转发至目标服务器。如此一来,在不依赖数据库与分布式缓存等中间件的情况下,即可客户端发送的所有信
令消息转发至同一台服务器进行处理,以降低成本并提高了系统的可靠性。
75.图7为本技术实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的信令消息处理方法中的相关步骤。
76.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
77.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
78.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
79.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的信令消息处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
80.进一步的,本技术实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由信令消息处理过程中执行的方法步骤。
81.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
82.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些
功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
83.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
84.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
85.以上对本发明所提供的一种信令消息处理方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1