AXE模式绑定信息修改接口
接口功能
该接口用于客户向隐私保护通话平台修改已设置的AXE绑定关系的相关信息。
请求方向
客户应用(客户端) → 隐私保护通话平台(服务端)
接口类型
请求方法 |
PUT |
---|---|
访问URI |
/rest/caas/extendnumber/v1.0 |
通信协议 |
HTTPS |
请求参数
参数名称 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
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="随机数生成时间"。
|
编程语言 |
时间格式 |
---|---|
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()转换后的时间格式去除毫秒后即为本接口要求的时间格式。 |
参数名称 |
参数类型 |
说明 |
---|---|---|
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,否则呼叫会被运营商拦截。 |
recordFlag |
String(枚举) |
录音标识。
该参数仅当添加应用时申请开通了录音功能才有效。 不携带时,表示不修改该参数值。 |
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(枚举) |
时间单位。
携带该参数时,必须同时携带bindExpiredTime和callbackExpiredTime。 不携带时,表示不修改该参数值。 |
bindExpiredTime |
Integer |
绑定关系的有效时间,过期后系统会自动解除绑定关系,该绑定关系下的主叫和回呼都不可达。单位:由timeUnit控制。
0代表绑定关系永不过期。
说明:
该参数取值须大于等于callbackExpiredTime。 |
callbackExpiredTime |
Integer |
回呼记录有效时间,过期后系统会自动清除回呼记录,回呼将转接到callbackNum或播放callbackTone提示音。单位:由timeUnit控制。
0代表绑定有效期内回呼一直有效。当绑定关系失效时,回呼记录有效时间无论是否已经到达失效时间都会被清除。
说明:
该参数取值须小于等于bindExpiredTime。当bindExpiredTime为0时,callbackExpiredTime可设置为适用范围的任意值。 |
响应参数
参数名称 |
是否必选 |
参数类型 |
默认值 |
说明 |
---|---|---|---|---|
resultcode |
是 |
String(1-32) |
无 |
请求返回的结果码。 |
resultdesc |
是 |
String(1-256) |
无 |
操作结果描述。 |
结果码说明
响应码 |
结果码 |
英文描述 |
中文描述 |
处理方法 |
---|---|---|---|---|
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. |
无效请求。 |
请检查请求携带的参数格式是否都合法。 例如:
|
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" }