顶顶通呼叫中心中间件(mod
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
群集方案
群集介绍
在大规模的外呼或者呼入系统比如整个系统需要1万并发单机最高也就3000-5000并发这时候就需要多机群集了。顶顶通呼叫中心中间件使用redis数据库多个FreeSWITCH(mod_cti)连接同一个redis就可以很容易的配置成群集系统。
群集中的分机管理
在群集系统中转接分机是最棘手的问题因为分机一般只注册到一个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
群集配置
分机线路配置
单机版本使用 拨号串配置为 user/120 群集版本 拨号串配置为 cluster/120
拨号方案配置
以下配置存为json文件ccadmin工具拨号方案导入一下。
{
"version": 2,
"cti_dialplan_extension": {
"群集分机": "{\"condition\":[{\"field\":\"${sip_h_X-cti_dialer_number}\",\"action\":[{\"application\":\"export\",\"data\":\"nolocal:sip_invite_req_uri=sip:${sip_h_X-cti_dialer_number}@$${local_ip_v4}\"}],\"expression\":\".+\",\"break\":\"never\"},{\"field\":\"\",\"action\":[{\"application\":\"export\",\"data\":\"process_cdr=false\"},{\"application\":\"bridge\",\"data\":\"user\\\/${destination_number}\"}]}]}"
}
}
呼叫路由配置
添加一个名为cluster的呼叫路由启用 群集分机 。
SIP配置
添加一个名为 cluster的sip profile以下几个配置按如下修改其他用默认的。
. apply-inbound-acl:cluster
. 呼叫路由:cluster
. sip-port:$${cluster_port}
. sip-ip:$${local_ip_v4}
. rtp-ip:$${local_ip_v4}
. apply-inbound-acl:cluster
. disable-register:true
. auth-calls:true
. auth-calls-acl-only:true
配置文件配置
acl配置
变量配置
private_vars.xml 群集中不同的fs单独配置本机外网IP
<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>
cti.conf.xml (群集中所有fs配置相同的domain)
分机注册和呼叫信息
存储在 cti_userinfo@demo,例子信息如下
{
"FreeSWITCH-Switchname": "VM-16-17-centos",
"register": {
"Hostname": "VM-16-17-centos",
"IPv4": "10.0.16.17",
"IPv6": "fe80::5054:ff:fe8f:6041",
"cluster_ip": "101.43.12.232",
"cluster_port": "11452",
"network-ip": "112.49.72.202",
"user-agent": "www.ddrj.com",
"status": "Registered(UDP-NAT)",
"Timestamp": "1674986104401505"
},
"calls": [
{
"Unique-ID": "9ac84aa5-b9fb-4517-b2eb-78a0e3d15420",
"Created-Time": "1674986356521511",
"Answered-Time": "1674986356541507",
"Call-Direction": "inbound",
"Call-Number": "8001",
"Timestamp": "1674986356541507"
}
]
}
控制群集中不同fs的外呼并发
自动外呼配置加载优先级第一步加载 cti_queue_dialer_task@template【队列外呼母版】 第二步加载 cti_queue_dialer_task@域名【队列外呼】 第三步加载cti_queue_dialer_task@主机【队列外呼主机】。要控制指定fs某个任务的并发只需要在cti_queue_dialer_task@主机里面添加一个同名的任务然后设置一下并发就可以了其他参数不要设置会使用 cti_queue_dialer_task@域名同名任务的配置。