freeswitch之呼叫中心acd模块开发

freeswitch之呼叫中心acd模块开发一、定义:ACD(AutomaticCallDistributor)自动呼叫分配,也叫智能选择座席。它是呼叫中心整个前台接入系统逻辑功能的描述:把接入的呼叫转接到正确的座席员桌前。ACD是现代呼叫中心有别于一般的热线电话系统和自动应答系统的重要标志,其性能的优劣直接影响到呼叫中心的效率和顾客的满意度。二、ACD包含的功能点:1、程控交换功能ACD在本质上也是交换机的一种类型,必须具有程控交换最基本的话务交换功能。2、排队功能ACD必须具有话务排队的功能,所谓排队是指在内线都

大家好,又见面了,我是你们的朋友全栈君。

一、定义:

ACD(Automatic Call Distributor) 自动呼叫分配,也叫智能选择座席。它是呼叫中心整个前台接入系统逻辑功能的描述:把接入的呼叫转接到正确的座席员桌前。ACD是现代呼叫中心有别于一般的热线电话系统和自动应答系统的重要标志,其性能的优劣直接影响到呼叫中心的效率和顾客的满意度。

二、ACD包含的功能点:

1 、程控交换功能

ACD在本质上也是交换机的一种类型,必须具有程控交换最基本的话务交换功能。

2 、排队功能

ACD必须具有话务排队的功能,所谓排队是指在内线都忙的情况下,外部再打来一个电话时按一定规则进行排队,一旦内线空闲时进行接入。有的甚至具有vip优先排队接入功能。

3 、路由功能

拨入ACD的话务可以根据一定的路由规则转发到响应的座席终端(sip话机,坐席网关)、固话或者手机坐席或其他的一些的终端(如IVR )。

按分配策略可以分为:按最大空闲时长,按电话量,专员接入,按技能组优先级接入等等,坐席之间和技能组之间具有超时未听转和溢出转功能。

4、人工座席应答

根据客户的需要,将呼入的话路转接到人工座席上,客户将和座席人员进行交谈,接受客户预定、解答客户的疑问或输入客户的信息。

5、坐席软件接口

功能:登录,登出,示忙,示闲,小休,事务处理,咨询转(分机,手机,固话),三方通话,拦截通话,强拆,监听,切入IVR验证身份等功能。

事件:排队事件,排队取消事件,来电事件,通话事件,录音事件,挂机事件。来电事件中可以附带转接前ivr中受理业务的相关数据信息,方便弹屏页面展示给坐席来查看客户的预备需求;录音事件中附带录音文件信息,挂机事件中标识挂机方和挂机原因。

接口方式:ocx对接cs客户端模式;js(websocket)接口对接bs业务系统。

三、freeswitch实现ACD功能

1、esl方式

2、freeswitch模块方式

由于笔者是采用第二种开发,可以给基于此种方式的开发人员作为参考。

2.1 坐席接口可以采用libwebsockets库进行websocket协议开发,web端采用js连接通讯。

2.2 坐席分组,一套系统内分为多个技能组,不同技能组处理不同业务,技能组具备上述分配策略 

2.3 设计app,参考语法turnslic {params}exts groups wait_time [queue_enable] [want_login] [all_ring]                        [speak_member_id] [record_enable] [wait_music] [data]

          params:给坐席端的通道附加通道变量;

          ring_exts:分机号,多个用逗号分开,优先级别可以用分号隔开;

          ring_groups:技能组,多个用逗号分开,溢出技能组可以用分号隔开; 

         wait_time:超时时间;

         queue_enable:排队使能;

          wait_login:是否要求坐席登录才能接听电话;

          all_ring:是否同振;

         speak_member_id:坐席接听后是否报坐席工号;

         record_enable:是否需要录音;

        wait_music: 等待音乐;

         data:附加数据,用于坐席弹屏中展示;

2.4细节事项

2.4.1 app设计失败返回值,以方便不同返回结果对应的后续处理。比如:超时未接,排队超时,无空闲坐席,被拦截。

2.4.2分机掉线的处理:可以通过监听sofia模块的sofia::register和sofia::unregister消息及时知道分机在线。

2.4.3转外部系统添加sip自定义头传送相关数据,方便对接第三方系统。

2.4.4 VIP优先接入功能,指定为优先级高的号码优先接入到系统。

2.4.5 坐席状态并发处理节点,分机呼叫分机,ACD转分机,咨询转分机,三方通话转分机,这些功能点都可能同时并发呼叫相同分机,为了保证单个分机同时只处理一次呼叫,避免分机重复呼叫,坐席的状态和锁机制控制唯一性很重要。

大家如果有什么好的想法,可以一起商讨!
      

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159191.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PyCharm中的全局搜索

    PyCharm中的全局搜索根据每个人的快捷键设置每个人可能都不一样。具体方法是打开设置(File->Settings),找到keymap选项。然后在左边的搜索框中搜索findinpath得到的快捷键就是全局搜索的快捷键,我的是Ctrl+H。效果如下图所示:…

    2022年5月6日
    48
  • C语言标准库函数大全(ctype、time 、stdio、stdlib、math、string)

    C语言标准库函数大全(ctype、time 、stdio、stdlib、math、string)文章目录C语言函数库一.C语言函数库一.<assert.h>二.<ctype.h>三.<errno.h>四.<limits.h>五.<locale.h>六.<math.h>七.<setjmp.h>八.<signal.h>九.<stdarg.h>十.<stddef.h>十一.<stdio.h&.

    2022年7月20日
    9
  • python deepcopy「建议收藏」

    python deepcopy「建议收藏」1.copy.copy浅拷贝只拷贝父对象,不会拷贝对象的内部的子对象。2.copy.deepcopy深拷贝拷贝对象及其子对象一个很好的例子:import copya = [1, 2, 3, 4, [‘a’, ‘b’]]  #原始对象b = …

    2022年10月2日
    0
  • Java代码中BeanUtils工具类的populate方法使用

    Java代码中BeanUtils工具类的populate方法使用这个工具的populate静态方法可以直接将map对象封装成实体类,简化代码编写,这里做一下记录。比如:Map<String,String[]>parameterMap=req.getParameterMap();UserloginUser=newUser();try{//所用的依赖是commons-beanutils-1.8.0.jar//importorg.apache.commons.beanutils.BeanUtils;//作

    2022年7月14日
    16
  • python爬取网站m3u8视频,将ts解密成mp4,合并成整体视频「建议收藏」

    python爬取网站m3u8视频,将ts解密成mp4,合并成整体视频「建议收藏」一些网站会提供m3u8视频地址,以供下载观看。或者一些网站经过分析后发现是使用m3u8格式进行播放的,这时使用m3u8的地址链接就可以下载到相应的视频。一、关于m3u8:(https://blog.csdn.net/baidu_34418350/article/details/64922512)m3u8是苹果公司推出一种视频播放标准,是m3u的一种,不过编码方式是utf-8,是一种…

    2022年6月30日
    39
  • Python中的groupby分组

    Python中的groupby分组写在前面:之前我对于groupby一直都小看了,而且感觉理解得不彻底,虽然在另外一篇文章中也提到groupby的用法,但是这篇文章想着重地分析一下,并能从自己的角度分析一下groupby这个好东西~OUTLINE根据表本身的某一列或多列内容进行分组聚合通过字典或者Series进行分组根据表本身的某一列或多列内容进行分组聚合这个是groupby的最常见操作,根据…

    2022年5月26日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号