首页 > 其他分享 >freeswitch笔记(5)-小型呼叫中心设计思路

freeswitch笔记(5)-小型呼叫中心设计思路

时间:2023-02-07 18:23:01浏览次数:85  
标签:电话 bridge uuid 客服 笔记 freeswitch 呼叫 客人

这一篇用esl实战一把,利用esl client来实现一个小型呼叫中心的原型,先看看下面这张图:

 

企业通常会对外公布一个400之类的服务电话,当用户拨打这个电话时,实际上背后是一堆客服妹纸带着耳麦通过电脑连着自己的电话分机。客人进线时,系统会根据一定的规则(比如挑1个当前空闲的客服),然后把电话转接过去,当然转接有可能不成功(比如目标客服没接听,或者当时走开了,或者误操作按了挂机...),系统要监听这些异常情况,然后再分配1个其它客服,直到接通(或客人等得不耐烦,主动挂机)

 

点击查看原图

这是大致的时序图,解释一下:

1、客人来电后,数据会到过freeswitch

2、fs上配置outbound规则(见之前的文章)后,会把一些关键信息(比如客人来电号码),传到esl client

3、esl client根据自己的业务规则,分配一个客服(即:分机号)

4、fs主动向该客服发起呼叫(originate命令) --问题1:为啥这里不直接用bridge命令?

5、考虑到客服可能正好离开位置(比如:起身去倒杯水),或者比较忙,直接挂断了电话,步骤4的呼叫肯定失败。这里要用inbound模式,监听目标客服的分机状态,才能知道应答情况

6、如果目标客服无应答(挂机或一直振铃不接),则挂断客服这一头的电话(注:uuid_kill 客服通话的uuid),然后重复步骤2,继续分配另外一个客服 (注:这个重复分配的过程,客人是感知不到的)

7、如果目标客服接起了电话(即:应答),则先将客人来电应答(answer指令,否则客人那边还会一直听到等待音),然后将两头的电话接通(uuid_bridge uuid1 uuid2)

 

回答下刚才提到的一个小问题:步骤4为什么不用bridge命令?

答案:bridge也可用于转接,正常情况是没问题的,但是bridge命令执行成功,并不代表对方一定就接通了(见上面未接听情况的各种分析),如果对方挂断了,客人会先听到对方的振铃声,然后听到挂断,但是自己这一头的电话并未断,接下来又会听到排队的等待声,体验很不好,所以这个方式不推荐。

 

时序图中涉及的freeswitch命令列一下:

1、originate 向客服发起呼叫

tips: 可以在发起呼叫时,就指定uuid(避免fs自动生成),方便后面uuid_kill或uuid_bridge,示例如下

originate {ignore_early_media=true,call_timeout=60,hangup_after_bridge=false,origination_uuid=新的uuid,origination_caller_id_number=主叫号码,origination_caller_id_name=主叫号码显示名称}user/目标号码 &park()

注:最后的&park()不要忘了加,这个相当于系统自动应答,把客服端的电话先保持住,否则会超时自动挂断;另外新的uuid,可以通过create_uuid先生成。

2、answer 自动应答

用于客服拨通后,自动应答客人电话,否则客人那边一直播等待声音,没人接听,最终会超时。

3、uuid_kill 结束某一些的通话

如果目标客服一直振铃未接听,可以用该命令直接掐掉。

4、uuid_bridge

接通二边的电话

 

参考:

https://freeswitch.org/confluence/display/FREESWITCH/Originate+Example

https://freeswitch.org/confluence/display/FREESWITCH/mod_commands

https://freeswitch.org/confluence/display/FREESWITCH/Event+List#EventList-3.21CHANNEL_UUIDevent

标签:电话,bridge,uuid,客服,笔记,freeswitch,呼叫,客人
From: https://www.cnblogs.com/kn-zheng/p/17099421.html

相关文章

  • freeswitch笔记(4)-esl inbound模式的重连及内存泄露问题
    eslinboundclient,内部有一个canSend()方法:123publicbooleancanSend(){    return channel!=null&&channel.isConnected()&&authenticated......
  • FreeSwitch:send_dtmf/uuid_send_dtmf发送按键注意事项
    很多时候我们打电话到公司前台,会听到类似“欢迎致电XXX,办公电话请直拨分机,咨询XX请按1,咨询YY请按2”这样的语音提示。在一些特定流程中,系统自动发起呼叫打到前台,希望实现自......
  • freeswitch批量添加用户
    默认情况下,freeswitch内置了1000-1019这20个用户,如果需要添加更多用户,可以按如下步骤操作:一、复制用户文件\FreeSWITCH\conf\directory\default 下有1000.xml~1019.xm......
  • java_html笔记
    颜色color字体大小 1.数值+单位 2.关键字-px-em字体(可以写多个,但不是全都生效只生效存在的如果全都不存在则使用默认字体)font-family:"abccde",......
  • freeswitch: 如何指定主叫显示号码
    一、origiante时指定主叫号码正常情况下,如果在freeswitch控制台,输入类似下面 命令:originateuser/1000 &park被叫收到振铃提示时,显示的号码类似下面......
  • python笔记1
    1.python转义符\"输出等于“\n换行\r覆盖,后面覆盖前面 \b删除前面一个字节\t制表符:插入四个空格,但是会自动补齐\\两个斜杠表示一个斜杠r在前面写个r表示转义字符......
  • 《可能性的艺术》——读书笔记
    2023.2.3序言①米兰达警告:你有保持沉默的权利,但是你所说的每句话都将成为呈堂证供第一讲:政治比较的维度②智慧的本质就是对事物比例的公正判断2023.2.7第二讲:和......
  • 思源笔记用Python+quicker实现自动添加标题编号
    实现原理:通过Python访问笔记的源文件,将标题前面增加编号+tab键,在写回源文件为防止重复写入,每次编号前会清理之前编号清除,清理原理为将标题行用tab键分割,......
  • CentOS7离线静默安装Oralce11(p13390677_112040)(转发+笔记)
    原文:https://blog.csdn.net/u014644574/article/details/1193259441、下载并上传到/root目录下p13390677_112040版本是付费版,免费版安装参考:CentOS7安装Oralce11g_u014......
  • java学习笔记
    1.java经典题目练习看旁边的目录分类:​​点这里​​ 2.常用实用类​​JavaFile类​​ ​​java大数类总结​​3.知识点​​java对自定义类型的两种排序方法(Arrays.sort和......