人工监听和接管(3.02版本开始支持)
就是坐席可以监听机器人和客户对话,通过按DTMF*,可以直接接管机器人直接和客户对话。
监听
{“action”:”eavesdrop”,”flowdata”:{“flowtype”:”default”},”params”:{“dialstring”:”user/1001”},”after_action”:”playback”,”after_ignore_error”:true,”after_params”:{“prompt”:”开始呼叫分机实施监听,机器人流程可以继续执行”}}
action:eavesdrop,params.dialstring:这个是一个拨号串,分机例子:user/1000,外线例子:sofia/external/电话号码@vosip
系统会呼叫这个电话,电话接通后,就处于监听模式,听到机器人和用户对话。
是否已经开始监听成功,没有事件通知,如果需要知道是否监听成功,请使用sip.js,sipml5,或者sip客户端,接到电话去反馈结果。
接管
在监听模式,按DTMF *,就进入接管模式。
{“calleeid”:”8888”,”callerid”:”1000”,”callid”:”f01c16f1-0096-490e-80fa-7d32812580b6”,”duration”:56,”errorcode”:0,”flowdata”:{“flowtype”:”default”},”flowid”:””,”hangup”:false,”lag”:false,”notify”:”bridge_notify”,”origcallerid”:”1000”}
进入接管模式 ,会发送”notify”:”bridge_notify”通知,直接返回 action:noop就可以了。这时停止了ASR识别和机器人放音,直到电话挂断,发送 action:levea, 注意进入接管模式不能返回机器人对话的。
流接口支持(3.0版本开始支持)
流接口是VAD检测到开始说话就把语音流直接提交到 ASR 进行实时识别,这样识别速度比HTTP接口更实时。流接和http接口asrprogressnotify 、asrmessagenotify 通知参数有些差异,本文档将描述这些差异。
启用流接口
start_asr的asrconfigurefilename参数设置为 stream:127.0.0.1:9988,就可以了,格式是 stream:流识别代理服务器IP:端口。
流接口不支持男女识别,start_asr的volume 参数不会使用。
asrprogress_notify (流接口 每说1-2个字 就会发出 asrprogress_notify 通知。)
{“asrtype”:”stream”,”calleeid”:”8888”,”callerid”:”1000”,”callid”:”2df6b327-a8ef-416d-9504-721c5d71ce35”,”duration”:15,”errorcode”:0,”flowdata”:null,”flowid”:””,”hangup”:false,”message”:”你”,notify”:”asrprogress_notify”,”origcallerid”:”1000”,”playms”:0}
{“asrtype”:”stream”,”calleeid”:”8888”,”callerid”:”1000”,”callid”:”2df6b327-a8ef-416d-9504-721c5d71ce35”,”duration”:15,”errorcode”:0,”flowdata”:null,”flowid”:””,”hangup”:false,”message”:”你好”,notify”:”asrprogress_notify”,”origcallerid”:”1000”,”playms”:0}
比http接口 少了以下参数。
asrtextall
asrelapse
errorcode
volumegain
recordms
recordindex
recordfile
gender
- 录音文件http接口是 asrprogressnotify 通知的时候生成录音文件。流接口是 asrmessagenotify 通知的时候生成录音文件。
- 识别结果,http接口是一段话通知一次识别结果,流接口是1-2个字通知一次识别结果。