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

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

说明 智能外呼回调HTTP接口必须和API接口SendCcoSmartCall配合使用,通过SendCcoSmartCall发起呼叫任务,并使用回调接口回传语音文本,并接收业务方指定的下一步动作。

业务流程

使用智能语音交互呼出回调HTTP接口,请参考以下业务流程:

  1. 启用回调接口,设置回调地址。
  2. 通过SendCcoSmartCall接口发起呼叫任务。
  3. 自动调用智能语音交互呼出回调HTTP接口,接收通话过程中用户语音实时转写的文本消息。
  4. 业务方把下一步的执行动作返回给智能联络中心。

启用回调接口

  1. 登录智能联络中心控制台
  2. 在左侧导航栏中单击通用设置
  3. 订阅回执消息页签中找到智能语音交互回调地址
  4. 单击开启功能开关。
  5. 根据页面提示设置响应信息。
  6. 填写接收地址。

    此处填写的接收地址是固定接收地址,用于接收语音实时转文本结果并返回下一步执行动作。

    回调

    地址示例:http://push.example.com/contextpath/receive.do。

  7. 单击保存

回调接口规范

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

请求样例

http://127.0.0.1/test?call_id=100001616500^100001871490&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_id String 必须 123^321 这通呼叫的唯一ID
timestamp Long 必须 1504174341229 当前时间戳
content_type String 必须 normal 消息类型,包括:
  • normal:标准
  • mute:静音
  • timebreak:按时长打断消息
  • dtmf:按键消息
  • parallel_transfer:并行转接状态
content JSON 必须 {“role”: “B”,”identity”: “id2”,”words”: “你好”,”begin_offset”: “1000”,”end_offset”: “9000”,”begin_time”: “2017-06-01 10:00:00”} 具体的语音内容,JSON格式。详细说明请参考下表
  • content_type为normal时,content参数说明:
    名称 格式 是否必填 示例 说明
    role String 必须 B 对话内容角色
    identity Long 必须 id2 对话角色的具体身份标识
    words String 必须 你好 这个角色说的一句话
    begin_offset String 必须 6000000 相对本次会话起始点的开始时间偏移时间,单位为毫秒
    end_offset String 必须 7000000 相对本次会话起始点的结束时间偏移,单位为毫秒
    begin_time String 必须 7000000 通话开始时间,单位为秒
    is_playing String 可选 true 是否正在播放语音
    current_media_code String 可选 xxxx.wav 当前播放的语音文件,当值为early_media 时,表示为早媒体消息(电话接通前的响铃音效)
    dynamic_id String 可选 abcdefgh 预留给调用方使用的动态扩展id,在下次回调地址中带回,用于客户的开发标识需要
    record_begin_time Long 可选 1543856399000 录音开始时间
    asr_begin_time String 可选 1543856399000 用户开始说话时间。Unix时间戳格式,单位为毫秒
    asr_end_time String 可选 1543856399000 用户结束说话时间。Unix时间戳格式,单位为毫秒
    play_begin_time String 可选 1543856399000 服务器开始放音时间。Unix时间戳格式,单位为毫秒
    play_end_time String 可选 1543856399000 服务器放音结束时间。Unix时间戳格式,单位为毫秒。如果播放未结束,则为0
  • content_type为mute时,content参数说明:
    名称 格式 是否必填 示例 说明
    dynamic_id String 可选 abcdefgh 预留给调用方使用的动态扩展id,在下次回调地址中带回,表示客户的开发标识
  • content_type为dtmf时,content参数说明:
    名称 格式 是否必填 示例 说明
    dynamic_id String 可选 abcdefgh 预留给调用方使用的动态扩展id,在下次回调地址中带回,用于客户的开发标识需要
    dtmf_digits String 可选 1 context_type为dtmf时的特有字段,代表用户的按键返回,如果用户超时未返回按键,则返回noInputTimeout字符串
  • content_type为timebreak时,content参数说明:
    名称 格式 是否必填 示例 说明
    current_media_code String 可选 xxxx.wav 当前播放的语音文件
    asr_begin_time String 可选 1543856399000 用户开始说话时间。Unix时间戳格式,单位为毫秒
    play_begin_time String 可选 1543856399000 服务器开始放音时间。Unix时间戳格式,单位为毫秒
    dynamic_id String 可选 abcdefgh 预留给调用方使用的动态扩展id,在下次回调地址中带回,用于客户的开发标识需要
  • content_type为parallel_transfer时,content参数说明:
    名称 格式 是否必填 示例 说明
    dynamic_id String 可选 abcdefgh 预留给调用方使用的动态扩展id,在下次回调地址中带回,用于客户的开发标识需要
    transfer_status String 可选 success\fail 并行转接状态,是否成功
    fail_cause String 可选 transfer fail. 转接失败原因
    is_monitor Boolean 可选 true 呼叫中心并行转接成功后是否监控
    cc_name String 可选 aliyun_cc 并行转接成功后呼叫中心名称

返回参数

名称 格式 是否必填 示例 说明
call_id String 必须 B 这通呼叫的唯一ID
action String 必须 play 下一步的动作:
  • play:播放下一段语音
  • break:打断当前正在播放的语音
  • continue:继续播放当前语音
  • hangup:挂机
  • transfer:转接
  • donothing:不做任何处理
  • dtmf:接收dtmf消息
  • parallel_transfer:并行转接命令
  • parallel_bridge:并行桥接命令
    说明 当请求参数is_monitor为true时,请勿使用parallel_bridge命令。
action_break Boolean 可选 true 当前动作是否可以打断,默认是true,可打断
action_code String 必须 abc.wav,def.wav,$name$ 播放的语音文件code,支持多文件播放,多个文件使用英文逗号(,)分隔,支持tts参数,使用$
action_code_break Boolean 可选 true 返回的媒体文件是否可以打断,默认是true,可打断;action_break和action_code_break,action_code_break优先级更高
mute_time Integer 可选 10000 静音时长,单位为毫秒。取值范围为1000~20000,超过这个范围默认10000
dynamic_id String 可选 abc 预留给调用方使用的动态扩展id,在下次回调地址中带回,用于客户的开发标识需要
action_code_param String 可选 {“name”:”喂,你好”} tts参数,json格式,key和action_code对应
number String 可选 13711111111 转接手机号码,action设为transfer时有效
action_code_time_break Integer 可选 120 基于用户持续说话时长打断,单位为毫秒。在ationCodeBreak为true时并且取值大于0时生效
dtmf_noin_overtime Integer 可选 3 dtmf命令时的特有字段,表示无输入超时时间,默认值3s。取值范围为3s~60s。
dtmf_max_numbers Integer 可选 5 dtmf命令时的特有字段,表示最大收号长度,取值范围为1~50。
dtmf_end_character String 可选 # dtmf命令时的特有字段,表示收号停止符号,只支持 * #,支持空
transfer_playfile String 可选 # 并行转接成功后给坐席播放音频文件
is_monitor Boolean 可选 true 呼叫中心并行转接成功后是否监控
cc_name String 可选 aliyun_cc 并行转接成功后呼叫中心名称。对接智能联络中心坐席请用:aliaiccs_cc

返回示例

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