API文档
所有文档

          智能外呼

          API文档

          概述

          当外呼产品为可用状态时,可通过接口调用的形式实现呼叫任务拨打闭环。

          接口名称 说明
          获取主叫号码 支持获取该账户的主叫号码
          新建任务 支持基于呼叫规则创建任务
          编辑任务 支持更新呼叫任务信息
          暂停任务 支持暂停执行中的任务
          启动任务 支持启动已暂停的任务
          删除任务 支持删除任务
          查询呼叫任务 支持查询特定任务具体设置
          客户信息导入 支持向特定任务导入客户信息
          查询呼叫详情 支持查询特定任务的呼叫详情
          查询客户呼叫状态详情接口 支持查询特定任务的呼叫状态详情
          回调 支持向回调地址返回通话数据

          header说明

          key value
          userToken 认证token
          SpaceToken 空间token
          Content-Type application/json,post请求必须

          其中,userToken在「账号管理」获取。

          image.png

          SpaceToken在「编辑空间」获取。

          image.png

          获取主叫号码

          地址

          https://bior.bce.baidu.com/openapi/v1/callerlist

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          mobile String 主叫号码 01095092488
          usedTimeFloor Long 通话时长下限 23
          usedTimeCeile Long 通话时长上限 100
          usingStatus List 使用状态(0: 未使用; 1: 正在使用; 2: 欠费;) 0
          province String 省份 黑龙江
          city String 城市 哈尔滨
          pageNum Integer 页脚 默认值:1
          pageSize Integer 页大小,最大100 默认值:10

          示例

          {
          	"mobile" : "01095092488",
          	"usingStatus": [],
          	"province": "",
          	"city": "",
              "pageNum": 1,
              "pageSize": 10
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Object 主叫号码信息

          示例:

          {
            "status" : 0,
            "msg" : "OK",
            "data" : {
              "data" : [{
                "id" : 260,
                "mobile" : "01095092413",
                "usingStatus" : 0,
                "usedTime" : 58,
                "province" : "北京",
                "city" : "北京",
              }, {
                "id" : 272,
                "mobile" : "04792207913",
                "usingStatus" : 0,
                "usedTime" : 319,
                "province" : "北京",
                "city" : "北京",
              } ]
            }
          }

          新建任务

          地址

          https://bior.bce.baidu.com/openapi/v1/task/create

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          taskName String 新建任务名称 快递通知任务
          saasAppId Long 机器人的唯一标识 90132624528086591
          callerNums List 主叫号码(主叫号码对应的Id) [1, 2, 3]
          taskType Byte 任务类型(0: 手动任务; 1: 定时任务) 默认: 0
          filter Byte 是否过滤黑名单(0: 过滤;1: 不过滤) 默认: 0
          tryTimes Integer 重试次数,最大次数为3 默认:0
          tryInterval Integer 重试间隔, 最大值720;单位:分钟 默认:30
          dates List 定时任务执行日期,最多最近的30个日期,定时任务必填 ["2019-09-21", "2019-09-23"]
          startTime String 任务一天内的拨打开始时间 默认: 09:00
          endTime String 任务一天内的拨打结束时间 默认: 21:00
          pauseStatus Byte 是否设置午休。(0:不限;1:设置生效) 默认: 1
          pauseStartTime String 午休开始时间 默认: 12:00
          pauseEndTime String 午休结束时间 默认: 14:00

          其中,taskName:只支持中英文、数字和下划线且长度不超过40字节。 示例

          {
          	"taskName": "新建任务",
          	"saasAppId": 90132624528086591,
          	"taskType": 0, 
          	"dates":["2019-09-21", "2019-09-23"],
          	"startTime": "09:00",
          	"endTime": "21:00",
          	"pauseStatus": 1,
          	"pauseStartTime": "12:00",
          	"pauseEndTime": "14:00",
          	"filter": 0,
          	"tryTimes": 0,
          	"tryInterval": 30,
          	"callerNums": [1,2]
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Long 新建任务Id

          示例:

          {
          	"status": 0,
          	"msg": "OK",
          	"data": 1232 // 任务ID
          }

          编辑呼叫任务

          地址

          https://bior.bce.baidu.com/openapi/v1/task/update

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          taskId Integer 任务Id 1314
          taskName String 新建任务名称 快递通知任务
          callerNums List 主叫号码(主叫号码对应的Id) [1, 2, 3]
          filter Byte 是否过滤黑名单(0: 过滤;1: 不过滤) 默认: 0
          tryInterval Integer 重试间隔, 最大值720;单位:分钟 默认:30
          dates List 定时任务执行日期,最多最近的30个日期,定时任务必填 ["2019-09-21", "2019-09-23"]
          startTime String 任务一天内的拨打开始时间 默认: 09:00
          endTime String 任务一天内的拨打结束时间 默认: 21:00
          pauseStatus Byte 是否设置午休。0-不限;1-设置生效 默认: 1
          pauseStartTime String 午休开始时间 默认: 12:00
          pauseEndTime String 午休结束时间 默认: 14:00

          其中,taskName:只支持中英文、数字和下划线且长度不超过40字节。 示例

          {
              "taskId": 1314,
              "taskName": "新建任务",
              "dates":["2019-09-21", "2019-09-23"],
              "startTime": "09:00",
              "endTime": "21:00",
              "pauseStatus": 1,
              "pauseStartTime": "12:00",
              "pauseEndTime": "14:00",
              "filter": 0,
              "tryInterval": 30,
              "callerNums": [1, 2, 3]
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Object

          示例:

          {
              "status": 0,
              "msg": "OK",
              "data": {
              }
          }

          暂停任务

          地址

          https://bior.bce.baidu.com/openapi/v1/task/pause

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          taskId Long 创建任务返回的任务Id 1232

          示例

          {
          	"taskId": 1232
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Object

          示例:

          {
          	"status": 0,
          	"msg": "OK",
          	"data": {
          	}
          }

          启动任务

          地址

          https://bior.bce.baidu.com/openapi/v1/task/run

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          taskId Long 创建任务返回的任务Id 1232

          示例

          {
          	"taskId": 1232
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Object

          示例:

          {
          	"status": 0,
          	"msg": "OK",
          	"data": {
          	}
          }

          删除任务

          地址

          https://bior.bce.baidu.com/openapi/v1/task/delete

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          taskId Long 创建任务返回的任务Id 1232

          示例

          {
          	"taskId": 1232
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Object

          示例:

          {
          	"status": 0,
          	"msg": "OK",
          	"data": {
          	}
          }

          查询呼叫任务

          地址

          https://bior.bce.baidu.com/openapi/v1/task/info

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          taskId Long 创建任务返回的任务Id 1232

          示例

          {
          	"taskId": 1232
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Object

          data信息说明:

          参数名称 参数类型 参数说明
          id Integer 任务Id
          taskName String 任务名称
          taskStatus Byte 任务状态
          agentName String 话术名称
          numberCount Integer 号码数量
          startTime String 任务一天内的拨打开始时间
          endTime String 任务一天内的拨打结束时间
          pauseStatus Byte 是否设置午休。0-不限;1-设置生效
          pauseStartTime String 午休开始时间
          pauseEndTime String 午休结束时间
          tryTimes Integer 重试次数
          tryInterval Integer 重试间隔, 单位:分钟
          filter Byte 是否过滤黑名单(0: 过滤;1: 不过滤)
          timingDate List 定时任务执行日期
          taskType Byte 任务类型(0: 手动任务; 1: 定时任务)
          callerNums List 主叫号码

          示例:

          {
            "status" : 0,
            "msg" : "OK",
            "data" : {
              "id" : 2795,
              "taskName" : "测试任务",
              "taskStatus" : 4,
              "taskDegree" : 100,
              "agentName" : "测试话术",
              "numberCount" : 1,
              "startTime" : "09:00",
              "endTime" : "21:00",
              "pauseStatus" : 1,
              "pauseStartTime" : "12:00",
              "pauseEndTime" : "14:00",
              "tryTimes" : 1,
              "tryInterval" : 30,
              "filter" : 1,
              "timingDate" : ["2019-10-29", "2019-10-30"], 
              "taskType" : 0,
              "callerNums" : [ {
                "id" : 260,
                "mobile" : "01095092413"
              } ]
            }
          }

          客户信息导入

          地址

          https://bior.bce.baidu.com/openapi/v1/customer/import

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          taskId Long 创建任务返回的任务Id 1232
          customers List 客户信息 见客户信息说明

          客户信息说明:

          参数名称 参数类型 参数说明 是否必选 样例
          customerId String 客户号,如需传入多个号码,则必传该字段 ics12345
          mobile1 String 号码1 13312345678
          name1 String 姓名1 张三先生
          mobile2 String 号码2 13412345678
          name2 String 姓名2 李四先生
          mobile3 String 号码3 13612345678
          name3 String 姓名3 王五先生
          mobile4 String 号码4 13712345678
          name4 String 姓名4 赵六先生
          extJson Json 扩展字段

          其中:

          • 客户信息:单次导入,最多支持100条客户信息导入
          • 客户号:仅支持英文、数字以及下划线组合,且必须以字母开头,长度不超过30字节。
          • 号码信息:仅支持标准手机号、座机号。如:13312345678、01081234567、010-8123456,+86 81234567
          • 姓名信息:仅支持中英文、数字以及下划线组合,且必须以中英文开头,长度不超过50字节
          • 扩展字段说明:userInfo信息为TTS变量信息;变量名称仅支持字母、数字及下划线组合,且必须以字母开头,长度不超过30字节;变量值长度不超过300字节。 示例
          {
          	"taskId": 1232,
          	"customers": [{
          		"customerId": "ics123456",
          		"mobile1": "13312345678",
          		"name1": "张三先生",
          		"mobile2": "13412345679",
          		"name2": "李四先生",
          		"mobile3": "13612345676",
          		"name3": "王五先生",
          		"mobile4": "13712345673",
          		"name4": "赵六先生",
          		"extJson": {
          			"userInfo": {
          				"name1": "张先生",
          				"number": "BD888888"
          			}
          		}
          	}]
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Object

          data信息说明:

          参数名称 参数类型 参数说明
          success Integer 成功条数
          failed Integer 失败条数
          repeat Integer 重复条数
          failedInfo List 失败反馈

          失败反馈说明:

          参数名称 参数类型 参数说明
          customerId String 客户号
          mobile1 String 号码1
          name1 String 姓名1
          mobile2 String 号码2
          name2 String 姓名2
          mobile3 String 号码3
          name3 String 姓名3
          mobile4 String 号码4
          name4 String 姓名4
          extJson Json 扩展字段
          failedInfo String 失败原因

          示例:

          {
          	"status": 0,
          	"msg": "OK",
          	"data": [{
          		"customerId": "ics123456",
          		"mobile1": "13312345678",
          		"name1": "张三先生",
          		"mobile2": "13412345679",
          		"name2": "李四先生",
          		"mobile3": "13612345676",
          		"name3": "王五先生",
          		"mobile4": "13712345673",
          		"extJson": {
          			"userInfo": {
          				"name": "张",
          				"number": "SF13244554"
          			}
          		},
          		"failedInfo": "号码重复"
          	}]
          }

          查询呼叫详情

          地址

          https://bior.bce.baidu.com/openapi/v1/task/detail

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          taskId Long 创建任务返回的任务Id 1232
          customerNum String 客户号 10913897996820
          mobile String 号码信息 13312345678
          startTimeFloor Date 拨打时间起始日期 2019-10-08
          startTimeCeil Date 拨打时间结束日期 2019-10-08
          statusList List 呼叫状态 [8,3]
          createTimeFloor Date 导入时间起始日期 2019-10-08
          createTimeCeil Date 导入时间结束日期 2019-10-08
          durationFloor Integer 通话时长最小值,单位:秒 0
          durationCeil Integer 通话时长最大值,单位:秒 30
          pageNum Integer 页脚号,从第一页开始 默认: 1
          pageSize Integer 页面条数,最大为100 默认: 10

          示例

          {
              "taskId": 2808,
              "customerNum": "10913897996820",
              "mobile": "13821580332",
              "agentIntentId": "",
              "startTimeFloor": "2019-10-08",
              "startTimeCeil": "2019-10-08",
              "statusList": "[8,3]",
              "createTimeFloor": "2019-10-08",
              "createTimeCeil": "2019-10-08",
              "durationFloor": "0",
              "durationCeil": "1",
              "pageNum": 1
              "pageSize": 10
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Object

          data信息说明:

          参数名称 参数类型 参数说明
          id Long 客户Id
          customerNum String 客户号
          taskId Long 任务Id
          taskName String 任务名称
          mobile String 手机号
          saasSessionId String 通话记录的唯一标识
          status Byte 呼叫状态
          name String 用户名称
          intentDescription String 用户意向
          callTimes Integer 呼叫次数
          totalTime Integer 呼叫时长,单位:秒
          callType Integer 呼叫类型:0-批量任务;1-实时拨号;
          callStartTime Date 呼叫开始时间,格式:2019-10-08 19:11:41
          callEndTime Date 呼叫结束时间,格式:2019-10-08 19:11:41

          其中,mobile信息会加密,解密方式见后文 示例:

          {
            "status" : 0,
            "msg" : "OK",
            "data" : {
              "data" : [ {
                "id" : 125307,
                "customerNum" : "10913897996820",
                "taskId" : 2808,
                "taskName" : "外呼任务",
                "mobile" : "13312345678",
                "saasSessionId" : "dd20133c24a-2cb9-b394-86db-e04",
                "status" : 6,
                "name" : "小度",
                "intentDescription" : "满意",
                "callTimes" : 1,
                "totalTime" : 0,
                "callType" : 0,
                "callStartTime" : "2019-10-08 19:11:41",
                "callEndTime" : "2019-10-08 19:11:41"
              } ],
              "totalNum" : 1,
              "pageNum" : 1,
              "pageSize" : 10
            }
          }

          查询客户呼叫状态详情接口

          地址

          https://bior.bce.baidu.com/openapi/v1/task/call/history

          请求方式

          POST

          参数列表

          参数名称 参数类型 参数说明 是否必选 样例
          taskId Long 创建任务返回的任务Id 1232
          customerId Long 客户id 125307

          示例

          {
              "taskId": 2808,
              "customerId": 125307
          }

          响应参数

          参数名称 参数类型 参数说明
          status Integer 响应状态码
          msg String 响应说明
          data Object

          data信息说明:

          参数名称 参数类型 参数说明
          mobile String 被叫号码
          callTimes int 呼叫轮次
          status int 客户通话状态
          totalTimeString String 通话时长
          callStartTime Date 拨打时间

          示例:

          {
            "status" : 0,
            "msg" : "OK",
            "data" : {
          	  "mobile" : "13312345678",
                "status" : 6,
                "callTimes" : 1,
                "totalTimeString" : "00:25",
                "callStartTime" : "2019-10-08 19:11:41",
            }
          }

          回调接口

          地址

          由客户提供,回调地址在「实时调用-回调地址」填写。

          image.png

          请求方式

          POST

          参数列表

          参数 类型 含义 必选 说明
          saasAppId Long 唯一对应一个话术 与输入一致
          saasSessionId String 给客户的一通电话的唯一标识 与输入一致
          customerNum String 客户号 以实际客户号为准
          taskId Long 任务id 以实际任务id为准
          callerNum String 主叫号码 与输入一致
          calledNum String 被叫号码 与输入一致
          callStatus int 通话状态 通话状态 0:已接通,1:未接通, 9:其他
          beginTime String 呼叫接通时间 以通话录音开始时间为准,响铃时间不计入
          endTime String 呼叫结束时间 以通话录音结束为准
          extJson Object 扩展字段,返回一通电话各相关信息 Map结构,包括通话状态、意图信息、会话记录、录音、

          扩展参数说明

          参数 类型 含义 说明
          audioUrl String 录音地址
          totalTime Integer 通话时长, 单位:秒 10
          callRecord List 通话记录 sentence:通话内容;roleCategory;agent表示机器人,CLIENT表示客户; duration:该语句时长
          intentionList List 客户意向信息收集 按照收集到的先后排序
          collectInfoList List 客户信息收集 infoName:信息的key值;infoValue:信息的value值
          crankCallVo Map 是否是骚扰电话 crankCall:true表示是, false表示不是; crankCallList:匹配的策略

          请求示例

          {
              "saasAppId": 1234567,
              "saasSessionId": "714fd2a18f9-7705-135b2-bead-1acb",
              "calledNum": "15117921865",
              "callerNum": "04792207912",
              "taskId": 1002794,
              "customerNum": "adfsfdsfsfffsad",
              "callStatus": 0,
              "beginTime": 1553764898668,
              "endTime": 1553764938998,
              "extJson":{
                  "audioUrl": "https://bior.bce.baidu.com/rest/bior/v1/audio/download?sessionId=a1403c55e4e96c6d-4d5a-e10-12e5&token=4221805D91266151D4136E1B9994EA09",
                  "totalTime" 10,
                  "callRecord": [{
                      "sentence": "喂?你好,请问您是吗?我这边是千言婚恋网站的顾问老师给您来电的,看到您之前在我们网站上有注册一份征婚资料,也想请问一下您现在还单身吗",
                      "roleCategory": "AGENT",
                      "duration": 10
                  }, {
                      "sentence": "",
                      "roleCategory": "CLIENT",
                      "duration": 0
                  }, {
                      "sentence": "您好,您能听得到吗?",
                      "roleCategory": "AGENT",
                      "duration": 2
                  }, {
                      "sentence": "",
                      "roleCategory": "CLIENT",
                      "duration": 0
                  }, {
                      "sentence": "您好,您能听得到吗?",
                      "roleCategory": "AGENT",
                      "duration": 2
                  }, {
                      "sentence": "",
                      "roleCategory": "CLIENT",
                      "duration": 0
                  }, {
                      "sentence": "您好,您能听得到吗?",
                      "roleCategory": "AGENT",
                      "duration": 2
                  }],
                  "intentionList": ["是单身", "需要介绍对象"],
                  "collectInfoList": [
                      {
                          "意向":"满意"
                      }{
                          "意向":"满意"
                      }
                  ], // 信息收集
                  "crankCallVo": {
                      "crankCall": false,
                      "crankCallList": []
                  } // 骚扰电话
              }
          }

          解密方式 由于对外发送的客户手机号进行了加密,此函数为对应的解密方法,其中 key为外呼平台为每个客户颁发的token信息,message为外呼平台加密后的手机号码信息

          import javax.crypto.Cipher;
          import javax.crypto.spec.IvParameterSpec;
          import javax.crypto.spec.SecretKeySpec;
          import sun.misc.BASE64Decoder;
          
          public class DecryptUtils {
          
              /**
               * AES偏移量
               */
              private static final String OFFSET = "1qaz2wsx3edc4rfv";
          
              /**
               * 解密方式
               * @param key 用户认证的Token
               * @param message 需要解密的手机号码
               * @return
               */
              public static String decrypt(String key, String message) {
                  try {
                      byte[] bytes = (new BASE64Decoder()).decodeBuffer(message);
                      IvParameterSpec ivSpec = new IvParameterSpec(OFFSET.getBytes());
                      byte[] arrBTmp = key.getBytes();
                      byte[] arrB = new byte[16];
          
                      for (int i = 0; i < arrBTmp.length && i < arrB.length; ++i) {
                          arrB[i] = arrBTmp[i];
                      }
          
                      SecretKeySpec skeySpec = new SecretKeySpec(arrB, "AES");
                      Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
                      cipher.init(Cipher.DECRYPT_MODE, skeySpec, ivSpec);
                      byte[] ret = cipher.doFinal(bytes);
                      return new String(ret, "utf-8");
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
                  return message;
              }
          }

          其中,用户token通过外呼平台获取

          任务状态码

          状态码 描述
          0 无号码
          1 未启动
          2 执行中
          3 暂停中
          4 已完成
          5 待拨打
          6 已过期

          呼叫状态码

          状态码 描述
          0 未启用
          1 待呼叫
          2 通话中
          3 已完成
          4 未接通
          6 呼叫失败
          8 排队中

          用户状态

          状态码 描述
          0 已接通
          1 未接通
          9 呼叫失败

          错误码

          错误码 说明
          101 该用户没有开通企业认证
          102 该用户没有开通外呼
          103 您已欠费,请充值后再使用
          104 您已被停止使用外呼,请联系管理员,谢谢
          201 参数错误
          202 您没有权限访问外呼平台
          上一篇
          业务系统对接
          下一篇
          实时调用