一种呼叫服务的分布式均衡负载控制方法及呼叫系统与流程

文档序号:12740417阅读:255来源:国知局
一种呼叫服务的分布式均衡负载控制方法及呼叫系统与流程

本发明涉及呼叫系统技术领域,尤其涉及一种呼叫服务的分布式均衡负载控制方法及呼叫系统。



背景技术:

随着业务的发展,呼叫通话需求逐渐增多,在这样的情况下,单台呼叫服务器已经不能支撑业务的扩展,急需横向扩展;在扩展呼叫服务器之后,那么会存在这样的情况,每台FreeSWITCH(简称FS)的坐席注册数不均衡;或者每台机器上注册量即使均衡,每个话务员的打打电话时间和频率不一样,那么也不会能保证每台机器的上坐席通话数均衡。并且还存在每台服务器的性能不一样,也就是能承受的性能消耗存在差异,这样就需要一个算法来控制每台机器的负载占比。

现在的呼叫系统存在以下缺点:

(1)单台FreeSWITCH实现呼叫系统方式,坐席通话时,录音操作是在FreeSWITCH上进行;普通横向扩展后,由于坐席通话建立模式为phone-FreeSWITCH-gateway-client,坐席通话的录音是在注册的FreeSWITCH的上进行,当一台FreeSWITCH上的坐席呼叫量增多时,不能分配一些录音操作到另一些空闲的FreeSWITCH上,导致资源浪费。

(2)当一台FreeSWITCH因负载过大而导致宕机时,原先注册的坐席会自动注册到可用的FreeSWITCH上,会加重可用的FreeSWITCH的负载,甚至出现连链式系统崩溃。

以上两点缺陷对系统的健壮性和扩展性都是一个致命的问题。那么解决以上的问题,就需要做到系统的负载均衡。在性能消耗占比中,坐席注册管理所消耗的性能占比相对较小,而录音操作性能消耗占比最大的情况下,有效地分布录音操作尤为重要,在这里要求系统实现以下三点:

(1)坐席通话时,不限制进行录音操作FreeSWITCH;

(2)录音操作放在FreeSWITCH集群中性能消耗相对最少的FreeSWITCH上进行;

(3)实现可控制FreeSWITCH的相对负载占比设置。

因此,本领域的技术人员亟需研究出一种灵活设置FreeSWITCH的最大负载能力,可控制地进行FreeSWITCH的相对负载占比设置,均衡分布最消耗性能的呼叫操作,均衡分配呼叫任务、减少资源的浪费、增强呼叫系统的稳定性的呼叫服务的分布式均衡负载控制方法。



技术实现要素:

本发明要解决的技术问题是提供一种呼叫服务的分布式均衡负载控制方法及呼叫系统,该呼叫服务的分布式均衡负载控制方法及系统能灵活设置FreeSWITCH的最大负载能力,可控制地进行FreeSWITCH的相对负载占比设置,均衡分布最消耗性能的呼叫操作,均衡分配呼叫任务、减少资源的浪费、增强呼叫系统的稳定性。

为解决上述技术问题,本发明提供了一种呼叫服务的分布式均衡负载控制方法,提供WEB管理模块、数据校验进程控制模块、呼叫接口服务模块、呼叫流程管理进程模块、若干FreeSWITCH服务器、若干坐席端、数据库及zookeeper集群组件,所述呼叫服务的分布式均衡负载控制方法包括以下步骤:

步骤S1:所述WEB管理模块分别设置坐席端、分机和FreeSWITCH服务器的属性和配置信息,并将配置修改的信息更新到数据库,数据库更新成功后,通过zookeeper客户端发送不同的信息到zookeeper集群上通知各个进程数据变更;

步骤S2:所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,定时刷新所述数据校验进程控制模块的内存数据,如果监听到FreeSWITCH服务器连接失败,把失败的所述FreeSWITCH服务器标示为不可用状态,并将不可用状态标识存入到所述公共缓存内;

步骤S3:所述呼叫接口服务模块预先加载数据表的数据,并解析所述加载的数据存储到所述呼叫接口服务模块的内存中,连接并监听zookeeper集群组件,随时准备刷新所述呼叫接口服务模块的内存数据,开启所述呼叫服务的端口,等待呼叫请求,当坐席端进行注册请求时,当坐席主动请求呼叫时,从所述公共缓存中获取各个FreeSWITCH服务器的录音数据,根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,向所述FreeSWITCH服务器发送绑定UUID的呼叫坐席命令,并通过UUID记录本次通话流程的信息到所述公共缓存中,当预测外呼时,从所述公共缓存中获取各个FreeSWITCH服务器的通话录音数,并根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,接着向该系统发送绑定UUID的呼叫坐被叫方命令,

其中,所述呼叫接口服务模块配置有FreeSWITCH系统空闲占比计算公式;

步骤S4:所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,并注册呼叫、接听、挂件事件,解析事件的UUID,从所述公共内存中取出通话流程记录数据,判断呼叫类型,根据不同请求进行操作,如果是主动呼叫,呼叫方接听,发送命令呼叫被叫方;如果是主动呼叫,被叫方接听,桥接双方通话;如果是预测外呼,坐席方接听,桥接双方通话;如果是预测外呼,被叫方接听,发送命令呼叫坐席方;

其中,FreeSWITCH系统空闲占比计算公式为

Fs=(M-C+Q(x))/M;

其中,Fs为,FreeSWITCH系统空闲占比,M为最大随录音数据,C为目前录音数,Q(x)为加分数。

优选地,当用户主动呼叫电话时,所述步骤S3的实现步骤包括:

301:系统收到电话端的呼叫请求后,开始计算出系统空闲占比最大的FreeSWITCH服务器,如果最大的FreeSWITCH服务器是坐席所注册的FreeSWITCH服务器,则直接建立第一端的通话连接,如果最大的FreeSWITCH服务器不是坐席所注册的FreeSWITCH服务器,那么先建立与坐席所注册的FreeSWITCH服务器连接,再由所注册的FreeSWITCH服务器连接到坐席上,第一端连接建立成功;

302:开始建立最大空闲占比的FreeSWITCH服务器与被呼叫方的通话连接,即第二端的连接;

303:把两端进行桥接,完成整个流程的通话连接;

304:在最大空闲的FreeSWITCH服务器上进行录音操作。

优选地,当呼叫方式为预测外呼时,所述步骤S3的实现步骤包括:

301:呼叫被呼叫方,待被叫方接听后,计算出最大空闲占比的FreeSWITCH服务器;建立最大空闲占的FreeSWITCH服务器与被呼叫方的连接,完成第一端的连接;

302:找出空闲的坐席,建立接听方坐席到FreeSWITCH服务器的连接,如果坐席注册的FreeSWITCH服务器与最大空闲占比的FreeSWITCH服务器相同,则直接建立通话连接,如果坐席注册的FreeSWITCH服务器与最大空闲占比的FreeSWITCH服务器不同,先建立坐席注册的FreeSWITCH服务器连接,再连接到呼叫坐席上,完成第二端的连接;

303:将两端通话进行桥接;

304:在最大空闲的FreeSWITCH服务器上对通话进行录音操作。

优选地,所述WEB管理模块包括坐席管理单元、分机管理单元、网关管理单元及FreeSWITCH管理单元。

优选地,所述数据校验进程控制模块包括:第一数据加载解析单元、第一数据存储单元、第一数据收发单元、第一状态监控单元及数据校验匹配单元,所述步骤S2的实现步骤包括:所述第一数据加载解析单元预先加载数据表的数据并解析所述加载的数据,第一数据加载解析单元将解析完成的数据发送给所述第一数据存储单元进行存储,所述第一数据收发单元连接所述zookeeper集群组件、公共缓存区、各台FreeSWITCH服务器,所述第一状态监控单元监听所述zookeeper集群组件及各种连接状态,定时刷新所述第一数据存储单元的内存数据,如果所述第一状态监控单元监听到FreeSWITCH服务器连接失败,所述数据校验匹配单元把失败的所述FreeSWITCH服务器标示为不可用状态,并将不可用状态标识存入到所述公共缓存内。

优选地,所述呼叫接口服务模块包括:第二数据加载解析单元、第二数据存储单元、第二数据收发单元、第二状态监控单元、呼叫请求接收单元、呼叫命令发送单元、FreeSWITCH服务器任务计算单元及动态数据获取单元;所述步骤S3包括:所述第二数据加载解析单元预先加载数据表的数据并解析所述加载的数据,第二数据加载解析单元将解析完成的数据发送给所述第二数据存储单元进行存储,所述第二数据收发单元连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,所述第二状态监控单元监听所述zookeeper集群组件及各种连接状态,定时刷新所述第二数据存储单元的内存数据,

所述第二数据收发单元开启所述呼叫服务的端口,等待呼叫请求,当坐席端进行注册请求或者主动请求呼叫时,所述动态数据获取单元从所述公共缓存中获取各个FreeSWITCH服务器的录音数据,所述动态数据获取单元将获取的FreeSWITCH服务器的录音数据发送给所述FreeSWITCH服务器任务计算单元,所述FreeSWITCH服务器任务计算单元根据所述FreeSWITCH系统空闲占比计算公式计算最大空闲占比的FreeSWITCH服务器,所述FreeSWITCH服务器任务计算单元将计算出来的最大空闲占比的FreeSWITCH服务器数据发送给所述呼叫命令发送单元,所述呼叫命令发送单元向所述FreeSWITCH服务器发送绑定UUID的呼叫坐席命令,并通过UUID记录本次通话流程的信息到所述公共缓存中,当预测外呼时,所述动态数据获取单元从所述公共缓存中获取各个FreeSWITCH服务器的通话录音数,所述动态数据获取单元将获取的FreeSWITCH服务器的录音数据发送给所述FreeSWITCH服务器任务计算单元,所述FreeSWITCH服务器任务计算单元根据所述FreeSWITCH系统空闲占比计算公式计算最大空闲占比的FreeSWITCH服务器,所述FreeSWITCH服务器任务计算单元将计算出来的最大空闲占比的FreeSWITCH服务器数据发送给所述呼叫命令发送单元,所述呼叫命令发送单元发送绑定UUID的呼叫坐席被叫方命令给所述最大空闲占比的FreeSWITCH服务器。

优选地,所述呼叫流程管理进程模块包括第三数据加载解析单元、第三数据存储单元、第三数据收发单元、第三状态监控单元及事件均衡安排处理单元,所述步骤S4的实现步骤包括:所述第三数据加载解析单元预先加载数据表的数据并解析所述加载的数据,第三数据加载解析单元将解析完成的数据发送给所述第三数据存储单元进行存储,所述第三数据收发单元连接所述zookeeper集群组件,连接到各台所述FreeSWITCH服务器,所述事件均衡安排处理单元注册呼叫、接听、挂件事件,解析事件的UUID,从所述公共内存中取出通话流程记录数据,所述事件均衡安排处理单元判断呼叫类型,根据不同请求进行注册事件均匀排列处理操作,如果是主动呼叫,呼叫方接听,发送命令呼叫被叫方;如果是主动呼叫,被叫方接听,桥接双方通话;如果是预测外呼,坐席方接听,桥接双方通话;如果是预测外呼,被叫方接听,发送命令呼叫坐席方。

为解决上述技术问题,本发明还提供一种用于实现上述的呼叫服务的分布式均衡负载控制方法的呼叫服务的分布式均衡负载控制系统。

采用了上述方法及系统之后,采用了上述方法及系统之后,所述WEB管理模块分别设置坐席端、分机和FreeSWITCH服务器的属性和配置信息,并将配置修改的信息更新到数据库,数据库更新成功后,通过zookeeper客户端发送不同的信息到zookeeper集群上通知各个进程数据变更;所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,定时刷新所述数据校验进程控制模块的内存数据,如果监听到FreeSWITCH服务器连接失败,把失败的所述FreeSWITCH服务器标示为不可用状态,并将不可用状态标识存入到所述公共缓存内;所述呼叫接口服务模块预先加载数据表的数据,并解析所述加载的数据存储到所述呼叫接口服务模块的内存中,连接并监听zookeeper集群组件,随时准备刷新所述呼叫接口服务模块的内存数据,开启所述呼叫服务的端口,等待呼叫请求,当坐席端进行注册请求时,当坐席主动请求呼叫时,从所述公共缓存中获取各个FreeSWITCH服务器的录音数据,根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,向所述FreeSWITCH服务器发送绑定UUID的呼叫坐席命令,并通过UUID记录本次通话流程的信息到所述公共缓存中,当预测外呼时,从所述公共缓存中获取各个FreeSWITCH服务器的通话录音数,并根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,接着向该系统发送绑定UUID的呼叫坐被叫方命令,其中,所述呼叫接口服务模块配置有FreeSWITCH系统空闲占比计算公式,所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,并注册呼叫、接听、挂件事件,解析事件的UUID,从所述公共内存中取出通话流程记录数据,判断呼叫类型,根据不同请求进行操作,如果是主动呼叫,呼叫方接听,发送命令呼叫被叫方;如果是主动呼叫,被叫方接听,桥接双方通话;如果是预测外呼,坐席方接听,桥接双方通话;如果是预测外呼,被叫方接听,发送命令呼叫坐席方;该呼叫服务的分布式均衡负载控制方法及系统能灵活设置FreeSWITCH的最大负载能力,可在FreeSWITCH集群中性能消耗相对最少的FreeSWITCH上进行录音操作,可控制地进行FreeSWITCH的相对负载占比设置,均衡分布最消耗性能的呼叫操作,均衡分配呼叫任务、减少资源的浪费、增强呼叫系统的稳定性、灵活地处理呼叫过程中的各种事件,大容量有序地处理呼叫任务。

附图说明

图1是本发明的一种呼叫服务的分布式均衡负载控制方法的整体模型示意图;

图2是当坐席主动请求呼叫,最大空闲与注册FreeSWITCH相同时,图1的整体模型示意图对应的呼叫接口服务模块计算最大空闲占比的FreeSWITCH服务器的示意图;

图3是当坐席主动请求呼叫,最大空闲与注册FreeSWITCH不同时,图1的整体模型示意图对应的呼叫接口服务模块计算最大空闲占比的FreeSWITCH服务器的示意图;

图4是当预测外呼,最大空闲与注册FreeSWITCH相同时,图1的整体模型示意图对应的呼叫接口服务模块计算最大空闲占比的FreeSWITCH服务器的示意图;

图5是当预测外呼,最大空闲与注册FreeSWITCH不同时,图1的整体模型示意图对应的呼叫接口服务模块计算最大空闲占比的FreeSWITCH服务器的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。

实施例1

请参阅图1至图2,

图1是本发明的一种呼叫服务的分布式均衡负载控制方法的整体模型示意图;

本发明公开了一种呼叫服务的分布式均衡负载控制方法,提供WEB管理模块、数据校验进程控制模块、呼叫接口服务模块、呼叫流程管理进程模块、若干FreeSWITCH服务器、若干坐席端、数据库及zookeeper集群组件,所述呼叫服务的分布式均衡负载控制方法包括以下步骤:

步骤S1:所述WEB管理模块分别设置坐席端、分机和FreeSWITCH服务器的属性和配置信息,并将配置修改的信息更新到数据库,数据库更新成功后,通过zookeeper客户端发送不同的信息到zookeeper集群上通知各个进程数据变更;

步骤S2:所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,定时刷新所述数据校验进程控制模块的内存数据,如果监听到FreeSWITCH服务器连接失败,把失败的所述FreeSWITCH服务器标示为不可用状态,并将不可用状态标识存入到所述公共缓存内;

步骤S3:所述呼叫接口服务模块预先加载数据表的数据,并解析所述加载的数据存储到所述呼叫接口服务模块的内存中,连接并监听zookeeper集群组件,随时准备刷新所述呼叫接口服务模块的内存数据,开启所述呼叫服务的端口,等待呼叫请求,当坐席端进行注册请求时,当坐席主动请求呼叫时,从所述公共缓存中获取各个FreeSWITCH服务器的录音数据,根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,向所述FreeSWITCH服务器发送绑定UUID的呼叫坐席命令,并通过UUID记录本次通话流程的信息到所述公共缓存中,当预测外呼时,从所述公共缓存中获取各个FreeSWITCH服务器的通话录音数,并根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,接着向该系统发送绑定UUID的呼叫坐被叫方命令,

其中,所述呼叫接口服务模块配置有FreeSWITCH系统空闲占比计算公式;

步骤S4:所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,并注册呼叫、接听、挂件事件,解析事件的UUID,从所述公共内存中取出通话流程记录数据,判断呼叫类型,根据不同请求进行操作,如果是主动呼叫,呼叫方接听,发送命令呼叫被叫方;如果是主动呼叫,被叫方接听,桥接双方通话;如果是预测外呼,坐席方接听,桥接双方通话;如果是预测外呼,被叫方接听,发送命令呼叫坐席方;

其中,FreeSWITCH系统空闲占比计算公式为

Fs=(M-C+Q(x))/M;

其中,Fs为,FreeSWITCH系统空闲占比,M为最大随录音数据,C为目前录音数,Q(x)为加分数。

请参阅图2及图3,

图2是当坐席主动请求呼叫,最大空闲与注册FreeSWITCH相同时,图1的整体模型示意图对应的呼叫接口服务模块计算最大空闲占比的FreeSWITCH服务器的示意图;

图3是当坐席主动请求呼叫,最大空闲与注册FreeSWITCH不同时,图1的整体模型示意图对应的呼叫接口服务模块计算最大空闲占比的FreeSWITCH服务器的示意图;

当用户主动呼叫电话时,所述步骤S3的实现步骤包括:

301:系统收到电话端的呼叫请求后,开始计算出系统空闲占比最大的FreeSWITCH服务器,如果最大的FreeSWITCH服务器是坐席所注册的FreeSWITCH服务器,则直接建立第一端的通话连接,如果最大的FreeSWITCH服务器不是坐席所注册的FreeSWITCH服务器,那么先建立与坐席所注册的FreeSWITCH服务器连接,再由所注册的FreeSWITCH服务器连接到坐席上,第一端连接建立成功;

302:开始建立最大空闲占比的FreeSWITCH服务器与被呼叫方的通话连接,即第二端的连接;

303:把两端进行桥接,完成整个流程的通话连接;

304:在最大空闲的FreeSWITCH服务器上进行录音操作。

请再参阅图4及图5,

图4是当预测外呼,最大空闲与注册FreeSWITCH相同时,图1的整体模型示意图对应的呼叫接口服务模块计算最大空闲占比的FreeSWITCH服务器的示意图;

图5是当预测外呼,最大空闲与注册FreeSWITCH不同时,图1的整体模型示意图对应的呼叫接口服务模块计算最大空闲占比的FreeSWITCH服务器的示意图;

当呼叫方式为预测外呼时,所述步骤S3的实现步骤包括:

301:呼叫被呼叫方,待被叫方接听后,计算出最大空闲占比的FreeSWITCH服务器;建立最大空闲占的FreeSWITCH服务器与被呼叫方的连接,完成第一端的连接;

302:找出空闲的坐席,建立接听方坐席到FreeSWITCH服务器的连接,如果坐席注册的FreeSWITCH服务器与最大空闲占比的FreeSWITCH服务器相同,则直接建立通话连接,如果坐席注册的FreeSWITCH服务器与最大空闲占比的FreeSWITCH服务器不同,先建立坐席注册的FreeSWITCH服务器连接,再连接到呼叫坐席上,完成第二端的连接;

303:将两端通话进行桥接;

304:在最大空闲的FreeSWITCH服务器上对通话进行录音操作。

在本实施例,所述WEB管理模块包括坐席管理单元、分机管理单元、网关管理单元及FreeSWITCH管理单元。

在本实施例,所述数据校验进程控制模块包括:第一数据加载解析单元、第一数据存储单元、第一数据收发单元、第一状态监控单元及数据校验匹配单元,所述步骤S2的实现步骤包括:所述第一数据加载解析单元预先加载数据表的数据并解析所述加载的数据,第一数据加载解析单元将解析完成的数据发送给所述第一数据存储单元进行存储,所述第一数据收发单元连接所述zookeeper集群组件、公共缓存区、各台FreeSWITCH服务器,所述第一状态监控单元监听所述zookeeper集群组件及各种连接状态,定时刷新所述第一数据存储单元的内存数据,如果所述第一状态监控单元监听到FreeSWITCH服务器连接失败,所述数据校验匹配单元把失败的所述FreeSWITCH服务器标示为不可用状态,并将不可用状态标识存入到所述公共缓存内。

在本实施例,所述呼叫接口服务模块包括:第二数据加载解析单元、第二数据存储单元、第二数据收发单元、第二状态监控单元、呼叫请求接收单元、呼叫命令发送单元、FreeSWITCH服务器任务计算单元及动态数据获取单元;所述步骤S3的实现步骤包括:所述第二数据加载解析单元预先加载数据表的数据并解析所述加载的数据,第二数据加载解析单元将解析完成的数据发送给所述第二数据存储单元进行存储,所述第二数据收发单元连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,所述第二状态监控单元监听所述zookeeper集群组件及各种连接状态,定时刷新所述第二数据存储单元的内存数据,所述第二数据收发单元开启所述呼叫服务的端口,等待呼叫请求,当坐席端进行注册请求或者主动请求呼叫时,所述动态数据获取单元从所述公共缓存中获取各个FreeSWITCH服务器的录音数据,所述动态数据获取单元将获取的FreeSWITCH服务器的录音数据发送给所述FreeSWITCH服务器任务计算单元,所述FreeSWITCH服务器任务计算单元根据所述FreeSWITCH系统空闲占比计算公式计算最大空闲占比的FreeSWITCH服务器,所述FreeSWITCH服务器任务计算单元将计算出来的最大空闲占比的FreeSWITCH服务器数据发送给所述呼叫命令发送单元,所述呼叫命令发送单元向所述FreeSWITCH服务器发送绑定UUID的呼叫坐席命令,并通过UUID记录本次通话流程的信息到所述公共缓存中,当预测外呼时,所述动态数据获取单元从所述公共缓存中获取各个FreeSWITCH服务器的通话录音数,所述动态数据获取单元将获取的FreeSWITCH服务器的录音数据发送给所述FreeSWITCH服务器任务计算单元,所述FreeSWITCH服务器任务计算单元根据所述FreeSWITCH系统空闲占比计算公式计算最大空闲占比的FreeSWITCH服务器,所述FreeSWITCH服务器任务计算单元将计算出来的最大空闲占比的FreeSWITCH服务器数据发送给所述呼叫命令发送单元,所述呼叫命令发送单元发送绑定UUID的呼叫坐席被叫方命令给所述最大空闲占比的FreeSWITCH服务器。

在本实施例,所述呼叫流程管理进程模块包括第三数据加载解析单元、第三数据存储单元、第三数据收发单元、第三状态监控单元及事件均衡安排处理单元,所述步骤S4的实现步骤包括:所述第三数据加载解析单元预先加载数据表的数据并解析所述加载的数据,第三数据加载解析单元将解析完成的数据发送给所述第三数据存储单元进行存储,所述第三数据收发单元连接所述zookeeper集群组件,连接到各台所述FreeSWITCH服务器,所述事件均衡安排处理单元注册呼叫、接听、挂件事件,解析事件的UUID,从所述公共内存中取出通话流程记录数据,所述事件均衡安排处理单元判断呼叫类型,根据不同请求进行注册事件均匀排列处理操作,如果是主动呼叫,呼叫方接听,发送命令呼叫被叫方;如果是主动呼叫,被叫方接听,桥接双方通话;如果是预测外呼,坐席方接听,桥接双方通话;如果是预测外呼,被叫方接听,发送命令呼叫坐席方。

实施例2

本实施提供了一种用于实现上述的呼叫服务的分布式均衡负载控制方法的呼叫服务的分布式均衡负载控制系统,包括WEB管理模块、数据校验进程控制模块、呼叫接口服务模块、呼叫流程管理进程模块、若干FreeSWITCH服务器、若干座席端、数据库及zookeeper集群组件,所述WEB管理模块分别设置坐席端、分机和FreeSWITCH服务器的属性和配置信息,并将配置修改的信息更新到数据库,数据库更新成功后,通过zookeeper客户端发送不同的信息到zookeeper集群上通知各个进程数据变更;所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,定时刷新所述数据校验进程控制模块的内存数据,如果监听到FreeSWITCH服务器连接失败,把失败的所述FreeSWITCH服务器标示为不可用状态,并将不可用状态标识存入到所述公共缓存内;所述呼叫接口服务模块预先加载数据表的数据,并解析所述加载的数据存储到所述呼叫接口服务模块的内存中,连接并监听zookeeper集群组件,随时准备刷新所述呼叫接口服务模块的内存数据,开启所述呼叫服务的端口,等待呼叫请求,当坐席端进行注册请求时,当坐席主动请求呼叫时,从所述公共缓存中获取各个FreeSWITCH服务器的录音数据,根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,向所述FreeSWITCH服务器发送绑定UUID的呼叫坐席命令,并通过UUID记录本次通话流程的信息到所述公共缓存中,当预测外呼时,从所述公共缓存中获取各个FreeSWITCH服务器的通话录音数,并根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,接着向该系统发送绑定UUID的呼叫坐被叫方命令,其中,所述呼叫接口服务模块配置有FreeSWITCH系统空闲占比计算公式;所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,并注册呼叫、接听、挂件事件,解析事件的UUID,从所述公共内存中取出通话流程记录数据,判断呼叫类型,根据不同请求进行操作,如果是主动呼叫,呼叫方接听,发送命令呼叫被叫方;如果是主动呼叫,被叫方接听,桥接双方通话;如果是预测外呼,坐席方接听,桥接双方通话;如果是预测外呼,被叫方接听,发送命令呼叫坐席方;

其中,FreeSWITCH系统空闲占比计算公式为

Fs=(M-C+Q(x))/M;

其中,Fs为,FreeSWITCH系统空闲占比,M为最大随录音数据,C为目前录音数,Q(x)为加分数。

采用了上述方法及系统之后,所述WEB管理模块分别设置坐席端、分机和FreeSWITCH服务器的属性和配置信息,并将配置修改的信息更新到数据库,数据库更新成功后,通过zookeeper客户端发送不同的信息到zookeeper集群上通知各个进程数据变更;所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,定时刷新所述数据校验进程控制模块的内存数据,如果监听到FreeSWITCH服务器连接失败,把失败的所述FreeSWITCH服务器标示为不可用状态,并将不可用状态标识存入到所述公共缓存内;所述呼叫接口服务模块预先加载数据表的数据,并解析所述加载的数据存储到所述呼叫接口服务模块的内存中,连接并监听zookeeper集群组件,随时准备刷新所述呼叫接口服务模块的内存数据,开启所述呼叫服务的端口,等待呼叫请求,当坐席端进行注册请求时,当坐席主动请求呼叫时,从所述公共缓存中获取各个FreeSWITCH服务器的录音数据,根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,向所述FreeSWITCH服务器发送绑定UUID的呼叫坐席命令,并通过UUID记录本次通话流程的信息到所述公共缓存中,当预测外呼时,从所述公共缓存中获取各个FreeSWITCH服务器的通话录音数,并根据FreeSWITCH系统空闲占比计算公式计算出最大空闲占比的FreeSWITCH服务器,接着向该系统发送绑定UUID的呼叫坐被叫方命令,其中,所述呼叫接口服务模块配置有FreeSWITCH系统空闲占比计算公式,所述数据校验进程控制模块预先加载数据表的数据,并解析所述加载的数据存储到数据校验进程控制模块的内存中,连接所述zookeeper集群组件、公共缓存区及各台FreeSWITCH服务器,监听所述zookeeper集群组件及各种连接状态,并注册呼叫、接听、挂件事件,解析事件的UUID,从所述公共内存中取出通话流程记录数据,判断呼叫类型,根据不同请求进行操作,如果是主动呼叫,呼叫方接听,发送命令呼叫被叫方;如果是主动呼叫,被叫方接听,桥接双方通话;如果是预测外呼,坐席方接听,桥接双方通话;如果是预测外呼,被叫方接听,发送命令呼叫坐席方;该呼叫服务的分布式均衡负载控制方法及系统能灵活设置FreeSWITCH的最大负载能力,可在FreeSWITCH集群中性能消耗相对最少的FreeSWITCH上进行录音操作,可控制地进行FreeSWITCH的相对负载占比设置,均衡分布最消耗性能的呼叫操作,均衡分配呼叫任务、减少资源的浪费、增强呼叫系统的稳定性、灵活地处理呼叫过程中的各种事件,大容量有序地处理呼叫任务。

同时,应当理解的是,以上仅为本发明的优选实施例,不能因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效实现方法,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1