通话质检

实时质检

原理:通过ASR接口(依赖cti_asr接口),识别出实时识别说话内容,然后和关键词匹配执行挂机等动作。支持群集,配置和记录都存储到REDIS。

使用实例

<action application="export" data="execute_on_answer_qc=cti_qc_session:t1|group2"/>
<action application="export" data="execute_on_answer_asr=cti_detect_speech_session:^^|127.0.0.1:9988|2|150|800|3|0.5|5000|1000000|''|''|0|''|1"/>
<action application="bridge" data="sofia/external/callin@180.76.224.191:35580"/>

redis 配置说明

cti_rt_call_qc_keyword [哈希表] 配置实时质检关键词和对应的动作,关键词支持正则表达式。

  1. key 组名
  2. value 具体关键词JSON格式

    {
    "脏话": {
    "keyword": ["他妈的", "去死吧","regex:.*操.*妈.*"],
    "command": "uuid_kill",
    "params": ""
    },
    "自定义分类": {
    "keyword": ["公账", "高新"],
    "command": "uuid_sendmessage",
    "params": ""
    }
    }
    • keyword 关键词列表,如果正则表达式用前缀“regex:”。
    • command 匹配到关键词执行的API,可以执行挂机,发送通知等命令。
    • params API参数,参数前面会自动加上UUID。

cti_rt_call_qc_keyword 改变通知

config@all [通道]

{
"type":"config_change",
"table":"cti_rt_call_qc_keyword",
"key":"t1"
}

cti_rt_call_qc_hit [列表] 匹配成功记录

{
"uuid":"uuid",
"speak_start": "说话开始时间,接通开始计算单位毫秒",
"speak_stop": "说话停止时间,接通开始计算单位毫秒",
"text": "识别到的句子,第一个字符F表示句子,E表示错误,S表示没识别到说话停止就挂掉",
"domian":"cti.conf.xlm配置的domain,用于分别来自那台fs",
"group":"组名,cti_rt_call_qc_keyword的KEY",
"category":"keyword所属的分类",
"keyword": "关键词",
"match":"keyword和text的匹配信息",
"command":"执行命令信息"
}

cti_rt_call_qc_asr [列表] asr结果

{
"uuid":"uuid",
"speak_start": "说话开始时间,接通开始计算单位毫秒",
"speak_stop": "说话停止时间,接通开始计算单位毫秒",
"text": "识别到的句子,第一个字符F表示句子,E表示错误",
"domian":"cti.conf.xlm配置的domain,用于分别来自那台fs",
}

FreeSWITCH 接口说明

APP cti_start_qc(group) 开始实时通话质检

  • group rt_call_qc_keyword配置的组,多个组用|隔开,使用那些组中的关键词。

API uuid_cti_start_qc uuid group 开始实时通话质检

参数和start_qc一样。

API uuid_cti_stop_ac uuid 停止实时通话质检