在呼叫中心系统中,有二类特殊的应用场景,即所谓的“群振”(也叫“共振”或“同振”)以及“顺振”。

群振的业务场景:

当客人电话进线时,希望呼叫中心的所有客服都能响应(即:假设呼叫中心有5个客服在接线,客人来电时,这5个客服的电话一起响),任何1个客服都可以接听(注:该客服接起来后,其它客服的分机就不再响了)

顺振的业务场景:

当客人电话进线时,可以指定一系列客服按优先级顺序接听(即:假设呼叫中心有2个客服A,B在接线,客人来电时,希望优先A的话机响,如果A一直没接或拒接,再呼客服B,让B的话机继续响)

下面我们以FreeSwitch (1.10.11版本),演示下如何实现:

默认情况下,FreeSwitch内置了几个账号(1000,1001...),默认密码是1234,我在自己的windows笔记本上,用开源的软电话终端MicroSIP,分别以1000,1001注册到本机的freeSwitch上

群振实现:

FS_Cli终端窗口输入:

originate user/1000,user/1001 &echo
即:在2个号码之间用英文半角逗号拼接

可以看到,2个软电话终端都弹出来电振铃窗口。可以分别测试下面几种接听情况:

  • 1000拒接挂掉,1001仍然继续振铃
  • 1000接听,1001的来电振铃将自动消失
  • 1000接起来,然后FS_Cli再发1次 originate user/1000,user/1001 &echo 这时候,1000话机已在通话中,将只有1001会弹出来电提醒

顺振实现:

FS_Cli终端窗口输入:

originate user/1000|user1001 &echo
即:在2个号码之间用管道符|拼接

这时只有1000会弹出来电提醒:可以分别测试下面几种接听情况:

  • 如果点Decline拒接,会继续弹出1001的来电提醒。
  • 如果1000一直不接,振铃超时后,1001并没有按预期继续弹出来电提醒 (后面会讲到改进方法)
  • 如果1000正常接听,然后挂断了,FS_Cli短时间内再发1次 originate user/1000,user/1001 &echo,优先弹出来电提醒的将是1001(即:FS内部应该有号码平均轮训的机制,保证每个号码都有机会雨露均沾,不知道这个特征是否与FS的版本有关,非1.10.11版本建议大家以实际验证结果为准)
  • 如果1000正常接听,持续通话中,FS_Cli再发1次 originate user/1000,user/1001 &echo,由于1000占线通话中,将会弹出1001的来电提醒

第2种测试结果,1000振铃超时后,无法继续呼叫1001,这显示不满足业务要求,在FreeSwitch官方文档找到1个参数:originate_continue_on_timeout

看参数说明, 这个应该管用,验证一下:

originate {originate_continue_on_timeout=true}user/1000|user/1001 &echo
实际验证下来,确实有用。
 
振铃超时设置:
默认的振铃时间是60秒,如果想调整群振或顺振的超时时间,我们参考以前单号码呼叫的设置,比如:
originate {call_timeout=5}user/1000 &echo
将其套用到群振上:
originate {call_timeout=5}user/1000,user/1001 &echo
发现并不管用,仍然是振铃60秒
继续在官网上搜索相关信息,找到1个相关的参数leg_timeout:

尝试一下:

originate {originate_continue_on_timeout=true}[leg_timeout=15]user/1000|[leg_timeout=5]user/1001 &echo
结果符合预期:顺振模式下,1000的振铃超时为15秒,超时不接后,将继续呼叫1001(1001的振铃超时为5秒)
 
在群振模式下,也依然有效:
originate [leg_timeout=15]user/1000,[leg_timeout=5]user/1001 &echo

参考文档:

https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314/#origination_timeout

FreeSwitch:群振、顺振研究的更多相关文章

  1. MariaDB集群Galera Cluster的研究与测试

    MariaDB集群Galera Cluster的研究与测试 Galera Cluster是MariaDB的一个双活多主集群,其可以使得MariDB的所有节点保持同步,Galera为MariaDB提供了 ...

  2. Redis集群的主从切换研究

    目录 目录 1 1. 前言 1 2. slave发起选举 2 3. master响应选举 5 4. 选举示例 5 5. 哈希槽传播方式 6 6. 一次主从切换记录1 6 6.1. 相关参数 6 6.2 ...

  3. 晶振在电路设计时关于负载电容CL大小取值特别需要注意什么?

    在无源晶体的设计中,经常遇到负载电容CL的大小取值.晶振设计与精度的提高.KHz无源晶振的停止.音叉晶体谐振器的精度漂移以及精度和无源晶振在高温下的精度是否等于低温的精度烦忧的问题等. 无源晶体振荡器 ...

  4. 【MSP是什么】MSP认证之成功的项目群管理

    同项目管理相比,项目群管理是为了实现项目群的战略目标与利益,而对一组项目进行的统一协调管理. 项目群管理 项目群管理是以项目管理为核心.单个项目上进行日常性的项目管理,项目群管理是对多个项目进行的总体 ...

  5. 一些对数学领域及数学研究的个人看法(转载自博士论坛wcboy)

    转自:http://www.math.org.cn/forum.php?mod=viewthread&tid=14819&extra=&page=1 原作者: wcboy 现在 ...

  6. [经验交流] Apache Mesos Docker集群初探

    前言 因工作需要,我对基于Apache Mesos 的 Docker 集群作了一点研究,并搭建了一套环境,以下是资料分享. 1. Apache Mesos概述 Apache Mesos是一款开源群集管 ...

  7. [原创]配置管理技术圈QQ群:129489184

    [原创]配置管理技术圈QQ群:129489184 配置管理技术圈QQ群:129489184,研究cvs,svn,git,cc等平台配置技术,涉及版本控制,持续集成,自动化构建等! 欢迎各位同学来,来时 ...

  8. [原创]移动应用测试技术圈QQ群:211828629

    [原创]移动应用测试技术圈QQ群:211828629  移动应用测试技术圈QQ群:211828629,研究ios,android,winphone等平台测试技术,涉及功能/性能/安全/自动化/用户体验 ...

  9. MySQL中间件之ProxySQL(13):ProxySQL集群

    返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html ProxySQL有原生的集群功能,但是这个原生的集群功能还正在试验阶段 ...

  10. redis系列--深入哨兵集群

    一.前言 在之前的系列文章中介绍了redis的入门.持久化以及复制功能,如果不了解请移步至redis系列进行阅读,当然我也是抱着学习的知识分享,如果有什么问题欢迎指正,也欢迎大家转载.而本次将介绍哨兵 ...

随机推荐

  1. SQL Server 2025 中的改进

    SQL Server 2025 中的改进 当我们接近 SQL Server 2025 的首次公开版本时,开始深入探究 Azure SQL DB 如今(已公布和未公布)但在 SQL Server 盒装产 ...

  2. SpringBoot事件和监听器

    事件和监听器 生命周期监听 场景:监听应用的生命周期 监听器-SpringApplicationRunListener 自定义SpringApplicationRunListener来监听事件: 1. ...

  3. 【记录】Python3|用百度语音 API 朗读你的小说TXT

    百度语音合成官方教程_AI开放平台 百度语音合成官方demo_github.com 简单地写了一个按段落朗读文本的demo:DEMO链接_gitee.com. 有时候会请求不到数据,不知道是网络原因还 ...

  4. 【网站推荐】推荐几个MCP(Model Context Protocol,模型上下文协议)的网站

    MCP网站一:MCP 快速入门 介绍 MCP 快速入门.开发工具.核心架构等内容. https://mcp-docs.cn/introduction MCP网站二:GitHub 官方仓库 由MCP协议 ...

  5. Python实现ws订阅服务

    一.Python实现ws订阅服务 # 使用websocket订阅欧易公共频道中的 行情频道,以下是已知信息,写出Python代码 # 地址:"wss://wspap.okx.com:8443 ...

  6. 做自己的第一个网站(Bootscrapt、odoo14作、JQuery)

    今天发布自己的第一个网站,网站内容是关于自己家乡的美景,效果图如下:网站地址是:http://hxmelon.com/ 二.技术篇 1.在这里网站用的是Bootscrapt框架作为网站开发模板.前端语 ...

  7. C++用Mutex实现读写锁

    近期答辩完成了,想回头看看之前没做过的2PL. 实现2PL有4种方式: 死锁检测.本篇是为了做这个而实现的,做这个事情的原因是c++标准库的shared_mutex无法从外界告知获取锁失败. 如果需要 ...

  8. IntelliJ IDEA 设置代码自动补全不区分大小写

    在使用IntelliJ IDEA进行开发时,输入一个关键字时会有提示相关的类和方法名,但是默认是区分大小写的,如何让IDEA不区分大小写呢? IntelliJ IDEA版本:IntelliJ IDEA ...

  9. Java泛型<T> T与T的用法

             泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的 ...

  10. 终极指南:Scrum中如何设置需求优先级

    需求众多不知道如何下手?总想先做简单的需求,复杂需求却一拖再拖?那么,我们是时候开始考虑如何设置需求优先级了. 本期终极指南将展示如何为需求设置有效优先级,如何有效管理工作量,让效率指数倍增长,搭配  ...