文档首页/ 语音通话 VoiceCall/ API参考/ 语音回呼API/ 获取录音文件下载地址API
更新时间:2024-11-11 GMT+08:00
分享

获取录音文件下载地址API

典型场景

SP通过“呼叫状态和话单通知API”获取录音文件名后,调用此接口获取录音文件的下载地址。

接口功能

该接口用于SP向语音通话平台获取录音文件的下载地址。

使用说明

  • 前提条件
    • 已通过“应用管理”页面获取APP_Key,APP_Secret和APP接入地址。
    • 已通过“呼叫状态和话单通知API”获取了录音文件名。
  • 注意事项
    • 响应返回的录音下载地址有效期为7天。请在七天期限内调用该接口获取下载地址并下载录音。
    • 调用获取录音文件下载地址接口需要把connection设置为不支持重定向,再从Location头域中获取到录音文件的下载地址。
    • 若connection设置为支持重定向,则重定向后平台返回的是录音文件的数据流。
  • 使用限制

    无。

接口类型

表1 接口类型说明

请求方法

GET

访问URI

/rest/provision/voice/record/v1.0

通信协议

HTTPS

请求参数

表2 请求URL参数说明

参数名称

是否必选

参数类型

默认值

说明

fileName

String(1-128)

录音文件名。通过“呼叫状态和话单通知API”的recordObjectName参数获取。

recordDomain

String(1-128)

录音文件存储的服务器域名,通过“呼叫状态和话单通知API”的recordDomain参数获取。

表3 请求Headers参数说明

参数名称

是否必选

参数类型

说明

Content-Type

String

固定填写为application/json;charset=UTF-8。

Authorization

String

固定填写为AKSK realm="SDP",profile="UsernameToken",type="Appkey"。

X-AKSK

String

取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。
  • PasswordDigest:根据PasswordDigest = Base64 (HMAC-SHA256 (Password,Nonce + Created))生成。其中,Password为APP_Secret的值。Nonce、Created、Password直接进行字符串拼接即可,无需包含+号和空格。
  • Nonce:客户发送请求时生成的一个随机数,长度为1~128位,可包含数字和大小写字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。
  • Created:随机数生成时间。采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中将UTC时间戳转换为普通时间时使用的格式不同,部分语言可参考表4
表4 不同编程语言的时间格式

编程语言

时间格式

Java

yyyy-MM-dd'T'HH:mm:ss'Z'

PHP

Y-m-d\TH:i:s\Z

Python

%Y-%m-%dT%H:%M:%SZ

C#

yyyy-MM-ddTHH:mm:ssZ

Node.js

toISOString().replace(/.[0-9]+\Z/, 'Z')

注:Node.js中,使用toISOString()转换后的时间格式去除毫秒后即为本接口要求的时间格式。

响应参数

表5 响应Headers参数

参数名称

是否必选

参数类型

说明

Location

String(0-512)

录音文件下载地址。成功响应时返回。

表6 响应Body参数

参数名称

是否必选

参数类型

说明

resultcode

String(1-32)

请求返回的结果码。失败响应时返回。

resultdesc

String(1-256)

操作结果描述。失败响应时返回。

结果码说明

请根据以下结果码进行调测,如果有疑问,可联系管理员进行确认。

表7 响应结果码

响应码

结果码

英文描述

中文描述

处理方法

301

-

-

-

成功响应,请从Location头域中获取录音文件下载地址。

400

1023006

Authorization not contained in the HTTP header.

HTTP消息头未找到Authorization字段。

请检查HTTP消息头中是否携带了Authorization字段。

1023007

realm not contained in Authorization.

Authorization字段中未找到realm属性。

请检查Authorization字段中的是否携带了realm属性。

1023008

profile not contained in Authorization.

Authorization字段中未找到profile属性。

请检查Authorization字段中的是否携带了profile属性。

1023009

The value of realm in Authorization must be SDP.

Authorization中realm属性值应该为“SDP”。

请检查Authorization字段中的realm属性值是否为“SDP”

1023010

The value of profile in Authorization must be UsernameToken.

Authorization中profile属性值应该为“UsernameToken”。

请检查Authorization字段中的profile属性值是否为“UsernameToken”

1023011

The value of type in Authorization must be app_key.

Authorization中type属性值应该为“Appkey”。

请检查Authorization字段中的type属性值是否为Appkey

1023012

type not contained in Authorization.

Authorization字段中未找到type属性。

请检查Authorization字段中是否携带了type属性。

1023033

HTTP header not found X-AKSK field.

HTTP头未找到X-AKSK字段。

请检查HTTP消息头中是否携带了X-AKSK字段。

1023034

UserName not contained in X-AKSK.

X-AKSK字段中未找到UserName属性。

请检查X-AKSK字段中的是否携带了Username属性。

1023035

Nonce not contained in X-AKSK.

X-AKSK字段中未找到Nonce属性。

请检查X-AKSK字段中的是否携带了Nonce属性。

1023036

Created not contained in X-AKSK.

X-AKSK字段中未找到Created属性。

请检查X-AKSK字段中的是否携带了Created属性。

1023037

PasswordDigest not contained in X-AKSK.

X-AKSK字段中未找到PasswordDigest属性。

请检查X-AKSK字段中的是否携带了PasswordDigest属性。

1023038

UsernameToken not contained in X-AKSK.

X-AKSK中没有携带UsernameToken。

请检查X-AKSK字段中的是否携带了UsernameToken属性。

401

1010010

Invalid digest.

PasswordDigest校验失败。

请检查PasswordDigest字段填写是否正确。

1010013

Time out limit.

时间超出限制。

请确认X-AKSK鉴权时,生成随机数的时间与发送请求时的本地时间不能相差太大(具体差值请与管理员确认)。

403

1010002

Invalid request.

非法请求。

请检查请求携带的参数格式是否都合法。

1010003

Invalid app_key.

无效的app_key。

检查请求携带的app_key是否填写正确,app_key从应用管理页面获取,若填写正确,请在应用管理页面检查请求携带的app_key所属应用状态是否正常。

1010007

The ativeState of User is not ACTIVATING.

用户状态未激活。

请检查app_key所属的华为云账户是否处于欠费状态,若处于欠费状态,请参考华为云账户充值完成充值,若没有处于欠费状态,请联系管理员处理。

1012012

Application does not open recording function.

应用未开启录音功能。

请确认请求携带的app_key是否开启了录音功能。

1012007

The record does not exist.

记录不存在。

请确认fileName参数的填写是否正确。

1011006

Under traffic control status

请求者(IP、手机号码)处于流控状态下。

请稍等一分钟再试。

1020166

The app client ip is not in ip white list.

请求发送方app IP不在白名单列表中。

联系管理员检查IP白名单是否配置正确。

1020176

Authentication failed, try again later

鉴权失败,稍后重试

IP因鉴权失败次数过多导致被拉黑,请30分钟后重试,或联系管理员放通该IP。

500

1010001

Internal system error.

系统错误。

请联系管理员处理。

1023001

Internal error.

内部错误。

接口示例

  • 请求示例
     
    GET  /rest/provision/voice/record/v1.0? fileName=1200_366_0_20161228102743.wav&recordDomain=huawei HTTP1.1 
    
    content-type: application/json;charset=UTF-8
    authorization: AKSK realm="SDP",profile="UsernameToken",type="Appkey"
    x-aksk: UsernameToken Username="ZRBRz4bAXoFgEH7o4Ew308eXc1RA",PasswordDigest="****",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z"
    content-length:xx
  • 响应示例
    HTTP/1.1 301 Moved Permanently 
    Location: **** 
    Connection: close 
    Content-Length: 0 

代码样例

前往代码样例查看。

相关文档