顶顶通呼叫中心中间件-群集配置方法讲解(mod_cti基于FreeSWITCH)

群集介绍

比较多的外呼或呼入系统,假如整个系统需要1万并发,单机最高就3000-5000并发,这时就需要多机群集了。顶顶通呼叫中心中间件使用redis数据库,多个FreeSWITHC(mod_cti)连接同一个redis就可以很容易的配置成群集系统。


想了解呼叫中心中间件可以点此链接添加联系方式:顶顶通小孙


群集配置流程

fs配置相同redis数据库

打开需要群集的 Freeswitch 的配置文件cti.json ,文件路径:/ddt/fs/conf/:修改Redis部分,使需要集群的 Freeswitch连接到同一个 Redis中。具体配置如图所示

fs配置相同的domain

具体路径在"/ddt/fs/conf/autoload_configs"里面找到"cti.conf.xml"在这个文件里面找到这一行然后把"具体的domain"修改为所有fs相同的,修改然后保存这个文件,保存之后需要重新启动fs

bash 复制代码
<param name="domain" value="具体的domain"/>
创建private_vars.xml

cd /ddt/fs/conf 进入/ddt/fs/conf目录

vim private_vars.xml 创建并且编辑private_vars.xml内容,需要把下面这些内容全部复制进去,然后保存并且退出vi。(群集中不同的fs单独配置本机外网IP)

  • 如果当前 Freeswitch 需要公网使用sip服务,就把内容中的本机外网IP替换成公网IP;如果只是纯内网使用,则把内容中的本机外网IP替换成$${local_ip_v4}。
  • 如果cluster的SIP配置是:sip-ip:$${local_ip_v4},就把第三行内容删除;但如果cluster的SIP配置是:sip-ip:233.22.12.32这种配置了具体IP的,则根据第三行内容提示,设置成互通的IP
bash 复制代码
<include>
  <X-PRE-PROCESS cmd="set" data="external_ip=本机外网IP"></X-PRE-PROCESS>
  <X-PRE-PROCESS cmd="set" data="cluster_ip=如果群集互通用的profile配置sip-ip是$${local_ip_v4},这个配置删除,如果是单独IP,这里设置互通IP"></X-PRE-PROCESS>
</include>

配置文件配置

一、acl配置

1点击配置文件-->2点击acl.conf-->3把群集所以服务器的IP添加在图中所说位置-->4点击提交XML

上图配置完后根据下图去操作即可

1点击运维调试-->2图中2输入的是reloadacl-->3点击执行

二、vars配置

根据图中步骤执行,执行完了以后,重启fs。

bash 复制代码
 <X-PRE-PROCESS cmd="set" data="external_ip=$${local_ip_v4}"/>  图中的步骤4是这一行删除不要删除错了
bash 复制代码
 <X-PRE-PROCESS cmd="include" data="private_vars.xml"/>  图中的步骤5是添加这一行不要添加错了
三、SIP配置

添加一个名为cluster的sip profile,以下几个配置按如下修改,其他用默认的

|---------------------|------------------|
| 呼叫路由 | cluster |
| sip-port | $${cluster_port} |
| sip-ip | $${local_ip_v4} |
| rtp-ip | $${local_ip_v4} |
| apply-inbound-acl | cluster |
| disable-refister | true |
| auth-calls | false |
| auth-calls-acl-only | false |

可以根据下图配置

四、分机线路配置

单机版本使用拨号串配置为"user/分机号",群集版本拨号串配置为"cluster/分机号"

五、拨号方案配置

检查拨号方案有没有群集分机这一拨号方案,如果有就跳过这一步骤,如果没有可以根据下图配置。

六、呼叫路由配置

创建名为"cluster"的呼叫路由,然后在该呼叫路由中启用"群集分机"这一拨号方案。具体操作如图所示:

七、检查群集是否配置成功

重启 Freeswitch,然后打开 CCAdmin ,验证群集模式是否配置成功的方法,如图所示:

群集模式下呼叫

在群集系统中,转接分机是最棘手的问题,因为分机一般只注册到一个FreeSWITCH上面。顶顶通呼叫中心中间件把分机注册信息和当前通话信息存储到redis里面,转接分机的时候,从redis中获取分机注册的FreeSWITCH ip,然后把呼叫转给这个FreeSWITCH,这样分机只需要注册到群集中的任意一个FreeSWITCH,就可以接听群集中的所有FreeSWITCH的来电了。

转接流程: 呼叫分机1000

  • 判断分机1000注册在哪个FS
  • 如果注册在本机直接呼叫1000 (拨号串 user/1000 )
  • 如果注册到其他fs, 呼叫1000送到指定fs(拨号串 sofia/cluster/1000@fsip)
  • 1000实际注册的fs接收到呼叫1000的请求,执行呼叫1000
相关推荐
墨鸦_Cormorant5 小时前
MQTT(轻量级消息中间件)基本使用指南
mqtt·中间件·消息中间件
Python私教2 天前
从“Hello World”到“高并发中间件”:Go 语言 2025 系统学习路线图
学习·中间件·golang
UrSpecial2 天前
进程间通信:消息队列
中间件
EndingCoder5 天前
Next.js 中间件:自定义请求处理
开发语言·前端·javascript·react.js·中间件·全栈·next.js
十五年专注C++开发5 天前
通信中间件 Fast DDS(一) :编译、安装和测试
linux·c++·windows·中间件·cmake·vcpkg
在未来等你7 天前
RabbitMQ面试精讲 Day 17:消费者调优与并发消费
中间件·面试·消息队列·rabbitmq
茶茶只知道学习8 天前
Express中间件和路由及响应方法
中间件·express
汪随安8 天前
Dokcer创建中间件环境
中间件
在未来等你9 天前
RabbitMQ面试精讲 Day 16:生产者优化策略与实践
中间件·面试·消息队列·rabbitmq
vision_wei_9 天前
Redis中间件(四):主从同步与对象模型
网络·数据库·c++·redis·缓存·中间件