• 沒有找到結果。

典型场景

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

接口功能

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

使用说明

● 前提条件

– 已通过“应用管理”页面获取APP_Key,APP_Secret和APP接入地址。

– 已通过“呼叫状态和话单通知API”获取了录音文件名。

● 注意事项

– 响应返回的录音下载地址有效期为30分钟,地址过期后若还需要下载录音文 件,请重新调用该接口获取下载地址。

– 调用获取录音文件下载地址接口需要把connection设置为不支持重定向,再 从Location头域中获取到录音文件的下载地址。

– 若connection设置为支持重定向,则重定向后平台返回的是录音文件的数据 流。

● 使用限制 无。

接口类型

2-27 接口类型说明

访问URI /rest/provision/voice/record/v1.0 通信协议 HTTPS

请求参数

2-28 请求 URL 参数说明

参数名称 是否

必选

参数类 型

默 认 值

说明

fileName 是 String(1

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

recordDomain 是 String(1

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

2-29 请求 Headers 参数说明 参数名称 是否

必选

参数类型 说明

Content-Type 是 String 固定填写为application/json;charset=UTF-8。

Authoriza

tion 是 String 固定填写为WSSE

realm="SDP",profile="UsernameToken",type="

Appkey"。

X-WSSE 是 String 取值为UsernameToken Username="APP_Key的 值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。

● PasswordDigest:根据PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,Password为 APP_Secret的值。Nonce、Created、

Password直接进行字符串拼接即可,无需包含 +号和空格。

● Nonce:客户发送请求时生成的一个随机数,

长度为1~128位,可包含数字和大小写字母。

例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。

● Created:随机数生成时间。采用标准UTC格 式,例如:2018-02-12T15:30:20Z。不同编程 语言中将UTC时间戳转换为普通时间时使用的 格式不同,部分语言可参考表2-30。

2-30 不同编程语言的时间格式

编程语言 时间格式

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()转换后的时间格式去除毫秒后即 为本接口要求的时间格式。

响应参数

2-31 响应 Headers 参数 参数名称 是否

必选 参数类型 说明 Location 否 String

(0-512) 录音文件下载地址。成功响应时返回。

2-32 响应 Body 参数 参数名称 是否

必选

参数类型 说明

resultcod

e 否 String(1-3

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

resultdesc 否 String(1-2

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

结果码说明

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

2-33 响应结果码 响应

码 结果

码 英文描述 中文描述 处理方法

301 - - - 成功响应,请从Location头域中

响应 码

结果 码

英文描述 中文描述 处理方法

400 1023

006 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 UsernameTok en.

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

请检查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属性。

1023013 WSSE not contained in Authorization.

Authorization中 没有携带WSSE。

请检查Authorization字段中是 否携带了WSSE。

1023026 X-WSSE not contained in the HTTP header.

HTTP头未找到

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

1023027 UserName not contained in X-WSSE.

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

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

1023028 Nonce not contained in X-WSSE.

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

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

响应 码

结果 码

英文描述 中文描述 处理方法

1023029 Created not contained in X-WSSE.

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

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

1023030 PasswordDige st not

contained in X-WSSE.

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

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

1023031 The format of Created is incorrect.

Created属性格

式错误。 请检查X-WSSE字段中的Created 属性格式是否为标准UTC格式,

即YYYY-MM-DD'T'hh:mm:ss'Z'。

1023032 UsernameTok en not

contained in X-WSSE.

X-WSSE字段中 未找到UsernameToke n属性。

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

401 1010

010 Invalid digest. PasswordDigest

校验失败。 请检查PasswordDigest字段填 写是否正确。

1010013 Time out

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

403 1010

002 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 Authenticatio n failed, try again later

鉴权失败,稍后

重试 IP因鉴权失败次数过多导致被拉

黑,请30分钟后重试,或联系 管理员放通该IP。

500 1010

001 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: WSSE realm="SDP",profile="UsernameToken",type="Appkey"

x-wsse: UsernameToken

Username="ZRBRz4bAXoFgEH7o4Ew308eXc1RA",PasswordDigest="****",Nonce="ac1c911c4792492687f 8f6b2264a491e",Created="2018-05-26T00:35:30Z"

content-length:xx

● 响应示例

HTTP/1.1 301 Moved Permanently Location: ****

Connection: close Content-Length: 0

代码样例

前往代码样例查看。

3 语音通知 API