顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-群集方案

news2024/11/18 17:29:49

群集方案

群集介绍

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

群集中的分机管理

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

  1. 判断分机1000注册在哪个FS
  2. 如果注册在本机直接呼叫1000 (拨号串 user/1000 )
  3. 如果注册到其他fs, 呼叫1000送到指定fs(拨号串 sofia/cluster/1000@fsip)
  4. 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}\"}]}]}"
    }
}

img-zQ6GhFFm-1674988566833

呼叫路由配置

添加一个名为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配置

img-bqe9ju1i-1674988566834

变量配置

img-8I1ruaVu-1674988566834

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@域名同名任务的配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183914.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于乾元通多卡聚合智能通信系统的典型应用场景分析

紧急事态处置 城市公共安全包含自然灾害事故灾难、公共卫生事件、社会安全事件、事故灾难&#xff0c;在城镇化快速发展的今天&#xff0c;作为维护公共安全的职能部门&#xff0c;带来了新的挑战。 乾元通科技使用多径混传、多路聚合技术&#xff0c;开发出的智能融合通信设备…

五款非常轻便的实用小工具

大伙们&#xff0c;开工大吉&#xff01; 1.系统清理——WiseCare365 WiseCare365是由WiseCleaner开发的一款用来管理&#xff0c;维护&#xff0c;配置以及解决电脑故障的适用于Windows操作系统的电脑的免费软件。其实Wise Care 365就是把这个公司之前推出的所有优化工具整合…

Redmi GPro游戏本升级系统失败无法启动怎么办?

Redmi GPro游戏本升级系统失败无法启动怎么办&#xff1f;有用户使用Redmi GPro电脑去进行电脑系统的升级时&#xff0c;出现了系统升级错误。在电脑关机重新启动之后&#xff0c;电脑出现了蓝屏的情况。那么遇到这个问题要怎么去进行解决呢&#xff1f;来看看具体的解决方法吧…

美颜滤镜sdk常用的图形处理算法、代码分析

美颜滤镜sdk目前在视频、图文社交平台中的使用率是非常高的&#xff0c;特别是短视频平台和直播平台。今天小编就为大家讲解一下美颜滤镜sdk经常用到的算法和代码。 一、预处理算法、检测算法 在采集完图像后&#xff0c;首先会对图像进行预处理操作。保证图像的对比度清晰&…

c:out标签怎么是使用?

在JSP页面中&#xff0c;最常见的操作就是向页面输出一段文本信息&#xff0c;为此&#xff0c;Core标签库提供了一个<c:out>标签&#xff0c;该标签可以将一段文本内容或表达式的结果输出到客户端。如果<c:out>标签输出的文本内容中包含了需要进行转义的特殊字符&…

css字体、文本

无衬线字体(sans-serif) 特点: 1.文字笔画粗细均匀&#xff0c;并且首尾无装饰 2.场景:网页中大多采用无衬线字体 3.常见该系列字体:黑体、Arial3 衬线字体(serif) 特点: 1.文字笔画粗细不均&#xff0c;并且首尾有笔锋装饰 2.场景:报刊书籍中应用广泛 3.常见该系列字体:宋体、…

音视频处理

问题背景&#xff1a;h265格式的视频转码之后ios存在兼容问题 原转码命令&#xff1a; /usr/local/bin/ffmpeg -y -i /data/tmp/1672385812000-tks3wa.mp4 -vf scale720:1281 -r 30 /data/tmp/1672385812000-tks3wa_720.mp4 -hide_banner解决办法&#xff1a; // 原视频格式为…

可持久化线段树(主席树)详解(c++ 图片演示+ 代码)

文章目录可持久化线段树&#xff08;主席树&#xff09;建树前准备!初始化建树&#xff01;更新操作!区间查询!AC code可持久化线段树&#xff08;主席树&#xff09; 可持久化线段树指的是可持久化权值线段树&#xff0c;关于权值线段树可以看我这篇博客&#xff1a; 权值线…

Mininal BASH-like line editing is supported.

翻译&#xff1a;支持类似Mininal bash的行编辑。对于第一个单词&#xff0c;TAB列出了可能的命令补全。“其他任何地方”标签列出可能的设备或文件补全。原因分析&#xff1a;出现这个问题的原因是windows启动的时候&#xff0c;没有找到启动文件。&#xff08;我的电脑之所以…

每天一道大厂SQL题【Day01】

每天一道大厂SQL题【Day01】 大家好&#xff0c;我是Maynor。相信大家和我一样&#xff0c;都有一个大厂梦&#xff0c;作为一名资深大数据选手&#xff0c;深知SQL重要性&#xff0c;接下来我准备用100天时间&#xff0c;基于大数据岗面试中的经典题&#xff0c;以每日1题的形…

5.6 奇异值

对单位圆的乘法 首先我们在单位圆上遍历所有的点&#xff0c;作为二维向量&#xff0c;来研究某个矩阵乘以这些向量得到的结果&#xff0c;我们选三种矩阵&#xff0c;秩为0的矩阵&#xff0c;秩为1的矩阵和秩为2的矩阵。   秩为0的矩阵就一个&#xff0c;也就是0矩阵&#x…

【页面设计】02.CSS

CSS&#xff1a;Cascading Style Sheets 层叠样式表1.不是编程语言。2.告诉浏览器如何指定样式、布局等一、基本格式效果&#xff1a;二、三种方式添加CSS1.外部样式表&#xff08;1&#xff09;CSS保存在.css文件中&#xff08;2&#xff09;在HTML的<head>中使用<li…

棕黑色L-CQDs/TiO2 离子液体修饰/500nm粒径氮硫掺杂碳量子点N,S-CQDs/ZnO的制备过程

棕黑色L-CQDs/TiO2 离子液体修饰/500nm粒径氮硫掺杂碳量子点N,S-CQDs/ZnO的制备过程 今天小编分享L-CQDs/TiO2 离子液体修饰碳量子点的制备过程&#xff0c;一起看看吧: L-CQDs/TiO2 离子液体修饰碳量子点的制备过程&#xff1a; 通过水热法制备L-CQDs/TiO2复合催化剂。将50 …

Harbor安装对接Containerd

使用docker-compose安装harbor 先决条件&#xff1a; 安装docker安装docker-compose 安装参考 下载并解压 wget -c https://github.com/goharbor/harbor/releases/download/v2.3.5/harbor-offline-installer-v2.3.5.tgztar -zxvf harbor-offline-installer-v2.3.5.tgz cd harbo…

Aurora、Chip2chip、Ethernet(一)

摘要&#xff1a;之前的文章对aurora、chip2chip以及Ethernet这三个IP都进行介绍、仿真和使用说明。但是在实际使用中一定没有那么简单&#xff0c;在复杂联合使用的情况下&#xff0c;肯定会碰到各种各样的问题。此系列文章主要说明如何解决联合使用情况下碰到的一系列问题。 …

操作系统(day02)

“指令”就是处理器&#xff08;CPU&#xff09;能识别、执行的最基本的命令也可以叫做机器指令 两种指令、两种处理器状态、两种程序 两种指令 特权指令 如内存清零指令&#xff0c;不允许用户程序使用非特权指令 如普通的运算指令 既然有两种指令&#xff0c;且特权指令不…

IB学习者培养目标-知识渊博

“We explore concepts, ideas and issues that have local and global significance. In so doing, we acquire in-depth knowledge and develop understanding across a broad and balanced range of disciplines.” -IB definition of the attribute Knowledgeable“Being …

C++ —— 容器适配器和仿函数

目录 1.什么是容器适配器 2.stack的模拟实现 3.queue的模拟实现 4.deque概述 5.priority_queue的模拟实现 5.1仿函数 5.2模拟实现 6.反向迭代器 1.什么是容器适配器 在已有的容器(vector、list)的基础上适配出其他的容器。就类似于手机、笔记本电脑的电源适配器&…

一些lc周赛

6285. 执行 K 次操作后的最大分数(327 贪心 优先队列模拟) Math.ceil(val) 向上取整函数 public long maxKelements(int[] nums, int k) {PriorityQueue<Integer> queuenew PriorityQueue<>((a,b)->(b-a));for(int n:nums){queue.add(n);}long sum0;for(int i0…

JavaScript高级 ES6新特性

ES6~ES13新特性1. ECMA新描述概念1. 概念区别回顾2. 词法环境3. 环境记录4. 内存图的表示2. let、const的使用1. 基础的使用2. 作用域提升3. 暂时性死区 (TDZ)4. window 添加属性的区别5. 块级作用域的使用6. var、let、const的选择3. 模板字符串的详解4. ES6函数的增强用法1. …