获取录音文件下载地址接口 - GetRecordingDownloadUrl
接口功能
该接口用于客户向隐私保护通话平台获取录音文件的下载地址。
请求方向
客户应用(客户端) → 隐私保护通话平台(服务端)
使用说明
- 前提条件
已通过“话单通知API”获取了录音文件名(fileName)和录音文件存储的服务器域名(recordDomain)(不同的录音文件的fileName和recordDomain不同,这两个参数用来区分隐私保护通话平台保存的录音文件)。
- 注意事项
- 录音文件在平台只保存七天(隐私保护通话平台给客户服务器推送话单后开始计时),超过七天平台会自动删除该录音文件。请在七天期限内调用该接口获取下载地址并下载录音。
- 隐私保护通话平台给客户服务器推送话单七天之后再调用此接口获取下载地址,会返回“The record does not exist.”错误。
- 建议调用该接口时把connection设置为不支持重定向,再从Location头域中获取到录音文件的下载地址,具体操作可参考开发指南中编程语言的代码样例。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限管理。
URI
GET /rest/provision/voice/record/v1.0
请求参数
参数名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
fileName | 是 | String(1-128) | 录音文件名。通过“话单通知接口”的recordObjectName参数获取。 |
recordDomain | 是 | String(1-128) | 录音文件存储的服务器域名,通过“话单通知API”的recordDomain参数获取。 |
参数名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
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="随机数生成时间"。
|
响应参数
参数名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
Location | 否 | String(0-512) | 录音文件下载地址。成功响应时返回。 |
参数名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
resultcode | 否 | String(1-32) | 请求返回的结果码。失败响应时返回。 |
resultdesc | 否 | String(1-256) | 操作结果描述。失败响应时返回。 |
结果码说明
响应码 | 结果码 | 英文描述 | 中文描述 | 处理方法 |
|---|---|---|---|---|
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填写是否正确。 | |
1010008 | The status of the app_key is unavailable. | app_key状态异常。 | 请检查请求携带的app_key所属应用状态是否正常。 | |
1011006 | Under traffic control status | 请求者(IP、手机号码)处于流控状态下。 | 请稍等一分钟再试。 | |
1012012 | Application does not open recording function. | 应用未开启录音功能。 | 请确认app_key所属的应用是否开启了录音功能。 | |
1012007 | The record does not exist. | 记录不存在。 | 请确认fileName参数的填写是否正确。 | |
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. | 内部错误。 | ||
1023002 | Response timeout. | 响应超时。 | 重新发送一次请求,若依然返回响应超时,请联系管理员处理。 |
接口示例
接口示例仅供参考,请以实际消息为准。
- 请求示例
GET /rest/provision/voice/record/v1.0?fileName=****.wav&recordDomain=huawei HTTP1.1 content-type: application/json;charset=UTF-8 authorization: AKSK realm="SDP",profile="UsernameToken",type="Appkey" x-aksk: UsernameToken Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx - 响应示例
HTTP/1.1 301 Moved Permanently Location: http://**** Connection: close Content-Length: 0

