摘 要 为了解决目前基于asterisk呼叫中心的弹屏技术效率不高、集成不方便的问题,本文设计了一种新的客户资料弹屏模块的方法。该弹屏模块不仅稳定性好、效率高,而且容易集成于web平台中。经过测试,该模块相对目前通用弹屏技术性能稳定、可靠性高,能很好的应用于呼叫中心中。
【关键词】asterisk 呼叫中心 弹屏
1 引言
呼叫中心系统作为企业与客户沟通的渠道,越来越受到人们的关注和重视。基于asterisk的呼叫中心系统以其低廉的价格、完善系统的功能和灵活的系统架构,已经成为研究的热点,并广泛的应用于各个行业。所谓呼叫中心中的弹屏技术是指当客户打电话给客服人员时,客服人员的计算机上可以弹出crm系统中用户资料的网页,此功能可以让客服人员快速的了解来电客户信息,或者快速的录入客户信息,这为客服人员更好的服务客户提供了一种重要的帮助。本文利用asterisk的模块化的架构思想和url协议原理,设计了一种新的客户资料弹屏方式,该方式是直接在asterisk中嵌入弹屏的服务端模块,客户端分布在坐席的终端机上,通过url方式启动,这种方式不仅运行效率高、稳定性好,而且还便于集成与各种应用模式中。
2 系统整体设计
2.1 基于asterisk呼叫中心的架构
目前基于asterisk的呼叫中心系统的通用架构如图1所示。基于asterisk开发的呼叫中心系统存放于公网服务器中,通过web页面进行远程控制。客服人员的网络电话和电脑通过网络接入到呼叫中心系统中,用户方对应的pstn网络通过ip网关接入到呼叫中心系统。
2.2 弹屏模块的整体设计
弹屏模块的流程如图2所示。分为两个部分:服务端和客户端。服务端是利用asterisk的模块化原则开发了一个插件模块嵌入其中,它的核心主要是三个线程:第一个线程接受客户端发过来的信息,得到客户端的座机号码和员工号以及网络的ip地址等。第二个线程通过轮询asterisk的通道,得到正在振铃的客服号码,利用第一个线程保存的信息向客户端发送正在振铃的客户号码。第三个线程主要防止多次弹屏,由于客户端振铃会持续一段时间,因此线程2在轮询的时候会多次检测到同一个通道振铃,因此需要通过线程3防止线程2对同一个客户端发送多次弹屏消息。
客户端启动后会首先向服务端发送相关的信息,然后启动线程准备接受服务端发送来的弹屏消息,向crm的服务器发送url连接,弹出网页。为了便于客户端集成到各种应用程序中,本文采用了将应用程序注册为url协议技术使客户端可以通过url被启动,这样便于客户端的集成。
3 具体实现
3.1 弹屏服务端的实现
asterisk基于模块化设计,多数模块都可以在运行时通过动态模块加载器加载并初始化,用户可以根据实际需要动态增加相应的模块。本文的弹屏服务端就是嵌入asterisk中的一个插件,这样不仅和asterisk有很好的耦合度,而且可以方便监控asterisk呼叫通道的状态。服务端模块主要由三个线程组成:接收客户端注册线程,轮询振铃通道线程和防止多次弹屏线程。
接收客户端注册线程主要是记录登录的客服的位置和属性信息,即记录客服的客户端的ip地址、端口、员工号和分机号。这些信息为后面发送弹屏消息提供了网络位置信息,利用链表对这些信息进行管理。
轮询振铃通道线程主要是轮询asterisk所有正在通信的通道,当有振铃通道时,利用振铃通道中的被叫用户号码去信息链表查找,查找到后,向客户端发送弹屏消息。
防止多次弹屏线程主要是防止轮询振铃的线程多次对客户端发送弹屏消息,因为正在振铃的通道会保持长时间的振铃状态,因此轮询振铃线程会多次检测到同一个通道的振铃状态,这样会多次向客户端发送同一个弹屏的消息。为了避免这种现象,本文在轮询线程对客户端发送了弹屏消息后,记录这个通道的标识,每次轮询振铃通道的时候,如果发现已经有了记录通道的标识,说明已经发送过消息,此时不发送消息;如果没有记录次通道表示,说明还没有发送消息,那么就发送消息。防止多次弹屏线程用记录的通道标识,然后用记录的通道标识在asterisk中查找,然后判断此通道的状态,如果状态是振铃,那么不作处理;如果此通道为非振铃的状态,删除记录的通道标识。
3.2 弹屏客户端的实现
弹屏的客户端是接收服务端发送的弹屏消息,然后向crm系统发送消息,弹出客
户的web页面。为了让服务端知道客户端的位置,每次客户端启动时候都会向服务端注册,即报告给服务端客户端的ip地址和端口。为了便于客户端集成到web浏览器上,本文采用了将应用程序注册为url协议技术使客户端可以通过url被启动。应用程序注册为url协议技术也称为“异步可插协议”(asynchronous pluggable protocols),主要描述如何为一个新的协议开发处理程序,即如何调用另外一个应用程序来处理自定义协议,注册已经存在的应用程序为一个url协议处理器即可。一旦应用程序被成功地启动,就可以使用命令行参数来重新找回url来启动它。本文实现的url的流程为:1.实现弹屏客户端应用程序flashscreen.exe,并记录下exe所在的全路径;2.开始->运行->输入“regedit”确定,以启动“注册表编辑器”;3.找到hkey_classes_root节点,右键新建项,输入的协议名flashscreen protocol; 4.建立如图x所示注册表信息。因此,启动flashscreen的url为:flashscreen://crmip=crm的ip地址&crmport=crm的端口&callcenterip=呼叫中心的ip地址&callcenterport=呼叫中心的端口&callnum=客服的分机号&workerno=员工的工号&serverqueue=员工分机所在的队列号&;关闭启动flashscreen的url为:flashscreen://close。
4.3 弹屏消息的定义
整个弹屏模块的消息分为两类,分别是客户端向服务端发送的注册消息和服务端向客户端发送的弹屏消息。客户端的注册消息为:
struct regmsg
{
char callnum[ 16 ] ;// 分机号码
char workerno[ 16 ] ;// 员工号码
};
服务端的弹屏消息为:
struct flashscreenmsg
{
char randomno[ 16 ] ;// 消息随机编码
char calleredid[ 16 ] ;// 客户号码
};
5 结语
本文基于asterisk的呼叫中心系统上设计了一种新的客户资料弹屏模块。该模块经过测试不仅具有性能稳定和效率高的特点,而且便于进行系统的集成,充分满足了客服人员对客户资料进行管理和与客户进行良好沟通的需要,使得客服与客户之间的交互更加方便和及时。
参考文献
[1]赵建涛,郑永静.基于软交换平台asterisk的电力呼叫中心的设计与实现[j].电力科学与程,2007.
[2]潘云良,杨观赐,周应权.基于asterisk与openvpn的企业集团ip分布式呼叫中心[j].计算机应用,2010.
[3]谭蓉.基于软交换技术的分布式呼叫中心设计和开发[d].湖南:湖南大学,2012.
[4]汤卓,凡栾杰.基于asterisk的voip解决方案[j].计算机系统应用,2005,7:79-81,26.
作者单位
1.长江大学电信学院 湖北省荆州市 434023
2.鹤壁职业技术学院电子信息工程学院 河南省鹤壁市 458030