原文地址 http://www.ddrj.com/callcenter/index.html
顶顶通呼叫中心中间件介绍
顶顶通呼叫中心中间件包含IPPBX、自动外呼、质检、ACD、呼叫路由等呼叫中心功能,也包含电话机器人开发接口(ASR【对接了华为云,腾讯云,科大讯飞,阿里云,捷通华声等,mrcp等语音识别接口】,TTS【支持外呼时预先文字转换成声音和mrcp实时TTS】,VAD【集成噪音人声识别引擎】),话术引擎等ai机器人功能。所有数据都存储redis【话单可以存储到数据库】,支持群集,超大并发,可用于开发呼叫中心系统,智能外呼机器人系统,机器人客服系统。
怎么和业务系统对接
顶顶通呼叫中心中间件配置接口完全使用redis接口,用户可以通过修改redis实现自己的配置界面(用户只需要参考CCAdmin开发一个web配置界面,配置数据写入redis)。
- 比如创建一个外呼任务,只需要往redis的hash表cti_queue_dialer_task插入一个记录,key为任务名,value为任务配置的json数据。
- 比如导入外呼号码,只需要往任务定义的号码表redis的list中push号码列表。
- 通话记录可以配置写入数据库也可以推送到redis的list(类似消息队列),或者redis的订阅发布模式通知到业务程序。
- web发起点击拨号、挂断、监听、转接等坐席工具条功能,通过http接口实现。
- 电话机器人对话控制(NLP)通过http接口对接。
- IVR业务(支持语音输入和按键输入)通过话术引擎对接。
怎么安装配置
- 根据安装文档【程序安装包里】完成系统安装。
- 先看一遍使用指南熟悉基本的操作。
基本电话功能(IPPBX)
- 第一步肯定是对接电话线路,请看线路管理。
- 第二步如果需要配置SIP分机,请看分机配置。
- 第三步配置呼入呼出路由,请看拨号方案。系统默认预设了常见的拨号方案,需要熟悉FreeSWITCH才可以配置的来这个,可以把业务需求发给顶顶通技术支持,由顶顶通技术人员来协助配置。
自动外呼功能
- 队列外呼,导入一批号码顺序或者随机呼叫,从redis的list或者set获取号码外呼,支持群集,多个fs从一个list或者set获取号码外呼,可实现超级大并发外呼系统。请看队列外呼。
- 定时外呼,导入号码的时候设置外呼时间,到了时间才呼叫这个号码,从redis的SortSet获取号码外呼,可用于定时回访,定时通知等指定时间外呼的业务场景。请看定时呼叫。
话务排队
话务自动分配功能(ACD),支持接通前报工号,通话结束满意度调查。比如自动外呼转人工接听,来电坐席组接听,类似10086这样的呼叫中心,就需要话务排队功能。
电话机器人
- 如果需要自己控制对话逻辑,比如自己对接NLP,可以使用http接口,用户说话时cti中间件把ASR识别结果pos到web服务器,web服务器返回放音内容给cti中间件。
- IVR业务,或者根据关键词和正则表达式匹配流程的机器人系统,可以使用话术引擎。
根据意向转人工
- 通过话务排队转人工,通话结束后可以回到机器人对话。
- 伴随转人工,根据意向设置触发通知人工坐席,人工接听前,机器人可以和用户继续对话,人工接通后,可以选择监听还是对话。
实时质检
就是通话过程把双方说话内容进行语音识别,可以根据敏感词挂断电话,或者播放警告音,请看实时质检。
通话记录
比如分机呼叫手机,有2条记录,一个是aleg,一个是bleg。可以把任意通道变量记录到CDR里面,配置在cti.json的cdr里面,详细请看 CDR说明。
通话录音
默认拨号方案就配置了,呼叫路由里面启用即可。
点击拨号 、坐席工具条等
就是通过http接口执行FreeSWITCH的cli命令,分机监听、挂断、转接等操作点这里。点击拨号、放音等操作详细请看 httpcli接口。
监控
查询分机注册和通话状态,通话时间等,顶顶通呼叫中心中间件会把这些状态写入redis,可以直接redis获取到的。可以看分机配置页面和通话记录页面。
打断
使用基于神经网络训练的噪音人声模型,请看VAD。
群集和高可用
- 在大规模的外呼或者呼入系统,比如整个系统需要1万并发,单机最高也就3000-5000并发,这时候就需要多机群集了。顶顶通呼叫中心中间件使用redis数据库,多个FreeSWITCH(mod_cti)连接同一个redis就可以很容易的配置成群集系统。配置方法请看群集方案。
- 高可用,就是一台服务器宕机,系统整体还可以继续使用,通过redis配置哨兵模式集群,就可以实现高可用。mod_cti模块为了更高的性能,内存状态没有同步到redis, 宕机服务器的通话会被挂断,没办法恢复通话,但是不影响新呼叫的通话和系统整体的使用。
和市面上常见产品技术比较
CTI模块 | 市面上常见产品 | |
---|---|---|
和FreeSWITCH交互方式 | 模块 优点:性能最高,直接调用FreeSWITCH API 函数,内存交互,无其他开销。 缺点:只能使用C/C++开发,需要精通FreeSWITCH源代码才可以,门槛高。备注:用户使用我的CTI程序是不需要会C/C++开发的,我已经开发好了。) |
ESL接口或者脚本语言 优点:开发简单,支持各种开发语言。 缺点:大并发下容易卡,ESL接口有网络延时,脚本语言效率底下。 |
和数据库交互方式 | 使用REDIS<br/>优点:性能非常高,1秒内可以处理几万次查询。<br/>缺点:无 | mysql或者其他关系数据库<br/>优点:开发简单,网络上可以找到很多现成代码和例子。<br/>缺点:大并发下查询延时,或者需要配置很强的数据库服务器,成本高。 |
和外部程序交互方式 | Redis发布订阅机制和Redis的LIST消息队列<br/>优点:所以语言都支持redis,开发简单,性能高。<br/>缺点:无 | web接口<br/>优点:适合web开发者使用。<br/>缺点:大并发下web服务器压力高,甚至出现请求超时。 |
和ASR交互方式 | 自带VAD的流接口(支持科大讯飞,阿里云,腾讯云,MRCP)<br/>优点:自带VAD算法,检测到声音才提交ASR识别,可以节省ASR费用。实时识别,可按次或者按分钟计费,支持私有云。<br/>缺点:无。 | 1. 一句话识别<br/>优点:占用并发少。<br/>缺点:大于3秒的句子识别反应慢。<br/>2. MRCP<br/>优点:FreeSWITCH原生支持,不需要额外的开发工作。<br/>缺点:对打断支持不好,不支持VAD,ASR费用高。<br/>3. 不支持VAD的流接口<br/>优点:开发简单,本公司有开源过改实现方式<br/>缺点:没声音时也会调用ASR,ASR费用高。 |
和话术交互方式 | 话术解析引擎<br/>优点:话术流程直接载入内存,不需要调用数据库,处理速度快。<br/>缺点:无 | 话术处理的web接口<br/>优点:开发简单,和开发web程序一样简单。<br/>缺点:话术存放数据库,每次交互都调用web接口和执行SQL查询,大并发需要很多台web服务器和数据库服务器。 |
噪音人声识别 | 神经网络训练的噪音人声模型<br/>防止错误的意向判断<br/>防止噪音打断机器人说话<br/>机器人反应更灵敏<br/>节约ASR费用 | 没这个功能 |