Bootstrap

电销机器人源码支持私有云和本地部署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)话术的启用

应用截图

;