通用接口
获取授权Token接口
接口说明
访问其他接口所需的token均需通过授权的Appid和Accesskey从此接口获取(批量IVR接口除外)。接口授权Token时效性为12小时。
请求方式
POST,form-data格式
请求参数
| 参数名 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| appid | string | 是 | 授权appid |
| accesskey | string | 是 | 授权accesskey |
| service | string | 是 | App.Sip_Auth.Login |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Auth.Login',
'appid' => 'ABCDEFG',
'accesskey' => 'ABCDEFG',
];
$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":{
"companycode":"1",
"companyname":"test",
"token":"773a70dd02f0695d50205e9b267692b9",
"authtime":"2020-01-01 00:00:00",
"authmodel":""
},
"reqtime":1581240882,
"rsptime":1581240882
},
"msg":""
}
返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| companycode | int | 公司代码 |
| companyname | string | 公司名称 |
| token | string | 授权token,用来访问其他接口 |
清除Token接口
接口说明
当有新增分机或是分机进行调整后出现异常时,可以通过该接口清除Token后,再重新获取Token继续操作。
请求方式
POST,form-data格式
请求参数
| 参数名 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| service | string | 是 | App.Sip_Auth.Logout |
| token | string | 是 | Token字符串 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => ' App.Sip_Auth.Logout',
'token' => 'ABCDEFG',
];
$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": 1602655204,
"rsptime": 1602655204
},
"msg": ""
}
全局错误码和状态码
一、接口异常错误
说明:ret为非200,msg为异常的错误信息。
{
"ret":400, // 状态码
"data":[],
"msg":"非法请求:参数不合法"
}
| ret | msg | 说明 |
|---|---|---|
| 400 | 非法请求 | 一般为参数不合法 |
| 500 | 服务器错误 | |
| 600 | token无效请重新登陆验证 | |
| 601 | appid未授权 | 请检查appid或联系客服人员是否授权 |
| 602 | appid授权已到期 | |
| 603 | 模块未授权 | |
| 604 | IP未授权 | 请联系厂商授权访问 |
二、接口请求正常,内部处理错误
说明:ret为200。data结构体里status为1,desc为失败的中文描述,errors为详细错误信息,其中code码请参照对应说明。msg为空。
{
"ret": 200,
"data": {
"status": 1,
"desc": "xxx失败",
"errors": {
"code": "1003",
"codemsg": "授权失败"
},
"reqtime": 1507529858,
"rsptime": 1507529858
},
"msg": ""
}
| code | codemsg | 说明 |
|---|---|---|
| 1001 | 服务器连接失败 | 一般为网络原因 |
| 1002 | 操作异常 | 一般为校验异常等 |
| 1003 | 操作失败 | 一般是授权失败、注销失败、命令发送失败、服务器连接异常等 |
| 1010 | 分机异常 | 可能是新加的分机,需要重新登陆获取新token |
| 1011 | 非法分机 | 非本公司所有 |
| 1012 | 分机不存在 | 分机号码状态 |
| 1013 | 分机已停用 | 分机号码状态 |
| 1014 | 分机未注册 | 分机号码状态 |
| 1015 | 分机不在通话中 | 分机号码状态 |
| 1016 | 分机已启用 | 分机号码状态 |
| 1017 | 分机已注册 | 分机号码状态 |
| 1018 | 号码已启用 | 主叫号码状态 |
| 1019 | 号码已禁用 | 主叫号码状态 |
| 1020 | 号码不存在 | 主叫号码状态 |
| 1021 | 非法号码 | 非本公司所有 |
| 1024 | 任务不存在 | 预测式任务接口返回状态 |
| 1025 | 未开始 | 预测式任务接口返回状态 |
| 1026 | 进行中 | 预测式任务接口返回状态 |
| 1027 | 暂停 | 预测式任务接口返回状态 |
| 1028 | 已结束 | 预测式任务接口返回状态 |
| 1201 | 空闲 | 分机合法、已启用并已注册 |
| 1202 | 振铃 | 分机呼叫状态 |
| 1203 | 摘机 | 分机呼叫状态 |
| 1204 | 通话中 | 分机呼叫状态 |
| 1205 | 用户拒接 | 被叫方拒接 |
| 1210 | 队列异常 | 预测式外呼中返回 |
| 1211 | 非法队列 | 不存在或非本公司所有 |
| 1212 | 未接听 | 已分配未接听 |
| 1213 | 等待中 | 等待分配(示闲) |
| 1214 | 接收中 | 队列中的分机状态 |
| 1215 | 已接听 | 队列里的分机状态 |
| 1216 | 拒接 | 队列里的分机状态 |
| 1217 | 暂停 | 示忙 |
| 1218 | 已签入 | 队列中已签入该分机 |
| 10001 | 正常挂断 | 挂机原因 |
| 10002 | 呼叫取消 | 挂机原因 |
| 10003 | 拒绝接听 | 挂机原因 |
| 10004 | 外呼通道线路失败 | 挂机原因 |
| 10005 | 用户超时未接听 | 挂机原因 |
| 10006 | 用户忙 | 挂机原因 |
| 10007 | 服务器端挂断 | 挂机原因 |
| 10008 | 分机未注册 | 挂机原因 |
| 10009 | 目标不可达 | 挂机原因 |
| 10011 | 定时器超时 | 挂机原因 |
| 10012 | 呼入时回调接口错误 | 挂机原因 |
| 10013 | 分机不存在 | 挂机原因 |
| 10014 | 未发现 | 挂机原因 |
| 10015 | 请求超时 | 挂机原因 |
| 10016 | 无人接听 | 挂机原因 |
| 10017 | 呼叫失效 | 挂机原因 |
| 10019 | 归属地未知 | 挂机原因 |
| 10020 | 其它原因 | 挂机原因 |
| 10024 | 错误请求 | 挂机原因 |
| 10025 | 呼叫被禁止 | 挂机原因 |
| 10027 | 号码被改变 | 挂机原因 |
| 10028 | 呼叫拦截 | 挂机原因 |
| 10031 | 未知 | 挂机原因 |
| 10040 | 主叫挂机 | 挂机方向 |
| 10041 | 被叫挂机 | 挂机方向 |
通话状态回调参数说明
分机通话状态回调需要给对应的账号配置上回调地址即可。 分机通话状态的回调地址配置:由客户提供一个可以接收json数据的接口地址,由我们配置或客户自行在后台配置都可以。
分机通话状态回调数据格式
{
"buuid":"526d643a-e8fe-11ea-a84a-cf6e45e88543",
"callee":"87847569524",
"caller":"90240005",
"companycode":"9024",
"customuuid":"123Abc",
"direction":"callout",
"disnumber":"2190240001",
"extnumber":"90240005",
"isbleg":"false",
"method":"3",
"starttime":"1598598959",
"status":"ring",
"type":"call",
"uuid":"526d637c-e8fe-11ea-a849-cf6e45e88543"
}
分机通话状态回调参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| buuid | string | 通话b侧被叫号码的uuid |
| callee | int | 被叫号码(客户号码/目标号码)。指最终与坐席建立通话的外部用户号码。 |
| caller | int | 主叫号码(坐席号码)。指实际发起通话或进行沟通的坐席真实号码(或分机号)。 |
| companycode | int | 账号对应的公司id |
| customuuid | string | 自定义参数-客户id |
| direction | string | 呼叫方向:1、呼入; 2、呼出; |
| disnumber | int | 显示主叫(外显号码)。指客户手机上看到的来电号码。 |
| extnumber | int | 分机号 |
| isbleg | string | true为手机侧响铃;false为坐席侧响铃; |
| method | string | 呼叫方法:0、不限;1、分机互拨;2、分机直拨;3、API呼叫(默认);4、API双呼;5、预测式外呼;6、IVR/群呼。 |
| starttime | string | 呼叫时间 |
| status | string | 呼叫状态:ring 响铃、 answer 应答、 hangup 挂机 |
| type | string | 呼叫类型 |
| uuid | string | 通话uuid |
通话记录回调参数说明
通话记录回调参数说明
话单回调需要给对应的账号配置上回调地址即可。 话单的回调地址配置:由客户提供一个可以接收json数据的接口地址,由我们配置或客户自行在后台配置都可以。
通话记录回调数据格式json
{
"id": 263056202,
"companycode": "9513923",
"direction": "callout",
"type": "callout",
"callmethod": 6,
"starttime": "2025-10-16 17:31:13",
"answertime": "",
"endtime": "2025-10-16 17:31:21",
"duration": 8,
"billsec": 0,
"userid": "0",
"memberid": "0",
"chengshudu": "0",
"ext": "0",
"disnumber": "219513923001",
"destnumber": "81351111451",
"extnumber": "",
"recordfilename": "",
"downloadip": "",
"hangupdirection": 10040,
"hangupcause": 10020,
"uuid": "db4a44cc-aa72-11f0-ad78-1d7ff0749d07",
"userkey": "",
"customuuid": "76c33d997640d36b033d43b1d2d3964e",
"taskid": "",
"round": 0,
"recordurl": ""
}
通话记录回调参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| callmethod | int | 呼叫方法:0、不限;1、分机互拨;2、分机直拨(手拨);3、API呼叫(默认);4、API双呼;5、预测式外呼;6、IVR/群呼。 |
| starttime | string | 呼叫时间 |
| answertime | string | 应答时间 |
| endtime | string | 通话结束时间 |
| duration | int | 呼叫等待时长 |
| billsec | int | 通话时长 |
| userid | string | 员工工号 |
| chengshudu | string | 自定义参数-(ext一致) |
| ext | string | 自定义参数-扩展参数 |
| hangupdirection | int | 挂机方向: 10040 主叫挂机、10041 被叫挂机 |
| hangupcause | int | 挂机原因代码: 10001 正常挂断、10002 呼叫取消、10003 拒绝接听、10004 外呼通道线路失败、10005 用户超时未接听、10006 用户忙 |
| memberid | string | 自定义参数-会员id |
| disnumber | string | 主叫号码(最终显示在用户手机上的来电号码) |
| destnumber | string | 被叫号码 (呼叫的目标客户号码)。 |
| downloadip | string | 录音下载ip |
| recordfilename | string | 录音文件名 |
| type | string | 呼叫类型 callout呼出、callin呼入 |
| extnumber | string | 分机号 |
| uuid | string | 通话uuid |
| userkey | string | 用户按键 |
| customuuid | string | 自定义参数-客户id |
| taskid | string | 预测外呼任务id |
| round | string | 预测外呼轮次 |
| recordurl | string | 录音下载url |
| id | int | 数据id |
| companycode | string | 企业编号 |
获取通话录音下载链接接口
接口说明
获取通话记录文件的下载链接。目前通话录音保存3个月时间,建议同步保存到本地。
请求参数
| 参数名 | 类型 | 是否必须 | 说明 |
|---|---|---|---|
| service | string | 是 | App.Sip_Cdr.GetRecodeFile |
| token | string | 是 | 通过授权接口获取的token |
| filename | string | 是 | 通话记录回调中返回的录音文件名 |
接口请求示例(PHP)
<?php
$apiUrl = 'http://127.0.0.1:8080';
$postFields = [
'service' => 'App.Sip_Cdr.GetRecodeFile',
'token' => 'ABCDEFG',
'filename' => 'abcdefg',
];
$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": {
"downurl": "http://127.0.0.1:8080/abcdefg",
"expiredtime": "失效时间:2020-02-11 17:27:23"
},
"reqtime": 1581412943,
"rsptime": 1581412943
},
"msg": ""
}
返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| result | objest | 返回的结果集 |
| downurl | string | 通话录音文件下载链接 |
| expiredtime | string | 下载链接失效时间 |