话单接口文档


通用api - 获取授权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,用来访问其他接口

通用api - 获取通话记录接口

接口说明

客户主动拉取通话记录列表的接口。

请求方式

POST,form-data格式

获取通话记录接口请求参数

参数名 类型 是否必须 说明
service string App.Sip_Cdr.GetBill
token string 通过授权接口获取的token
starttime string (拔打)起始时间,格式:yyyy-mm-dd hh:mm:ss
endtime string (拔打)结束时间,格式:yyyy-mm-dd hh:mm:ss
syncflag int 获取记录类型:1、获取未查询过的记录(默认);2、获取已查询过的记录;3、获取全部记录。
direction int 呼叫方向:1、呼入; 2、呼出;3、全部(默认)。
callmethod int 呼叫方法:0、不限;1、分机互拨;2、分机直拨(手拨);3、API呼叫(默认);4、API双呼;5、预测式外呼;6、IVR/群呼。
currentpage int 页数,默认:1
itemsperpage int 每页数量,默认:10,最小:1;最大:1000
extnumber string 分机号,多个分机号用英文逗号隔开,传空值时为全部
destnumber string 呼叫的目标号码,传空值时为全部
userid string 自定义数据(员工ID),可为空值
memberid string 自定义数据(会员ID),可为空值
ext string 自定义数据(扩展参数)
customuuid string 自定义数据(客户ID)

获取通话记录接口请求示例(PHP)

<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Cdr.GetBill',
        'token'     => 'ABCDEFG',
        'starttime'  => '2019-01-12 00:00:00',
        'endtime'    => '2020-12-12 00:00:00',
        'direction'  => 3
        'syncflag'   => 3,
        'callmethod' => 0,
        'currentpage'  => 1,
        'itemsperpage'  => 10,
    ];
    $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": 8151,
            "currentpage": 1,
            "itemsperpage": 10,
            "bills": [
                {
                    "id": 823988364,
                    "companycode": "8888723",
                    "direction": "callout",
                    "callmethod": 5,
                    "starttime": "2025-10-16 16:18:07",
                    "answertime": "",
                    "endtime": "2025-10-16 16:18:43",
                    "duration": 36,
                    "billsec": 0,
                    "userid": "U_q1IBUeAn",
                    "memberid": "M_v9sKNEVV",
                    "ext": "{\"type\":\"robot\",\"level\":4}",
                    "chengshudu": "{\"type\":\"robot\",\"level\":4}",
                    "disnumber": "218888723001",
                    "destnumber": "15978995617",
                    "extnumber": "8888723002",
                    "recordfilename": "",
                    "downloadip": "",
                    "hangupdirection": 10041,
                    "hangupcase": 10020,
                    "uuid": "a526e04e-aa68-11f0-96ea-5ba23668545d",
                    "userkey": "",
                    "customuuid": "SIcqy3Bu-qBxv-hquJ-B80W-QaOpFkWMHe8h",
                    "taskid": "20251016161536503802",
                    "round": "1",
                    "recordurl": ""
                }
            ]
        },
        "reqtime": 1581502410,
        "rsptime": 1581502410
    },
    "msg": ""
}

返回参数说明

参数名 类型 说明
result objest 返回的结果集
—totalitems int 记录总数
—currentpage int 当前页码
—itemsperpage int 每页数量
—bills array 记录数组
——id int 记录id
——companycode string 企业code
——extnumber string 分机号
——destnumber string 目标号码
——disnumber string 显示号码
——starttime string 呼叫时间
——answertime string 应答时间
——endtime string 通话结束时间
——duration int 呼叫等待时长
——billsec int 通话时长
——direction string 呼叫方向
——callmethod int 呼叫方式
——userid string 自定义参数(用户id)
——memberid string 自定义参数(会员id)
——chengshudu string 自定义参数(和ext值一样)
——ext string 自定义参数(扩展参数)
——customuuid string 自定义参数(客户id)
——recordfilename string 通话记录文件名
——downloadip string 下载ip
——hangupdirection int 挂断方向
——hangupcause int 挂断原因
——userkey string 用户按键
——taskid string 预测外呼任务id
——round string 预测外呼轮次
——recordurl string 录音下载url

Postman请求参数示例

通用api - 清除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": ""
}

通用api - 全局错误码和状态码

一、接口异常错误

说明: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 被叫挂机 挂机方向

通用api - 通话记录回调参数说明

通话记录回调参数说明

话单回调需要给对应的账号配置上回调地址即可。 话单的回调地址配置:由客户提供一个可以接收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 员工工号
ext string 自定义参数-扩展参数
chengshudu string 自定义参数-值和ext一致
hangupdirection int 挂机方向
hangupcause int 挂机原因代码
memberid string 自定义参数-会员id
disnumber string 主叫号码
destnumber string 被叫号码
downloadip string 录音下载ip
recordfilename string 录音文件名
id int 数据id
companycode string 公司code
type string 呼叫类型 callout呼出、callin呼入
extnumber string 分机号
uuid string 通话uuid
userkey string 用户按键
customuuid string 自定义参数-客户id
taskid string 任务id
round string 呼叫轮次
recordurl string 录音下载地址

通用api - 通话录音下载链接接口

接口说明

获取通话记录文件的下载链接。目前通话录音保存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 下载链接失效时间