APP下载

基于Asterisk的呼叫中心弹屏模块设计与实现

2014-12-01涂继辉

长江大学学报(自科版) 2014年25期
关键词:振铃轮询服务端

涂继辉

(长江大学电子信息学院,湖北 荆州434023)

杨彬

(鹤壁职业技术学院电子信息工程学院,河南 鹤壁458030)

呼叫中心系统作为企业与客户沟通的渠道,越来越受到人们的关注和重视。基于Asterisk的呼叫中心系统以其低廉的价格、完善的系统功能和灵活的系统架构,已经成为研究的热点,并广泛的应用于各个行业[1-3]。所谓呼叫中心中的弹屏技术是指当客户打电话给客服人员时,客服人员的计算机上可以弹出CRM系统中用户资料的网页,此功能可以让客服人员快速的了解来电客户信息,或者快速的录入客户信息,这为客服人员更好的服务客户提供了一种重要的帮助。

目前基于Asterisk的弹屏技术主要利用的是推送模式,即后台启动一个进程通过tel net的方式登录Asterisk,然后轮询Asterisk通道模块的状态,如果发现有振铃通道,把该通道的振铃信息写入数据库表中。前台Web页面通过Ajax模式轮询数据库,如果发现数据库有新的振铃记录,就向客服发出弹屏。这种方式不但效率低、可靠性差,也不利于系统的集成。为此,笔者利用Asterisk的模块化的架构思想和URL协议原理,设计了一种新的客户资料弹屏方式。

1 Asterisk

Asterisk是Digiu m公司赞助开源开发的,运行在Linux环境下的软交换解决方案,是为企业通信量身定做的 “媒体交换机”[4-6]。

1.1 支持多种主流的VoIP协议

包括会话初始协议(SIP-Session Initiation Protocol)、H.323(国际电信工业会的一种标准)、IAX(Inter-Asterisk x-Change)、媒体网关控制协议(MGCP-Media Gateway Control Protocol)等其他协议。

1.2 提供完善的PBX功能

Asterisk可以连接普通电话机、IP电话机和软电话等多种不同的电话终端,支持多种主流的IP电话协议的语音网关,提供如语音信箱、会议电话、交互式语音提示和自动电话转接等以前只有昂贵的专业PBX系统才支持的功能。

1.3 提供强大的二次开发功能

Asterisk提供了丰富的底层接口函数和二次开发的框架,用户能很方便在此基础上进行灵活的二次开发,实现极具个性的软交换增值业务功能。

2 基于Asterisk呼叫中心的架构

基于Asterisk的呼叫中心系统的通用架构如图1所示。基于Asterisk开发的呼叫中心系统存放于公网服务器中,通过Web页面进行远程控制。客服人员的网络电话和电脑通过网络接入到呼叫中心系统中,用户方对应的PSTN网络通过IP网关接入到呼叫中心系统。

3 弹屏模块流程

弹屏模块的流程如图2所示。服务端是利用Asterisk的模块化原则开发了1个插件模块嵌入其中,它的核心主要是3个线程:第1个线程接受客户端发过来的信息,得到客户端的座机号码和员工号以及网络的IP地址等;第2个线程通过轮询Asterisk的通道,得到正在振铃的客服号码,利用第1个线程保存的信息向客户端发送正在振铃的客户号码;第3个线程主要防止多次弹屏,由于客户端振铃会持续一段时间,因此线程2在轮询的时候会多次检测到同一个通道振铃,因此需要通过线程3防止线程2对同一个客户端发送多次弹屏消息。

图1 基于Asterisk的呼叫中心系统的通用架构图

图2 弹屏模块的流程图

客户端启动后会首先向服务端发送相关的信息,然后启动线程准备接受服务端发送来的弹屏消息,向CRM的服务器发送URL连接,弹出网页。为了便于客户端集成到各种应用程序中,笔者采用了将应用程序注册为URL协议技术使客户端可以通过URL被启动,这样便于客户端的集成。

4 具体实现

整个弹屏模块分为服务端和客户端2个部分:服务端设计成Asterisk动态模块,自动加载到Asterisk系统中,主要由3个线程进行处理;客户端通过VC开发的托盘小应用程序,通过注册为URL协议的方式启动后隐藏在任务栏中。

4.1 弹屏服务端的实现

Asterisk基于模块化设计,多数模块都可以在运行时通过动态模块加载器加载并初始化,用户可以根据实际需要动态增加相应的模块。弹屏服务端就是嵌入Asterisk中的一个插件,这样不仅和Asterisk有很好的耦合度,而且可以方便监控Asterisk呼叫通道的状态。服务端模块主要由接收客户端注册线程,轮询振铃通道线程和防止多次弹屏线程3个线程组成。

1)接收客户端注册线程 主要是记录登录的客服的位置和属性信息,即记录客服的客户端的IP地址、端口、员工号和分机号。这些信息为后面发送弹屏消息提供了网络位置信息,利用链表对这些信息进行管理。

2)轮询振铃通道线程 主要是轮询Asterisk所有正在通信的通道,当有振铃通道时,利用振铃通道中的被叫用户号码去信息链表查找,查找到后,向客户端发送弹屏消息。

3)防止多次弹屏线程 主要是防止轮询振铃的线程多次对客户端发送弹屏消息,因为正在振铃的通道会保持长时间的振铃状态,因此轮询振铃线程会多次检测到同一个通道的振铃状态,这样会多次向客户端发送同一个弹屏的消息。为了避免这种现象,笔者在轮询线程对客户端发送了弹屏消息后,记录这个通道的标识,每次轮询振铃通道的时候,如果发现已经有了记录通道的标识,说明已经发送过消息,此时不发送消息;如果没有记录,说明还没有发送消息,那么就发送消息。防止多次弹屏线程用记录的通道标识,然后用记录的通道标识在Asterisk中查找,然后判断此通道的状态,如果状态是振铃,那么不作处理;如果此通道为非振铃的状态,删除记录的通道标识。

4.2 弹屏客户端的实现

弹屏的客户端是接收服务端发送的弹屏消息,然后向CRM系统发送消息,弹出客户的Web页面。为了让服务端知道客户端的位置,每次客户端启动时候都会向服务端注册,即报告给服务端客户端的IP地址和端口。为了便于客户端集成到Web浏览器上,笔者采用了将应用程序注册为URL协议技术使客户端可以通过URL被启动。应用程序注册为URL协议技术也称为 “异步可插协议”(Asynchronous Pl uggable Protocols),主要描述如何为一个新的协议开发处理程序,即如何调用另外一个应用程序来处理自定义协议,注册已经存在的应用程序为一个URL协议处理器即可。一旦应用程序被成功地启动,就可以使用命令行参数来重新找回URL来启动它。

实现的URL如图3所示,实现的流程为:实现弹屏客户端应用程序FlashScreen.exe,并记录下exe所在的全路径;开始→运行→输入 “REGEDIT”确定,以启动 “注册表编辑器”;找到HKEY_CLASSES_ROOT节点,右键新建项,输入的协议名Flash Screen Pr otocol;建立如图3所示注册表信息。启动Flash Screen的URL为:Flash Screen://cr mip=CRM的IP地址 &cr mport=CRM的端口&callcenterip=呼叫中心的IP地址 &callcenterport=呼叫中心的端口 &callnu m=客服的分机号&wor ker no=员工的工号 &ser ver queue=员工分机所在的队列号 &;关闭启动Flash Screen的URL为:Flash Screen://close。

图3 弹屏客户端在注册表信息图

4.3 弹屏消息的定义

整个弹屏模块的消息分为2类,分别是客户端向服务端发送的注册消息和服务端向客户端发送的弹屏消息。客户端的注册消息为:

5 测试与分析

测试环境如图4所示,2台PC机和2个固定的IP电话分别对应2个客服,分机号码分别为121和122,座席的工号分别为1001和1002,对应的座席队列是200和201,PC机上装有如图5所示的弹屏客户端,呼叫中心的号码是8000。3个客户的电话号码是6001、6002和6003。当客户6001打呼叫中心号码8000时,系统会提示 “自动服务请按1,人工服务请按2”。然后二次拨号拨 “2”时,进入座席号码121,此时座席121的座机响铃,同时弹出Web页面,上面显示如图6(a)所示出客户6001的相关信息。当客户6002打呼叫中心号码8000时,经过同上的流程,最后弹出的页面如图6(b)所示Web页面。经过测试,证明该模块不仅具有很好的兼容性,而且性能稳定,效率高,能满足呼叫中心的业务需要。

图4 测试环境网络结构图

图5 客户端软件启动示意图

图6 弹屏的结果图

6 结语

基于Asterisk的呼叫中心系统上设计了一种新的客户资料弹屏模块。该模块经过测试不仅具有性能稳定和效率高的特点,而且便于进行系统的集成,充分满足了客服人员对客户资料进行管理和与客户进行良好沟通的需要,使得客服与客户之间的交互更加方便和及时。

[1]赵建涛,郑永静.基于软交换平台Asterisk的电力呼叫中心的设计与实现 [J].电力科学与工程,2007,23(4):59-61.

[2]潘云良,杨观赐,周应权.基于Asterisk与Open VPN的企业集团IP分布式呼叫中心 [J].计算机应用,2010,30(3):756-760.

[3]谭蓉.基于软交换技术的分布式呼叫中心设计和开发 [D].湖南:湖南大学,2012.

[4]汤卓,凡栾杰.基于Asterisk的VoIP解决方案 [J].计算机系统应用,2005(7):79-81,26.

[5]邓国栋,胡越明,自英彩.基于Asterisk的软交换运营平台设计 [J].计算机工程,2007,23(33):145-147.

[6]张毅,詹艳.基于插件的软交换实验系统的研究 [J].计算机工程与设计,2011,6(32):2159-2162.

猜你喜欢

振铃轮询服务端
振铃现象对心电图分析和诊断的影响
CANFD通信信号质量分析和测试方法的研究
基于等概率的ASON业务授权设计∗
灰度极值加权求和图像振铃效应评价算法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
依托站点状态的两级轮询控制系统时延特性分析
利用时间轮询方式操作DDR3实现多模式下数据重排
稳定控制回路振铃现象的消除及其关键参数的选择*
摸清黑客套路防范木马侵入