电销机器人源码支持私有云和本地部署Ai智能语音机器人系统-语音机器人源码-电话机器人源码-智能ai系统-freeswitch-smartivr科大讯飞-阿里云-腾讯云-语音识别
电销机器人源码支持私有云和本地部署Ai智能语音机器人系统-语音机器人源码-电话机器人源码-智能ai系统-freeswitch-smartivr科大讯飞-阿里云-腾讯云-语音识别
智能语音系统
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)话术的启用
应用截图
更多推荐
所有评论(0)