前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云号码保护直拨绑定问题分析

腾讯云号码保护直拨绑定问题分析

原创
作者头像
雷wide
修改2020-11-03 11:32:03
8.2K2
修改2020-11-03 11:32:03
举报

背景:

在号码保护直拨中间号使用测试过程中,经常会遇到绑定中间号失败的情况,其中有很多是因为客户对几种绑定模式特点不清楚引起的。例如下面几个问题:

案例1:

北京某公司接入pstn号码保护AXB+XB模式,测试阶段遇到问题:客户先进行了AXB绑定,然后再XB绑定失败,解绑AXB后依然XB绑定失败。

排查结果:X号码已经被其他测试人员号码进行XB绑定,X号码只能有一个XB模式绑定。AXB绑定不会影响XB绑定。

案例2:

某公司广告部门测试pstn号码保护AXB+XB模式过程中遇到问题:AXB绑定失败。

排查结果:因用户的主叫号码与小号有个XB绑定,后再使用测试AXB绑定失败。XB绑定会影响小号的AXB绑定。

为了弄清楚中间号绑定方案的特点,这里对一些场景进行分析总结。

方案介绍

中间号申请模式有AXB 和XB以及AXB+XB三种常规可选的方案。

AXB绑定:

是将A号码和B号码和中间号X号码组合绑定起来,X号码可以支持多组号码同时绑定,但是一个号码与X号码只能绑定一次,再次绑定会失败。

XB绑定:

将X号码作为B号码的替身,拨打X号码就相当于拨打B号码,这里一个X号码只能绑定一个B号码,但是一个B号码可以绑定多个X号码。把绑定了B号码的X号码再去绑定其他号码,会失败。

AXB+XB模式:

这里X号码既可以支持AXB绑定,也可以支持XB绑定,这是最复杂的情况,我准备了一组实验来挖掘组合模式的特点。

实验开始

环境准备

appid:(保密)需要支持AXB+XB模式

中间号:

代码语言:javascript
复制
X:170xxxx4669
Y:170xxxx4558

普通用户手机号:

代码语言:javascript
复制
A:0086136xxxxx713
B:0086131xxxxx281
C:0086189xxxxx565
D:0086178xxxxx378
E:0086185xxxxx780
F:0086136xxxxx711
G:0086173xxxxx820

操作过程

步骤1.将号码AXB进行绑定,调用绑定接口

代码语言:javascript
复制
{
    "appId": "{{appId}}",
    "requestId": "test0000001",
    "src": "0086136xxxxx713",
    "dst": "0086131xxxxx281",
    "maxAssignTime": "3000",
    "record":"1",
    "assignVirtualNum": "0086170xxxx4669"
}

返回成功,(这里有效时间设置要稍微长点,避免实验中被自动解绑)

代码语言:javascript
复制
{"bindId":"5312e81a-b2e4-4086-b452-e337500df58b","errorCode":"0","refNum":"1","requestId":"test0000001","virtualNum":"170xxxx4669"}

步骤2.将C号码进行XC绑定

代码语言:javascript
复制
{
    "appId": "{{appId}}",
    "requestId": "test0000002",
    "dst": "0086189xxxxx565",
    "maxAssignTime": "3000",
    "record":"1",
    "assignVirtualNum": "0086170xxxx4669"
}

返回成功,(requestid采取递增避免结果与参数对应不上)

代码语言:javascript
复制
{"bindId":"001e42cf-27a5-4762-a371-e48fe1aced48","errorCode":"0","refNum":"1","requestId":"test0000002","virtualNum":"170xxxx4669"}

步骤3.用A对号码X进行拨打,B号码接听,AXB绑定生效。

步骤4.用D号码对X进行拨打,C号码接听,XC绑定生效。

思考:当AXB与XC都绑定的时候,理论上A拨打X有2种可能,一是AXB绑定生效,拨打到B,另一种是XC绑定生效,拨打到C,这里明显AXB绑定生效了。同时D的拨打证明XC也是可用的。

结论1:可以看出AXB与XC同时匹配,AXB具有高优先级。

步骤5.用C号码拨打X,提示无效。

结论2:XB模式是不支持自己拨打自己的。

步骤6.将号码DXE进行绑定

代码语言:javascript
复制
{
    "appId": "{{appId}}",
    "requestId": "test0000003",
    "src": "0086178xxxxx378",
    "dst": "0086185xxxxx780",
    "maxAssignTime": "3000",
    "record":"1",
    "assignVirtualNum": "0086170xxxx4669"
}

结论3:绑定成功:说明一个X号码可以支持多组号码绑定复用。

代码语言:javascript
复制
{"bindId":"774400e7-927b-4022-9ade-cb7c09fbd13b","errorCode":"0","refNum":"1","requestId":"test0000003","virtualNum":"170xxxx4669"}

步骤7.将号码XF进行绑定

代码语言:javascript
复制
{
    "appId": "{{appId}}",
    "requestId": "test0000004",
    "dst": "0086136xxxxx711",
    "maxAssignTime": "3000",
    "record":"1",
    "assignVirtualNum": "0086170xxxx4669"
}

结论4:绑定失败:此时XC还未解绑,X是不能再进行XB模式绑定其他号码

代码语言:javascript
复制
{"errorCode":"-106","msg":"caller or callee has been binded","requestId":"test0000004"}

步骤8.将号码GXD进行绑定,这里D和E进行过绑定了

代码语言:javascript
复制
{
    "appId": "{{appId}}",
    "requestId": "test0000005",
    "src": "0086173xxxxx820",
    "dst": "0086178xxxxx378",
    "maxAssignTime": "3000",
    "record":"1",
    "assignVirtualNum": "0086170xxxx4669"
}

绑定失败

代码语言:javascript
复制
{"errorCode":"-106","msg":"caller or callee has been binded","requestId":"test0000005"}

思考:因为EXF已经绑定过了,HXE绑定会失败,假设绑定成功,E发起呼叫X,会有2中可能:1.呼叫到F,2.呼叫到H,存在不确定性,所以当前AXB模式不支持是可以理解的

结论5:AXB模式中,一个号码与同一个中间号只能有一组绑定关系。

步骤9.使用第二个中间号Y号码进行YC绑定

代码语言:javascript
复制
{
    "appId": "{{appId}}",
    "requestId": "test0000006",
    "dst": "0086189xxxxx565",
    "maxAssignTime": "3000",
    "record":"1",
    "assignVirtualNum": "0086170xxxx4558"
}

结论6:绑定成功:说明一个普通号码可以与多个X进行‘XB模式’绑定

代码语言:javascript
复制
{"bindId":"469cd211-9875-4d2a-8577-5d7e6646dc61","errorCode":"0","refNum":"1","requestId":"test0000006","virtualNum":"170xxxx4558"}

步骤10.进行AYB绑定

代码语言:javascript
复制
{
    "appId": "{{appId}}",
    "requestId": "test0000007",
    "src": "0086136xxxxx713",
    "dst": "0086131xxxxx281",
    "maxAssignTime": "3000",
    "record":"1",
    "assignVirtualNum": "0086170xxxx4558"
}

结论7:绑定成功:说明一组号码可以与多个X进行‘AXB模式’绑定

代码语言:javascript
复制
{"bindId":"97eb1725-053e-4fe4-b303-c8cac9ebdef4","errorCode":"0","refNum":"1","requestId":"test0000007","virtualNum":"170xxxx4558"}

步骤11.进行AYC绑定

代码语言:javascript
复制
{
    "appId": "{{appId}}",
    "requestId": "test0000008",
    "src": "0086136xxxxx713",
    "dst": "0086189xxxxx565",
    "maxAssignTime": "3000",
    "record":"1",
    "assignVirtualNum": "0086170xxxx4558"
}

绑定失败

代码语言:javascript
复制
{"errorCode":"-106","msg":"caller or callee has been binded","requestId":"test0000008"}

思考:C与Y号码进行过‘XB绑定’,不能再AYC进行‘AXB模式’绑定

结论8:XB绑定不能再进行AXB绑定(同一个X号码,同一个B号码)

步骤12.YC解绑(这里解绑目的是让Y号码没有‘XB模式’绑定),再进行YB绑定

代码语言:javascript
复制
{
    "appId": "{{appId}}",
    "requestId": "test0000009",
    "dst": "0086131xxxxx281",
    "maxAssignTime": "3000",
    "record":"1",
    "assignVirtualNum": "0086170xxxx4558"
}

结论9:绑定成功,和步骤11一起看,说明的AXB不影响XB再绑定(同一个X号码,同一个B号码)

代码语言:javascript
复制
{"bindId":"1142f978-f341-4947-b343-ab6a2d42fcbf","errorCode":"0","refNum":"1","requestId":"test0000009","virtualNum":"170xxxx4558"}

步骤13.用C号码拨打Y 打到B号码 XB绑定生效

步骤14.用A号码拨打Y 打到B号码 AXB绑定生效

结论10:再次证明‘AXB模式’优先与‘XB模式’

步骤15.用B号码拨打Y 打到A号码 AXB绑定生效

思考:参考结论2,如果是XB生效B号码是打不了Y号码的。

结论11:再次证明‘AXB模式’优先与‘XB模式’

总结中间号绑定特点:

特点1:AXB模式与XB模式同时匹配,AXB具有高优先级。

特点2:XB模式是不支持自己拨打自己的。

特点3:AXB模式中,一个X号码可以支持多组号码绑定复用。

特点4:XB模式中,X是不能进行XB模式绑定多个号码。

特点5:AXB模式中,一个号码与同一个中间号只能有一组绑定关系。

特点6:一个普通号码可以与多个X进行‘XB模式’绑定。

特点7:一组号码可以与多个X进行‘AXB模式’绑定。

特点8:XB绑定不能再进行AXB绑定(同一个X号码,同一个B号码)。

特点9:AXB不影响XB再绑定(同一个X号码,同一个B号码)。

希望这个能帮助大家更好的理解和使用号码保护,少走弯路 \- 。-/ ...

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景:
    • 案例1:
      • 案例2:
      • 方案介绍
        • AXB绑定:
          • XB绑定:
            • AXB+XB模式:
            • 实验开始
              • 环境准备
                • 操作过程
                  • 步骤1.将号码AXB进行绑定,调用绑定接口
                  • 步骤2.将C号码进行XC绑定
                  • 步骤3.用A对号码X进行拨打,B号码接听,AXB绑定生效。
                  • 步骤4.用D号码对X进行拨打,C号码接听,XC绑定生效。
                  • 步骤5.用C号码拨打X,提示无效。
                  • 步骤6.将号码DXE进行绑定
                  • 步骤7.将号码XF进行绑定
                  • 步骤8.将号码GXD进行绑定,这里D和E进行过绑定了
                  • 步骤9.使用第二个中间号Y号码进行YC绑定
                  • 步骤10.进行AYB绑定
                  • 步骤11.进行AYC绑定
                  • 步骤12.YC解绑(这里解绑目的是让Y号码没有‘XB模式’绑定),再进行YB绑定
                  • 步骤13.用C号码拨打Y 打到B号码 XB绑定生效
                  • 步骤14.用A号码拨打Y 打到B号码 AXB绑定生效
                  • 步骤15.用B号码拨打Y 打到A号码 AXB绑定生效
              • 总结中间号绑定特点:
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档