查询外呼回执话单(QueryOutboundCallReport)

更新时间:
复制为 MD 格式

根据通话ID查询外呼回执话单,返回通话的完整通信记录,包括主叫号码、被叫号码、通话最终状态、通话起止时间和通话时长等。

前提条件

请求参数

名称

类型

必填

描述

示例值

Action

String

要执行的操作。取值:QueryOutboundCallReport

QueryOutboundCallReport

Version

String

API版本号。格式为:YYYY-MM-DD。取值:2025-11-27

固定为2025-11-27

CallId

String

通话唯一标识

call-abc123def456

响应参数

名称

类型

描述

示例值

RequestId

String

请求ID。

xxxx-xxxx-xxxx

Success

Boolean

请求是否成功。

True

Code

String

错误码。请求成功时为空。

None

Message

String

错误信息或成功提示。

操作成功

Data

Object

返回数据,包含CallId, CallStatus, CalledNumber, CallerNumber, StartTime, EndTime, Duration等字段,具体说明请参见下方返回参数说明。

使用示例

Python

import json
import os
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_openapi.client import Client as OpenApiClient
from alibabacloud_tea_util import models as util_models
from alibabacloud_openapi_util.client import Client as OpenApiUtilClient


def main():
    config = open_api_models.Config(
        access_key_id=os.getenv("ACCESS_KEY_ID"),
        access_key_secret=os.getenv("ACCESS_KEY_SECRET"),
    )
    config.endpoint = "thirdswaicall.aliyuncs.com"
    config.protocol = "HTTPS"
    client = OpenApiClient(config)

    params = open_api_models.Params(
        style="RPC",
        version="2025-11-27",
        action="QueryOutboundCallReport",
        method="POST",
        pathname="/",
        protocol="HTTPS",
        auth_type="AK",
        req_body_type="json",
        body_type="json",
    )

    body = {'CallId': 'call-abc123def456'}

    request = open_api_models.OpenApiRequest(query=OpenApiUtilClient.query(body))
    runtime = util_models.RuntimeOptions(autoretry=True, max_attempts=3)
    try:
        resp = client.call_api(params, request, runtime)
        print(json.dumps(resp.get("body", {}), ensure_ascii=False, indent=2))
    except Exception as e:
        print(f"调用失败: {e}")


if __name__ == "__main__":
    main()

Java

import com.aliyun.teaopenapi.Client;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teaopenapi.models.OpenApiRequest;
import com.aliyun.teaopenapi.models.Params;
import com.aliyun.teautil.models.RuntimeOptions;
import com.google.gson.Gson;

import java.util.HashMap;
import java.util.Map;

public class Demo {
    public static void main(String[] args) throws Exception {
        // 初始化配置
        Config config = new Config()
            .setAccessKeyId(System.getenv("ACCESS_KEY_ID"))
            .setAccessKeySecret(System.getenv("ACCESS_KEY_SECRET"))
            .setEndpoint("thirdswaicall.aliyuncs.com")
            .setProtocol("HTTPS");

        Client client = new Client(config);

        // 设置 API 参数
        Params params = new Params()
            .setStyle("RPC")
            .setVersion("2025-11-27")
            .setAction("QueryOutboundCallReport")
            .setMethod("POST")
            .setPathname("/")
            .setProtocol("HTTPS")
            .setAuthType("AK")
            .setReqBodyType("json")
            .setBodyType("json");

        // 构建请求参数
        Map<String, Object> body = new HashMap<>();
        body.put("CallId", 1);

        OpenApiRequest request = new OpenApiRequest()
            .setQuery(com.aliyun.openapiutil.Client.query(body));

        // 设置运行时选项(自动重试)
        RuntimeOptions runtime = new RuntimeOptions()
            .setAutoretry(true)
            .setMaxAttempts(3);

        try {
            // 调用 API
            Map<String, ?> response = client.callApi(params, request, runtime);
            Gson gson = new Gson();
            System.out.println(gson.toJson(response.get("body")));
        } catch (Exception e) {
            System.err.println("调用失败: " + e.getMessage());
        }
    }
}

返回示例

{
  "Success": true,
  "Code": null,
  "Message": "操作成功",
  "RequestId": "xxxx-xxxx-xxxx",
  "Data": {
    "CallId": "call-abc123def456",
    "CallStatus": 2001105,
    "CalledNumber": "13800138000",
    "CallerNumber": "null",
    "StartTime": "2026-04-10 10:00:00",
    "EndTime": "2026-04-10 10:02:30",
    "Duration": 150
  }
}

具体的处理结果在Data节点中,以下为Data节点的参数说明。

名称

类型

描述

示例值

CallId

String

通话唯一标识

call-abc123def456

CallStatus

String

通话最终状态(返回数字编码,具体含义请参见下方 CallStatus 编码表)

2001105

CalledNumber

String

被叫号码

13800138000

CallerNumber

String

主叫号码

固定为null

StartTime

String

通话开始时间

2026-04-10 10:00:00

EndTime

String

通话结束时间

2026-04-10 10:02:30

Duration

Number

通话时长(秒)

150

CallStatus 编码表

编码值

枚举名称

说明

2001105

CALL_END

正常结束

2001101

START_CALL

正在呼叫中

2001102

CALLER_CONNECTED

主叫方已接通,正在呼叫被叫方

2001103

IN_CALL

通话接通,正在通话

2001104

CALLER_NUMBER_RESTRICTED

主叫方号码受限

2001106

CALL_REJECT

被叫号码为空

2001109

CALL_HANGUP

通话已挂断(成功)

2001111

CALLEE_REJECT

被叫方拒接(简单)

2001112

CALL_DIRECT

通话转接中

2001133

CALLEE_NO_ANSWER

被叫方未应答或提前挂机

2001134

CALL_NUMBER_INVALID

被叫号码有误无法接通

2001135

CALL_CANCEL

被叫方取消通话

2001116

PROVIDER_TIME_RESTRICTED

呼叫时间段受限

2001117

PROVIDER_FREQUENCY_RESTRICTED

呼叫频率受限

2001121

CALL_OVER_CONCURRENCY

通话超出并发量

2000908

USER_LISTENED

用户听完录音

2000921

USER_SPEAK_EARLY

用户提前说话导致音频被截断

2000922

USER_HANG_UP

用户挂断

2000923

USER_NO_ANSWER

用户未应答或拒接或超时挂机

2000924

USER_NOT_IN_SERVICE

号码停机/未开通

2000925

USER_UNREACHABLE

号码空号或关机

2000927

USER_INVALID

号码有误或无法接通/不在服务区

2000929

VOICE_PLAY_FAILED

声音播放失败

2000930

GET_PRESS_TIMEOUT

按键超时挂机

2000933

POWER_OFF

关机

2000915

OUT_OF_SERVICE

停机

错误信息

如果执行报错,请参考错误信息进行解决。