对话交互后接口(inaction=9)
inparams 参数
| 
        参数名称  | 
      
        数据类型  | 
      
        参数位置  | 
      
        必选/可选  | 
      
        描述  | 
     
|---|---|---|---|---|
| 
        call_id  | 
      
        String  | 
      
        body  | 
      
        True  | 
      
        呼叫唯一标志,与userid 取值相同,给流程使用。 不超过64位  | 
     
| 
        call_dst_id  | 
      
        String  | 
      
        body  | 
      
        True  | 
      
        接入标识 1、语音导航场景传入被叫号码; 2、语音外呼问卷场景时为问卷类型id; 3、其他交互场景时传入接入标识。 不超过20位  | 
     
| 
        flow_result_type  | 
      
        String  | 
      
        body  | 
      
        True  | 
      
        结果类型。 
  | 
     
| 
        input  | 
      
        String  | 
      
        body  | 
      
        True  | 
      
        对话交互结果。 
 
 当结果为hangup时,可触发ODFS的拆线响应。 不超过1024位  | 
     
| 
        auth_token  | 
      
        String  | 
      
        body  | 
      
        True  | 
      
        授权信息,取接入控制系统返回的token值。 请参见C3 智能助手平台接口鉴权方式。  | 
     
| 
        recordFileName  | 
      
        String  | 
      
        body  | 
      
        False(支持全流程录音的语音导航场景特有字段)  | 
      
        全流程录音的路径文件名,例如:Y:/record/1/20200421/xxxxxx.wav  | 
     
| 
        inter_idx  | 
      
        String  | 
      
        body  | 
      
        False(语音导航场景特有字段)  | 
      
        交互次数,直接取上一次ODFS返回的inter_idx值即可。  | 
     
| 
        begin_play  | 
      
        String  | 
      
        body  | 
      
        False(语音导航场景特有字段)  | 
      
        放音开始时间  | 
     
| 
        end_play  | 
      
        String  | 
      
        body  | 
      
        False(语音导航场景特有字段)  | 
      
        放音结束时间  | 
     
| 
        result_time  | 
      
        String  | 
      
        body  | 
      
        False(语音导航场景特有字段)  | 
      
        结果产生的时间  | 
     
| 
        inter_no  | 
      
        String  | 
      
        body  | 
      
        False(语音导航场景特有字段)  | 
      
        识别标识  | 
     
| 
        IACmd  | 
      
        String  | 
      
        body  | 
      
        False(语音导航场景特有字段)  | 
      
        智能匹配和智能工单填写专用字段 智能匹配时,只支持值为match 智能工单时,可取值如下: match:请求填单 rematch:当识别的事项分类错误时,重新识别 confirm:当座席点选某字段时,告知odfs该字段已确认  | 
     
| 
        TextSource  | 
      
        String  | 
      
        body  | 
      
        False(语音导航场景特有字段)  | 
      
        当IACmd为match时,用于区分输入文本来自座席还是用户(智能匹配、智能工单相同),值为staff或customer staff:座席 customer:用户 当IACmd为confirm时,传入座席点选的字段名,如:对象二级 当IACmd为rematch时,可不填  | 
     
| 
        feedback  | 
      
        int  | 
      
        body  | 
      
        False  | 
      
        反馈的满意度: 1(满意);0(不满意)  | 
     
| 
        feedbackContent  | 
      
        String  | 
      
        body  | 
      
        False  | 
      
        反馈的不满意原因(如果反馈为满意则为空)  | 
     
| 
        mediaType  | 
      
        String  | 
      
        body  | 
      
        False  | 
      
        媒体类型(文本,音频,视频... 例如:audio,video...)  | 
     
| 
        channelType  | 
      
        String  | 
      
        body  | 
      
        False  | 
      
        渠道类型 
  | 
     
| 
        refeedbackContentcordFileName  | 
      
        String  | 
      
        body  | 
      
        False  | 
      
        录音文件名  | 
     
| 
        call_media_type  | 
      
        String  | 
      
        body  | 
      
        False  | 
      
        呼入ivr的呼叫类型,文本:0 音频:1视频:3  | 
     
ExtParams参数
| 
        参数名称  | 
      
        数据类型  | 
      
        参数位置  | 
      
        必选/可选  | 
      
        描述  | 
     
|---|---|---|---|---|
| 
        transin_data  | 
      
        String  | 
      
        body  | 
      
        False  | 
      
        由接入方跟OIAP约定的随路数据参数,例如IVR传入的数据包参数  | 
     
| 
        release_reason  | 
      
        String  | 
      
        body  | 
      
        False(语音导航场景特有字段)  | 
      
        ivr上报给odfs呼叫拆线的原因码: 0、业务流程正常拆线; 1、系统异常拆线; 2、用户拆线;  | 
     
| 
        queueIndex  | 
      
        String  | 
      
        body  | 
      
        False(查询排队信息场景特有)  | 
      
        查询技能队列的排队位置  | 
     
| 
        agentCount  | 
      
        String  | 
      
        body  | 
      
        False(查询排队信息场景特有)  | 
      
        查询技能队列的在线座席数  | 
     
| 
        estimateTime  | 
      
        String  | 
      
        body  | 
      
        False(查询排队信息场景特有)  | 
      
        查询技能队列的预计等待时间  | 
     
| 
        idleAgentCount  | 
      
        String  | 
      
        body  | 
      
        False(查询排队信息场景特有)  | 
      
        查询技能队列的空闲座席数  | 
     
请求消息样例
{
    "userid": "1528780879-9581",
    "inaction": 9,
    "inparams": {
        "call_id": "1528780879-9581",
        "call_dst_id": "10086", 
        "flow_result_type":"1",
        "input":"帮我查一下我的话费",
        "inter_idx": "1",
        "begin_play": "2018090407:16:24",
        "end_play": "2018090407:16:30",
        "result_time":"2018090407:16:3",
        "inter_no":"0"
    },
   "extparams": {
        "transin_data":"95,22714,0,,1,1,,test_gdj_01005",
        "queueIndex":"2",
        "agentCount":"5"
    }
}
  
  ODFS判断如果 flow_result_type = 1 且 input = (识别结果id值) 时会调用Redis获取转写文本(key=识别结果id值中redis值编号key),获取到的识别文本格式为字符串(非JSON格式)。
Lua脚本获取Redis结果示例代码如下,示例中代码key值为“msg”字符串。

ODFS接收到inaction为8/9/11的请求后,根据TUC的配置,都可能返回几种不同的响应,即outaction=9/10/11/12,以下分别描述:
| 
       参数名称  | 
     
       数据类型  | 
     
       参数位置  | 
     
       必选/可选  | 
     
       描述  | 
    
|---|---|---|---|---|
| 
       call_id  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       呼叫唯一标志,与userid 取值相同,给流程使用。  | 
    
| 
       prompt_type  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       交互类型。 
 
  | 
    
| 
       prompt_wav  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       当prompt_type=0,4,5 时填播放或录音的文件全路径名(必须保证为UAP可读取的路径); 当prompt_type=1 时填语音文件名(不包含路径头,播放时由IVR拼接路径头)  | 
    
| 
       prompt_text  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       TTS动态文本内容/文字对话内容, 当prompt_type为2,3,6,7时必填  | 
    
| 
       language  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       语种id(TTS放音以及ASR识别必须传) 0:中文 1:英文  | 
    
| 
       inter_idx  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       ODFS侧记录的与用户连续交互的次数。  | 
    
| 
       model_type  | 
     
       String  | 
     
       body  | 
     
       O(语音导航场景特有字段)  | 
     
       模板类型,由7位数字组成,前三位分别代表放音\识别\按键的支持情况:  | 
    
| 
       timeout  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       放音超时时长(秒),放音结束后等待输入超时时间。  | 
    
| 
       tone  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       当prompt_type=4 录音时必传 true:录音开始前播放“嘀”音 false:录音开始前不播放“嘀”音  | 
    
| 
       vendor  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       ASR语音识别扩展参数  | 
    
| 
       grammar  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       ASR语法文件名(包含路径和后缀)  | 
    
| 
       question_id  | 
     
       String  | 
     
       body  | 
     
       False(语音外呼问卷场景特有字段)  | 
     
       问题序号(外呼场景使用),如Q1,Q2;(废弃)  | 
    
| 
       question_name  | 
     
       String  | 
     
       body  | 
     
       False(语音外呼问卷场景特有字段)  | 
     
       问题名称(外呼场景使用) (废弃)  | 
    
| 
       answer_id  | 
     
       String  | 
     
       body  | 
     
       False(语音外呼问卷场景特有字段)  | 
     
       问题答案(外呼场景使用), 
 如问题设定非“是”“否”这种答案,则需要以实际约定配置的结果为准 (废弃)  | 
    
| 
       flowRecordFlag  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       是否需要录音标志。 
  | 
    
| 
       flowRecordPath  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       需要录音时返回录音文件的路径。  | 
    
| 
       ttsGroupId  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       TTS服务器在Uap上配置的GroupId  | 
    
| 
       ttsSoundEffect  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       TTS声效 男生朗读:0 女生朗读:1;  | 
    
| 
       ttsSoundSpeed  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       TTS音速: 低速朗读:0; 中速朗读:1; 高速朗读:8  | 
    
| 
       ttsMRCPVendor  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       TTS扩展参数,即它的mrcp vendor参数,当前最大长度40  | 
    
| 
       asrMRCPId  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       ASR服务器在Uap上配置的MRCPId  | 
    
| 
       asrSlotName  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       解析ASR识别槽位使用的关键字  | 
    
| 
       asrRecognizeType  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       ASR识别类型 普通识别:0; 智能识别:1  | 
    
| 
       asrNoInputTimeout  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       用户无话超时时长,默认100,单位s  | 
    
| 
       asrRecognitionTimeout  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       识别结果超时时长,默认200,单位s  | 
    
| 
       asrSpeechCompleteTimeout  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       用户停顿超时长,默认500,单位s  | 
    
| 
       responseSource  | 
     
       int  | 
     
       body  | 
     
       False  | 
     
       回复来自机器人还是静默座席,机器人--0,静默座席--1  | 
    
| 
       specialRecognize  | 
     
       int  | 
     
       body  | 
     
       False  | 
     
       是否使用抓包录制的识别 原始识别--0,抓包录制识别--1  | 
    
Prompt_text格式说明【for 智能信息匹配业务】
| 
       参数名称  | 
     
       数据类型  | 
     
       参数位置  | 
     
       必选/可选  | 
     
       Value描述  | 
     
       来源  | 
    
|---|---|---|---|---|---|
| 
       sentiment_analysis  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       情绪检测类型: negative, positive, neutrality  | 
     
       TUC实时质检  | 
    
| 
       sentiment_analysis_score  | 
     
       Integer  | 
     
       body  | 
     
       False  | 
     
       情绪检测得分 0-100  | 
     
       TUC实时质检  | 
    
| 
       role  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       用户类型 座席:staff 用户:customer 其他:空字符串  | 
     
       TUC实时质检  | 
    
| 
       sensitive_word  | 
     
       Json Object  | 
     
       body  | 
     
       O  | 
     
       敏感词的提醒信息 {"违禁语":["密码"]}  | 
     
       TUC敏感词配置  | 
    
| 
       Intend  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       客户意图 说明文本  | 
     
       TUC意图  | 
    
| 
       recomand_KP  | 
     
       List  | 
     
       body  | 
     
       False  | 
     
       推荐知识点信息  | 
     
       业务知识库  | 
    
| 
       call_script  | 
     
       Json String  | 
     
       body  | 
     
       True  | 
     
       话术推荐 说明: intentcode是TUC意图码,允许为空intentDsp是意图描述,不能为空 { {intentcode:“”, intentDsp:“”,"status":"",childintent[{intentcode:“”, intentDsp:“”,"status":""},{intentcode:“”, intentDsp:“”, "status":""}…]} { intentcode:“”, intentDsp:“”, "status":""} }  | 
     
       ODFS资源模板配置  | 
    
| 
       call_script_matchedstep  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       意图码 对应上述call_script中的意图码 表示话术进展(被匹配的步骤)  | 
     
       TUC意图  | 
    
Prompt_text格式说明【for 智能工单填写业务】
| 
       参数名称  | 
     
       数据类型  | 
     
       参数位置  | 
     
       必选/可选  | 
     
       描述  | 
     
       使用方法  | 
    
|---|---|---|---|---|---|
| 
       beginIndex  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       实体在文本中的开始索引位置  | 
     
       实体在文本中的开始索引位置  | 
    
| 
       endIndex  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       实体在文本中的结束索引位置  | 
     
       实体在文本中的结束索引位置  | 
    
| 
       type  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       抽取的实体类型  | 
     
       用于标注此实体的识别类型,不需要填入表单  | 
    
| 
       entity  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       实体内容,已做规则化  | 
     
       用于填入表单对应字段  | 
    
| 
       tag  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       表单中待填写的字段名  | 
     
       如:对象二级  | 
    
响应消息样例1
{
    "userid": "1528780879-9581",
    "outaction": 9,
    "outparams": {
        "call_id": "1528780879-9581",
        "prompt_type": "1",
        "prompt_wav": "welcome",
        "prompt_text": "查询话费",
        "language": "0",
        "inter_idx": "1",
        "model_type":"1011201"
        "timeout": "10",
        "tone": "",
        "grammar": "",
        "question_id": "Q1",
        "question_name": "问题1",
        "answer_id": "Y"       
    }
}
 | 
       参数名称  | 
     
       数据类型  | 
     
       参数位置  | 
     
       必选/可选  | 
     
       描述  | 
    
|---|---|---|---|---|
| 
       call_id  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       呼叫唯一标志,与userid 取值相同,给流程使用。  | 
    
| 
       prompt_type  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       查询类型。 
  | 
    
| 
       moduleName  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       模块名称,图元的名称  | 
    
| 
       inter_idx  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       ODFS侧记录的与用户连续交互的次数。  | 
    
| 
       changeType  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       切换类型. 
  | 
    
响应消息样例
{
    "outaction": 12,
    "outparams": {
        "call_id": "1528780879-9581",
        "prompt_type": "1",
        "inter_idx": "1",
        "moduleName":"查询",
        "xxx":"xxx" //扩展
    }
}
 | 
       参数名称  | 
     
       数据类型  | 
     
       参数位置  | 
     
       必选/可选  | 
     
       描述  | 
    
|---|---|---|---|---|
| 
       call_id  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       呼叫唯一标志,与userid 取值相同,给流程使用。  | 
    
| 
       call_sor_id  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       用户标识。(语音导航、语音外呼场景传入用户号码,其他交互场景传入用户id)  | 
    
| 
       trans_type  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       对话转移类型 
  | 
    
| 
       route_value  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       路由值信息,依赖trans_type取值,当trans_type= 如下值时: 1,route_value=技能队列后续接入码 2,route_value=IVR流程接入码 3,route_value=技能队列名称 4,route_value=座席工号 5,route_value=第三方号码 6,流程路由码 7,无 8,座席工号 31,无 32,技能队列名称或者接入码 33,座席工号  | 
    
| 
       trans_data  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       随路数据(转人工时传递)  | 
    
| 
       calling_num  | 
     
       String  | 
     
       body  | 
     
       O  | 
     
       呼叫转移第三方号码时,优先使用此号码作为主叫号码  | 
    
| 
       record_path  | 
     
       String  | 
     
       body  | 
     
       O  | 
     
       录音全路径名(仅当route_value=第三方号码时生效,启动会场录音,当为空或不存在时则不录音)  | 
    
| 
       inter_idx  | 
     
       String  | 
     
       body  | 
     
       O(语音导航场景特有字段)  | 
     
       ODFS侧记录的与用户连续交互的次数。  | 
    
| 
       trans_idx  | 
     
       String  | 
     
       body  | 
     
       O(语音导航场景特有字段)  | 
     
       跳转序数。  | 
    
| 
       question_id  | 
     
       String  | 
     
       body  | 
     
       False(语音外呼问卷场景特有字段)  | 
     
       问题id(外呼场景使用)(废弃)  | 
    
| 
       question_name  | 
     
       String  | 
     
       body  | 
     
       False(语音外呼问卷场景特有字段)  | 
     
       问题名称(外呼场景使用)(废弃)  | 
    
| 
       answer_id  | 
     
       String  | 
     
       body  | 
     
       False(语音外呼问卷场景特有字段)  | 
     
       问题答案(外呼场景使用)(废弃)  | 
    
响应消息样例2
{
    "userid": "1528780879-9581",
    "outaction": 11,
    "outparams": {
        "call_id": "1528780879-9581",
        "call_sor_id": "13500000001",
        "calling_num":"1234567890",
        "trans_type": "1",
        "route_value": "123456789",
        "inter_idx": "1",
        "trans_idx": "1",
        "question_id": "Q1",
        "question_name": "问题1",
        "answer_id": "Y"       
    }
}
 | 
       参数名称  | 
     
       数据类型  | 
     
       参数位置  | 
     
       必选/可选  | 
     
       描述  | 
    
|---|---|---|---|---|
| 
       call_id  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       呼叫唯一标志,与userid 取值相同,给流程使用。  | 
    
| 
       call_sor_id  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       用户标识。(语音导航、语音外呼场景传入用户号码,其他交互场景传入用户id)  | 
    
| 
       call_dst_id  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       接入标识 (1、语音导航场景传入被叫号码; 2、语音外呼问卷场景时为问卷类型id; 3、其他交互场景时传入接入标识)。  | 
    
| 
       start_time  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       对话交互开始时间  | 
    
| 
       end_time  | 
     
       String  | 
     
       body  | 
     
       True  | 
     
       对话交互结束时间。  | 
    
| 
       release_reason  | 
     
       String  | 
     
       body  | 
     
       False  | 
     
       odfs流程走到结束图元是否是正常流程逻辑 0、正常业务逻辑进入结束图元; 1、流程遇到异常、超时等没有容错业务逻辑处理时走到结束图元。  | 
    
| 
       region_id  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       用户归属地。  | 
    
| 
       entrance_id  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       入口维度。  | 
    
| 
       exit_id  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       出口维度,取值同入口维度。  | 
    
| 
       user_type_id  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       用户类型。  | 
    
| 
       suilu_region_id  | 
     
       String  | 
     
       body  | 
     
       False(语音导航场景特有字段)  | 
     
       呼叫接入地。  | 
    
 
  一通会话结束,都要以IVR发起inaction=9/11且input=hangup的请求后,ODFS触发拆线响应,返回给IVR后为结束标记,IVR此后不再调用ODFS的接口。
响应消息样例3
{
    "userid": "1528780879-9581",
    "outaction": 10,
    "outparams": {
        "call_id": "1528780879-9581",
        "call_sor_id": "13500000001",
        "call_dst_id": "10086",
        "start_time": "2018090407:16:24",
        "end_time": "2018090407:30:24",
        "release_reason": "0",
        "region_id": "025",
        "entrance_id": "03",
        "exit_id": "05",
        "user_type_id": "01",
        "suilu_region_id":"025"
     }
}