全部产品
云市场

通过呼叫ID获取呼叫记录

更新时间:2018-09-18 11:00:50

通过呼叫ID获取呼叫记录(QueryCallDetailByCallId)

步骤 1 创建阿里云账号

为了访问语音服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:

  1. 访问阿里云 官方网站,单击页面上的 免费注册 按钮。
  2. 按照屏幕提示完成注册流程并进行企业实名认证语音服务只支持企业实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里

步骤 2 获取阿里云访问密钥

为了使用语音文本单呼API-JAVA SDK,您必须申请阿里云的访问密钥。

阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。您可以用它来签名 API 请求内容以通过服务端的安全验证。

该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。

您可以通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对,且保证它处于“启用”状态。由于访问秘钥是阿里云对 API 请求进行安全验证的关键因子,请妥善保管你的访问秘钥。如果某些秘钥对出现泄漏风险,建议及时删除该秘钥对并生成新的替代秘钥对。

入参列表

参数名称 参数类型 必填与否 样例取值 参数说明
CallId String 必须 113853585007^100675005007 呼叫唯一ID
QueryDate Long 必须 123456 Unix时间戳,会查询这个时间点对应那一天的记录(单位毫秒)
ProdId Long 必须 11010000138001 语音通知为:11000000300006, 语音验证码为:11010000138001, IVR为:11000000300005, 点击拨号为:11000000300004, SIP为:11000000300009, 智能外呼为:11030000180001

出参列表

出参名称 出参类型 样例取值 参数说明
RequestId String 8906582E-6722 请求ID
Code String OK 状态码-返回OK代表请求成功,其他错误码详见错误码列表
Message String 请求成功 状态码的描述
Data String {“caller”:”18767130000”,”startDate”:””,”stateDesc”:”502”,”duration”:0,”callerShowNumber”:”05344750000”,”gmtCreate”:”2017-11-27 20:09:06”,”state”:”502”,”endDate”:””,”calleeShowNumber”:”05344750000”,”callee”:”13735460000”} 呼叫详情

技术对接步骤

1:下载SDK工具包

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

SDK&DEMO[下载地址]

2: 编写样例程序
  1. //设置访问超时时间
  2. System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
  3. System.setProperty("sun.net.client.defaultReadTimeout", "10000");
  4. //云通信产品-语音API服务产品名称(产品名固定,无需修改)
  5. final String product = "Dyvmsapi";
  6. //语音API服务产品域名(接口地址固定,无需修改)
  7. final String domain = "dyvmsapi.aliyuncs.com";
  8. //需要替换成你的AK信息
  9. //初始化acsClient暂时不支持多region
  10. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  11. DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  12. IAcsClient acsClient = new DefaultAcsClient(profile);
  13. //组装请求对象-具体描述见控制台-文档部分内容
  14. QueryCallDetailByCallIdRequest request = new QueryCallDetailByCallIdRequest();
  15. //设置呼叫ID
  16. request.setCallId("100625930001^100191070001");
  17. //设置你需要查询的时间,会查询对应那一天的记录,hint 跨天情况可以判断一下昨天的记录
  18. request.setQueryDate(System.currentTimeMillis());
  19. //设置对应的产类型,语音通知为:11000000300006L,语音验证码为:11010000138001L,IVR为:11000000300005L
  20. //点击拨号为:11000000300004L,SIP为:11000000300009L
  21. request.setProdId(11000000300004L);
  22. //hint 此处可能会抛出异常,注意catch
  23. QueryCallDetailByCallIdResponse clickToDialResponse = acsClient.getAcsResponse(request);

错误码列表

Code 描述
OK 请求成功
isp.RAM_PERMISSION_DENY RAM权限DENY
isv.INVALID_PARAMETERS 参数异常
isp.SYSTEM_ERROR 系统错误
isv.BUSINESS_LIMIT_CONTROL 触发流控