智能语音系统
Restful接口文档
一、开发引导
调用说明
调用方式说明:
第一种方式:主动调用 这种调用方式是客户主动调用接口获取数据或实现功能;
主动调用需要传入APP_KEY和APP_SECRET用于权限校验;
注意:请在开发对接程序前联系技术支持进行注册,如果你还未签约,请先签约开通账户。
第二种方式:方法回调 这种调用方式是当达到预设条件如:任务完成或通话结束时,由系统主动向指定地址发送信息;
注意:请在开发前自主配置好回调地址。
机器人API是使用HTTP并遵循REST原则设计的Web服务接口;
您可以使用几乎任何客户端和任何编程语言与REST API进行交互。
通过发送简单的HTTP请求就可以轻松接入使用。
调用方式分为两种:主动调用和方法回调。
统一请求格式
URL格式:
/ai/{resource}/{function}
说明:
{resource}为资源名,通常对应一类API
{function}为该资源提供的操作方法
请求响应的结果为json格式
我们目前已经提供的接口,请参考API。
HTTP头信息:
Accept:application/json;charset=utf-8
说明:
请求方式(Method):统一用POST方式 编码:UTF-8
二、接口说明
1、系统级-配置回调地址(超级管理员使用)
D:\huluwa\config\config.properties
找打以上文件,配置以下项:
huluwa.callbackURL = http://192.168.1.100/callback
配置完成后,重启系统。
2、用户级-配置回调地址(普通用户使用)
进入“计划与推送”菜单配置事件回调地址
3、主动接收消息
1)登录接口,获取令牌
功能说明:
通过此接口可以获取到登录Token,后续任何请求只需要发送Token即可完成请求验证。
更新说明: --
请求:
URL:http://{ip}/ai/user/mmlogin
请求方法:
POST
请求参数:
参数名 | 类型 | 是否必须 | 描述 | 实例 |
username | String | 是 | 登录帐号 | test |
password | String | 是 | 登录密码 | 123456 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
Auth | String | 成功响应的Token |
data | Object | 用户对象 |
入参JSON实例:
{
"username" : "test",
"password" : "123456",
}
JSON响应实例:
{
"errorCode": 0,
"description": "登录成功.", //返回刚刚创建的任务ID
"Auth": "86AB322122CE394A3258FDE585C6BA16",
"data": {用户对象数据}
}
2)拨打电话,播放语音验证码
功能说明:
通过此接口可以实现拨打电话并播放语音验证码。
更新说明: --
请求:
URL:http://{ip}/ai/audiovercode/play
请求方法:
POST
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
请求参数:
参数名 | 类型 | 是否必须 | 描述 | 实例 |
targetPhone | String | 是 | 被叫号码 | 13666669999 |
sourcePhone | String | 是 | 主叫号码 | 13622225555 |
busiId | String | 否 | 业务ID | 100 |
file | String | 否 | 语音文件的Base64编码 | -- |
fileName | String | 否 | 文件名称 | 如:aaa.wav如果系统已存在相同的文件名,直接使用不解析file字段。以提升性能。 |
talkContent | String | 否 | 转TTS的文字 | 验证码:5566 |
retry | Integer | 否 | 默认 1 次后挂机 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
入参JSON实例:
{
"targetPhone" : "13900001111",
"sourcePhone" : "13022221111",
"busiId" : "1000",
"file" : "UUXA23LXXLSOEK2KXKDJELLSLSLOIEKXK8929KXKXLXLDKKELXDLEKK23L",
"talkContent" : "验证码是:5599",
"retry" : 3
}
JSON响应实例:
{
"errorCode": 0,
"description": "操作成功."
}
3)设置拨打时间段
功能说明:
通过此接口可以实现新增拨打时间段。
更新说明: --
请求:
URL:http://{ip}/ai/dialtimerange/add
请求方法:
POST
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
参数名 | 类型 | 是否必须 | 描述 | 实例 |
startTime | String | 是 | 开始时间 | 09:30 |
endTime | String | 是 | 结束时间 | 10:50 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
入参JSON实例:
{
"startTime" : "09:30",
"endTime" : "10:50"
}
JSON响应实例:
{
"errorCode": 0,
"description": "操作成功."
}
查询所有的拨打时间段
功能说明:
通过此接口可以实现当前所有的拨打时间段。
更新说明: --
请求:
URL:http://{ip}/ai/dialtimerange/refresh
请求方法:
GET
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
description | String | 响应描述 |
data | Json数组 | 见JSON响应实例 |
响应data的参数说明:
参数名 | 类型 | 描述 |
starttime | String | 开始时间 |
endtime | String | 结束时间 |
id | Integer | 编号,可以通过此编号调用接口删除 |
operate | Integer | 0 未启用 1启用 |
userid | Integer | 归属的用户的编号 |
JSON响应实例:
{
"errorCode": 0,
"description": "",
"data": [{
"endtime": "12:30",
"id": 1,
"operate": 1,
"starttime": "09:30",
"userid": 1
}, {
"endtime": "18:30",
"id": 2,
"operate": 1,
"starttime": "13:30",
"userid": 1
}, {
"endtime": "10:50",
"id": 702,
"operate": 1,
"starttime": "09:30",
"userid": 1
}]
}
启用或停用拨打时间段
功能说明:
通过此接口可以实现拨打时间段的启用或停用。
更新说明: --
请求:
URL:http://{ip}/ai/dialtimerange/update
请求方法:
POST
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
参数名 | 类型 | 是否必须 | 描述 | 实例 |
Id | Integer | 是 | 编号 | 1 |
operate | Integer | 是 | 操作 | 0 停用 1启用 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
入参JSON实例:
{
"id": 702,
"operate": 1
}
JSON响应实例:
{
"errorCode": 0,
"description": "操作成功."
}
4)快速拨打电话
功能说明:
通过此接口实现快速拨打电话。
更新说明: --
请求:
URL:http://{ip}/ai/notouchphone/addPhone
请求方法:
POST
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
参数名 | 类型 | 是否必须 | 描述 | 实例 |
phone | String | 是 | 多个号码逗号分隔与userData互斥 | 13966661111, 13866664444 |
userData | Json Array | 否 | 拨打的时间用户信息与phone参数互斥 | Json数组格式 |
ai2WordsId | Integer | 否 | 指定拨打话术的ID | 如:5 |
userData的数据结构体:
参数名 | 类型 | 是否必须 | 描述 | 实例 |
phone | String | 是 | 号码 | 号码 |
name | String | 是 | 名称 | 名称 |
source | String | 是 | 来源 | 来源 |
sex | String | 是 | 性别 | 如:男,女 |
companyname | String | 是 | 公司名称 | 公司名称 |
sort | String | 是 | 分类 | 分类 |
address | String | 是 | 地址 | 地址 |
remark1 | String | 是 | 备注1 | 备注1 |
remark2 | String | 是 | 备注2 | 备注2 |
remark3 | String | 是 | 备注3 | 备注3 |
remark4 | String | 是 | 备注4 | 备注4 |
remark5 | String | 是 | 备注5 | 备注5 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
入参JSON实例:
{
"userData": [
{
"phone":"13699998888",
"name":"张三",
"source":"网络",
"sex":"男",
"companyname":"科技有限公司",
"sort":"聚合",
"address":"北京前门",
"remark1":"备注1",
"remark2":"备注2",
"remark3":"备注3",
"remark4":"备注4",
"remark5":"备注5"
},
{
"phone":"13699996666",
"name":"李四",
"source":"网络",
"sex":"男",
"companyname":"科技有限公司",
"sort":"聚合",
"address":"北京前门",
"remark1":"备注1",
"remark2":"备注2",
"remark3":"备注3",
"remark4":"备注4",
"remark5":"备注5"
}
],
"ai2WordsId":1
}
或userData入参实列
{
"phone":"13966661111,13622221111",
"ai2WordsId":1
}
JSON响应实例:
{
"errorCode": 0,
"description": "加入拨打计划成功."
}
5)导入号码文件
功能说明:
通过此接口实现批量号码导入。
更新说明: --
请求:
URL:http://{ip}/ai/notouchphone/uploadFile
请求方法:
POST
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
请求头:
Content-Type: multipart/form-data;
BODY部分上传文件
6)将所有号码加入拨打或结束拨打
功能说明:
通过此接口实现起用所有号码的拨打。
更新说明: --
请求:
URL:http://{ip}/ai/notouchphone/updateAll
请求方法:
POST
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
参数名 | 类型 | 是否必须 | 描述 | 实例 |
id | String | 是 | 号码编号 | 等于 -1 是将所有号码加入拨打,具体将某个号码加入拨打直接传id值 |
status | Integer | 是 | 状态值 | 1 加入拨打 0停止拨打 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
入参JSON实例:
{
"id":"-1","status":1
}
JSON响应实例:
{
"errorCode": 0,
"description": ""
}
7)批量分页获取待拨打名单列表
功能说明:
通过此接口实现查询所有待拨打名单列表。
更新说明: --
请求:
URL:http://{ip}/ai/notouchphone/phone/{page}
请求方法:GET
URL变量值:{page}是当前请求的页码,比如当前请求第5页,直接发送
http://{ip}/ai/notouchphone/phone/5
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
pages | Integer | 总页数 |
pageSize | Integer | 每页的总条数,默认30 |
pageNum | Integer | 当前返回数据的第几页 |
total | Integer | 总条数 |
data | JSON | 详细的数据 |
Data数据结构体说明:
参数名 | 类型 | 描述 |
id | Integer | 此条数据的编号 |
phone | String | 电话号码 |
status | Integer | 0 未加入拨打,1 已加入拨打 |
uploadtime | Long | 上传时间 |
dialFailedCount | Integer | 拨打失败的次数(系统使用) |
userid | Integer | 归属用户的ID |
JSON响应实例:
{
"errorCode": 0,
"description": "",
"pages": 418,
"pageSize": 30,
"pageNum": 1,
"total": 12529,
"data": [{
"dialFailedCount": 0,
"id": 2,
"noUserResponseCount": 0,
"phone": "133****1176",
"status": 0,
"uploadtime": 1543308937000,
"userid": 1
}, {
"dialFailedCount": 0,
"id": 3,
"noUserResponseCount": 0,
"phone": "158****8344",
"status": 0,
"uploadtime": 1543308937000,
"userid": 1
}]
}
8)批量分页获取已拨打名单列表
功能说明:
通过此接口实现查询所有已拨打名单列表。
更新说明: --
请求:
URL:http://{ip}/ai/touchphone/phone/{page}
请求方法:GET
URL变量值:{page}是当前请求的页码,比如当前请求第5页,直接发送
http://{ip}/ai/touchphone/phone/5
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
pages | Integer | 总页数 |
pageSize | Integer | 每页的总条数,默认30 |
pageNum | Integer | 当前返回数据的第几页 |
total | Integer | 总条数 |
data | JSON | 详细的数据 |
JSON响应实例:
{
"errorCode": 0,
"description": "",
"pages": 6,
"pageSize": 30,
"pageNum": 1,
"total": 160,
"data": [{
"callinout": 0,
"chanelEndTime": 0,
"channelStartTime": 0,
"dialtime": 1544423883000,
"id": 161,
"intention": 9,
"phone": "136****1682",
"telephoneMinute": 0,
"readstatus": 1, //此属性 == 1 表示已读,没有此属性或==0 未读
"userid": 1,
"uuid": "479bb159-6073-4e3d-a6ba-b9a033751f2e"
}, {
"callinout": 0,
"chanelEndTime": 0,
"channelStartTime": 0,
"conversationtime": 13,
"dialtime": 1544412340000,
"grade": 26,
"id": 160,
"intention": 2,
"phone": "136****1682",
"telephoneMinute": 1,
"userid": 1,
"uuid": "6b9ab6e3-99c7-46b6-be80-49aa9a4501b8"
}]
}
Data数据结构体说明:
参数名 | 类型 | 描述 |
id | Integer | 此条数据的编号 |
phone | String | 电话号码 |
intention | Integer | 2 已接通 9未接听挂断/关机/欠费 10无人接听 100 人工已筛选 |
grade | Integer | 21 A类(较强) 22 B类(一般) 23 C类(很少) 24 D类(需筛选) 25 E类(需再次跟进) 26 F类(无需跟进) |
conversationtime | Integer | 实际通话时长,单位:秒 |
callinout | Integer | 0 呼出 1 呼入 |
chanelEndTime | Long | 电话挂机结束时间 |
channelStartTime | Long | 电话接通的开始时间 |
dialtime | Long | 开始拨打时间(非接通开始时间) |
telephoneMinute | Integer | 本次通话的分钟数,不足一分钟按一分钟计算 |
uuid | String | UUID |
readstatus | Integer | 此属性 == 1 已读 没有此属性或==0 未读 |
9)单个查询拨打详情
功能说明:
通过此接口查询拨打的详情数据。
更新说明: --
请求:
URL:http://{ip}/ai/touchphone/id/{id}
请求方法:GET
URL变量值:{id}是当前请求的拨打记录的编号,比如当前请求的编号是 5,直接发送
http://{ip}/ai/touchphone/id/5
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
data | JSON | 详细的数据 |
JSON响应实例:
{
"errorCode": 0,
"description": "",
"data": {
"callinout": 0,
"chanelEndTime": 0,
"channelStartTime": 0,
"conversationtime": 19,
"dialtime": 1544436117000,
"grade": 25,
"id": 4744,
"intention": 2,
"phone": "13699995555",
"recordfilepath": "RDovcmVjb3JkLzIwMTgtMTItMTAvOTAwMTEzNjY4MTYxNjgyLjA1OGYxZTBmLWJjNGMtNGVlNy04MjU2LTM3N2NlMDJmMDNkMS5tcDM=",
"tableIndex": "",
"talkCount": 2,
"talkStatus": 1,
"telephoneMinute": 1,
"uploadtime": 1544436117000,
"userid": 1,
"uuid": "058f1e0f-bc4c-4ee7-8256-377ce02f03d1"
}
}
Data数据结构体说明:
参数名 | 类型 | 描述 |
id | Integer | 此条数据的编号 |
phone | String | 电话号码 |
intention | Integer | 2 已接通 9未接听挂断/关机/欠费 10无人接听 100 人工已筛选 |
grade | Integer | 21 A类(较强) 22 B类(一般) 23 C类(很少) 24 D类(需筛选) 25 E类(需再次跟进) 26 F类(无需跟进) |
callinout | Integer | 0 呼出 1 呼入 |
chanelEndTime | Long | 电话挂机结束时间 |
channelStartTime | Long | 电话接通的开始时间 |
dialtime | Long | 开始拨打时间(非接通开始时间) |
telephoneMinute | Integer | 本次通话的分钟数,不足一分钟按一分钟计算 |
uuid | String | UUID |
recordfilepath | String | 录音地址,录音地址,可以通过接口第10小节获取音频流 |
talkCount | Integer | 对话的次数 |
talkStatus | Integer | 0 未接听,1已接听 |
10)查询对话详情
功能说明:
通过此接口查询拨打的详情数据。
更新说明: --
请求:
URL:http://{ip}/ai/chat/tpid/{id}
请求方法:GET
URL变量值:{id}是当前请求的拨打记录的编号,比如当前请求的编号是 5,直接发送
http://{ip}/ai/chat/tpid/5
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
pages | Integer | 总页数 |
pageSize | Integer | 每页的总条数 |
pageNum | Integer | 当前返回数据的第几页 |
total | Integer | 总条数 |
data | JSON | 详细的数据 |
JSON响应实例:
{
"errorCode": 0,
"description": "",
"pages": 1,
"pageSize": 7,
"pageNum": 1,
"total": 7,
"data": [{
"id": 15676,
"inserttime": 1544436127000,
"khcontent": "喂,您好!(停顿两秒)您好,这边是可以大量外呼的销售机器人,您有兴趣了解下吗?",
"khtype": 0,
"khvoicepath": "RDovdm9pY2VGaWxlL0FJMnFpdGFjaGFucGludHVpZ3VhbmctamlxaXJlbnppeGlhby0xODkyOF8yMDE4MTExMjE0MTMwM181NDkvdXBsb2FkLTIwMTgwOTI5MTQyMzA0XzQ0Ni53YXY=",
"phone": "900113668161682",
"touchphoneid": 4744,
"uuid": "058f1e0f-bc4c-4ee7-8256-377ce02f03d1"
}, {
"id": 15677,
"inserttime": 1544436131000,
"khcontent": "啊",
"khtype": 1,
"khvoicepath": "RDovcmVjb3JkLzIwMTgtMTItMTAvOTAwMTEzNjY4MTYxNjgyXzA1OGYxZTBmLWJjNGMtNGVlNy04MjU2LTM3N2NlMDJmMDNkMV8xLndhdg==",
"phone": "900113668161682",
"touchphoneid": 4744,
"uuid": "058f1e0f-bc4c-4ee7-8256-377ce02f03d1"
}]
}
Data数据结构体说明:
参数名 | 类型 | 描述 |
id | Integer | 此条数据的编号 |
inserttime | Long | 发生的时间 |
khtype | Integer | 0 机器说 1客户说 2关键字识别结果 |
khvoicepath | String | 录音文件地址 |
touchphoneid | Integer | 归属的已拨打记录的编号 |
khvoicepath | String | 录音地址,可以通过接口第10小节获取音频流 |
Phone | String | 手机号码,可能会带上拨打前缀 |
uuid | String | UUID |
11)获取音频流
功能说明:
通过此接口获取录音文件的音频流。
更新说明: --
请求:
URL:http://{ip}/ai/touchphone/audio/{path}
请求方法:GET
URL变量值:{path}是查询拨打详情,系统返回的地址,见第8小节或第9小节字段:khvoicepath或recordfilepath
http://{ip}/ai/touchphone/audio/RDovcmVjb3JkLzIwMTgtMTEtMzAvMTM4ODAzMDc5OTMuNThiNmI3YmUtODliNC00NTQ1LWI1ZmMtNjc2MzBiMDBlNWFjLm1wMw==
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
响应:二进制音频流。
12)批量获取任务
功能说明:
通过此接口实现查询当前用户的最新的前100条任务。
更新说明: --
请求:
URL:http://{ip}/ai/task/find100
请求方法:GET
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
data | JSON | 详细的数据 |
Data数据结构体说明:
参数名 | 类型 | 描述 |
id | Integer | 此条数据的编号 |
taskName | String | 任务的名称 |
wordsname | String | 选中话术的名称 |
wordsid | Integer | 选中话术的编号 |
createtime | Long | 创建时间,单位:毫秒 |
userid | Integer | 归属用户的ID |
startdate | long | 启动拨打日期,单位:毫秒 |
startTime | String | 每天启动拨打开始时段 "09:00" |
endtime | String | 每天启动拨打结束时段 "12:00" |
nostarttime | String | 禁止拨打时段开始时间 |
noendtime | String | 禁止拨打时段结束时间 |
status | Integer | 任务状态 0 已停止 1新任务 2进行中 3不在拨打时段 10已完成 |
dialprogress | Integer | 拨打进度 |
dialswitchonrate | Integer | 电话接通率 |
intentionrate | Integer | 意向客户比例 |
aintentionrate | Integer | A类意向客户数量 |
bintentionrate | Integer | B类意向客户数量 |
cintentionrate | Integer | C类意向客户数量 |
dintentionrate | Integer | D类意向客户数量 |
eintentionrate | Integer | E类意向客户数量 |
fintentionrate | Integer | F类意向客户数量 |
timexy10rate | Integer | 通话时长小于10秒的数量 |
timexy10rate | Integer | 通话时长小于10秒的数量 |
timexy59rate | Integer | 通话时长10秒到59秒的数量 |
timexy119rate | Integer | 通话时长60秒到119秒的数量 |
timezy120rate | Integer | 通话时长大于等于120秒的数量 |
talkxy2rate | Integer | 对话轮次小于2次的数量 |
talkxy4rate | Integer | 对话轮次大于3次小于4次的的数量 |
talkxy6rate | Integer | 对话轮次大于5次小于6次的的数量 |
talkxy9rate | Integer | 对话轮次大于7次小于9次的的数量 |
talkzy10rate | Integer | 对话轮次大于10次的的占比 |
allcount | Integer | 总拨打电话量 |
connectedcount | Integer | 已接通电话量 |
noheardcount | Integer | 无人接听的电话量 |
switchoffcount | Integer | 无人接听的电话量 |
continuousFaultCount | Integer | 拨打连续失败的次数 |
JSON响应实例:
[
{
"aintentionrate": 0,
"allcount": 60,
"bflines": 2,
"bintentionrate": 0,
"cintentionrate": 0,
"configFaultCount": 99999,
"connectedcount": 0,
"continuousFaultCount": 0,
"createtime": 1619766179000,
"curLines": 0,
"dialmodel": 0,
"dialprogress": 0,
"dialswitchonrate": 0,
"dintentionrate": 0,
"disabled": 1,
"eintentionrate": 0,
"endtime": "18:00",
"fintentionrate": 0,
"id": 13,
"intentionrate": 0,
"noendtime": "13:30",
"noheardcount": 0,
"nostarttime": "12:10",
"startdate": 1619712000000,
"starttime": "09:00",
"status": 1,
"switchoffcount": 0,
"talkxy2rate": 0,
"talkxy4rate": 0,
"talkxy6rate": 0,
"talkxy9rate": 0,
"talkzy10rate": 0,
"taskName": "测试_xxxxx",
"timexy10rate": 0,
"timexy119rate": 0,
"timexy59rate": 0,
"timezy120rate": 0,
"updatetime": 1619766179000,
"userid": 1,
"wordsid": 1,
"wordsname": "贷款话术1.0"
},
{
"aintentionrate": 0,
"allcount": 0,
"bflines": 1,
"bintentionrate": 0,
"cintentionrate": 0,
"configFaultCount": 1,
"connectedcount": 0,
"continuousFaultCount": 0,
"createtime": 1619681731000,
"curLines": 0,
"dialmodel": 0,
"dialprogress": 0,
"dialswitchonrate": 0,
"dintentionrate": 0,
"disabled": 1,
"eintentionrate": 0,
"endtime": "18:00",
"fintentionrate": 0,
"id": 11,
"intentionrate": 0,
"noendtime": "13:30",
"noheardcount": 0,
"nostarttime": "12:10",
"startdate": 1618243200000,
"starttime": "09:00",
"status": 10,
"switchoffcount": 0,
"talkxy2rate": 0,
"talkxy4rate": 0,
"talkxy6rate": 0,
"talkxy9rate": 0,
"talkzy10rate": 0,
"taskName": "test",
"timexy10rate": 0,
"timexy119rate": 0,
"timexy59rate": 0,
"timezy120rate": 0,
"updatetime": 1619681731000,
"userid": 1,
"wordsid": 1,
"wordsname": "贷款话术1.0"
}
]
13)创建拨打任务
功能说明:
通过此接口实现创建拨打任务。
更新说明: --
请求:
URL:http://{ip}/ai/task/add
请求方法:
POST
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
参数名 | 类型 | 是否必须 | 描述 | 实例 |
taskName | String | 是 | 任务名称 | 任务名称 |
startDate | String | 是 | 启动拨打日期 | 如:2019-09-28 |
startTime | String | 是 | 每天启动拨打开始时段 | 如:9:00 |
endTime | String | 是 | 每天启动拨打结束时段 | 如:18:00 |
noStartTime | String | 是 | 禁止拨打时段开始时间 | 如:12:10 |
noEndTime | String | 是 | 禁止拨打时段结束时间 | 如:13:30 |
wordsId | String | 是 | 话术ID | |
configFaultCount | String | 是 | 故障数连续多少次自动停止拨打 | 不填写,传空串,表示不指定 |
bfLines | String | 是 | 此任务使用的并发线路数 | |
userData | Json Array | 否 | 拨打的时间用户信息 | Json数组格式 |
dialWeek | Object | 是 | 周拨打配置 | 见下表 |
userData的数据结构体:
参数名 | 类型 | 是否必须 | 描述 | 实例 |
phone | String | 是 | 号码 | 号码 |
name | String | 是 | 名称 | 名称 |
source | String | 是 | 来源 | 来源 |
sex | String | 是 | 性别 | 如:男,女 |
companyname | String | 是 | 公司名称 | 公司名称 |
sort | String | 是 | 分类 | 分类 |
address | String | 是 | 地址 | 地址 |
remark1 | String | 是 | 备注1 | 备注1 |
remark2 | String | 是 | 备注2 | 备注2 |
remark3 | String | 是 | 备注3 | 备注3 |
remark4 | String | 是 | 备注4 | 备注4 |
remark5 | String | 是 | 备注5 | 备注5 |
DialWeek的数据结构体:
参数名 | 类型 | 是否必须 | 描述 | 实例 |
day1 | Integer | 是 | 周1配置 | 0 关闭 1 开启 |
day2 | Integer | 是 | 周2配置 | 0 关闭 1 开启 |
day3 | Integer | 是 | 周3配置 | 0 关闭 1 开启 |
day4 | Integer | 是 | 周4配置 | 0 关闭 1 开启 |
day5 | Integer | 是 | 周5配置 | 0 关闭 1 开启 |
day6 | Integer | 是 | 周6配置 | 0 关闭 1 开启 |
day7 | Integer | 是 | 周日配置 | 0 关闭 1 开启 |
finishPush | Integer | 是 | 是否开启拨打完成通知 | 0 关闭 1 开启 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
入参JSON实例:
{
"taskName": "test0909",
"startDate": "2019-09-28",
"startTime": "9:00",
"endTime": "18:00",
"noStartTime": "12:10",
"noEndTime": "13:30",
"wordsId": "3314",
"configFaultCount": "",
"bfLines": "1",
"userData": [
{
"phone":"13699998888",
"name":"张三",
"source":"网络",
"sex":"男",
"companyname":"科技有限公司",
"sort":"聚合",
"address":"北京前门",
"remark1":"备注1",
"remark2":"备注2",
"remark3":"备注3",
"remark4":"备注4",
"remark5":"备注5"
},
{
"phone":"13699996666",
"name":"李四",
"source":"网络",
"sex":"男",
"companyname":"科技有限公司",
"sort":"聚合",
"address":"北京前门",
"remark1":"备注1",
"remark2":"备注2",
"remark3":"备注3",
"remark4":"备注4",
"remark5":"备注5"
}
]
}
JSON响应实例:
{
"errorCode": 0,
"description": "创建成功。",
"data": {
"taskId":1
}
}
14)开始任务、暂停任务
功能说明:
通过此接口实现任务的开始、暂停
更新说明: --
请求:
URL:http://{ip}/ai/task/updateStatus
请求方法:
POST
请求头:必须带上登录时返回的Token
参数名 | 类型 | 是否必须 | 描述 | 实例 |
taskId | Integer | 是 | 话术的编号 | 20 |
status | Integer | 是 | 状态 | 0 停止任务 2 开始任务 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
data | JSON | 详细的数据 |
JSON请求实例:
{
"taskId":"12",
"status":2
}
JSON响应实例:
{
"errorCode": 0,
"description": "操作成功",
"data": ""
}
15)编辑任务
功能说明:
通过此接口实现任务的编辑。
更新说明: --
请求:
URL:http://{ip}/ai/task/modify
请求方法:
POST
请求头:必须带上登录时返回的Token
参数名 | 类型 | 是否必须 | 描述 | 实例 |
id | Integer | 是 | 任务编号 | |
taskName | String | 是 | 任务名称 | 任务名称 |
startDate | String | 是 | 启动拨打日期 | 如:2019-09-28 |
startTime | String | 是 | 每天启动拨打开始时段 | 如:9:00 |
endTime | String | 是 | 每天启动拨打结束时段 | 如:18:00 |
noStartTime | String | 是 | 禁止拨打时段开始时间 | 如:12:10 |
noEndTime | String | 是 | 禁止拨打时段结束时间 | 如:13:30 |
wordsId | Integer | 是 | 话术ID | |
configFaultCount | String | 是 | 故障数连续多少次自动停止拨打 | 不填写,传空串,表示不指定 |
bfLines | String | 是 | 此任务使用的并发线路数 | |
dialWeek | Object | 是 | 周拨打配置 | 见下表 |
DialWeek的数据结构体:
参数名 | 类型 | 是否必须 | 描述 | 实例 |
day1 | Integer | 是 | 周1配置 | 0 关闭 1 开启 |
day2 | Integer | 是 | 周2配置 | 0 关闭 1 开启 |
day3 | Integer | 是 | 周3配置 | 0 关闭 1 开启 |
day4 | Integer | 是 | 周4配置 | 0 关闭 1 开启 |
day5 | Integer | 是 | 周5配置 | 0 关闭 1 开启 |
day6 | Integer | 是 | 周6配置 | 0 关闭 1 开启 |
day7 | Integer | 是 | 周日配置 | 0 关闭 1 开启 |
finishPush | Integer | 是 | 是否开启拨打完成通知 | 0 关闭 1 开启 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
data | JSON | 详细的数据 |
JSON请求实例:
{
"id": "13",
"taskName": "测试_xxxxx",
"startDate": "2021-04-30",
"startTime": "09:00",
"endTime": "18:00",
"noStartTime": "12:10",
"noEndTime": "13:30",
"wordsId": "1",
"configFaultCount": "99999",
"bfLines": "2",
"dialWeek": {
"day1": 0,
"day2": 1,
"day3": 1,
"day4": 0,
"day5": 0,
"day6": 0,
"day7": 0,
"finishPush": 1,
"nearFinishPush": 0
}
}
JSON响应实例:
{
"errorCode": 0,
"description": "操作成功",
"data": ""
}
16)删除任务
功能说明:
通过此接口实现任务的开始、暂停
更新说明: --
请求:
URL:http://{ip}/ai/task/delete
请求方法:
POST
请求头:必须带上登录时返回的Token
参数名 | 类型 | 是否必须 | 描述 | 实例 |
id | Integer | 是 | 任务ID |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
data | JSON | 详细的数据 |
JSON请求实例:
{
"id": 17
}
JSON响应实例:
{
"errorCode": 0,
"description": "操作成功",
"data": ""
}
17)删除任务的已拨打号码
功能说明:
通过此接口实现删除任务的已拨打号码
更新说明: --
请求:
URL:http://{ip}/ai/touchphone/delete
请求方法:
POST
请求头:必须带上登录时返回的Token
参数名 | 类型 | 是否必须 | 描述 | 实例 |
id | Sting | 是 | 号码ID | 多个逗号分隔 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
data | JSON | 详细的数据 |
JSON请求实例:
{
"id": "4,3"
}
JSON响应实例:
{
"errorCode": 0,
"description": "操作成功",
"data": ""
}
18)批量添加号码
功能说明:
通过此接口实现任务的号码添加。
更新说明: --
请求:
URL:http://{ip}/ai/notouchphone/insertDb
请求方法:
POST
请求头:必须带上登录时返回的Token
参数名 | 类型 | 是否必须 | 描述 | 实例 |
taskId | Integer | 是 | 任务ID | |
data | JSONArray | 是 | 数据对象见下表 |
Data的对象结构体:
参数名 | 类型 | 是否必须 | 描述 | 实例 |
phone | String | 是 | 号码 | 最大长度:20字符 |
name | String | 否 | 名称 | |
taskId | Integer | 是 | 任务ID | |
companyName | String | 否 | 公司名称 | |
source | String | 否 | 来源 | |
remark1 | String | 否 | 备注1 | |
remark2 | String | 否 | 备注2 | |
remark3 | String | 否 | 备注3 | |
remark4 | String | 否 | 备注4 |
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
data | JSON | 详细的数据 |
JSON请求实例:
{
"taskId": 22,
"data":
[{
"phone":"15555555555",
"name": "张三",
},{
"phone":"15555555555",
"name": "张三"
}]}
JSON响应实例:
{
"errorCode": 0,
"description": "操作成功",
"data": ""
}
19)获取指定任务的待拨打号码
功能说明:
通过此接口实现查询指定任务的待拨打的号码。
更新说明: --
请求:
URL:http://{ip}/ai/notouchphone/phone/{页码}?taskId={任务ID}
请求方法:GET
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
total | Integer | 总数据量 |
pagaSize | Integer | 每页返回的数据量 |
pageNum | Integer | 当前页数 |
data | JSON | 详细的数据 |
Data数据结构体说明:
参数名 | 类型 | 描述 |
id | Integer | 此条数据的编号 |
phone | String | 获取的号码 |
name | String | 名称 |
companyName | String | 创建时间,单位:毫秒 |
updatetime | Long | 更新时间,单位:毫秒 |
JSON响应实例:
{
"errorCode": 0,
"description": "",
"pages": 2,
"pageSize": 30,
"pageNum": 2,
"total": 60,
"data": [
{
"address": "",
"companyName": "",
"dialFailedCount": 0,
"id": 245670,
"name": "",
"noUserResponseCount": 0,
"phone": "180****5326",
"remark1": "",
"remark2": "",
"remark3": "",
"remark4": "",
"remark5": "44764",
"sex": "",
"sort": "",
"source": "",
"status": 1,
"taskId": 13,
"uploadtime": 1619766179000,
"userid": 1
},
{
"address": "",
"companyName": "",
"dialFailedCount": 0,
"id": 245671,
"name": "",
"noUserResponseCount": 0,
"phone": "180****5553",
"remark1": "",
"remark2": "",
"remark3": "",
"remark4": "",
"remark5": "44765",
"sex": "",
"sort": "",
"source": "",
"status": 1,
"taskId": 13,
"uploadtime": 1619766179000,
"userid": 1
}
]
}
20)获取话术
功能说明:
通过此接口实现查询系统当前所有的话术。
更新说明: --
请求:
URL:http://{ip}/ai/ai2words/find
请求方法:GET
请求头:必须带上登录时返回的Token
Auth: {登录时返回的Token}
响应:
参数名 | 类型 | 描述 |
errorCode | Integer | 响应码 0 成功 |
Description | String | 响应描述 |
data | JSON | 详细的数据 |
Data数据结构体说明:
参数名 | 类型 | 描述 |
id | Integer | 此条数据的编号 |
wordsname | String | 话术的名称 |
wordsDescription | Integer | 话术的描述 |
createtime | Long | 创建时间,单位:毫秒 |
updatetime | Long | 修改时间,单位:毫秒 |
hotWords | String | 话术热词 |
isuse | Integer | 此话术是否处于审核通过状态,0已通过 1审核中 2未通过 |
isonline | Integer | 此话术是否可以上线使用 0不能 1可以 |
userid | Integer | 归属用户的ID |
JSON响应实例:
{
"errorCode": 0,
"description": "",
"data": [{
"asrWait": 3000,
"copyNumber": 0,
"createtime": 1548413428000,
"defaultGrade": 24,
"dirPath": "D:/voiceFile/AI2huifang_20190819141705_40/",
"hotWords": "旺旺留言",
"id": 188,
"ismarket": 0,
"isonline": 1,
"ispy": 0,
"ispyVague": 0,
"isuse": 0,
"playbackWait": 5000,
"unKnowPriority": 0,
"updatetime": 1556181841000,
"userid": 1,
"wordsDescription": "",
"wordsSubType": 10001,
"wordsType": 10000,
"wordsname": "回访"
}]
}
21)话术的启用
应用截图