FreeSwitch:群振、顺振研究
在呼叫中心系统中,有二类特殊的应用场景,即所谓的“群振”(也叫“共振”或“同振”)以及“顺振”。
群振的业务场景:
当客人电话进线时,希望呼叫中心的所有客服都能响应(即:假设呼叫中心有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终端窗口输入:
可以看到,2个软电话终端都弹出来电振铃窗口。可以分别测试下面几种接听情况:
- 1000拒接挂掉,1001仍然继续振铃
- 1000接听,1001的来电振铃将自动消失
- 1000接起来,然后FS_Cli再发1次 originate user/1000,user/1001 &echo 这时候,1000话机已在通话中,将只有1001会弹出来电提醒
顺振实现:
FS_Cli终端窗口输入:
这时只有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
看参数说明, 这个应该管用,验证一下:
尝试一下:
参考文档:
https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Dialplan/Variables-Archive/x__Variables_6587314/#origination_timeout
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。