预测试外呼接口文档
预测式外呼 - 预测式外呼接入流程
预测式外呼接入流程

预测式外呼 - 任务状态参数回调说明
接口说明
任务结束就会推送
回调方式
由客户提供一个可以接收json数据的接口地址,由我们配置或客户自行在后台配置都可以
分机状态回调数据示例
{
"taskid": "20260828142910757770",
"companycode": "3562829",
"status": 3,
"round": 1,
"endtype": "over"
}
字段说明
| 字段 |
类型 |
说明 |
| taskid |
string |
任务id |
| companycode |
string |
公司编码 |
| status |
string |
任务结束 3 |
| round |
string |
轮次 |
| endtype |
string |
结束类型 over 正常结束, timeout 任务截止结束 |
预测式外呼 - 创建预测试外呼任务接口
接口说明
创建一个预测试外呼任务。注:单个任务的号码数不要超过10000个,如果需要再增加号码,请通过追加接口提交。
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Yccall.TaskCreat |
| token |
string |
是 |
通过授权接口获取的token |
| assigntype |
int |
是 |
分配类型 1:分机 3:分机组 |
| assignagent |
string |
是 |
设置为分机,直接填写分机;设置为群组,填写群组名称 |
| telphone |
string(JSON) |
是 |
手机号码、预设呼叫时间(时间戳)(默认当前时间戳,大于此时间则不呼)等。示例:[{“phone”:18012345678,”time”:1500000000,”userid”:””,”memberid”:””,”chengshudu”:””,”customuuid”:””}] |
| taskscale |
string |
是 |
空闲坐席呼叫比 格式 1:1 |
| concurrent |
string |
否 |
任务并发 默认100 |
| scheduledtime |
string |
否 |
任务计划执行时间,任务开启状态下有效 格式:yyyy-mm-dd hh:mm:ss |
| pausedtime |
string |
否 |
任务运行截止时间,任务开启状态下有效 格式:yyyy-mm-dd hh:mm:ss |
| isscale |
string |
否 |
是否固定呼叫比例 auto:动态计算,manual:手动指定 |
| disnumber |
string |
否 |
主叫号码(用户手机上显示的来电号码),必须使用系统配置的主叫号码,否则呼叫失败,多个号码用逗号隔开(为空则系统随机选取主叫号码) |
| taskname |
string |
否 |
任务名 |
| status |
string |
否 |
任务是否开启 0不开启、1开启、默认是0 |
| customtaskid |
string |
否 |
自定义任务id |
| is_multi_call |
int |
否 |
是否开启多轮呼叫 (0:关闭, 1:开启) 默认0 |
| multi_call_type |
int |
否 |
重呼类型 (1:全量重呼, 2:未接通重呼) 默认2 |
| multi_call_max_rounds |
int |
否 |
最大重呼次数(包含首轮呼叫) |
| multi_call_interval |
int |
否 |
多轮呼叫间隔时间 秒, 默认值3600秒 否 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
foreach ($phoneArr as $phone){
$telphoneArr[] = [
'phone' => trim($phone),
'time' => $start_time,
'memberid' => '',
'chengshudu' => '',
'customuuid' => '',
];
}
$postFields = [
'service' => 'App.Sip_Yccall.TaskCreat',
'token' => 'ABCDEFG',
'assigntype' => 2,
'assignagent' => 'queue-1',
'telphone' => json_encode($telphoneArr),
'taskscale' => '1:1',
'disnumber' => ''
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "创建成功",
"result": {
"taskid": "20200212163504393460",
"invaliddata": []
},
"reqtime": 1581496504,
"rsptime": 1581496504
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| result |
object |
返回结果 |
| taskid |
string |
任务唯一id |
| invaliddata |
array |
无效数据 |
预测式外呼 - 设置预测试外呼任务状态接口
接口说明
设置预测试外呼任务的状态。
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Yccall.TaskSet |
| token |
string |
是 |
通过授权接口获取的token |
| taskid |
string |
是 |
创建任务时返回的唯一id |
| taskstatus |
int |
是 |
设置任务状态 1:开启、2:暂停、3:结束 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Yccall.TaskSet',
'token' => 'ABCDEFG',
'taskid' => 'ABCDEFG',
'taskstatus' => 1,
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
成功返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "设置成功",
"reqtime": 1581496800,
"rsptime": 1581496800
},
"msg": ""
}
失败返回数据结构示例
{
"ret": 200,
"data": {
"status": 1,
"desc": "失败",
"errors": {
"code": 1002,
"codemsg": "非进行中的任务无法暂停,当前任务状态(暂停)"
},
"reqtime": 1784876669,
"rsptime": 1784876669
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| desc |
string |
返回描述 |
预测式外呼 - 预测试外呼任务号码追加接口
预测试外呼任务号码追加接口
接口说明
已创建的预测式任务中,通过此接口可对任务中的号码进行增加,单次追加号码不要超过10000个。
只有未开始、进行中或已暂停的任务才能追加号码
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Yccall.TaskAdd |
| token |
string |
是 |
通过授权接口获取的token |
| taskid |
string |
是 |
预测式任务ID |
| customtaskid |
string |
否 |
自定义任务id |
| telphone |
string(JSON) |
是 |
手机号码、预设呼叫时间(时间戳)(默认当前时间戳,大于此时间则不呼)等。示例:[{“phone”:18012345678,”time”:1500000000,”userid”:””,”memberid”:””,”chengshudu”:””,”customuuid”:””}] |
请求接口示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Yccall.TaskAdd',
'token' => 'ABCDEFG',
'taskid' => 'ADSFNIDJN',
'telphone' => '[{"phone":18012345678,"time":1500000000,"userid":"","memberid":"","chengshudu":"","customuuid":""}]'
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "追加成功",
"result": {
"success": 7,
"invaliddata": []
},
"reqtime": 1613962979,
"rsptime": 1613962979
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| result |
object |
返回结果 |
| success |
int |
追加成功的号码 |
| invaliddata |
array |
无效数据 |
预测式外呼 - 删除预测任务中的号码
接口说明
删除预测试外呼任务中的号码。
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Yccall.taskDelPhone |
| token |
string |
是 |
通过授权接口获取的token |
| taskid |
string |
是 |
创建任务时返回的唯一id |
| telphone |
string |
是 |
号码,多个号码用英文逗号隔开 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Yccall.taskDelPhone',
'token' => 'ABCDEFG',
'taskid' => 'ABCDEFG',
'telphone' => 1,
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "删除成功",
"reqtime": 1581496800,
"rsptime": 1581496800
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| desc |
string |
返回描述 |
预测式外呼 - 预测外呼任务列表
接口说明
获取任务列表
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Yccall.TaskList |
| token |
string |
是 |
通过授权接口获取的token |
| createtime |
datetime |
否 |
任务创建时间,格式:yyyy-mm-dd hh:mm:ss |
| endtime |
datetime |
否 |
结束时间,格式:yyyy-mm-dd hh:mm:ss |
| taskid |
string |
否 |
任务ID |
| taskname |
string |
否 |
任务名称 |
| status |
string |
否 |
任务状态 0:未开始、1:进行中、2:暂停、3:结束 |
| tasktype |
string |
否 |
接听类型 transfer:分机、groups:群组 |
| taskobject |
string |
否 |
群组或坐席 |
| currentpage |
int |
否 |
页数,默认:1 |
| itemsperpage |
int |
否 |
每页数量,默认:10,最小:1;最大:1000 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Yccall.TaskList',
'token' => 'ABCDEFG',
'taskid' => ''
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "获取成功",
"result": {
"totalitems": 1,
"currentpage": 1,
"itemsperpage": 10,
"task": [
{
"taskid": "20250106150501420056", #任务id
"taskname": "20250106150501420056", # 任务名称
"taskassign": "700000", # 任务坐席
"starttime": "2021-08-21 00:11:22", # 启动时间
"taskscale": "1:2", # 外呼比例
"nowscale": "", # 当前呼叫比例
"disnumber": "17328347742", # 主叫号码
"status": 1025, # 任务状态:1025=未开始,1026=进行中,1027=暂停,1028=已结束
"createtime": "2025-01-06 15:05:01", # 创建时间
"total": 2, # 任务总数
"called": 0, # 已呼叫个数
"nocall": 2 # 未呼叫个数
}
]
},
"reqtime": 1581496504,
"rsptime": 1581496504
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| result |
object |
返回结果 |
预测式外呼 - 预测外呼任务号码列表
接口说明
获取预测式外呼任务呼叫详情数据
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Yccall.TaskInfo |
| token |
string |
是 |
通过授权接口获取的token |
| taskid |
string |
是 |
任务ID |
| currentpage |
int |
否 |
页数,默认:1 |
| itemsperpage |
int |
否 |
每页数量,默认:10,最小:1;最大:1000 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Yccall.TaskInfo',
'token' => 'ABCDEFG',
'taskid' => 'taskid'
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "成功",
"result": {
"totalitems": 1,
"currentpage": 1,
"itemsperpage": 1000,
"task": [{
"taskid": "20260917111445955230",
"taskname": "20260917111445955230",
"taskassign": "kefu01",
"taskscale": "1:2",
"nowscale": null,
"concurrent": 200,
"currentconcurrent": 0,
"disnumber": "0",
"status": 1025,
"customtaskid": "8888723019",
"createtime": "2026-09-17 10:14:48",
"starttime": null,
"endtime": null,
"scheduledtime": null,
"pausedtime": null,
"round": 1,
"isscale": "auto",
"is_multi_call": 1,
"multi_call_type": 2,
"multi_call_interval": 60,
"multi_call_max_rounds": 1,
"message": "未开始",
"runtime": "00:00:00",
"total": 2,
"called": 0,
"nocall": 2,
"answer": 0,
"noanswer": 0,
"losscall": 0
}]
},
"reqtime": 1789614969,
"rsptime": 1789614969
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| result |
object |
返回结果 |
预测式外呼 - 获取预测任务客户详情信息
接口说明
获取预测式外呼客户详情信息
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Customer.GetTaskDetailInfo |
| token |
string |
是 |
通过授权接口获取的token |
| taskid |
string |
是 |
任务ID |
| telphone |
string |
是 |
客户号码 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Customer.GetTaskDetailInfo',
'token' => 'ABCDEFG',
'taskid' => 'taskid',
'telphone' =>'121212121',
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "成功",
"result": [
{
"taskid": "20260917115229487138",
"telphone": "15988739244",
"telname": "阿三",
"sex": "男",
"age": "18",
"ext": "{\"type\":\"robot\",\"level\":4}",
"mark": null,
"taskname": "20260917115229487138"
}
],
"reqtime": 1789627594,
"rsptime": 1789627594
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| result |
object |
返回结果 |
预测式外呼 - 获取agent接通情况
接口说明
获取坐席接通情况
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Yccall.TaskAgentCall |
| token |
string |
是 |
通过授权接口获取的token |
| createtime |
string |
是 |
任务创建开始时间, 格式 2025-09-01 00:00:00 |
| endtime |
string |
是 |
任务创建结束时间,格式 2025-09-05 00:00:00 |
| taskid |
string |
否 |
任务ID 多个任务id用,分隔 |
| agent |
string |
否 |
agent 名称 |
| customtaskid |
string |
否 |
自定义任务id |
| currentpage |
int |
否 |
页数,默认:1 |
| itemsperpage |
int |
否 |
每页数量,默认:10,最小:1;最大:1000 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Yccall.TaskAgentCall',
'token' => 'ABCDEFG',
'taskid' => 'taskid',
'agent' => 'agent',
'customtaskid' =>'customtaskid'
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "获取成功",
"result": {
"totalitems": 3,
"currentpage": 1,
"itemsperpage": 10,
"task": [
{
"agent": "测试1", #agent名称
"total_calls": 168, #呼叫总数
"connected_calls": 0, #接通数
"fail_calls": 168, #未接数
"connect_rate_percent": "0.00" #接通率
}
]
},
"reqtime": 1756961582,
"rsptime": 1756961582
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| result |
object |
返回结果 |
预测式外呼 - 获取agent转接情况
接口说明
获取坐席转接情况
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Yccall.TaskAgentTta |
| token |
string |
是 |
通过授权接口获取的token |
| createtime |
string |
是 |
任务创建开始时间, 格式 2025-09-01 00:00:00 |
| endtime |
string |
是 |
任务创建结束时间,格式 2025-09-05 00:00:00 |
| taskid |
string |
否 |
任务ID 多个任务id用,分隔 |
| agent |
string |
否 |
agent 名称 |
| customtaskid |
string |
否 |
自定义任务id |
| currentpage |
int |
否 |
页数,默认:1 |
| itemsperpage |
int |
否 |
每页数量,默认:10,最小:1;最大:1000 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Yccall.TaskAgentTta',
'token' => 'ABCDEFG',
'taskid' => 'taskid'
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "获取成功",
"result": {
"totalitems": 3,
"currentpage": 1,
"itemsperpage": 10,
"task": [
{
"agent": "测试1", #agent名称
"total_tta": 168, #转接到坐席数
"success_tta": 0, #转接到坐席接通
"fail_tta": 168, #转接坐席未接
"tta_rate_percent": "0.00" #成功转接率
}
]
},
"reqtime": 1756961582,
"rsptime": 1756961582
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| result |
object |
返回结果 |
预测式外呼 - 获取agent正在呼叫情况
接口说明
获取坐席正在通话情况
请求参数
| 参数名 |
类型 |
是否必须 |
说明 |
| service |
string |
是 |
App.Sip_Yccall.TaskAgentCalling |
| token |
string |
是 |
通过授权接口获取的token |
| createtime |
string |
是 |
任务创建开始时间, 格式 2025-09-01 00:00:00 |
| endtime |
string |
是 |
任务创建结束时间,格式 2025-09-05 00:00:00 |
| taskid |
string |
否 |
任务ID 多个任务id用,分隔 |
| agent |
string |
否 |
agent名称 |
| customtaskid |
string |
否 |
自定义任务id |
| currentpage |
int |
否 |
页数,默认:1 |
| itemsperpage |
int |
否 |
每页数量,默认:10,最小:1;最大:1000 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Yccall.TaskAgentCalling',
'token' => 'ABCDEFG',
'taskid' => 'taskid'
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $apiUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$curlError = curl_error($curl);
curl_close($curl);
var_dump($response);
?>
返回数据结构示例
{
"ret": 200,
"data": {
"status": 0,
"desc": "获取成功",
"result": {
"totalitems": 3,
"currentpage": 1,
"itemsperpage": 10,
"task": [
{
"agent": "测试1", #agent名称
"total_calls": 168, #呼叫数
}
]
},
"reqtime": 1756961582,
"rsptime": 1756961582
},
"msg": ""
}
返回参数说明
| 参数名 |
类型 |
说明 |
| result |
object |
返回结果 |