文章目录
前言
顶顶通呼叫中心中间件的实时质检功能是由两个模块组成:mod_asr
和 mod_qc
。
mod_asr
:负责调用ASR将用户们在通话时说的话转换成文本模式。mod_qc
:负责将识别出的文本进行质检,如果命中了质检词库,中间件会执行相应的动作,如:挂断、播放警告音等。
那么就可以对通话全程开启质检,但不启动ASR,在有需要的时候通过http接口启动ASR,这样就可以实现随时启动和停止实时质检。
联系我们
有意向了解呼叫中心中间件的用户,可以点击该链接添加工作人员的微信:顶顶通小何
提示:以下是本篇文章正文内容,下面案例可供参考
拨号方案
- 创建新的拨号方案,名称:
随时质检
。
xml
<action application="set",data="execute_on_answer_qc=cti_qc_session:keywords"/>
<action application="export",data="nolocal:execute_on_answer_qc=cti_qc_session:keywords"/>
- 呼叫路由:
internal
启用拨号方案:随时质检
。如果是呼叫手机,将该拨号方案移动到呼叫外线
的上方:
启动停止ASR
当用户通过分机呼叫手机后,质检功能已经启动了,由于没有启动ASR功能,无法对通话进行质检。当用户想要对通话质检时,可以通过http接口去启动和停止ASR,从而实现随时启动和停止质检。
执行FreeSWITCH 命令接口
用法:/api?token=${token}&action=FsTerminal
json
{
"cmd":"fs_api",
"commandline":"FreeSWITCH 命令"
}
启动ASR接口
在调用ASR的接口前,需要获取到操作通道的UUID。通过操作通道UUID来启动主被叫的ASR。
- API
xml
uuid_cti_start_detect_speech UUID 127.0.0.1:9988 0 150 1000 3 0.2 0 60000 '' '' 0 '' 1
停止ASR接口
在调用ASR的接口前,需要获取到操作通道的UUID。通过操作通道UUID来停止主被叫的ASR。
- API
xml
uuid_cti_stop_detect_speech UUID
通知配置
通知配置的具体用法可参考此链接:实时质检通知配置
cti.json配置
配置到cti.json文件的最后一个"}"
上方:
json
"qc": {
"log": true,
//通知到数据库的配置,不需要通知到数据库可删除该配置,后续配置的数据库表也不用添加。
"database":{
"table":"qc_record"
},
"redis": {
//asr通知,默认一句话说完了才发送通知,如果需要通知识别的中间件结果 需要设置通道变量 qc_push_intermediate_result=true 就可以发送实时的识别结果,注意:中间件结果只支持通道到redis的channel。
"qc_asr": {
"channel": "cti_qc",
"list": "cti_rt_call_qc_asr"
},
//命中关键词通知配置。
"qc_hit": {
"channel": "cti_qc",
"list": "cti_rt_call_qc_hit"
},
//质检启动通知配置。
"qc_start": {
"channel": "cti_qc",
"list": "cti_rt_call_qc_start",
"variables": [ "caller_id_number", "callee_id_number", "direction" ] //该参数可添加所需的字段,在质检开启时将这些字段推送到redis中。默认字段说明:"caller_id_number":主叫,"callee_id_number":被叫, "direction":方向。
},
//质检停止通知配置。
"qc_stop": {
"channel": "cti_qc",
"list": "cti_rt_call_qc_stop"
}
}
}
质检结果写入数据库
cti.json 配置文件里面 qc.database.table 配置上记录的表名,就会把质检结果记录到数据库。
表结构如下:
sql
CREATE TABLE `qc_record` (
`uuid` VARCHAR(50) NOT NULL,
`datetime` DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
`hit` JSON NULL DEFAULT NULL,
`speak` JSON NULL DEFAULT NULL,
`level` TINYINT(3) NULL DEFAULT NULL,
PRIMARY KEY (`uuid`) USING BTREE
)