APP下载

基于Asterisk的定制呼叫分配策略研究

2015-01-04黄伟民陈可新

长沙大学学报 2015年2期
关键词:座席队列应用程序

黄伟民,陈可新

(福州职业技术学院计算机系,福建福州350108)

呼叫中心是企业与客户沟通的桥梁,它允许企业快捷地为客户提供信息服务.近年来,随着各类企业客户服务需求的快速发展及企业信息化建设的不断深入,呼叫中心已经在国内各行业,包括金融、保险、电信、政府、教育等行业得到广泛应用.企业呼叫中心的呼叫分配机制可以把正在排队的客户呼叫按照一定的规则路由到相应的坐席代表处,把呼叫进行排队并分配到具有恰当技能和知识的坐席代表处,使整个呼叫处理的过程合理化,使客户获得更好的服务[1].呼叫分配中的客户排队和座席分配策略决定了企业呼叫中心座席的人力资源使用效率,直接影响到呼叫中心管理和客户服务水平[2].

Asterisk是一个开源的软件VoIP(Voice over Internet Protocol)解决方案,它在中小企业预算可承受的范围内提供了商业交换机的功能和伸缩性.Asterisk包含许多昂贵的商用交换机系统才具有的功能,例如:语音信箱、多方语音会议、交互式语音应答、电话选单与电话客服中心等机制[3].鉴于基于Asterisk的VOIP解决方案成为当前中小型企业呼叫中心的首选,通过对Asterisk进行呼叫分配策略定制,将较好提升基于Asterisk呼叫中心座席的人力资源使用效率.本文对基于Asterisk呼叫中心的定制呼叫分配策略进行研究,并探讨其具体实现方法.

1 Asterisk系统AGI编程接口简介

Asterisk软交换系统基于模块化进行设计,用户可以根据自己的需要增加和改进以实现个性化功能,以便应用更加贴近企业实际业务需求.利用Asterisk系统的AGI(Asterisk Gateway Interface)编程接口开发通信应用,这些外部应用程序可以使用 PHP,Python,Perl,Java 等语言编写[4].AGI应用程序包括EAGI、FastAGI和DeadAGI等多种方式.EAGI应用程序可以和Asterisk的拨号方案进行交互,还能访问和控制Asterisk系统的语音通道.FastAGI可以通过一个TCP网络连接实现呼叫控制.DeadAGI主要用于在线路挂断时进行相应的处理.EAGI通过STDIN/STDOUT标准输入输出数据流和Asterisk进行交互,FastAGI传递数据的方式从 STDIN/STDOU方式转为了TCP/IP Socket的方式.Asterisk的AGI应用程序可以在Asterisk的拨号方案中被调用,FastAGI应用程序的调用方式如下:

exten= >_X.,1,AGI(agi://ip_address:port/some_script_name.agi).

2 Asterisk呼叫分配策略设计与实现

2.1 Asterisk内置呼叫分配策略概述

基于Asterisk的企业呼叫中心应用系统中,系统的内置客户呼叫分配策略主要是基于客服电话响铃规则,即根据座席当班和空闲算法,对座席分配呼入系统中的客户呼叫.在Asterisk系统中,系统内置的客服电话响铃规则包括:Ringall、Random、Roundrobin、Leastrecent、Fewestcalls、RRMemory,以下分别对各个规则进行简要描述.Ringall:呼叫所有可到达的分机直到有座席接听,即剔除不在线和在通话中的全部响铃;Random:剔除不在线和在通话中的随机选择一个座席分配给呼入用户;RoundRobin:轮流呼叫每一个可以达到的分机,剔除不在线和在通话中的响铃;Leastrecent:呼叫最近被这个队列呼叫最少的分机;Fewestcalls:呼叫这个队列完成电话数最少的分机;RRMemory:先按RoundRobin排序,读取内存里记录队列上次呼叫人的位置,从这个人的位置的下一个开始呼叫响铃,如果到队列尾部,从头再来.

2.2 支持不同业务场景的定制呼叫分配策略设计

Asterisk系统的内置呼叫策略虽然能满足企业呼叫中心的一般应用需求,但针对呼叫中心不同的业务场景,如果单一应用某项策略时,难免存在一定的局限性.如:Ringall策略未考虑座席人员的技能差异,Leastrecent策略可能会造成队列不停地把呼入的电话分配到某个座席上,如果该座席分机处于通话中并且通话时间比较长的话,会造成很大的电话损失.为此可针对企业呼叫中心的不同业务场景,选择应用不同的定制呼叫分配策略.

为实现对客户呼叫的高效处理,Asterisk基于队列构建并处理客户呼叫.Asterisk系统在呼叫分配队列模型中定义了队列结构call_queue,该结构体中包含head和members等多个数据成员(如图1所示),其中head成员表示呼入的呼叫队列队首位置,members成员表示处于等待中的空闲座席.Asterisk系统针对每一个客户呼入均开启一个队列线程Queue来处理呼叫.当一个呼叫呼入系统时,系统的Queue线程创建一个queue-ent结构并将其加入到呼叫队列head中,进入等待状态,同时Queue线程不停检测members列表中的空闲成员,一旦检测到空闲座席,则排在呼叫队列head队首的呼叫就退出等待,并向空闲座席发出呼叫邀请[5].针对企业呼叫中心的不同应用需求,可以定义不同的策略及级别,对座席进行呼叫分配.

2.3 支持不同业务场景的定制呼叫分配策略实现

通过上述对于Asterisk的呼叫分配策略分析,以下以FastAGI为例说明Asterisk呼叫策略的具体实现过程,FastAGI通过TCP/IP Socket连接替代标准输入输出作为沟通媒介.通过FastAGI运行基于Java的应用程序,可以结合Java多线程支持构建快捷响应的脚本.针对上述呼叫策略的Fast-AGI具体实现,主要包含以下4个部分:AGI脚本代码,Asterisk拨号方案,AGI脚本映射和AGI服务器端[6].为完成呼叫策略定义与获取,可以编写java脚本程序实现策略定义和接口实现,现假设相关的接口实现包含于QueueLogic.java文件,QueueLogic继承BaseAgiScript基类,并在QueueRingAll中实现具体的功能调用.相关的AGI应用程序的主要实现代码如下:

在实现呼叫中心不同业务场景的呼叫策略接口后,可以通过调用一个工厂方法,向上述接口传递数据.当一个呼叫中心客户呼入系统时,系统IVR(Interactive Voice Response)提示客户选择其所需的业务场景,通过在Asterisk拨号方案中的AGI应用调用QueueLogic脚本,就可以将客户呼入引向包含不同策略的座席队列,从而实现针对基于Asterisk的企业呼叫中心不同业务场景的定制呼叫分配策略.

3 结论

本文简要阐述了Asterisk的AGI编程接口功能,对基于Asterisk的企业呼叫中心系统的呼叫分配机制进行简要分析,研究了Asterisk定制呼叫分配策略实现方法,最后给出了针对不同业务场景的定制呼叫分配策略的代码实现方法.通过Asterisk的AGI编程接口实现客户呼叫分配策略定制,允许根据企业的不同业务需求定制呼叫分配策略,从而实现对企业呼叫座席人力资源的更好管理和配置,以最大程度发挥企业呼叫中心功能.

[1]梅涛,罗裕梅.呼叫中心ACD模型的改进与实现[J].信息技术,2014,(5):135-138.

[2]于淼,宫俊.带排队信息提示的呼叫中心人力资源分配方法[J].东北大学学报(自然科学版),2014,(1):1-4.

[3]张平波,高承志.基于Asterisk的VoIP软电话系统的设计与实现[J].信息化研究,2013,(4):35-39.

[4]陈可新.基于Asterisk软交换的电话口译系统开发与应用[J].现代电子技术,2012,(14):55-58.

[5]王宁.基于云计算的呼叫中心业务研究与实现[J].电子质量,2014,(4):44-47.

[6]Madsen L,Meggelen J,Bryant R.Asterisk:The Definitive Guide,Third Edition[M].O’Reilly,2011.

猜你喜欢

座席队列应用程序
考虑顾客耐心和实时座席转移的联络中心运营指标优化研究
小小座席卡作用大
队列里的小秘密
基于多队列切换的SDN拥塞控制*
删除Win10中自带的应用程序
在队列里
谷歌禁止加密货币应用程序
丰田加速驶入自动驾驶队列
为什么飞机座位编号没有I,动车座位没有E
为什么飞机座位编号没有I,动车座位没有E