FreeSWITCH CTI模块(呼叫中心中间件)

CTI模块

包含PBX、外呼、质检、ACD、路由等高级呼叫中心功能。所有数据都存储redis,支持群集,超大并发。

CTI模块 市面上常见产品
和FreeSWITCH交互方式 模块
优点:性能最高,直接调用FreeSWITCH API 函数,内存交互,无其他开销。
缺点:只能使用C/C++开发,需要精通FreeSWITCH源代码才可以,门槛高。备注:用户使用我的CTI程序是不需要会C/C++开发的,我已经开发好了。
ESL接口或者脚本语言
优点:开发简单,支持各种开发语言。
缺点:大并发下容易卡,ESL接口有网络延时,脚本语言效率底下。
和数据库交互方式 使用REDIS
优点:性能非常高,1秒内可以处理几万次查询。
缺点:无
mysql或者其他关系数据库
优点:开发简单,网络上可以找到很多现成代码和例子。
缺点:大并发下查询延时,或者需要配置很强的数据库服务器,成本高。
和外部程序交互方式 Redis发布订阅机制
优点:所以语言都支持redis,开发简单,性能高。
缺点:无
web接口
优点:适合web开发者使用。
缺点:大并发下web服务器压力高,甚至出现请求超时。
和ASR交互方式 自带VAD的流接口(支持科大讯飞,阿里云,腾讯云,MRCP)
优点:自带VAD算法,检测到声音才提交ASR识别,可以节省ASR费用。实时识别,可按次或者按分钟计费,支持私有云。
缺点:无。
1. 一句话识别
优点:占用并发少。
缺点:大于3秒的句子识别反应慢。
2. MRCP
优点:FreeSWITCH原生支持,不需要额外的开发工作。
缺点:对打断支持不好,不支持VAD,ASR费用高。
3. 不支持VAD的流接口
优点:开发简单,本公司有开源过改实现方式
缺点:没声音时也会调用ASR,ASR费用高。
和话术交互方式 话术解析引擎
优点:话术流程直接载入内存,不需要调用数据库,处理速度快。
缺点:无
话术处理的web接口
优点:开发简单,和开发web程序一样简单。
缺点:话术存放数据库,每次交互都调用web接口和执行SQL查询,大并发需要很多台web服务器和数据库服务器。

客户端配置程序

CCAadmin 是cti模块的客户端配置程序, Windows版本下载地址:http://down.ddrj.com/ccadmin.zip,cti接口完全使用redis接口,用户可以通过修改redis实现自己的配置界面(用户只需要参考CCAdmin开发一个web配置界面,配置数据写入redis)。
main.png

基础配置

配置FreeSWITCH基础信息,配置信息写入REDIS,mod_cti模块直接从redis获取配置信息。

SIP配置

配置SIP端口和各种SIP相关的参数。
sip.png

分机配置

配置分机信息,实时生效。
exten.png

网关配置

配置网关信息。
gateway.png

录音配置

录音文件直接写入REDIS,mod_cti模块自动获取录音文件保存到硬盘。
audiofile.png

拨号方案配置

配置呼入呼出规则,路由信息,实时生效。
dialplan_extension.png

线路

线路管理

可以配置每个线路的并发,呼叫间隔,支持故障自动停用和自动恢复(主叫号码,被叫号码,语音编码等基础功能肯定也是支持的)。线路组支持根据呼叫错误代码和通话时间来配置重拨规则,线路组支持多线路轮询。
line.png

线路组功能

可以把多个线路配置成一个线路组,循环使用,自动跳过故障线路,和根据错误代码设置是否需要重播,这个功能集成到FS拨号串可以例子:originate linegroup/线路组/被叫电话号码 &park , bridge(linegroup/线路组/被叫电话号码)。
line_group.png

外呼

队列外呼

从redis的list获取号码外呼,支持群集,多个fs从一个list获取号码外呼,可实现超级大并发外呼系统。
queuedialer.png

定时外呼

从redis的SortSet获取号码外呼,可用于定时回访,定时通知等指定时间外呼的业务场景。
scheduledialer.png
dialer_test.png

排队

话务自动分配功能(ACD),支持接通前报工号,通话结束满意度调查。
acd.png

质检

实时质检

实时对通话中的双方或者单方进行语音识别,存储识别结果,如果匹配到关键词多,可以执行挂断或者邀请质检员加入监听。

录音质检

利用夜间空闲资源对录音文件进行语音识别。