• 沒有找到結果。

注意事项

3.4 AXB 模式绑定信息修改接口

3.4 AXB 模式绑定信息修改接口

接口功能

该接口用于客户向隐私保护通话平台修改已设置的AXB绑定关系的相关信息。

请求方向

客户应用(客户端) → 隐私保护通话平台(服务端)

使用说明

前提条件

● 已设置至少一组AXB绑定关系。

● 若需要修改自定义放音,需要提前在放音文件管理页面上传并等待审核通过。

接口类型

3-14 请求说明

请求方法 PUT

访问URI /rest/caas/relationnumber/partners/v1.0 通信协议 HTTPS

请求参数

3-15 请求 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。不同编程 语言中的时间格式转换方式不同,部分语言可 参考表3-16。

3-16 不同编程语言的时间格式

编程语言 时间格式

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

3-17 请求 Body 参数说明 参数名称 是否

必选

参数类型 说明

subscripti

onId 是 String(1-6

4) 指定“AXB模式绑定接口”返回的绑定ID进行修 改。

参数名称 是否 必选

参数类型 说明

callerNu

m 否 String(4-3

1) 将A号码修改为新的值。

填写为全局号码格式。

● 手机号码格式为国家码(如+86)+手机号码

(11位数字的手机号码,如138****0001),

填写为"+86138****0001"。

● 固话号码为国家码(如+86)+不带前置0的区 号(如755)+本地固话号码(7或8位数字的 固话号码,以实际号码为准,如28****01),

填写为"+8675528****01"。

注:

● 因运营商管控,固话号码只能接收来自X号码 的呼叫,不能作为主叫呼叫X号码。即当A号码 为固话号码时,B(手机号码)可以拨打X号码 联系A,但A无法通过拨打X号码联系B。

● 若需双向呼叫,A和B号码都必须是手机号码。

calleeNu

m 否 String(4-3

1) 将B号码修改为新的值。

填写为全局号码格式。

● 手机号码格式为国家码(如+86)+手机号码

(11位数字的手机号码,如138****0001),

填写为"+86138****0001"。

● 固话号码为国家码(如+86)+不带前置0的区 号(如755)+本地固话号码(7或8位数字的 固话号码,以实际号码为准,如28****01),

填写为"+8675528****01"。

注:

● 因运营商管控,固话号码只能接收来自X号码 的呼叫,不能作为主叫呼叫X号码。即当B号码 为固话号码时,A(手机号码)可以拨打X号码 联系B,但B无法通过拨打X号码联系A。

● 若需双向呼叫,A和B号码都必须是手机号码。

callDirecti

on 否 Integer 表示修改后的绑定关系允许的呼叫方向,取值范 围:

● 0:bidirectional,表示callerNum和 calleeNum都可以通过X号码呼叫对方。

● 1:caller to callee,表示只允许callerNum通 过X号码呼叫calleeNum。

● 2:callee to caller,表示只允许calleeNum通 过X号码呼叫callerNum。

不携带该参数表示不修改呼叫方向。

参数名称 是否 必选

参数类型 说明

duration 否 Integer 更新绑定关系保持时间,单位为秒,从修改绑定 关系成功开始计算。

取值范围:0~7776000(90天)

不携带该参数表示不修改绑定关系保持时间。

preVoice 否 ApiPlayIn

fo 修改个性化通话前等待音。

不携带该参数表示不修改通话前等待音。

maxDurat

ion 否 Integer 修改允许单次通话进行的最长时间,单位为分 钟。

取值范围:0~1440

● 0:系统不主动结束通话,由主被叫双方结束 通话。

● 1~1440:当通话时长达到此配置值,系统主 动结束通话。

不携带时,表示不修改该参数值。

lastMinVo

ice 否 String(0-1

28) 该绑定关系的maxDuration不为0时该参数有效。

修改通话剩余最后一分钟时的提示音,填写为放 音文件名,可在放音文件管理页面查看。

不携带时,表示不修改该参数值。

privateSm

s 否 String(枚

举) 修改该绑定关系是否支持短信功能。

若客户添加应用时未开通短信功能,请勿携带此 参数。

取值范围:

● false:不支持短信

● true:支持短信

不携带时,表示不修改该参数值。

recordFla

g 否 String(枚

举) 是否需要针对该绑定关系产生的所有通话录音。

● false:表示不录音

● true:表示录音。

该参数仅当客户添加应用时申请开通了录音功能 才有效。

不携带时,表示不修改该参数值。

userData 否 String(1-2

56) 用户自定义数据。

● 不允许携带以下字符:“^”,“{”,

“}”。

● 不允许包含中文字符,如果包含中文字符请采 用Base64编码。

3-18 ApiPlayInfo 定义 参数名称 是否

必选

参数类型 说明

callerHint

Tone 否 String(0-1

28) 修改callerNum的通话前等待音,填写为放音文 件名,可在放音文件管理页面查看。

不携带时,表示不修改该参数值。

calleeHint

Tone 否 String(0-1

28) 修改calleeNum的通话前等待音,填写为放音文 件名,可在放音文件管理页面查看。

resultcod

e 是 String(1-3

2) 请求返回的结果码。

resultdesc 是 String(1-2

56) 操作结果描述。

Authorization not contained in the HTTP header.

HTTP消息头未 找到Authorization 字段。

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

102300 7

realm not contained in Authorization.

Authorization 字段中未找到 realm属性。

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

102300 8

profile not contained in Authorization.

Authorization 字段中未找到 profile属性。

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

102300 9

The value of realm in Authorization must be SDP.

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

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

102301 0

The value of profile in Authorization must be UsernameTok en.

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

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

102301 1

The value of type in Authorization must be app_key.

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

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

102301 2

type not contained in Authorization.

Authorization 字段中未找到 type属性。

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

102301 3

WSSE not contained in Authorization.

Authorization 中没有携带 WSSE。

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

102302 6

X-WSSE not contained in the HTTP header.

HTTP头未找到

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

102302 7

Username not contained in X-WSSE.

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

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

102302 8

Nonce not contained in X-WSSE.

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

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

102302 9

Created not contained in X-WSSE.

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

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

102303 0

PasswordDige st not

contained in X-WSSE.

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

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

102303 1

The format of Created is incorrect.

Created属性格

式错误。 请检查X-WSSE字段中的Created属性 格式是否正确。

102303 2

UsernameTok en not

contained in X-WSSE.

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

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

401 101 0010

Invalid digest. PasswordDige

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

101001 3

Time out

limit. 时间超出限 制。

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

403 101 0002

Invalid

request. 无效请求。 参考各接口参数说明,检查请求携带 的参数格式是否正确,如以下参数格 式问题:

● 绑定接口填写的号码参数需为全局 号码格式,如+86138****0001或 +8675528****01;

● 放音文件需上传通过审核才可通过

101000 3

Invalid

app_key. 无效的

app_key。 请检查请求携带的app_key填写是否 正确。

101000 4

The status of the app_key is unavailable.

app_key状态 异常。

请检查请求携带的app_key所属应用 状态是否正常。

101001 0

The flow control upper limit is reached on the platform.

平台达到系统

流控上限。 请稍等一分钟后再试。

101002 9

Thesubscriber status is frozen.

用户账号已冻

结。 ● 查看账户是否欠费。如欠费需充值

后才能继续使用。

● 若未欠费,请联系华为云客服处 理。

101004 0

The app_key is not allowed to invoke the API.

app_key没有 调用本API的权 限。

调用的接口和app_key所属的应用模 式不一致。如添加应用时选择的AXB 模式的应用,调用接口时只能调用 AXB模式的接口,不能调用其他模式 的接口。

101200 7

The record does not exist.

记录不存在。 未查询到绑定关系,请检查携带的 subscriptionId参数是否填写正确,或 是否属于该应用。

101210 2

The number status is abnormal.

号码状态异 线通知邮件,如果没有,请拨打400 电话联系华为云客服处理。

101201 0

The relation number has been bound.

绑定关系已存

在。 请检查callerNum或calleeNum是否 已和subscriptionId指定的X号码存在 绑定关系,且绑定关系未过期,然后 修改callerNum/calleeNum的值。

102016 6

The app client ip is not in ip white list.

对端app IP不 在白名单列表 中。

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

102017 6

Authenticatio n failed, try again later

鉴权失败,稍 后重试

IP因鉴权失败次数过多导致被拉黑,

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

102017 9

Application does not enable sms function.

应用未开启短 信功能。

请确认app_key所属的应用是否开启 了短信功能,点击查看如何开启短信

功能。

500 101 0001

Internal

system error. 系统错误。 请联系客服处理。

102300 1

Internal error. 内部错误。

102300 2

Response

timeout. 响应超时。 重新发送一次请求,若依然返回响应 超时,请联系管理员处理。

接口示例

接口示例仅供参考,请以实际消息为准。

● 请求示例

PUT /rest/caas/relationnumber/partners/v1.0 HTTP1.1 content-type: application/json;charset=UTF-8

authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey"

x-wsse: UsernameToken

Username="************",PasswordDigest="*************",Nonce="ac1c911c4792492687f8f6b2264a491e",Cr eated="2018-05-26T00:35:30Z"

content-length:xx { "subscriptionId":"****",

"calleeNum":"+86138****0021"

}

● 响应示例

HTTP/1.1 200 OK

Content-Type: application/json;charset=utf-8 Content-Length: xx

{ "resultcode":"0",

"resultdesc":"Success"

}