自动外呼——总体结构篇

PS:工作4 年,也曾有过众里寻它千百度的经历。
如今蓦然回首,发现自己虽然经历过很多的开发工作,解决过一些自己曾经困惑的问题。却什么也没留下,如今幡然醒悟,开始了整理之路。
自动外呼是我2013年7月负责的项目,从设计、开发、维护一直到稳定运营,做了差不多半年之久,当时入职仅仅一年多,翻看以前的代码和设计,发现还是有很多能够重构和优化的结构。
这里只是从设计开始介绍当时是怎么把这个项目完成的。
各位看官轻喷。
 
  • 相关需求
由于公司是平台类型的公司,每天都需要很多专门的客服电话通知客户一些需要处理的事项。(客户对于短信表示不能满足及时通信的需求)
公司需要节省大量客服的人力成本(相关的客服人员砍了70%左右,我停止维护此项目的时候,砍了30多个。外呼使用的板卡当时听说是5W,每年维护费用貌似3W左右)。
 
  • 用例设计

外呼系统的用例图。(当时刚画出来自我感觉挺良好的,也不知道怎么想的)
  1. 网站:主要进行手动任务的发布、流程模板的设置以及相关报表展示。
  2. 扫描程序:作为自动任务的发布源,和业务逻辑集成在一起。
  3. 任务管理服务:创建外呼任务、推送流程模板(针对不同业务),以及触发外呼任务的执行。
  4. 执行服务:加载业务流程模板、执行手动/自动任务(扫描和通知两种模式触发执行),依照流程模板的步骤,进行外呼和相关业务的操作。
  5. 呼叫中心服务:和通信板卡绑定的程序,使用板卡本身提供的底层API进行拨号,放音,收号等硬件底层操作。
 
  • 模块设计

由于外呼功能需要同时访问生产环境和办公环境的数据,部署上需要进行隔离,WCF通信是可以的越墙的,数据库就不行了(主要是运维的限制)。
外呼系统从功能以及部署环境上分为两个大模块。
负责外网生产环境外呼任务数据推送,以及相应业务数据更新的外部模块;内网办公环境负责设置任务参数,生成外呼任务以及流转执行任务的内部模块。
 
  1. 外呼系统外部模块:外呼系统的外部模块的主要功能是从业务数据中提取需要外呼的数据,然后与外呼相关业务参数一并组织成外呼参数,通过统一调用自动外呼任务管理服务建立外呼任务,实现电话的拨打。
  2. 外呼系统内部模块:外呼系统内部模块的主要功能是设置外呼任务的执行参数、查看外呼情况,外呼任务管理,外呼任务流转执行,以及与底层板卡通信执行呼出,放音等功能。
  3. 数据库模块:外呼系统的数据库分为外网的外呼外部数据库( ExtranetCallCenter),内网的外呼内部数据库( IntranetCallCenter)、呼叫中心库(CallCenter)。外呼外部数据库的主要作用是存储外呼系统业务相关的参数。外呼内部数据库的主要作用是存储外呼任务本身的数据。呼叫中心库的主要作用是管理组信息和线路信息。
posted @ 2016-03-22 18:58  一只LowCoder  阅读(2449)  评论(0编辑  收藏  举报