对话初始化接口(inaction=8)
接入方首次向ODFS发起请求时,需要发送一条inaction为8的请求,表示通知ODFS初始化,由ODFS在outparams中返回接入方的下一步操作。本节介绍请求参数inparams的具体结构以及请求消息样例,几种不同场景的返回参数结构与消息样例。
inparams 参数
参数名称 | 数据类型 | 参数位置 | 必选/可选 | 描述 |
|---|---|---|---|---|
call_id | String | body | True | 呼叫唯一标志,与userid 取值相同,给流程使用。 不超过64位 |
call_sor_id | String | body | True | 用户标识。(语音导航、语音外呼场景传入用户号码,其他交互场景传入用户id) 不超过64位 |
call_dst_id | String | body | True | 接入标识 1、语音导航场景传入流程接入码; 2、语音外呼问卷场景时为流程接入码; 3、其他交互场景时传入接入标识。 不超过20位 |
real_callee | String | body | False | 实际接入IVR时的被叫号码,当语音导航场景下有效 不超过32位 |
cti_callid | String | body | False(语音导航场景特有字段) | 华为ivr传入的实际呼叫的CTI的callid,其他场景此值为空 不超过32位 |
auth_token | String | body | True | 授权信息,取接入控制系统返回的token值。 请参见C3 智能助手平台接口鉴权方式。 |
suilu_region_id | String | body | False(语音导航场景特有字段) | 呼入地。 不超过64位 |
entrance_id | String | body | False(语音导航场景特有字段) | 导航入口。
|
mediaType | String | body | False | 媒体类型(文本,音频,视频...) |
call_media_type | String | body | False | 呼入ivr的呼叫类型,文本:0 音频:1视频:3 |
channelType | String | body | False | 渠道类型
|
responseStyle | String | body | False | 回复风格 |
ExtParams参数
参数名称 | 数据类型 | 参数位置 | 必选/可选 | 描述 |
|---|---|---|---|---|
transin_data | String | body | False | 由接入方跟OIAP约定的随路数据参数,例如IVR传入的数据包参数 |
locationid | String | body | False | 呼叫录音节点号 |
mediaability | String | body | False | 媒体能力
|
ieValue | String | body | False | 接入方跟OIAP约定的User To User类型的随路数据参数,使用场景为:在与其他的平台对接时,如果呼叫是从其他的第三方的平台转移过来的呼叫,使用该参数携带SIP Header UUI信息。该参数的取值记录日志时会匿名化处理,保存数据库时会加密处理 |
请求消息样例1
{
"userid": "1528780879-9581",
"inaction": 8,
"inparams": {
"call_id": "1528780879-9581",
"call_sor_id": "13500000001",
"call_dst_id": "10086",
"auth_token":"eyJhbGc*******************MjUzNSwian",
"suilu_region_id": "025",
"entrance_id": "03"
},
"extparams": {
"transin_data":"95,22714,0,,1,1,,test_gdj_01005"
}
} ODFS接收到inaction为8/9/11的请求后,根据TUC的配置,都可能返回几种不同的响应,即outaction=9/10/11/12,以下分别描述:
参数名称 | 数据类型 | 参数位置 | 必选/可选 | 描述 |
|---|---|---|---|---|
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动态文本内容/文字对话内容/多媒体内容/卡片资源id/邮件模版id,当prompt_type为2、3、6、7、15、17时必填 |
language | String | body | True | 语种id(TTS放音以及ASR识别必须传) 0:中文 1:英文 |
inter_idx | String | body | False(语音导航场景特有字段) | ODFS侧记录的与用户连续交互的次数。 |
model_type | String | body | False(语音导航场景特有字段) | 模板类型,由7位数字组成,前三位分别代表放音\识别\按键的支持情况:
|
timeout | String | body | False(语音导航场景特有字段) | 放音超时时长(秒),放音结束后等待输入超时时间。 |
tone | String | body | False(语音导航场景特有字段) | 当prompt_type=4 录音时必传 true:录音开始前播放“嘀”音 false:录音开始前不播放“嘀”音 |
vendor | String | body | False(语音导航场景特有字段) | 语音识别扩展参数 |
grammar | String | body | False(语音导航场景特有字段) | 语法文件名(包含路径和后缀) |
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描述 | 来源 |
|---|---|---|---|---|---|
sensitive_word | Json Object | body | False | 敏感词的提醒信息 {"违禁语":["密码"]} | 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 | 表单中待填写的字段名 | 如:对象二级 |
响应消息样例2
{
"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"
}
} outparams参数(outaction=12:查询类操作,用于普通IVR流程)
参数名称 | 数据类型 | 参数位置 | 必选/可选 | 描述 |
|---|---|---|---|---|
call_id | String | body | True | 呼叫唯一标志与userid 取值相同,给流程使用。 |
prompt_type | String | body | True | 查询类型。
|
skill_id | String | String | False | 技能队列Id。 prompt_type为2的场景,必填;其他场景无该参数。 |
moduleName | String | body | False | 模块名称,图元的名称 |
inter_idx | String | body | False(语音导航场景特有字段) | ODFS侧记录的与用户连续交互的次数。 |
响应消息样例3
{
"outaction": 12,
"outparams": {
"call_id": "1528780879-9581",
"prompt_type": "1",
"inter_idx": "1",
"moduleName":"查询",
"xxx":"xxx" //扩展
}
} outparams参数(outaction=11:对话转接类操作)
参数名称 | 数据类型 | 参数位置 | 必选/可选 | 描述 |
|---|---|---|---|---|
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,座席工号 34,转离线排队 |
trans_data | String | body | False | 随路数据(转人工时传递) |
calling_num | String | body | False | 呼叫转移第三方号码时,优先使用此号码作为主叫号码 |
record_path | String | body | False | 录音全路径名(仅当route_value=第三方号码时生效,启动会场录音,当为空或不存在时则不录音) |
inter_idx | String | body | False(语音导航场景特有字段) | ODFS侧记录的与用户连续交互的次数。 |
trans_idx | String | body | O(语音导航场景特有字段) | 跳转序数。 |
skillId | String | body | False(转离线排队场景字段) | 离线排队的队列ID,即CTI侧的技能[L1] 队列ID |
offlineQuequeTimeOut | String | body | False(转离线排队场景字段) | 离线排队超时时长,范围1-720分钟,非必传,值非法时传递空值; |
offlineCallData | String | body | False(转离线排队场景字段) | 离线排队呼叫数据,长度100,非必传,传递当前时间,即离线排队时间UTC时间,{"offlineQueueDate": "20240211111513"} |
question_id | String | body | False(语音外呼问卷场景特有字段) | 问题id(外呼场景使用)(废弃) |
question_name | String | body | False(语音外呼问卷场景特有字段) | 问题名称(外呼场景使用)(废弃) |
answer_id | String | body | False(语音外呼问卷场景特有字段) | 问题答案(外呼场景使用)(废弃) |
响应消息样例4
{
"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"
}
} outparams参数(outaction=10:对话拆线类操作)
注:一通会话结束,都要以IVR发起inaction=9/11且input=hangup的请求后,ODFS触发拆线响应,返回给IVR后为结束标记,IVR此后不再调用ODFS的接口。
参数名称 | 数据类型 | 参数位置 | 必选/可选 | 描述 |
|---|---|---|---|---|
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(语音导航场景特有字段) | 呼叫接入地。 |
响应消息样例5
{
"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"
}
} 
