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

文章目录


前言

顶顶通呼叫中心中间件的实时质检功能是由两个模块组成: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
)
相关推荐
MayBaymax1 天前
MQ 基础概念与架构
java·中间件·架构·java-rocketmq
染指11103 天前
134.Agent-多Agent框架-LangChain多智能体
人工智能·中间件·langchain·agents
code_slave(码畜)3 天前
微服务架构落地:公共中间件层总览——不承载业务,只承载稳定性
spring boot·spring cloud·微服务·中间件·架构
今年下半年5 天前
【Spring Boot】多种存储文件(FastDFS / MinIO / 阿里云 OSS)接入设计说明(附源码)
spring boot·分布式·中间件·简单工厂模式·策略模式
青山木6 天前
秒杀系统设计(二):数据正确性——防超卖、分布式锁与一人一单
分布式·后端·mysql·中间件·架构
Maiko Star6 天前
* LangChain 自定义中间件详解:Hook、装饰器、类与执行顺序
中间件·langchain
katasea7 天前
第05章:信创技术栈选型:服务器、操作系统、数据库、中间件适配对比
服务器·数据库·中间件
yexianglunbai8 天前
中间件(Middleware)详解:概念、作用与实战
java·开发语言·中间件
染指11108 天前
128.Agent-LangChain核心组件-中间件-调用模型的时候
人工智能·windows·中间件·langchain·agent
染指11109 天前
129.Agent-LangChain核心组件-自定义中间件-通过类实现(AgentMiddleware)
人工智能·中间件·langchain·agent·agents