文档首页/ 云客服/ API参考/ 机器人管理/ 对话接口/ 对话初始化接口(inaction=8)
更新时间:2024-09-24 GMT+08:00
分享

对话初始化接口(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(语音导航场景特有字段)

导航入口。

  • 01:广告语
  • 02:欢迎语
  • 03:首层主菜单
  • 04:人工拦截
  • 05:人工座席
  • 06:直接通过短号接入
  • 07:全语音门户
  • 08:“0”号夜间导航模式
  • 09:夜间全语音门户
  • 10:直接通过自助短号接入
  • 11:人工忙碌
  • 98:其他
  • 99:未识别

mediaType

String

body

False

媒体类型(文本,音频,视频...)

call_media_type

String

body

False

呼入ivr的呼叫类型,文本:0 音频:1视频:3

channelType

String

body

False

渠道类型

  • WEB(Web)
  • INSTAGRAM(Instagram)
  • TELEGRAM(Telegram)
  • WECHAT(微信)
  • FACEBOOK(Facebook)
  • TWITTER(X (Twitter))
  • EMAIL(邮件)
  • LINE
  • WHATSAPP(WhatsApp)
  • 5G(5G消息)
  • SMS(短信)。
    说明:

    括号里为界面字段,区别于接口传参字段。

responseStyle

String

body

False

回复风格

ExtParams参数

参数名称

数据类型

参数位置

必选/可选

描述

transin_data

String

body

False

由接入方跟OIAP约定的随路数据参数,例如IVR传入的数据包参数

locationid

String

body

False

呼叫录音节点号

mediaability

String

body

False

媒体能力

  • 1:音频
  • 2:视频
  • 3:音视频

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":"eyJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE1MzgwMzg5MzUsImV4cCI6MTUzODA0MjUzNSwian",
        "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,以下分别描述:

表1 outparams参数(outaction=9:对话交互类操作)

参数名称

数据类型

参数位置

必选/可选

描述

prompt_type

String

body

True

交互类型。

  • 0:语音交互播放指定提示音(全路径)
  • 1:语音交互播放指定提示
  • 2:语音交互播放TTS内容
  • 3:文字交互
  • 4:对呼叫方录音
  • 5:视频播放
  • 6:多媒体
  • 7:卡片
  • 8:变量音
  • 9:语音文本混合放音

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位数字组成,前三位分别代表放音\识别\按键的支持情况:

  • 100:只播放。
  • 101:按键打断播放, 不支持识别。
  • 110:识别打断播放, 不支持按键。
  • 120:识别不打断播放, 不支持按键。
  • 122:按键+识别,不打断播放。
  • 111:按键+识别,打断播放。
  • 102:按键不打断播放, 不支持识别。

紧接着两位代表最大按键长度,后两位是*#是否做为功能键(1功能键-#代表确定,*代表取消,0不作为功能键-普通输入键)。 如:1011201代表支持放音按键,不支持识别,最大按键长度为12位,#为确认键。1101200 代表支持放音识别,不支持按键,后面四位1200无效。

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(语音外呼问卷场景特有字段)

问题答案(外呼场景使用),

  • 是:Y;
  • 否:N;
  • 超时:TIMEOUT;
  • 拒识:NOMATCH;
  • 其他异常:ERROR

如问题设定非“是”“否”这种答案,则需要以实际约定配置的结果为准

(废弃)

flowRecordFlag

String

body

False

是否需要录音标志。

  • 0:需要
  • 1:不需要

    不设置的场景,默认为1

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"       
    }
}
表2 outparams参数(outaction=12:查询类操作,用于普通IVR流程)

参数名称

数据类型

参数位置

必选/可选

描述

call_id

String

body

True

呼叫唯一标志,与userid 取值相同,给流程使用。

prompt_type

String

body

True

查询类型。

  • 1:通话在技能队列中排队时,查询当前技能队列排队信息;
  • 2:通话不在技能队列排队,进入技能队列前,根据技能队列Id查询排队信息;
  • 3:根据座席工号,查询座席所在技能队列信息
  • 5: 音视频切换操作

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" //扩展
    }
}
表3 outparams参数(outaction=11:对话转接类操作)

参数名称

数据类型

参数位置

必选/可选

描述

call_id

String

body

True

呼叫唯一标志,与userid 取值相同,给流程使用。

call_sor_id

String

body

True

用户标识。(语音导航、语音外呼场景传入用户号码,其他交互场景传入用户id)

trans_type

String

body

True

对话转移类型

  • 1:转人工(路由码方式转技能队列)
  • 2:转IVR
  • 3:转人工(技能名称方式转技能队列)
  • 4:转人工(转座席工号)
  • 5:转接第三方号码
  • 6:在线数字辅助
  • 7:转人工(转熟客,目前仅支持多媒体)
  • 8:转人工(转座席所在技能队列,目前仅支持多媒体)
  • 31:转多媒体留言(转熟客)
  • 32:转多媒体留言(转技能队列)
  • 33:转多媒体留言(转座席)

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

False

呼叫转移第三方号码时,优先使用此号码作为主叫号码

record_path

String

body

False

录音全路径名(仅当route_value=第三方号码时生效,启动会场录音,当为空或不存在时则不录音)

inter_idx

String

body

False(语音导航场景特有字段)

ODFS侧记录的与用户连续交互的次数。

trans_idx

String

body

O(语音导航场景特有字段)

跳转序数。

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"       
    }
}
表4 outparams参数(outaction=10:对话拆线类操作)

参数名称

数据类型

参数位置

必选/可选

描述

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的接口。

响应消息样例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"
     }
}

相关文档