通过呼叫ID获取呼叫记录

本文为您介绍如何通过呼叫ID获取呼叫记录。

前提条件

入参列表

参数名称

参数类型

必填与否

样例取值

参数说明

CallId

String

必须

113853585007^100675005007

呼叫唯一ID。

QueryDate

Long

必须

123456

Unix时间戳,会查询这个时间点对应那一天的记录(单位毫秒)。

ProdId

Long

必须

11010000138001

产品ID。取值:

  • 语音通知:11000000300006

  • 语音验证码:11010000138001

  • IVR:11000000300005

  • 点击拨号:11000000300004

  • SIP:11000000300009

  • 智能外呼:11030000180001

出参列表

出参名称

出参类型

样例取值

参数说明

RequestId

String

8906582E-6722

请求ID。

Code

String

OK

状态码。返回OK代表请求成功,其他错误码详见错误码列表。

Message

String

请求成功

状态码的描述。

Data

String

{"caller":"1390000****","startDate":"","stateDesc":"502","duration":0,"callerShowNumber":"0534475****","gmtCreate":"2017-11-27 20:09:06","state":"502","endDate":"","calleeShowNumber":"0534475****","callee":"1391111****"}

呼叫详情。

技术对接步骤

  1. 下载SDK工具包

    • SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是alicom-dyvms-api包,将这两个包执行mvn package命令或者mvn deploy命令打包出相应的jar包,添加到工程类库中依赖使用。

    • SDK&DEMO下载地址,请参见SDK及DEMO下载

  2. 编写样例程序

    说明

    调用接口前,需配置环境变量,通过环境变量读取访问凭证。AccessKey ID和AccessKey Secret的环境变量名:VMS_AK_ENV 、VMS_SK_ENV。配置详情请参见配置访问凭证

            //设置访问超时时间
            System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
            System.setProperty("sun.net.client.defaultReadTimeout", "10000");
            //云通信产品-语音API服务产品名称(产品名固定,无需修改)
            final String product = "Dyvmsapi";
            //语音API服务产品域名(接口地址固定,无需修改)
            final String domain = "dyvmsapi.aliyuncs.com";
            //需要替换成你的AK信息
            //初始化acsClient暂时不支持多region
            // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
            IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("VMS_AK_ENV"), System.getenv("VMS_SK_ENV"));
            DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);
            //组装请求对象-具体描述见控制台-文档部分内容
            QueryCallDetailByCallIdRequest request = new QueryCallDetailByCallIdRequest();
            //设置呼叫ID
            request.setCallId("10062593****^10019107****");
            //设置你需要查询的时间,会查询对应那一天的记录,hint跨天情况可以判断一下昨天的记录
            request.setQueryDate(System.currentTimeMillis());
            //设置对应的产类型,语音通知为:11000000300006L,语音验证码为:11010000138001L,IVR为:11000000300005L
            //点击拨号为:11000000300004L,SIP为:11000000300009L
            request.setProdId(11000000300004L);
            //hint 此处可能会抛出异常,注意catch
            QueryCallDetailByCallIdResponse clickToDialResponse = acsClient.getAcsResponse(request);
                

错误码列表

Code

描述

OK

请求成功

isp.RAM_PERMISSION_DENY

RAM权限DENY

isv.INVALID_PARAMETERS

参数异常

isp.SYSTEM_ERROR

系统错误

isv.BUSINESS_LIMIT_CONTROL

触发流控