Skip to content

NXCC API cdrQueryByOrder

敖飞 edited this page Aug 18, 2026 · 6 revisions

根据 orderId 查询 CDR 记录

  • URL:https://api-hk.nxlink.ai/saas/cc/openapi/cdr/queryByOrderId
  • Method:POST
  • Content-Type:application/json
  • 需要鉴权:

服务接入点

NXLink 在全球部署了多个服务区域,请根据业务所在地选择对应的服务接入点。

代号 区域 NXLink 网站 API 网关
APAC 香港 https://app.nxlink.ai https://api-hk.nxlink.ai
AMER 美洲 https://chl-nxlink.nxcloud.com https://chl-api.nxlink.ai
APAC(IDN) 印尼 https://idn.nxlink.ai https://api-idn.nxlink.ai

鉴权机制

鉴权规则请参考:API 接口调用约定

请求参数

Header 参数

参数名 类型 必选 示例值 说明
accessKey String fme2na3kdi3ki 用户身份标识
ts String 1691372191000 当前请求时间(Unix 时间戳,单位:毫秒);服务端允许的最大时间误差为 60 秒
bizType String 8 业务类型,固定值 8
action String cc 业务操作,固定值 cc
sign String 6e9506557d1f289501d333ee2c365826 API 请求签名,计算方式见签名算法

Body 参数

参数名 类型 必选 示例值 说明
orderId String ORDER_ID 客户侧业务订单 ID,不能为空

tenantId 无需传入;接口根据鉴权信息识别客户。当前接口仅查询呼叫开始时间在最近 30 天内、且与 orderId 匹配的记录。

请求示例

{
  "orderId": "ORDER_ID"
}

响应参数

参数名 类型 说明
reqId String 请求 ID,用于问题排查
code Integer 结果编码;0 表示成功
data Array<Object> CDR 记录数组;无匹配记录时为空数组,不包含分页元数据
msg String 请求结果说明

data 参数

各时间字段有值时均采用 Unix 毫秒级时间戳;各时长字段均以秒为单位。字符串字段在不适用时可能为 null 或空字符串。

参数名 类型 说明
agentName String 客服账号,可能为 null
agentNickName String 客服昵称,可能为 null
answered Boolean 是否接听
answerTime Long 呼叫接通时间(Unix 时间戳,单位:毫秒);未接听时可能为 0
currency String 计费币种,可能为 null
callDuration Integer 通话时长,单位:秒
callee String 被叫号码
caller String 主叫号码
callId String 通话 ID
orderId String 客户侧业务订单 ID
direction Integer 呼叫方向:0-呼入,1-呼出,2-AICC;其他内部方向值以实际返回为准
dtmfKeys String DTMF 按键;多个按键使用英文逗号分隔,可能为 null
endTime Long 呼叫结束时间(Unix 时间戳,单位:毫秒)
hangupBy Integer 挂断方:0-客服,1-用户,2-未知;当前接口可能返回 null
hangupCode Integer 挂断原因码,详见下文“hangupCode 含义”
callStatus String 通话状态
hangupReason String 挂断原因说明
inQueueTime Long 入队时间(Unix 时间戳,单位:毫秒)
leaveMsgUrl String 留言文件 URL;当前接口可能返回 null
other String 透传信息
intent String 意图名称;当前接口可能返回 null
outQueueTime Long 出队时间(Unix 时间戳,单位:毫秒)
queueDuration Integer 排队时长,单位:秒
recordUrl String 录音文件 URL,可能为 null
ringDuration Integer 响铃时长,单位:秒;当前接口可能返回 null
ringTime Long 呼叫响铃时间(Unix 时间戳,单位:毫秒);当前接口可能返回 null
startTime Long 呼叫开始时间(Unix 时间戳,单位:毫秒)
taskId String AICC/AI 场景的任务 ID;当前接口可能返回 null
totalCustomerPrice BigDecimal 客户费用
lineIp String 线路 IP
mediaIp String 预留字段,目前可能为空字符串
termSipCode Integer 线路返回的 SIP 状态码
hangupCause String 线路返回的挂断原因
mos BigDecimal 语音质量 MOS 值,值越大表示语音质量越好
transferFlag Boolean 是否存在转交记录:true-存在,false-不存在
transferRecordList Array<Object> 转交记录列表;无记录时可能为 null 或不返回

transferRecordList 参数

当前仅支持 type=1,表示转交到坐席组。无转交记录时,transferFlagfalsetransferRecordList 可能为 null 或不返回。数组顺序不作保证。

参数名 类型 说明
type Integer 转交类型:1-转交到坐席组
agentGroupName String 转交目标坐席组名称
oriAgentName String 原坐席账号;无法匹配原坐席时可能为空
agentName String 转交后的坐席账号;无法匹配目标坐席时可能为空
agentNickName String 转交后的坐席昵称;无法匹配目标坐席时可能为空
oriAgentNickName String 原坐席昵称;无法匹配原坐席时可能为空
sipNumber String 转交后的话机账号
oriSipNumber String 原话机账号
transferStartTime Long 转交开始时间(Unix 时间戳,单位:毫秒)
transferRingTime Long 目标开始振铃时间(Unix 时间戳,单位:毫秒);无数据时可能为 0 或空
transferAnswerTime Long 目标接听时间(Unix 时间戳,单位:毫秒);未接听时可能为 0 或空
transferEndTime Long 转交结束时间(Unix 时间戳,单位:毫秒);无数据时可能为 0 或空

响应示例

成功示例

以下示例包含全部响应字段,且时间戳与时长保持一致:

{
  "reqId": "a23738fb613d889026fa2c8f4e4378f1",
  "code": 0,
  "msg": "请求成功",
  "data": [
    {
      "agentName": "fang.cheng@nxcloud.com",
      "agentNickName": "示例坐席",
      "answered": true,
      "answerTime": 1691372192000,
      "currency": "USD",
      "callDuration": 7,
      "callee": "NX09445G000025@203.0.113.10:5060",
      "caller": "85235757581",
      "callId": "b1920376-5e15-4f22-9996-6233f297685e",
      "orderId": "ORDER_ID",
      "direction": 0,
      "dtmfKeys": null,
      "endTime": 1691372199000,
      "hangupBy": null,
      "hangupCode": 1001,
      "callStatus": "正常结束",
      "hangupReason": "坐席挂断",
      "inQueueTime": 1691372191000,
      "leaveMsgUrl": null,
      "other": "OTHER",
      "intent": null,
      "outQueueTime": 1691372192000,
      "queueDuration": 1,
      "recordUrl": "https://example.com/recordings/b1920376-5e15-4f22-9996-6233f297685e.mp3",
      "ringDuration": null,
      "ringTime": null,
      "startTime": 1691372191000,
      "taskId": null,
      "totalCustomerPrice": 0.035,
      "lineIp": "127.0.0.1",
      "mediaIp": "",
      "termSipCode": 200,
      "hangupCause": "NORMAL_CLEARING",
      "mos": 4.42,
      "transferFlag": true,
      "transferRecordList": [
        {
          "type": 1,
          "agentGroupName": "售后支持组",
          "oriAgentName": "fang.cheng@nxcloud.com",
          "agentName": "li.ming@nxcloud.com",
          "agentNickName": "示例坐席 2",
          "oriAgentNickName": "示例坐席",
          "sipNumber": "NX09445G000026",
          "oriSipNumber": "NX09445G000025",
          "transferStartTime": 1691372193000,
          "transferRingTime": 1691372194000,
          "transferAnswerTime": 1691372195000,
          "transferEndTime": 1691372199000
        }
      ]
    }
  ]
}

失败示例

{
  "reqId": "FFDD1791E22F4D9DBA967C245C58E544",
  "code": 41000,
  "msg": "参数错误或为空",
  "data": {}
}

响应码说明

code message 解决办法
0 请求成功 -
41000 参数错误或为空 检查 orderId 是否为空
42000 请求失败 请联系技术人员排查
43000 内部服务器错误 请联系技术人员排查
1000~100X 鉴权问题 详情查看 API 鉴权部分

hangupCode 含义

挂断码 类型 说明 定义(Definition)
1000 呼入 正常结束 呼入通话正常结束,且没有更具体的挂断原因。
1001 呼入 正常结束-坐席挂断 呼入通话已接通,并由坐席结束通话。
1002 呼入 正常结束-用户挂断 呼入通话已接通,并由来电用户结束通话。
1003 呼入 正常结束-留言信箱 通话被转入留言信箱,并在留言处理完成后结束。
1004 呼入 正常结束-网络中断 呼入通话因网络或通道连接中断而结束。
10031 呼入 正常结束-留言信箱-坐席全忙 所有坐席均忙,因此通话被转入留言信箱。
10032 呼入 正常结束-留言信箱-无坐席在线 没有坐席在线,因此通话被转入留言信箱。
1101 呼入 呼入未接-坐席速挂 通话已接通,但坐席在 1 秒内断开。
1102 呼入 呼入未接-用户速挂 通话已接通,但来电用户在 1 秒内断开。
1103 呼入 呼入未接-用户排队放弃 来电用户在队列中等待坐席接听时,尚未接通便断开。
11031 呼入 呼入未接-用户排队放弃-坐席全忙 所有坐席均忙时,来电用户放弃排队。
11032 呼入 呼入未接-用户排队放弃-无坐席在线 没有坐席在线时,来电用户放弃排队。
1104 呼入 呼入未接-用户排队超时 在配置的队列等待超时前,来电用户未能接通坐席。
11041 呼入 呼入未接-用户排队超时-坐席全忙 所有坐席均忙时发生队列等待超时。
11042 呼入 呼入未接-用户排队超时-无坐席在线 没有坐席在线时发生队列等待超时。
1105 呼入 呼入未接-无坐席在线 因没有坐席在线,通话无法接通。
1106 呼入 呼入未接-坐席全忙 因所有坐席均忙,通话无法接通。
1107 呼入 呼入未接-黑名单号码 呼入号码被黑名单规则拦截。
1108 呼入 呼入未接-用户取消 来电用户在通话接通前取消呼叫或断开。
1109 呼入 呼入转外部号码-外线挂断 通话已转交到外部号码,并由外部号码一方结束通话。
1110 呼入 呼入转外部号码-呼叫异常 转交到外部号码失败或无法接通。
1111 呼入 呼入转外部号码-用户挂断 通话转交到外部号码后,由来电用户结束通话。
1112 呼入 转 AI Agent 成功-AI Agent 挂断 通话已成功转交到 AI Agent,并由 AI Agent 一方结束通话。
1113 呼入 转 AI Agent 成功-用户挂断 通话已成功转交到 AI Agent,并由来电用户结束通话。
1114 呼入 转 AI Agent 失败 通话无法接通 AI Agent。
1115 呼入 IVR 挂断 通话在进入队列或接通坐席前于 IVR 流程中结束;例如流程到达结束/挂断节点,或用户未提供有效输入。
2000 呼出 正常结束 呼出通话正常结束,且没有更具体的挂断原因。
2001 呼出 正常结束-坐席挂断 呼出通话已接通,并由坐席结束通话。
2002 呼出 正常结束-用户挂断 呼出通话已接通,并由客户结束通话。
2003 呼出 正常结束-坐席取消 坐席取消了呼出通话。
2004 呼出 正常结束-网络中断 呼出通话因网络或通道连接中断而结束。
2101 呼出 呼出未接-坐席速挂 呼出通话已接通,但坐席在 1 秒内断开。
2102 呼出 呼出未接-用户速挂 呼出通话已接通,但客户在 1 秒内断开。
2103 呼出 呼出未接-用户响铃拒接 客户在响铃后拒绝接听。
2104 呼出 呼出未接-超时未接 客户在呼出响铃超时前未接听。
2105 呼出 呼出未接-黑名单号码 呼出号码被黑名单规则拦截。
2106 呼出 呼出未接-呼叫限制号码 呼出号码被呼叫限制规则拦截。
2107 呼出 呼出未接-呼叫限制(体验次数) 呼叫因体验或试用次数限制而被拦截。
2201 呼出 无法接通-呼叫拒绝 网络、运营商或目标号码拒绝了呼叫。
2202 呼出 无法接通-暂时无法接通 目标号码或网络暂时不可用。
2203 呼出 无法接通-线路繁忙 目标线路正忙。
2204 呼出 无法接通-呼叫异常 呼叫因异常通话或网络异常而失败。
2205 呼出 无法接通-无法接通 目标无法接通,例如用户未注册。
2206 呼出 无法接通-坐席取消 客户接听前,坐席取消了呼叫。
3000 AICC 正常结束 AICC 通话正常结束,且没有更具体的挂断原因。
3001 AICC 转人工成功-坐席挂断 成功转接人工坐席后,由坐席结束通话。
3002 AICC 转人工成功-用户挂断 成功转接人工坐席后,由用户结束通话。
3003 AICC 转人工成功-网络中断 成功转接人工坐席后,通话因网络或通道连接中断而结束。
3101 AICC 转人工失败-坐席速挂 转接人工后曾短暂接通,但坐席在 1 秒内断开。
3102 AICC 转人工失败-用户速挂 转接人工后曾短暂接通,但用户在 1 秒内断开。
3103 AICC 转人工失败-用户排队放弃 用户在等待转接人工坐席时断开。
3104 AICC 转人工失败-用户排队超时 在配置的队列等待超时前,用户未能接通人工坐席。
31041 AICC 转人工失败-用户排队超时-坐席全忙 所有人工坐席均忙时发生队列等待超时。
31042 AICC 转人工失败-用户排队超时-无坐席在线 没有人工坐席在线时发生队列等待超时。
31043 AICC 转人工失败-用户排队放弃-坐席全忙 所有人工坐席均忙时,用户放弃人工转接队列。
31044 AICC 转人工失败-用户排队放弃-无坐席在线 没有人工坐席在线时,用户放弃人工转接队列。
3105 AICC 转人工失败-无坐席在线 因没有人工坐席在线,转接失败。
3106 AICC 转人工失败-坐席全忙 因所有人工坐席均忙,转接失败。
3107 AICC 转人工失败-用户取消 用户在完成人工转接前取消。
3108 AICC 转人工失败-坐席侧错误 转接因坐席侧错误而失败。
3109 AICC 转人工失败-坐席未接听 已分配人工坐席或坐席已响铃,但坐席未接听。

简介

短信

语音

云呼叫中心(NXLink)

云呼叫中心(AI自动外呼)

Flash Call

短链

邮件验证码

DID号码

通用

号码检测

WhatsApp

Viber

Zalo ZNS

Super Message API

隐私号(旧)

PNS

坐席(旧版)

NXLINK(HKG)

NXLINK(IDN)

NXLINK(CHL)

AI Agent

RCS

Clone this wiki locally