APP下载

呼叫中心基于IVR开发WEB接口

2019-10-08肖坚

软件 2019年4期

摘  要: 随着互联网技术的飞速发展,WEB接口技术在呼叫中心平台也得到越来越广泛的应用。开发者能够借助简单的Web技术将通信请求集成到应用中,使会话场景更富有弹性,移动app或Web浏览器都具备发起呼叫的能力,可以为用户创造一个更好的交流环境,提高信息交换的效率。文章从实际需求出发,基于平台现状,在原有架构的基础上进行二次开发,实现多个业务场景的呼叫升级,为公司节约成本、提高客户满意度。

关键词: 呼叫中心;交互式语音应答模块;计算机电话集成;Base64;MD5;JSON

中图分类号: TP311.52    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2019.04.030

本文著录格式:肖坚. 呼叫中心基于IVR开发WEB接口[J]. 软件,2019,40(4):140144

【Abstract】: With the rapid development of Internet technology, WEB interface technology has been more and more widely used in call center platform. With the help of simple Web technology, developers can integrate communication requests into applications to make session scenarios more flexible. Mobile apps or Web browsers have the ability to initiate calls, which can create a better communication environment for users and improve the efficiency of information exchange. Starting from the actual needs and based on the current situation of the platform, this paper carries out secondary development on the basis of the original framework, realizes the call upgrade of multiple business scenarios, saves costs for the company and improves customer satisfaction.

【Key words】: CC; IVR; CTI; Base64; MD5; JSON

0  引言

呼叫中心是把用户的呼叫集中转移到应答台,建立起来的交互式语音应答系统。呼叫中心从建立至今,应用领域越来越广泛,技术发展也非常快。从2000年,伴隨着互联网以及移动通信的发展与普及,将电子邮件、互联网、手机短信等渠道接入呼叫中心,成为第四代呼叫中心的标志。第四代呼叫中心也称为多媒体呼叫中心或联络中心(Contact Center),它相对传统呼叫中心来说接入渠道丰富,同时引入了多渠道接入与多渠道统一排队等概念,也称为智能业务中心[1]。

1  平台介绍

为论述方便,将本文描述的平台称为YXT平台。该平台是公司在2012年根据客户需求开发的一项新兴业务平台,业务范围主要针对事业单位、政府部门,以语音方式提供业务通知、欠费催缴、客户满意度调查,目前签约客户主要有社保、广电、国税等客户等。

呼叫中心的体系结构 基本部分是呼叫中心的必要组成部分,包括:自动呼叫分配设备(ACD)、交互式语音应答系统(IVR)、CTI服务器、人工座席、数据库服务器、管理平台等;扩展部分是随着呼叫中心技术的发展而逐渐丰富的,扩展部分的目前主要包括:Web服务器、E-mail服务器、传真服务器、IP电话网关等[2]。

YXT平台为中等呼出型呼叫中心,有12台主机,2个交换机,1个防火墙。系统工作在172.26.10.0私网域内,其中数据库文件服务器2台,媒体服务器2台,CTI服务器2台,TTS服务器1台。网络情况:通过2个华三S5500交换机连接交换IMS平台,通过华为Eudemon 200E防火墙连接互联网,设置端口映射,仅开放若干必要的管理及应用端口。

2  需求分析

随着市场环境的不断变化,呼叫中心要想跟上时代的步伐,就要发展多元化的服务模式。“互联网+”为传统呼叫中心注入了一股澎湃力量。企业和客户的沟通渠道越来越多,语音服务、自助、线上、渠道等服务形式的多元化发展是未来企业的主流选择。针对不同行业的市场环境和客户需求,定制化、更兼容、更安全的平台产品是呼叫行业下一阶段的开发重点。

在日常经营和运维中,我们发现YXT平台满足不了一些场景需求。

场景一:某律师热线,该律师事务所面向华东多个省市,客户要求:用户拨打热线之后,由事务所选择合适的律师,并将他的号码推送给平台,平台根据接收的号码再发起呼叫。客户接口以及推送的应用部署在云主机上。

某房产公司,该公司招聘房产经理,每人分配一个手机号码。由于房产经理流动性很大,每次离职就带走一批购房客户,所以公司希望购房用户通过拨打热线,然后由系统指派房产经理,双方显号都不是实际号码。

场景二:某政府机关,希望通过web请求依次呼叫法官和当事人。呼叫法官时,通过短信方式同时告知当前呼叫的当事人身份。

3  流程方案

针对以上呼叫升级,我们进行平台二次开发,基本实现了2种场景的呼叫需求。限于篇幅,文章仅描述场景二的情况。

项目是有三大模块有序组合,协同完成的。第一部分是WEB请求,主要是接受外部呼叫请求,并进行解码,校验判断等;第二部分是应用程序,该部分程序通过轮询请求表,发现记录,新建外呼job任务;第三部分是IVR语音流程,流程再次读取请求表,根据请求表内容二次呼叫,把呼叫结果回填请求表。

3.1  Web请求

WEB请求API由.net实现,支持GET、POST 2种请求方式,服务器返回的数据为JSON对象。服务接受参数后,先解密,节选代码实例如下

if (HttpContext.Current.Request.Params["udcaller"] != null)

{

v_udcaller = HttpContext.Current.Request. Params["udcaller"];//获取GET POST参数

}

else

{

v_udcaller = "";

}

v_udcaller = DecodeBase64("utf-8", v_udcaller); //Base64解密

参数解密后再调用存储过程,主要实现三个数据的检验:

(1)时间戳校验,用于限制有些误操作,时间明显不对的请求。

(2)帐号密码校验,用于验证用户账号合法性。

(3)帐号对应的语音信箱号检验,用于验证用户业务范围。

校验结束后,通过校验的记录插入待处理表,未通过的记录插入日志表。

网络信息安全存在众多问题[3]。鉴于上述问题,传输参数都加密处理,此处主要用到了2个加密算法:

MD5消息摘要算法(Message Digest Algorithm)是由R.Rivest所设计的。它对输入的任意长度的消息进行运算,产生一个128位的消息摘要。主要用以效验下载文件完整性,用以效验用户敏感信息,如密码、卡号等不可解密的信息。

Base64编码是将二进制数据编码为可显示的字母和数字,用于传送图形、声音和传真等非文本数据。常用于MIME电子邮件格式中。其使用含有64个字符的ASCII字符集(第65个字符为"=",用于对字符串的特殊处理过程),并用6个进制位表示一个可显示字符[4]。

在Web客户端普遍使用的 ASCII 全兼容编码是BASE64[5]。对帐号先MD5校验,再BASE64加密,其他字段内容BASE64加密。

WEB API有以下优点:可重用,不必从零开始;与业务系统隔离;平台无关性;可扩展性强,系统灵活[6]。

3.2  应用程序

数据插入数据库后,并不会主动触发IVR呼叫流程,项目通过平台管理界面新建任务启动呼叫。为了实现流程自动化处理,开发利用网络爬虫技术,网络爬虫是一种计算机自动程序,它能夠自动建立到Web服务器的网络连接,访问服务器上的某个页面或网络资源,获得其内容,并按照页面上的超链接进行更多页面的获取[7]。这样应用程序周期读取待处理表,一旦发现数据就利用爬虫新建任务。

任务参数一共有9个,有主被叫,原主被叫,开始时间,结束时间,最后一个参数为私有数据,本实例填写的私有数据为待处理表的记录ID,传递这个参数,IVR才能读取对应的记录。节选代码实例如下

v_task=String.valueOf(rssql.getDouble("taskid"));//获取记录ID

v_task= v_task.substring(0,v_task.indexOf("."));

v_result=Interface.EAPImportTasks(v_caller, v_called, v_origcaller, v_origcalled, v_begintime1, v_begintime2, v_endtime1, v_endtime2,v_task);//新建任务

//v_caller, v_called, v_origcaller, v_origcalled分别为主叫被叫,原主叫原被叫  v_task为私有数据

if(v_result.indexOf("成功添加一条任务")>0)

{

pstatsql2.setDouble(1, rssql.getDouble("taskid"));

pstatsql2.execute();

}

3.3  IVR流程

IVR(Interactive Voice Respons)交互式语音应答模块,是系统的一个软件模块,对应每一个需要自动服务的呼叫,IVR模块都会派生出一个独立的事务,完成呼叫的业务逻辑。IVR流程是可以由用户自定义的,通过IVRTools编译器,用户可以在脚本编辑环境或者图形化环境中完成流程的编写。脚本流程的语法采用状态机原理,程序员可以定义出多个流程状态,用户在电话中任一时刻都会处于业务逻辑的某个状态当中,同时,在每一个状态内都可以执行某些指定的业务操作,在进行相应的业务操作之后会产生新的事件,新的事件又会使得流程从一个状态迁移到另外一个状态,整个服务过程就是业务不断的在状态之间迁移,IVR不断的指定某些服务动作的过程。节选代码实例如下:

:stGetrecfromDb

[ ASSIGN SR11, "select flowname,udcalled from 待处理表 where  taskid =" ]

[ STRCAT SR11, SR1 ]

[ EXECSQL SR11 ]

Passed ->stWaihuCalled

Failed -> stDefault

TimeOut -> stExit

[ ASSIGN SR2, 区号]

[ STRCAT SR2, FD0 ]

[ ASSIGN SR3, FD1 ]

:stWaihuCalled

[StrLen SR3] //取得字符串abc的长度为3,将长度3存于IR0中。

[ASSIGN IR1,8]

[EQUAL IR0,IR1]

Passed ->stEquals

Failed->stWaihu

:stEquals

[ ASSIGN SR4, SR3 ]

[ ASSIGN SR3, 区号 ]

[ STRCAT SR3, SR4 ]

-> stWaihu

:stWaihu

[makecall200 SR3,SR2,""] //产生一个类似200业务的呼叫

CallTerm(0)->stUpdate0 //成功后更新记录

CallTerm(1)->stUpdate1 //无人接 更新记录

CallTerm(2)->stUpdate2 //被叫市话忙 更新记录

CallTerm(3)->stUpdate3 //被叫长话忙 更新记录

CallTerm(4)->stUpdate4 //拥塞 更新记录

CallTerm(5)->stUpdate5 //空号 更新记录

CallTerm(-1)->stUpdate6//其他情况 更新记录

:stdonothing

[DoNothing]

NeverHappen ->stdonothing

IVR呼叫流程首先根据私有数据读取待处理表对应的记录,判断被叫是否为8位固话,如果是则加区号,如果否则直接外呼,外呼结束后,流程根据不同的呼叫结果进入不同的状态更新日志。这样就完成整个呼叫过程。

4  功能扩展

呼叫中心的web接口具有很多的实用价值:譬如隐私通话、匿名通信,通话双(单)方手机号码不公开,完成号码保护,实现安全通话。即可保护用户隐私,又可以防止信息被抓取及跳单交易。扫码通话,将web服务生成二维码,微信扫码即可直接拨打。这样同样可以保护客户隐私,也便于主叫方快速呼出电话,避免误拨。

5  结束语

对于通信服务提供商(CSP),API是为客户提供可靠,灵活和可扩展的语音和消息传递解决方案。现在使用API将有助于获取竞争优势,进而又会为企业客户提供先进的功能和持久的积极影响,这些影响可以直接与收入增长和最终客户满意度挂钩。

项目完成了业务需求的内容,如果进一步研究可以向以下方面发展:(1)呼叫中心平台向应用提供统一的服务接口,无论应用请求的数据是存储在哪个数据中心节点中,向应用提供的接口都是一致  的[8]。这样语音平台所有的对外服务都重新设计,改写为统一标准的WEB API,Web平台相当于业务网关。(2)由于访问量、业务量以及数据量的迅猛增加,使信息系统的核心部分的计算能力和处理能力面临着前所未有的巨大挑战,单一设备无法对增加的运算量进行有效的处理。因此,必须采用若干服务器相互配合工作的策略,从而大幅度增强信息系统的计算能力和处理能力,以完全满足业务量对系统提出的需求[9]。随着业务量的增加,WEB接口要考虑负载均衡。(3)实现功能仅是第一步,還需要进一步完善业务系统,对呼叫计件计量。根据呼叫中心的业务的需求,建立一个呼叫中心业务管理系统,此系统是一个统一的呼叫中心管理平台,使之能够适应新型呼叫中心业务的管理需求,并使之有很好的可维护性和可扩展性[10]。

参考文献

[1] 张征, 李漪, 高原. 程控交换网络技术及智能云交换技术综述和展望[J]. 软件, 2015, 36(6): 88-91.

[2] 卫振林, 纪寿文, 黄爱玲. 物流信息技术与装备[M]. 北京:中国物资出版社.2010.

[3] 苏奎, 张彦超, 董默. 一种计算机安全评价系统设计[J]. 软件, 2015, 36(4): 119-122.

[4] 段刚. 加密与解密第三版[M]. 北京:电子工业出版社, 2008.

[5] 王芳, 白宇. 基于JavaScript 的轻量化BASE64 编码及解码算法[J]. 软件, 2015, 36(4): 24-27.

[6] 陈玉亮, 薛燕平. 基于Web Service 的数字档案资源集成研究与实现[J].软件, 2015, 36(9): 39-41.

[7] 曾剑平.互联网大数据处理技术与应用[M]. 2017北京: 清华大学出版社 , 2017.

[8] 李惠婷. 呼叫中心平台Web服务的设计与实现[D]. 硕士, 北京邮电大学, 2017.

[9] 周博. WEB服务器负载均衡系统设计与实现[D]. 硕士, 电子科技大学, 2014.

[10] 郭晋舟 詹舒波. 呼叫中心业务管理系统的研究与设计[J].软件, 2016, 37(02): 54-57.