文档首页 > > API参考> AX模式> AX模式绑定接口

AX模式绑定接口

分享
更新时间: 2019/10/12 GMT+08:00

接口功能

该接口用于客户向隐私保护通话平台设置用户A和隐私号码X之间的绑定关系。

请求方向

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

使用说明

前提条件

  • 已创建隐私保护通话应用,获取了APP_Key,APP_Secret和APP接入地址。
  • 已申请到隐私保护号码。
  • 若需要使用自定义放音,需要提前在放音文件管理页面上传并等待审核通过。

使用限制

1个A号码同时只能绑定5个X号码。

注意事项

  • AX模式支持设置单次通话进行的最长时间(通过maxDuration参数设置),到期系统主动挂断通话。
  • 若要使用录音功能,需要完成以下两个步骤:
    1. 创建隐私保护通话应用时,“是否开通录音”选择“是”。

    2. 调用本接口设置归属该应用的隐私号码绑定关系时设置“recordFlag”为“true”。

      注:如果是在控制台设置归属该应用的隐私号码绑定关系,需在设置绑定关系时勾选“支持录音”。

  • 若要使用短信功能,需要完成以下三个步骤:
    1. 创建隐私保护通话应用时,“是否开通短信”选择“是”;

    2. 订购号码时勾选“短信功能”;

    3. 调用本接口设置归属该应用的隐私号码绑定关系时不携带“privateSms”或设置“privateSms”为“true”。

      注:如果是在控制台设置归属该应用的隐私号码绑定关系,需在设置绑定关系时勾选“支持短信”。

接口类型

表1 接口类型说明

请求方法

POST

访问URI

/rest/provision/caas/privatenumber/v1.0

通信协议

HTTPS

请求参数

表2 请求Headers参数说明

参数名称

是否必选

参数类型

说明

Content-Type

String

固定填写为application/json;charset=UTF-8。

Authorization

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时间戳转换为普通时间时使用的格式不同,部分语言可参考表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参数说明

参数名称

是否必选

参数类型

说明

origNum

String(1-32)

AX中的A号码。

填写为全局号码格式。

  • 手机号码格式为国家码(如+86)+手机号码(如13800000001),填写为"+8613800000001"。
  • 固话号码为国家码(如+86)+不带前置0的区号(如755)+本地固话号码(如28000001),填写为"+8675528000001"。

privateNum

String(1-32)

指定已申请到的X号码进行绑定。

可在隐私保护通话控制台的“号码管理”页面或订购号码成功后返回的号码表中查看已申请到的X号码。

填写为全局号码格式(包含国家码),如:+8613800000021。

该参数与areaCode是二选一关系。

同时携带privateNum和areaCode时系统以privateNum为准。

areaCode

String(0-32)

指定城市码,由隐私保护通话平台从客户已申请到的X号码中选择可用号码进行绑定。

X号码对应城市码可在订购号码成功后返回的号码表中查看。

该参数与privateNum是二选一关系,但携带该参数时必须同时携带privateNumType。

同时携带privateNum和areaCode时系统以privateNum为准。

privateNumType

Enum

固定填写为mobile-virtual。

当参数privateNum为空时必须携带该参数。

areaMatchMode

String(枚举)

号码筛选方式。

  • 0:严格匹配
  • 1:非严格匹配

携带该参数时,必须同时携带areaCode。

当该参数为0,应用下无对应areaCode的号码时,号码分配失败。

当该参数为1,应用下无对应areaCode的号码时,会优先选择该应用下与areaCode对应区域同省份的号码,若也没有同省份的号码,则从该应用下全部X号码中随机选择。

不携带该参数时,系统默认为严格匹配模式。

recordFlag

Enum

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

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

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

如果不携带该参数,系统默认不录音。

recordHintTone

String(1-128)

该参数仅在recordFlag为true时有效。

该参数用于设置录音提示音,填写为放音文件名,可在放音文件管理页面查看。

不携带该参数表示录音前不播放提示音。

preVoice

ApiPlayInfo

设置个性化通话前等待音,即主叫听到的回铃音。

calleeNumDisplay

Enum

设置非A用户呼叫X时,A接到呼叫时的主显号码。

取值:

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

privateSms

Enum

设置该绑定关系是否支持短信功能。

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

取值范围:

  • false:不支持短信
  • true:支持短信

如果客户创建应用时开通了短信功能,不携带该参数时系统默认支持短信。

maxDuration

Integer

设置允许单次通话进行的最长时间,单位为分钟。通话时间从接通被叫的时刻开始计算。

取值范围:0~1440

  • 0:系统不主动结束通话,由主被叫双方结束通话。
  • 1~1440:当通话时长达到此配置值,系统主动结束通话。

不携带时,参数值默认为0。

lastMinVoice

String(0-128)

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

当maxDuration字段设置为非0时此参数有效。

不携带该参数表示通话剩余最后一分钟时不放音。

表5 ApiPlayInfo定义

参数名称

是否必选

参数类型

说明

callerHintTone

String(0-128)

设置A呼叫X时的通话前等待音,填写为放音文件名,可在放音文件管理页面查看。

不携带该参数时A会听到真实被叫的回铃音。

calleeHintTone

String(0-128)

设置非A用户呼叫X时的通话前等待音,填写为放音文件名,可在放音文件管理页面查看。

不携带该参数时用户会听到A的回铃音。

响应参数

表6 响应结果参数

参数名称

是否必选

参数类型

说明

resultcode

String(1-32)

请求返回的结果码。

resultdesc

String(1-256)

操作结果描述。

origNum

String(1-32)

A号码。成功响应时必定返回。

privateNum

String(1-32)

绑定的X号码。成功响应时必定返回。

subscriptionId

String(1-64)

绑定ID,唯一标识一组绑定关系。成功响应时必定返回。请记录该ID用于后续接口调用。

结果码说明

表7 响应结果码

响应码

结果码

英文描述

中文描述

处理方法

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属性。

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

PasswordDigest not contained in X-WSSE.

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

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

1023031

The format of Created is incorrect.

Created属性格式错误。

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

1023032

UsernameToken not contained in X-WSSE.

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

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

401

1010010

Invalid digest.

PasswordDigest校验失败。

请检查PasswordDigest字段填写是否正确。

1010013

Time out limit.

时间超出限制。

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

403

1010002

Invalid request.

非法请求。

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

  • 绑定接口填写的号码参数需为全局号码格式,如+8613800000001或+8675528000001;
  • 放音文件需上传通过审核才可通过接口调用,点击查看如何上传审核
  • 参考接口参数说明,检查是否携带了不能同时携带的参数,如AXE模式绑定接口不能同时携带callbackTone和callbackNum,若是,请保留一个;
  • 参数长度或格式是否错误,如AXE模式分机号长度或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填写是否正确。

1016002

The record already exists.

记录已经存在。

指定的A号码和X号码之间已经存在绑定关系,请更换origNum或privateNum参数的值。

1011001

Account does not exist.

账号不存在。

调用接口时指定的X号码(privateNum)不是该应用已申请的隐私号码,请确认privateNum参数的填写是否正确。

1011002

Insufficient number resources.

号码资源不足。

没有可分配的X号码,请申请新的号码资源或修改areaCode的值。点击查看处理方法

1011003

Exceeded the upper limit of resources that can be applied for.

超过允许申请的资源上限。

指定的A号码已绑定了5个X号码,请更换origNum参数的值。

1012012

Application does not open recording function.

应用未开启录音功能。

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

1012102

The number is contained in the blacklist.

号码属于黑名单。

请联系客服处理。

1011005

Resources have been allocated.

资源已经分配。

出现该错误码表示调用AX模式绑定接口时指定的X号码(privateNum)已和其他A号码绑定,可更换其他X号码进行绑定。

如果该X号码的绑定关系可以解除,您还可以调用AX模式解绑接口解除该绑定关系后,再使用该X号码进行绑定。

1023005

Virtual number over license limit.

隐私号码超出license限制。

请联系客服处理。

1020166

The app client ip is not in ip white list.

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

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

500

1010001

Internal system error.

系统错误。

请联系客服处理。

接口示例

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

  • 请求示例
    POST /rest/provision/caas/privatenumber/v1.0  HTTP1.1 
    
    content-type: application/json;charset=UTF-8
    authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey"
    x-wsse: UsernameToken Username="ZRBRz4bAXoFgEH7o4Ew308eXc1RA",PasswordDigest="NDA1MWIwNjI2ZTkyNWFlM2FhMTE5NDE1YTk5NjU1YWE4NjNlZTY1MmRhYzkxZGViNzczZjdjMjkzZWQ4ZjAwNA==",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z"
    content-length:xx 
    
    { 
    "origNum":"+8613888888888", 
    "privateNum":"+8613866666666", 
    "preVoice": {
            "callerHintTone": "callerHintTone.wav",
            "calleeHintTone": "calleeHintTone.wav"
            }
    }
  • 响应示例
    HTTP/1.1 200 OK 
    Content-Type: application/json;charset=utf-8 
    Content-Length: xx 
    
    { 
    "resultcode":"0", 
    "resultdesc":"Success", 
    "origNum":"+8613888888888", 
    "privateNum":"+8613866666666",
    "subscriptionId":"a132d3244543tg425982fe34df"
    }
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区