顶顶通呼叫中心中间件实现随时启动和停止质检(mod_cti基于FreeSWITCH)

文章目录


前言

顶顶通呼叫中心中间件的实时质检功能是由两个模块组成:mod_asrmod_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
)
相关推荐
千年死缓17 小时前
gin中间件
中间件·gin
General_G2 天前
FastDDS服务发现之PDP和EDP的收发
数据库·中间件·服务发现·fast dds·rtps
萤火夜3 天前
Linux之信号量
中间件
idealzouhu4 天前
【Canal 中间件】Canal 实现 MySQL 增量数据的异步缓存更新
mysql·缓存·中间件·canal
乄bluefox4 天前
学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)
java·spring boot·中间件·rocketmq
橘色的喵5 天前
Iceoryx2:高性能进程间通信框架(中间件)
中间件·rust·高性能·iceoryx·iceoryx2
栀夏6135 天前
Ceph 学习指南 集群部署【 cephadm 】
中间件·存储
无厌3205 天前
Django-中间件
python·中间件·django
H4_9Y6 天前
linux命令:关键词过滤日志
linux·中间件