顶顶通呼叫中心中间件实现随时启动和停止质检(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
)
相关推荐
qq_2837200514 小时前
LangChain 动态模型中间件实战使用技巧
中间件·langchain·middleware·wrap_model_call
晚风_END1 天前
Linux|操作系统|最新版openzfs编译记录
linux·运维·服务器·数据库·spring·中间件·个人开发
运维全栈笔记3 天前
Linux安装配置Tomcat保姆级教程:从部署到性能调优
linux·服务器·中间件·tomcat·apache·web
许长安4 天前
protobuf 使用详解
c++·经验分享·笔记·中间件
jeCA EURG5 天前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构
许彰午7 天前
CacheSQL:一个面向政务系统的内存缓存数据库中间件
java·数据库·缓存·中间件·面试·开源软件·政务
亿牛云爬虫专家7 天前
Go爬虫进阶:如何优雅地在Colly框架中实现无缝代理切换?
爬虫·中间件·golang·爬虫代理·colly框架·代理切换·api提取
SuperherRo8 天前
服务攻防-中间件安全&Apache&Tomcat&Jetty&Weblogic&AJP协议&反序列化&CVE漏洞
中间件·tomcat·apache·jetty·weblogic
空中海8 天前
第四篇:进阶篇 — 缓存、消息队列、安全与常用中间件
安全·缓存·中间件
逍遥德9 天前
MQTT教程详解-03. 高级知识点
java·物联网·中间件·信息与通信·iot·iotdb