注意事项
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"
}