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


    这一篇用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

  • 相关阅读:
    kubesphere在应用商店安装rabbitmq注意事项
    js中两个感叹号的作用!!
    Mysql5.7 时间Datetime 索引不生效问题
    Electron NodeJS 订阅和消费RabbitMQ详细笔记
    QGraphicsItem QGraphicsObject 项目进行属性动画时候,需要注意。
    vcpkg默认x64版本
    联级查询 id 和 parentid 左外查询
    SQL server 获取表、视图字段属性
    SQL 异常捕获和事务回滚
    关联查询,两表关联逗号隔开查询
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/how-to-design-a-small-callcenter-using-esl-client-and-freeswitch.html
Copyright © 2020-2023  润新知