文档首页/ 隐私保护通话 PrivateNumber/ API参考/ AXE模式/ AXE模式绑定信息修改接口
更新时间:2022-12-13 GMT+08:00
分享

AXE模式绑定信息修改接口

接口功能

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

请求方向

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

使用说明

前提条件

  • 已设置至少一组AXE绑定关系。
  • 若需要修改自定义放音,需要提前在放音文件管理页面上传并等待审核通过。

接口类型

表1 接口类型说明

请求方法

PUT

访问URI

/rest/caas/extendnumber/v1.0

通信协议

HTTPS

请求参数

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

编程语言

时间格式

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

表4 请求Body参数说明

参数名称

参数类型

说明

virtualNum

String(1-32)

X号码,携带为全局号码格式(包含国家码),如:+86170****0021。

该参数必须与extendNum同时携带,指定唯一一组绑定关系。

extendNum

String(1-4)

分机号E,最大4位,如:1234。

该参数必须与virtualNum同时携带,指定唯一一组绑定关系。

subscriptionId

String(0-64)

指定“AXE模式绑定接口”返回的绑定ID查询绑定关系

携带该参数时系统以该参数为准,可不关注virtualNum和extendNum参数。

displayNumMode

String(枚举)

非隐私号用户呼叫X号码时,隐私号用户看到的主显号码。

  • 0:X号码;
  • 1:真实主叫号码;

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

说明:

由于运营商管控,当前平台要求该参数必须设置为0,否则呼叫会被运营商拦截。

recordFlag

String(枚举)

录音标识。

  • false:表示不录音
  • true:表示录音

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

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

recordHintTone

String(0-128)

此参数在recordFlag为true时才有效。

此字段用于修改使用录音功能的提示音。参数取值为指定的放音文件名,可在放音文件管理页面查看。

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

说明:

因隐私协议及运营商管控,录音的呼叫必须携带该参数,否则呼叫会被运营商拦截。

callbackTone

String(0-128)

隐私号用户回呼时,如果不存在回呼记录,则播放该参数指定的语音文件,参数取值为指定的放音文件名,如:callbackTone.wav。请提前制作放音文件并提交到放音文件管理,审核通过后才能使用。

参数callbackTone和callbackNum为二选一关系,两者都携带时以callbackNum为准,两者都不携带表示不修改该参数值。

当修改值为“”时清空该字段配置。

callbackNum

String(0-32)

隐私号用户回呼时,如果不存在回呼记录,则转接到该参数指定的号码。

参数取值填写为全局号码格式(包含国家码),如:+86170****0021。

参数callbackTone和callbackNum为二选一关系,两者都携带时以callbackNum为准,两者都不携带表示不修改该参数值。

当修改值为“”时清空该字段配置。

timeUnit

String(枚举)

时间单位。

  • 0:小时
  • 1:分钟

携带该参数时,必须同时携带bindExpiredTime和callbackExpiredTime。

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

bindExpiredTime

Integer

绑定关系的有效时间,过期后系统会自动解除绑定关系,该绑定关系下的主叫和回呼都不可达。单位:由timeUnit控制。

  • 携带timeUnit参数时,参数取值范如下:
    • 当timeUnit取值为0(小时)时:0~720(小时)
    • 当timeUnit取值为1(分钟)时:0~43200(分钟)
  • 不携带timeUnit参数时,参数取值范围为0~720(小时)。不携带此参数时,表示不修改该参数值。

0代表绑定关系永不过期。

说明:

该参数取值须大于等于callbackExpiredTime。

callbackExpiredTime

Integer

回呼记录有效时间,过期后系统会自动清除回呼记录,回呼将转接到callbackNum或播放callbackTone提示音。单位:由timeUnit控制。

  • 携带timeUnit参数时,参数取值范如下:
    • 当timeUnit取值为0(小时)时:0~168(小时)
    • 当timeUnit取值为1(分钟)时:0~10080(分钟)
  • 不携带timeUnit参数时,参数取值范围为0~168(小时)。不携带此参数时,表示不修改该参数值。

0代表绑定有效期内回呼一直有效。当绑定关系失效时,回呼记录有效时间无论是否已经到达失效时间都会被清除。

说明:

该参数取值须小于等于bindExpiredTime。当bindExpiredTime为0时,callbackExpiredTime可设置为适用范围的任意值。

响应参数

表5 响应结果参数

参数名称

是否必选

参数类型

默认值

说明

resultcode

String(1-32)

请求返回的结果码。

resultdesc

String(1-256)

操作结果描述。

结果码说明

表6 响应结果码

响应码

结果码

英文描述

中文描述

处理方法

200

0

Success.

成功。

-

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.

无效请求。

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

例如:

  • 检查是否同时携带callbackTone和callbackNum,若是,请保留一个。
  • 检查timeUnit是否格式错误,若是,请填写正确格式。

1010003

Invalid app_key.

无效的app_key。

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

1010008

The status of the app_key is unavailable.

app_key状态异常。

请联系管理员确认该app_key状态是否正常。

1010010

The flow control upper limit is reached on the platform.

平台达到系统流控上限。

请稍等一分钟后再试。

1010029

The subscriber status is frozen.

用户账号已冻结。

  • 查看账户是否欠费。如欠费需充值后才能继续使用。
  • 若未欠费,请联系华为云客服处理。

1010040

The app_key is not allowed to invoke the API.

app_key没有调用本API的权限。

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

1016001

The record does not exist.

记录不存在

绑定关系不存在,请检查virtualNum,extendNum或subscriptionId的填写是否正确。

1012001

Resource of number is not to be applied.

资源未申请

携带的app_key和X号码没有绑定关系,请检查携带的X号码是否属于该应用。

1020166

The app client ip is not in ip white list.

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

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

1020167

No idle extend Number.

没有空闲的分机号。

出现该错误码表示调用AXE模式绑定接口时指定的分机号(extendNum)已被占用,请重新指定分机号。

1020176

Authentication failed, try again later

鉴权失败,稍后重试

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

1020178

The transparent mode is not allowed.

不允许显示真实主叫号码

您的应用不支持显示真实主叫号码,请修改displayNumMode参数的取值为“0”(显示X号码)后再次绑定。

500

1010001

Internal system error.

系统错误。

请联系客服处理。

1023001

Internal error.

内部错误。

1023002

Response timeout.

响应超时。

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

接口示例

  • 请求示例
    PUT /rest/caas/extendnumber/v1.0  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 
    
    { 
    "subscriptionId":"******",
    "callbackNum":"+86170****0021"
    }
  • 响应示例
    HTTP/1.1 200 OK 
    Content-Type: application/json;charset=utf-8 
    Content-Length: xx 
    
    { 
    "resultcode":"0", 
    "resultdesc":"Success"
    }

相关文档