当前位置: 首页 > news >正文

顶顶通呼叫中心中间件实现随时启动和停止质检(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
)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Spring Boot】关系映射开发(二):一对多映射
  • 【git命令大全】
  • Vue 3 与 TypeScript:最佳实践详解
  • Android ViewPostImeInputStage输入事件处理
  • 【MindSpore学习打卡】应用实践-LLM原理和实践-基于MindSpore实现BERT对话情绪识别
  • 【机器学习】独立成分分析(ICA):解锁信号的隐秘面纱
  • 道路运输企业管理人员安全考核试题(附答案)
  • 如何在工作中开悟?
  • element 如何实现文件上传下载导出
  • 基于QT开发的反射内存小工具
  • OWASP ZAP
  • 低代码研发项目管理流程优化:提效与创新的双重驱动
  • 【Unity2D 2022:UI】制作主菜单
  • 昇思25天学习打卡营第1天|初步了解
  • [Linux][Shell][Shell函数]详细讲解
  • 【Leetcode】101. 对称二叉树
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • HTML-表单
  • Laravel核心解读--Facades
  • vue 配置sass、scss全局变量
  • 翻译:Hystrix - How To Use
  • 服务器之间,相同帐号,实现免密钥登录
  • 浮现式设计
  • 关于for循环的简单归纳
  • 理解在java “”i=i++;”所发生的事情
  • 深度解析利用ES6进行Promise封装总结
  • 深入浏览器事件循环的本质
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 王永庆:技术创新改变教育未来
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 正则与JS中的正则
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • ​低代码平台的核心价值与优势
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #HarmonyOS:基础语法
  • #if 1...#endif
  • #Linux(Source Insight安装及工程建立)
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (2)STL算法之元素计数
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)fgets与fputs函数详解
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (六)Flink 窗口计算
  • (强烈推荐)移动端音视频从零到上手(上)
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (算法)Game
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • .“空心村”成因分析及解决对策122344
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core WebAPI中封装Swagger配置