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

文章目录

  • 前言
  • 联系我们
  • 拨号方案
  • 启动停止ASR
    • 执行FreeSWITCH 命令接口
    • 启动ASR接口
    • 停止ASR接口
  • 通知配置
    • cti.json配置
    • 质检结果写入数据库


前言

顶顶通呼叫中心中间件的实时质检功能是由两个模块组成:mod_asrmod_qc

  • mod_asr:负责调用ASR将用户们在通话时说的话转换成文本模式。
  • mod_qc:负责将识别出的文本进行质检,如果命中了质检词库,中间件会执行相应的动作,如:挂断、播放警告音等。

那么就可以对通话全程开启质检,但不启动ASR,在有需要的时候通过http接口启动ASR,这样就可以实现随时启动和停止实时质检。


联系我们

有意向了解呼叫中心中间件的用户,可以点击该链接添加工作人员的微信:顶顶通小何

提示:以下是本篇文章正文内容,下面案例可供参考

拨号方案

  • 创建新的拨号方案,名称:随时质检
<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"/>

!](https://i-blog.csdnimg.cn/direct/5e6455d5cb5a40a6a997598fdfd28e3d.png)

  • 呼叫路由:internal启用拨号方案:随时质检。如果是呼叫手机,将该拨号方案移动到呼叫外线的上方:
    在这里插入图片描述

启动停止ASR

当用户通过分机呼叫手机后,质检功能已经启动了,由于没有启动ASR功能,无法对通话进行质检。当用户想要对通话质检时,可以通过http接口去启动和停止ASR,从而实现随时启动和停止质检。

执行FreeSWITCH 命令接口

用法:/api?token=${token}&action=FsTerminal

{
"cmd":"fs_api",
"commandline":"FreeSWITCH 命令"
}

启动ASR接口

在调用ASR的接口前,需要获取到操作通道的UUID。通过操作通道UUID来启动主被叫的ASR。

  • API
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
uuid_cti_stop_detect_speech UUID

在这里插入图片描述

通知配置

通知配置的具体用法可参考此链接:实时质检通知配置

cti.json配置

配置到cti.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 配置上记录的表名,就会把质检结果记录到数据库。

表结构如下:

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
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/374447.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二、Qemu+Vscode调试内核

编译内核、busybox、配置Qemu参考&#xff1a;Qemu调试内核 一、修改启动脚本 1、修改Qemu启动脚本 #! /bin/shqemu-system-aarch64 \-machine virt,virtualizationtrue,gic-version3 \-nographic \-m size1024M \-cpu cortex-a72 \-smp 2 \-kernel Image \-drive formatraw…

写作遇到AI痕迹困扰?这里有降低AI痕迹的实用技巧

请问有没有什么免费的论文降重网站&#xff1f; 副本 一句“知网是什么”&#xff0c;我查重查了千百遍。天临六年五月&#xff0c;大家的论文差不多都到了查重的阶段。好不容易论文写&#xff08;shui&#xff09;完了&#xff0c;一看查重报告&#xff0c;满屏的红字让人心心…

Linux--线程ID封装管理原生线程

目录 1.线程的tid&#xff08;本质是线程属性集合的起始虚拟地址&#xff09; 1.1pthread库中线程的tid是什么&#xff1f; 1.2理解库 1.3phtread库中做了什么&#xff1f; 1.4线程的tid&#xff0c;和内核中的lwp 1.5线程的局部存储 2.封装管理原生线程库 1.线程的tid…

java设计模式(十五)命令模式(Command Pattern)

1、模式介绍&#xff1a; 命令模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c;其主要目的是将请求封装成一个对象&#xff0c;从而允许使用不同的请求、队列或者日志来参数化其他对象。这种模式使得命令的请求者和实现者解耦。 2、应用场景&…

服务启动何时触发 Nacos 的注册流程?

前言&#xff1a; 前面的系列文章让我们对 Nacos 有了一个基本了解&#xff0c;并知道了如何去试用 Nacos 作为注册中心和配置中心&#xff0c;本篇我们将从源码层面去分析 Nacos 的服务注册流程。 Nacos 系列文章传送门&#xff1a; Nacos 初步认识和 Nacos 部署细节 Naco…

C++基础学习笔记

1.命名空间(namespace) 1.什么是命名空间&命名空间的作用 1.在C/C中&#xff0c;变量、函数、类都是大量存在的&#xff0c;这些变量等的名称将都存在于全局作用域中&#xff0c;就会导致很多的命名冲突等。使用命名空间的目的就是对标识符的名称进行本地化&#xff0c;以…

短视频矩阵系统全解析:让获客变得更简单

随着数字媒体的迅猛发展&#xff0c;短视频已成为人们生活中不可或缺的一部分。对于企业而言&#xff0c;如何有效利用短视频平台吸引目标用户&#xff0c;实现高效获客&#xff0c;成为了一个亟待解决的问题。本文将全面解析短视频矩阵系统&#xff0c;带您领略其独特魅力&…

广度优先(BFS)

先看一道简单的题&#xff0c;迷宫问题&#xff1a; 洛谷P1746 离开中山路&#xff1a;P1746 离开中山路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<iostream> #include<cstring> #include<queue> #include <utility> #define N 1002 …

深度学习的数学PDF

链接: https://pan.baidu.com/s/1_jScZ7dcyAWGqbrad6bbCQ?pwd9gj9 提取码: 9gj9 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦

最简单的vue3组件之间传值

localStorage 是 HTML5 引入的一个 Web Storage API 的一部分&#xff0c;它允许网页在用户的浏览器上存储数据。localStorage 提供了一种持久化的本地存储方案&#xff0c;数据不会因为浏览器关闭而丢失&#xff0c;除非用户或脚本显式地删除它们。 localStorage 是一种非常实…

VSCode神仙插件——通义灵码 (AI编程助手)

1、安装&登录插件 安装时,右下角会有弹窗,让你登录该软件 同意登录后,会跳转浏览器页面 VSCode右下角出现如下图标即登录成功 2、使用 (1)点击左侧栏中的如下图标,打开通义灵码,可以进行智能问答 (2) 选中代码,右键 但是,上述所有的操作会在左侧问答栏中提供答案,并无法直…

认识并理解webSocket

今天逛牛客&#xff0c;看到有大佬分享说前端面试的时候遇到了关于webSocket的问题&#xff0c;一看自己都没见过这个知识点&#xff0c;赶紧学习一下&#xff0c;在此记录&#xff01; WebSocket 是一种网络通信协议&#xff0c;提供了全双工通信渠道&#xff0c;即客户端和服…

31. 1049. 最后一块石头的重量 II, 494.目标和,474.一和零

class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum 0;for(int stone : stones) sum stone;int bagSize sum /2;vector<int> dp(bagSize 1, 0);for(int i 0; i < stones.size(); i){ //遍历物品for(int j bagSize; j >…

LLMs的基本组成:向量、Tokens和嵌入

编者按&#xff1a;随着人工智能技术的不断发展&#xff0c;大模型&#xff08;语言、视觉&#xff0c;或多模态模型&#xff09;已成为当今AI应用的核心组成部分。这些模型具有处理和理解自然语言等模态输入的能力&#xff0c;推动了诸如聊天机器人、智能助手、自动文本生成等…

Android初学者书籍推荐

书单 1.《Android应用开发项目式教程》&#xff0c;机械工业出版社&#xff0c;2024年出版2.《第一行代码Android》第二版3.《第一行代码Android》第三版4.《疯狂Android讲义》第四版5.《Android移动应用基础教程&#xff08;Android Studio 第2版&#xff09;》 从学安卓到用安…

Node.js如何在Windows安装?

文章目录 主要特点&#xff1a;使用场景&#xff1a;安装方法验证是否安装成功 Node.js 是一个开源、跨平台的JavaScript运行环境&#xff0c;由Ryan Dahl于2009年创建。它允许开发者在服务器端运行JavaScript代码。Node.js 基于Chrome V8 JavaScript引擎构建&#xff0c;其设计…

项目/代码规范与Apifox介绍使用

目录 目录 一、项目规范&#xff1a; &#xff08;一&#xff09;项目结构&#xff1a; &#xff08;二&#xff09;传送的数据对象体 二、代码规范&#xff1a; &#xff08;一&#xff09;数据库命名规范&#xff1a; &#xff08;二&#xff09;注释规范&#xff1a; …

关于CANNM PassiveMode

Passive Mode的要求 根据上图CANNM的规范可知&#xff1a; 处于Passive Mode的网络节点只能接收网络管理PDU&#xff0c;不能发送网络管理PDU。Passive Mode由CanNmPassiveModeEnable参数静态配置。如果一个ECU包含多个节点&#xff0c;那么所有的节点要么都是Passive Mode要么…

GD32F303之CAN通信

1、CAN时钟 GD32F303主时钟频率最大是120Mhz,然后APB1时钟最大是60Mhz,APB2时钟最大是120Mhz,CAN挂载在APB1总线上面 所以一般CAN的时钟频率是60Mhz,这个频率和后面配置波特率有关 2、GD32F303时钟配置 首先我们知道芯片有几个时钟 HXTAL&#xff1a;高速外部时钟&#xff1…

elementui实现复杂表单的实践

简介 文章主要讲述在vue3项目中使用elementui框架实现复杂表单的方式。表单中涉及动态组件的生成、文件上传和富文本编辑器的使用&#xff0c;只会将在实现过程中较复杂的部分进行分享&#xff0c;然后提供一份完整的前端代码。 表单效果演示 基础信息 spu属性 sku详情 关键…