智能联络中心调用SendCcoSmartCallSendCcoSmartCallOperate接口发起外呼后,可以通过智能外呼回调HTTP接口,在通话中把转换后的语音文本回传给业务方,业务方把下一步的执行动作返回给智能联络中心,以此完成机器人与用户通话中的智能语音交互。

业务流程

平台通过HTTP协议实时推送语音转写的文本时,即使用户静音也会发送静音状态作为反馈。在消息的响应中可以设置播放语音、终止播放当前语音、转接人工坐席、挂机等动作指示平台接下来的执行动作。智能语音交互呼出回调HTTP接口的业务流程,请参见智能语音交互呼出

启用回调接口

  1. 登录智能联络中心控制台
  2. 在左侧导航栏中,选择通用设置 > 回调地址,开启智能语音交互回调地址开关。
  3. 根据页面提示设置响应信息和接收地址。11
    说明 接收地址用于接收语音实时转文本结果并返回下一步执行动作。
  4. 单击保存
  5. 您也可以单击右侧测试按钮,对配置信息进行测试。

回调接口规范

规范说明
接口协议HTTP
方式POST
字符编码格式UTF-8

请求样例

http://127.0.0.1/test?call_id=100001616500^1000018****&timestamp=1504174341229&content_type=normal&content={"role": "B","identity": "id2","words": "你好","begin_offset": "1000","end_offset": "9000","begin_time": "2017-06-01 10:00:00"}

请求参数

参数名称参数类型是否必填示例说明
call_idString必须100001616500^1000018****此次呼叫的唯一ID。
timestampLong必须1504174341229当前时间戳。
content_typeString必须normal消息类型。取值:
  • normal:标准。
  • mute:静音。
  • timebreak:按时长打断消息。
  • dtmf:按键消息。
  • parallel_transfer:并行转接状态。
contentJSON必须{"role": "B","identity": "id2","words": "你好","begin_offset": "1000","end_offset": "9000","begin_time": "2017-06-01 10:00:00"}具体的语音内容,JSON格式。详细说明请参见下表。
  • content_type取值为normal时,content参数说明如下:
    名称格式是否必填示例说明
    roleString必须B对话内容角色。
    identityString必须id2对话角色的具体身份标识。
    wordsString必须你好这个角色说的一句话。
    begin_offsetString必须6000000相对本次会话起始点的开始时间偏移,单位为毫秒。
    end_offsetString必须7000000相对本次会话起始点的结束时间偏移,单位为毫秒。
    begin_timeString必须7000000通话开始时间,单位为毫秒。
    is_playingString可选true是否正在播放语音。
    current_media_codeString可选xxxx.wav当前播放的语音文件,当值为early_media 时,表示为早媒体消息。
    dynamic_idString可选abcdefgh预留给调用方使用的动态扩展ID,在下次回调地址中带回,用于客户的开发标识需要。
    record_begin_timeLong可选1543856399000录音开始时间。
    asr_begin_timeString可选1543856399000用户开始说话时间。Unix时间戳格式,单位为毫秒。
    asr_end_timeString可选1543856399000用户结束说话时间。Unix时间戳格式,单位为毫秒。
    play_begin_timeString可选1543856399000服务器开始放音时间。Unix时间戳格式,单位为毫秒。
    play_end_timeString可选1543856399000服务器放音结束时间。Unix时间戳格式,单位为毫秒。如果播放未结束,则为0。
  • content_type取值为mute时,content参数说明如下:
    名称格式是否必填示例说明
    dynamic_idString可选abcdefgh预留给调用方使用的动态扩展ID,在下次回调地址中带回,用于客户的开发标识需要。
  • content_type取值为dtmf时,content参数说明如下:
    名称格式是否必填示例说明
    dynamic_idString可选abcdefgh预留给调用方使用的动态扩展ID,在下次回调地址中带回,用于客户的开发标识需要。
    dtmf_digitsString可选1context_type为dtmf时的特有字段,代表用户的按键返回,如果用户超时未返回按键,则返回noInputTimeout字符串。
  • content_type取值为timebreak时,content参数说明如下:
    名称格式是否必填示例说明
    current_media_codeString可选xxxx.wav当前播放的语音文件。
    asr_begin_timeString可选1543856399000用户开始说话时间。Unix时间戳格式,单位为毫秒。
    play_begin_timeString可选1543856399000服务器开始放音时间。Unix时间戳格式,单位为毫秒。
    dynamic_idString可选abcdefgh预留给调用方使用的动态扩展id,在下次回调地址中带回,用于客户的开发标识需要。
  • content_type取值为parallel_transfer时,content参数说明如下:
    名称格式是否必填示例说明
    dynamic_idString可选abcdefgh预留给调用方使用的动态扩展ID,在下次回调地址中带回,用于客户的开发标识需要。
    transfer_statusString可选success\fail并行转接状态,是否成功。
    fail_causeString可选transfer fail.转接失败原因。
    is_monitorBoolean可选true呼叫中心并行转接成功后是否监控。
    cc_nameString可选aliyun_cc并行转接成功后呼叫中心名称。

返回示例

以JSON格式为例,返回示例如下:
  • 调用成功:
    {"result": "success","msg": "成功","data": {"call_id": "100001616500^1000018****","action": "play","action_code": "411111"}}
  • 调用失败:
    {"result":"fail","msg":"fail reason", "data":{}}

返回参数

名称格式是否必填示例说明
call_idString必须B此次呼叫的唯一ID。
actionString必须play下一步的动作。取值:
  • play:播放下一段语音。
  • break:打断当前正在播放的语音。
  • continue:继续播放当前语音。
  • hangup:挂机。
  • transfer:转接。
  • donothing:不做任何处理。
  • dtmf:接收dtmf消息。
  • parallel_transfer:并行转接命令。
  • parallel_bridge:并行桥接命令 。
    说明 当请求参数is_monitor为true时,请勿使用parallel_bridge命令。
action_breakBoolean可选true是否打断上一个动作。默认为true,打断。如果上一个动作的action_code_break为false,则无法打断。
action_codeString必须abc.wav,def.wav,$name$播放的语音文件code,支持多文件播放,多个文件使用英文逗号(,)分隔,支持tts参数,使用$
action_code_breakBoolean可选true当前返回的媒体文件是否可以被打断。取值:
  • true(默认值):可被打断。
  • false:即使下一个动作action_break为true,也无法打断当前放音。
说明 action_break和action_code_break,action_code_break优先级更高。
mute_timeInteger可选10000静音时长,单位为毫秒。取值范围为1000~20000,超过此范围默认取值10000。
dynamic_idString可选abc预留给调用方使用的动态扩展id。在下次回调地址中带回,用于客户的开发标识需要。
action_code_paramString可选{"name":"喂,你好"}TTS参数。JSON格式,key和action_code相对应。
numberString可选1370000****转接手机号码。当action设为transfer时有效。
action_code_time_breakInteger可选120基于用户持续说话时长打断,单位为毫秒,如果当前媒体文件actionCodeBreak为true,用户持续说话可以打断当前播放。不设置或者为0,不生效。
dtmf_nonin_overtimeInteger可选3dtmf命令时的特有字段,表示无输入超时时间,默认值3s。取值范围为3s~60s。
dtmf_max_numbersInteger可选5dtmf命令时的特有字段,表示最大收号长度,取值范围为1~50。
dtmf_end_characterString可选#dtmf命令时的特有字段,表示收号停止符号,只支持* #,支持空。
transfer_playfileString可选#并行转接成功后给坐席播放音频文件。
is_monitorBoolean可选true呼叫中心并行转接成功后是否监控。
cc_nameString可选aliyun_cc并行转接成功后呼叫中心名称。