System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软交换,尤其涉及一种基于freeswitch的呼叫系统及方法。
技术介绍
1、freeswitch服务器是一个电话的软交换解决方案,包括一个软电话和软交换机,用以提供语音和聊天的产品驱动。esl(event socket library)是运行在freeswitch服务器外部的程序,可以控制freeswitch服务器。
2、目前,现有的呼叫系统在接收到呼叫命令时,需要创建一个esl和freeswitch服务器之间的连接,通过该连接响应呼叫命令,以实现呼叫。
3、但是,上述连接在使用完成后会立即关闭,而该连接是基于tcp的连接,每次接收到呼叫命令时都需要重新基于tcp的三次握手创建一个新连接,导致呼叫命令的响应耗时较长,系统处理效率低。
4、上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本专利技术的主要目的在于提供了一种基于freeswitch的呼叫系统及方法,旨在解决现有技术每次接收到呼叫命令时都需要重新基于tcp的三次握手创建一个新连接,导致呼叫命令的响应耗时较长,系统处理效率低的技术问题。
2、为实现上述目的,本专利技术提供了一种基于freeswitch的呼叫系统,所述系统应用于云环境中,所述云环境包括:容器以及虚拟机;
3、所述容器中部署有多个esl,所述虚拟机中部署有由多个freeswitch服务器构成的freeswitch服务集群;
4、
5、所述esl,用于在接收到呼叫命令时,根据所述freeswitch服务集群的当前负载状态确定空闲状态下的目标freeswitch服务器;
6、所述esl,还用于检测所述命令池中是否存在与所述目标freeswitch服务器建立的目标命令连接;
7、所述esl,还用于在所述命令池中存在所述目标命令连接时,调用所述目标命令连接传输所述呼叫命令至所述目标freeswitch服务器。
8、可选地,所述esl,还用于在所述命令池中未存在所述目标命令连接,且所述命令池的当前命令连接数目低于预设连接数目阈值时,建立与所述目标freeswitch服务器之间的所述目标命令连接,并将所述目标命令连接加入所述命令池。
9、可选地,所述esl中配置有事件池,所述事件池用于存储esl与freeswitch服务器之间的事件连接;
10、所述esl,还用于检测所述事件池中是否存在与所述目标freeswitch服务器建立的目标事件连接;
11、所述esl,还用于在检测到所述事件池中未存在所述目标事件连接时,建立与所述目标freeswitch服务器之间的所述目标事件连接;
12、所述esl,还用于通过所述目标事件连接响应所述目标freeswitch服务器发布的freeswitch事件,并将所述目标事件连接加入所述事件池。
13、可选地,所述esl,还用于在检测到所述事件池中存在所述目标事件连接时,向所述目标freeswitch服务器订阅所述freeswitch事件;
14、所述esl,还用于在所述目标服务器发布所述freeswitch事件时,向预设缓存数据库中写入互斥信息;
15、所述esl,还用于在检测到所述预设缓存数据库中未存在其它esl写入的互斥信息时,通过所述目标事件连接响应所述freeswitch事件。
16、可选地,所述esl,还用于在所述预设缓存数据库访问异常时,向预设关系型数据库中写入所述互斥信息;
17、所述esl,还用于在在检测到所述预设关系型数据库中未存在所述其它esl写入的互斥信息时,通过所述目标事件连接响应所述freeswitch事件。
18、可选地,所述esl中配置有暂不可用连接池,所述暂不可用连接池用于暂时存储与freeswitch服务器断连的命令连接和事件连接;
19、所述esl,还用于在所述目标freeswitch服务器的负载状态为预设负载状态时,关闭与所述目标freeswitch服务器之间的所述目标命令连接和所述目标事件连接;
20、所述esl,还用于将所述目标命令连接和所述目标事件连接存入所述暂不可用连接池,并将所述目标freeswitch服务器移出所述freeswitch服务集群。
21、可选地,所述esl,还用于对所述目标freeswitch服务器进行心跳探测;
22、所述esl,还用于在所述心跳探测失败时,将所述目标freeswitch服务器加入预设失败队列,所述预设失败队列用于存储暂不对外提供服务的freeswitch服务器。
23、可选地,所述esl,还用于发起对所述预设失败队列中的所述目标freeswitch服务器的目标命令连接和目标事件连接;
24、所述esl,还用于在所述目标命令连接和所述目标事件连接建立成功时,将所述目标freeswitch服务器移出所述预设失败队列。
25、可选地,所述esl,还用于在检测到配置完成的已配置freeswitch服务器加入所述freeswitch服务集群时,建立与所述已配置freeswitch服务器之间的新命令连接和新事件连接;
26、所述esl,还用于将所述新命令连接加入所述命令池,并将所述新事件连接加入所述事件池。
27、此外,为实现上述目的,本专利技术还提出一种基于权利要求上文所述基于freeswitch的呼叫系统的freeswitch呼叫方法,所述方法由esl执行,所述方法包括:
28、在接收到呼叫命令时,根据所述freeswitch服务集群的当前负载状态确定空闲状态下的目标freeswitch服务器;
29、检测命令池中是否存在与所述目标freeswitch服务器建立的目标命令连接;
30、在所述命令池中存在所述目标命令连接时,调用所述目标命令连接传输所述呼叫命令至所述目标freeswitch服务器。
31、本专利技术提供了一种基于freeswitch的呼叫系统及方法,该系统应用于云环境中,云环境包括:容器以及虚拟机;容器中部署有多个esl,虚拟机中部署有由多个freeswitch服务器构成的freeswitch服务集群,esl中配置有命令池,命令池用于存储esl与freeswitch服务器之间的命令连接;本专利技术通过esl在接收到呼叫命令时,根据freeswitch服务集群的当前负载状态确定空闲状态下的目标freeswitch服务器;esl检测命令池中是否存在与所目标freeswitch服务器建立的目标命令连接;esl在命令池中存在目标命令连接时,调用目标命令连接传输呼叫命令至目标freeswitch服务器。本专利技术将命令连接存储在命令池中,在使用时调用命令池中的命令连接传输呼叫命令本文档来自技高网...
【技术保护点】
1.一种基于FreeSwitch的呼叫系统,其特征在于,所述系统应用于云环境中,所述云环境包括:容器以及虚拟机;
2.如权利要求1所述的基于FreeSwitch的呼叫系统,其特征在于,所述ESL,还用于在所述命令池中未存在所述目标命令连接,且所述命令池的当前命令连接数目低于预设连接数目阈值时,建立与所述目标FreeSwitch服务器之间的所述目标命令连接,并将所述目标命令连接加入所述命令池。
3.如权利要求2所述的基于FreeSwitch的呼叫系统,其特征在于,所述ESL中配置有事件池,所述事件池用于存储ESL与FreeSwitch服务器之间的事件连接;
4.如权利要求3所述的基于FreeSwitch的呼叫系统,其特征在于,所述ESL,还用于在检测到所述事件池中存在所述目标事件连接时,向所述目标FreeSwitch服务器订阅所述FreeSwitch事件;
5.如权利要求4所述的基于FreeSwitch的呼叫系统,其特征在于,所述ESL,还用于在所述预设缓存数据库访问异常时,向预设关系型数据库中写入所述互斥信息;
6.如权
7.如权利要求3所述的基于FreeSwitch的呼叫系统,其特征在于,所述ESL,还用于对所述目标FreeSwitch服务器进行心跳探测;
8.如权利要求7所述的基于FreeSwitch的呼叫系统,其特征在于,所述ESL,还用于发起对所述预设失败队列中的所述目标FreeSwitch服务器的目标命令连接和目标事件连接;
9.如权利要求3至8任一项所述的基于FreeSwitch的呼叫系统,其特征在于,所述ESL,还用于在检测到配置完成的已配置FreeSwitch服务器加入所述FreeSwitch服务集群时,建立与所述已配置FreeSwitch服务器之间的新命令连接和新事件连接;
10.一种基于权利要求1至9任一项所述基于FreeSwitch的呼叫系统的基于FreeSwitch的呼叫方法,其特征在于,所述方法由ESL执行,所述方法包括:
...【技术特征摘要】
1.一种基于freeswitch的呼叫系统,其特征在于,所述系统应用于云环境中,所述云环境包括:容器以及虚拟机;
2.如权利要求1所述的基于freeswitch的呼叫系统,其特征在于,所述esl,还用于在所述命令池中未存在所述目标命令连接,且所述命令池的当前命令连接数目低于预设连接数目阈值时,建立与所述目标freeswitch服务器之间的所述目标命令连接,并将所述目标命令连接加入所述命令池。
3.如权利要求2所述的基于freeswitch的呼叫系统,其特征在于,所述esl中配置有事件池,所述事件池用于存储esl与freeswitch服务器之间的事件连接;
4.如权利要求3所述的基于freeswitch的呼叫系统,其特征在于,所述esl,还用于在检测到所述事件池中存在所述目标事件连接时,向所述目标freeswitch服务器订阅所述freeswitch事件;
5.如权利要求4所述的基于freeswitch的呼叫系统,其特征在于,所述esl,还用于在所述预设缓存数据库访问异常时,向预设关系型数据库中写入所述互斥信息;
<...【专利技术属性】
技术研发人员:黎林果,羊宗灏,莫文波,
申请(专利权)人:招商银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。