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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何学习Android开发编程-初学者的5个步骤

    如何学习Android开发编程-初学者的5个步骤如何学习Android开发编程-初学者的5个步骤在本文中,您将发现如何学习Android开发编程。了解如何成为一名Android开发人员,并按照以下5个步骤操作。您是否想学习Android?如果是,但您不知道如何操作,则此文章适合您。它将帮助您以Android开发人员的身份开始冒险。准备?321如何学习Android开发-初学者的6个关键步骤1.看看…

    2022年5月10日
    42
  • int、bigint、smallint 和 tinyint范围「建议收藏」

    int、bigint、smallint 和 tinyint范围「建议收藏」1bytes=8bit,一个字节最多可以代表的数据长度是2的8次方11111111在计算机中也就是  -128到127  1.BIT[M]  位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1  2.TINYINT[(M)][UNSIGNED][ZEROFILL] M默认为4       从0到255的整型数据。存储大小为1

    2022年9月21日
    5
  • Qt QListWidget详解

    Qt QListWidget详解1.QListWidget和QListViewQListWidget是继承QListView,QListView是基于Model的,需要自己来建模(如建立QStringListModel,QSqlTableModel等),保存数据,这样就大大降低了数据冗余,提高了程序的效率,但是需要我们对数据建模有一定的了解,而QListWidget是一个升级版本的QListView,它已经为我们建立了一个数据存储模型QListWidgetItem,操作方便,直接调用addItem即可添加Item项。2….

    2022年6月6日
    109
  • 互斥体与互锁 <第五篇>

    互斥体与互锁 <第五篇>

    2021年8月23日
    58
  • java ee eclipse使用教程(使用maven创建web项目)

    笔者开发javaee项目时惯用myeclipse,但由于个人笔记本性能较低,myeclipse对内存的消耗极大,所以考虑换成eclipse开发。本文介绍eclipse配置javaee开发环境的一些体会。配置tomcat与myeclipse配置tomcat的方式不同,eclipse需要先安装tomcat插件,再指定tomcat的路径。第一步:将解压后的zip文件置于eclipse/plugins目录…

    2022年4月10日
    130
  • 详解如何在vue项目中使用layui框架及采坑

    详解如何在vue项目中使用layui框架及采坑根据官网的文档,要在一个html文件下使用layui里面的组件库其实很简单,但是在vue项目中使用该ui库却存在着很多坑,下面我们就详细讲解一下如何在vue-cli搭建的项目下使用layui1.第一个坑:vue项目中使用npm安装引入时报错(目前并没有找到引入的合适的方式,知道的可以留言探讨)在官网中我们可以看到他提到支持npm安装,但是当我们安装成功后,在main.js中引入时却报并不能…

    2022年6月25日
    92

发表回复

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

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