隐私小号(不要发客户)
<h2>通用说明</h2>
<p>隐私小号分为AX业务和AXB业务,AX业务为一对多呼叫,AXB为一对一呼叫
A表示真实号码,X表示小号,B表示对端号码</p>
<h3>AX业务</h3>
<h4>API清单</h4>
<p><a href="#隐私小号AX业务-绑定">1. 隐私小号AX业务-绑定</a>
<a href="#隐私小号AX业务-在线主叫">2. 隐私小号AX业务-在线主叫</a>
<a href="#隐私小号AX业务-查询绑定">3. 隐私小号AX业务-查询绑定</a>
<a href="#隐私小号AX业务-解绑">4. 隐私小号AX业务-解绑</a></p>
<h4>使用说明</h4>
<p>呼入:调用绑定API成功后,除A以外的任意号码(比如B)呼叫X,可以接通到A,来电号码显示B
呼出:调用绑定API成功后,再调用AX在线主叫API,传入subid与B号码(通知平台AXB关系),成功后用A号码呼叫X,可以接通到B,来电号码显示X</p>
<h3>AXB业务</h3>
<h4>API清单</h4>
<p><a href="#隐私小号AXB业务-绑定">1. 隐私小号AXB业务-绑定</a>
<a href="#隐私小号AXB业务-查询绑定">2. 隐私小号AXB业务-查询绑定</a>
<a href="#隐私小号AXB业务-解绑">3. 隐私小号AXB业务-解绑</a></p>
<h4>使用说明</h4>
<p>调用绑定API,成功后A呼叫X可以接通B,B呼叫X可以接通A,来电号码均显示X</p>
<h3>公用参数</h3>
<p>隐私小号所有API都需要以下公用参数</p>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>appId</td>
<td>varchar</td>
<td>服务商分配的唯一标识</td>
</tr>
<tr>
<td>timestamp</td>
<td>number</td>
<td>当前时间的毫秒数</td>
</tr>
<tr>
<td>sign</td>
<td>varchar</td>
<td>签名,详见签名算法说明</td>
</tr>
</tbody>
</table>
<p><a name="sign"></a></p>
<h3>签名算法</h3>
<pre><code>sign = sha256(appId + appSecret + timestamp)</code></pre>
<p>用服务商分配的 <strong>appId</strong>、服务商分配的 <strong>appSecret</strong>,当前时间毫秒数 <strong>timestamp</strong>,按上述顺序拼接成字符串,再进行 <strong>sha256</strong> 哈希得到。如下:</p>
<pre><code class="language-java">String appId = "xyzxy2121zxyz";
String timestamp = "1555378976238";
String appSecret = "efcefcef1121cefcefc1212121";
String str = appId + appSecret + timestamp;
String sign = sha256(str);</code></pre>
<h3>公共code返回码说明</h3>
<table>
<thead>
<tr>
<th>code</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td>成功</td>
</tr>
<tr>
<td>400</td>
<td>参数错误</td>
</tr>
<tr>
<td>404</td>
<td>请求地址不正确</td>
</tr>
<tr>
<td>500</td>
<td>系统维护,请稍候再试</td>
</tr>
<tr>
<td>601</td>
<td>接口未开通</td>
</tr>
<tr>
<td>602</td>
<td>账号停用</td>
</tr>
<tr>
<td>603</td>
<td>余额不足请充值</td>
</tr>
<tr>
<td>604</td>
<td>接口停用</td>
</tr>
<tr>
<td>999</td>
<td>其他,以实际返回为准</td>
</tr>
</tbody>
</table>
<blockquote>
<p>如具体API有特殊的返回码,请见以下具体API说明</p>
</blockquote>
<h2>隐私小号AX业务</h2>
<p><a name="隐私小号AX业务-绑定"></a></p>
<h3>隐私小号AX业务-绑定</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/virtual-ax/bind</code></p>
<h4>请求方式</h4>
<ul>
<li>POST</li>
</ul>
<h4>参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>必须</th>
<th><div style="width:470px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>telA</td>
<td>是</td>
<td>真实号码</td>
</tr>
<tr>
<td>telX</td>
<td>是</td>
<td>隐私号码</td>
</tr>
<tr>
<td>name</td>
<td>是</td>
<td>姓名</td>
</tr>
<tr>
<td>idcard</td>
<td>是</td>
<td>身份证号码</td>
</tr>
<tr>
<td>expiration</td>
<td>是</td>
<td>过期时间,单位:秒, 自绑定时间开始后expiration 秒自动解绑;<br>0 表示不限制时间,不会自动解绑</td>
</tr>
<tr>
<td>areacode</td>
<td>否</td>
<td>区号,例如:北京(10);在平台分配X 号码模式中,平台从号码池中分配该地区的X 号码,避免产生呼叫长途费</td>
</tr>
<tr>
<td>callrecording</td>
<td>否</td>
<td>录音控制 默认0<br> 0-不录音<br>1-接通后录音<br>2-被叫响铃后录音</td>
</tr>
<tr>
<td>calldisplay</td>
<td>否</td>
<td>来电显示控制 默认0<br>0-显示真实号码<br>1-显示X号码<br>2-显示Z号码池中的号码,在绑定时可自由选择是否分配Z号码池的开关</td>
</tr>
<tr>
<td>smsmtchannel</td>
<td>否</td>
<td>短信下行控制 默认1<br>1-下发不推送<br>2-推送不下发<br>3-下发推送<br>4-短信拦截,不下发</td>
</tr>
<tr>
<td>anucodecalled</td>
<td>否</td>
<td>其他号码拨打X 时,给其他号码的放音不带,不放音</td>
</tr>
<tr>
<td>anucodecaller</td>
<td>否</td>
<td>其他号码拨打X 时,给A的放音不带,不放音</td>
</tr>
<tr>
<td>callunsub</td>
<td>否</td>
<td>解绑推送消息控制 默认0 <br>0-解绑不推送消息<br>1-解绑推送消息</td>
</tr>
<tr>
<td>callpickup</td>
<td>否</td>
<td>被叫接通推送事件控 默认0<br>0-不推送被叫接通事件<br>1-推送被叫接通事件</td>
</tr>
</tbody>
</table>
<blockquote>
<p>注:公共参数必须,详见公共参数说明</p>
</blockquote>
<h4>正确返回</h4>
<pre><code class="language-json">{
"msg": "成功",
"code": 200,
"charge": true, // 计费标志 ture计费 false 不计费
"taskNo": "09522434433117405247", // 本次请求号
"data": {
"subid":"绑定id",// 绑定id
"telX":"17611223344" // 隐私号码
}
}</code></pre>
<h4>失败返回</h4>
<pre><code class="language-json">{
"msg": "接口地址不正确",
"code": 404
}</code></pre>
<p><a name="隐私小号AX业务-在线主叫"></a></p>
<h3>隐私小号AX业务-在线主叫</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/virtual-ax/call</code></p>
<h4>请求方式</h4>
<ul>
<li>POST</li>
</ul>
<h4>参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>必须</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>subid</td>
<td>是</td>
<td>绑定id</td>
</tr>
<tr>
<td>telX</td>
<td>是</td>
<td>隐私号码</td>
</tr>
<tr>
<td>telB</td>
<td>是</td>
<td>被叫号码</td>
</tr>
</tbody>
</table>
<blockquote>
<p>注:公共参数必须,详见公共参数说明</p>
</blockquote>
<h4>正确返回</h4>
<pre><code class="language-json">{
"msg": "成功",
"code": 200,
"taskNo": "09522434433117405247", // 本次请求号
"data": {
"result": "0" // 0:更新成功
}
}</code></pre>
<h4>失败返回</h4>
<pre><code class="language-json">{
"msg": "隐私小号不是有效的手机号",
"code": 400
}</code></pre>
<p><a name="隐私小号AX业务-查询绑定"></a></p>
<h3>隐私小号AX业务-查询绑定</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/virtual-ax/query</code></p>
<h4>请求方式</h4>
<ul>
<li>GET/POST</li>
</ul>
<h4>请求参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>必须</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>telX</td>
<td>是</td>
<td>隐私号码</td>
</tr>
</tbody>
</table>
<blockquote>
<p>注:公共参数必须,详见公共参数说明</p>
</blockquote>
<h4>正确返回</h4>
<pre><code class="language-json">{
"msg": "成功",
"code": 200,
"charge": true, // 计费标志 ture计费 false 不计费
"taskNo": "09522434433117405247", // 本次请求号
"data": {
"subid":"绑定id", // 绑定id
"telA":"134****6228", // 真实号码
"telX":"131****5232", // 隐私号码
"subts":"20200717165840", // 绑定时间
"expiration":"0", // 过期时间,单位:秒, 自绑定时间开始后expiration 秒自动解绑;0 表示不限制时间,不会自动解绑
"areacode":"", // 区号
"extra":{ // 扩展字段
"callunsub":"0", // 解绑推送消息控制 0-解绑不推送消息 1-解绑推送消息
"smsmtchannel":"1", //短信下行控制 1-下发不推送 2-推送不下发 3-下发推送 4-短信拦截,不下发。
"ringpickup":"0", // 主叫接通推送事件控制 0-解绑不推送消息 1-解绑推送消息
"calldisplay":"0", // 来显控制 0-显示真实号码 1-显示X号码 2-显示Z号码池中的号码
"callpickup":"0", // 被叫接通推送事件控制 0-不推送被叫接通事件 1-推送被叫接通事件
"callrecording":"0" // 录音控制 0-不录音 1-接通后录音 2-被叫响铃后录音
}
}
}</code></pre>
<h4>失败返回</h4>
<pre><code class="language-json">{
"msg": "隐私小号不是有效的手机号",
"code": 400
}</code></pre>
<p><a name="隐私小号AX业务-解绑"></a></p>
<h3>隐私小号AX业务-解绑</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/virtual-ax/unbind</code></p>
<h4>请求方式</h4>
<ul>
<li>POST</li>
</ul>
<h4>参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>必须</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>subid</td>
<td>是</td>
<td>绑定id</td>
</tr>
<tr>
<td>telX</td>
<td>是</td>
<td>隐私号码</td>
</tr>
</tbody>
</table>
<blockquote>
<p>注:公共参数必须,详见公共参数说明</p>
</blockquote>
<h4>正确返回</h4>
<pre><code class="language-json">{
"msg": "成功",
"code": 200,
"charge": true, // 计费标志 ture计费 false 不计费
"taskNo": "09522434433117405247", // 本次请求号
"data": {
"result":0 // 解绑成功
}
}</code></pre>
<h4>失败返回</h4>
<pre><code class="language-json">{
"msg": "隐私小号不是有效的手机号",
"code": 400
}</code></pre>
<h2>隐私小号AXB业务</h2>
<p><a name="隐私小号AXB业务-绑定"></a></p>
<h3>隐私小号AXB业务-绑定</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/virtual-axb/bind</code></p>
<h4>请求方式</h4>
<ul>
<li>POST</li>
</ul>
<h4>参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>必须</th>
<th><div style="width:470px">说明</div></th>
</tr>
</thead>
<tbody>
<tr>
<td>telA</td>
<td>是</td>
<td>真实号码</td>
</tr>
<tr>
<td>telX</td>
<td>是</td>
<td>隐私号码</td>
</tr>
<tr>
<td>telB</td>
<td>是</td>
<td>隐私号码</td>
</tr>
<tr>
<td>anucode</td>
<td>是</td>
<td>放音编码,放音编码必须包含3 个场景的编码。按照“B-X,A-X,11/18其他号码- X”的顺序填写编码,编码之间以逗号分隔。比如:“1,2,3”表示B-X放音编号为1,A-X放音编号为2,其他号码-X放音编号为3。3 个场景放音编号范围:0-255</td>
</tr>
<tr>
<td>expiration</td>
<td>是</td>
<td>过期时间,单位:秒, 自绑定时间开始后expiration 秒自动解绑。0 表示不限制时间,不会自动解绑</td>
</tr>
<tr>
<td>areacode</td>
<td>否</td>
<td>区号,例如:北京(10);在平台分配X 号码模式中,平台从号码池中分配该地区的X 号码,避免产生呼叫长途费</td>
</tr>
<tr>
<td>callrecording</td>
<td>否</td>
<td>录音控制 默认0<br> 0-不录音<br> 1-接通后录音<br> 2-被叫响铃后录音</td>
</tr>
<tr>
<td>calldisplay</td>
<td>否</td>
<td>来电显示控制,针对AXB 中的A或者B作为主叫时,是否在被叫上显示来话的真实号码 默认是0<br> 0-不显示真实号码<br> 1-显示真实号码</td>
</tr>
<tr>
<td>callrestrict</td>
<td>否</td>
<td>呼叫控制 详见呼叫控制说明</td>
</tr>
<tr>
<td>smsmtchannel</td>
<td>否</td>
<td>短信下行控制 默认1<br> 1-现有流程<br> 2-推送下发<br> 3-现有流程下发并推送短信内容<br> 4-拦截不发送</td>
</tr>
<tr>
<td>calldisplayshow</td>
<td>否</td>
<td>推送被叫来显号码控制 默认0<br> 0-推送中不携带被叫来显号码<br> 1-推送中携带被叫来显号码</td>
</tr>
<tr>
<td>callunsub</td>
<td>否</td>
<td>解绑推送消息控制 默认0<br> 0-解绑不推送消息<br> 1-解绑推送消息</td>
</tr>
<tr>
<td>callpickup</td>
<td>否</td>
<td>被叫接通推送事件控 默认0<br> 0-不推送被叫接通事件<br> 1-推送被叫接通事件</td>
</tr>
</tbody>
</table>
<blockquote>
<p>注:公共参数必须,详见公共参数说明</p>
</blockquote>
<h5>呼叫控制说明</h5>
<p>呼叫控制,仅下列值有效。默认是1。
0 :AXB 不做呼叫控制,A 和B(N)均有权限,即为现有的AXN 模式
1 :AXB 做呼叫控制,A 和B 有权限,其他号码无权限,即为现有的AXB
2 :AXB 的单通控制,A 无权限,B 有权限,其他号码无权限
3 :AXB 的单通控制,A 有权限,B 以及其他号码无权限
4 :AXN 的单通控制,A 无权限,B 以及其他号码有权限
5 :AXN 的单通控制,A 有权限,B 以及其他号码无权限
6 :均无权限</p>
<h4>正确返回</h4>
<pre><code class="language-json">{
"msg": "成功",
"code": 200,
"charge": true, // 计费标志 ture计费 false 不计费
"taskNo": "09522434433117405247", // 本次请求号
"data": {
"subid":"绑定id",// 绑定id
"telX":"17611223344" // 隐私号码
}
}</code></pre>
<h4>失败返回</h4>
<pre><code class="language-json">{
"msg": "接口地址不正确",
"code": 404
}</code></pre>
<p><a name="隐私小号AXB业务-查询绑定"></a></p>
<h3>隐私小号AXB业务-查询绑定</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/virtual-axb/query</code></p>
<h4>请求方式:</h4>
<ul>
<li>GET/POST</li>
</ul>
<h4>请求参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>必须</th>
<th><div style="width:450px">说明 </div></th>
</tr>
</thead>
<tbody>
<tr>
<td>telX</td>
<td>是</td>
<td>隐私号码</td>
</tr>
<tr>
<td>telA</td>
<td>否</td>
<td>真实号码 telA,telB,subid不能同时为空且只能选择其中一项查询</td>
</tr>
<tr>
<td>telB</td>
<td>否</td>
<td>对端号码 telA,telB,subid不能同时为空且只能选择其中一项查询</td>
</tr>
<tr>
<td>subid</td>
<td>否</td>
<td>绑定id telA,telB,subid不能同时为空且只能选择其中一项查询</td>
</tr>
</tbody>
</table>
<blockquote>
<p>注:公共参数必须,详见公共参数说明</p>
</blockquote>
<h4>正确返回</h4>
<pre><code class="language-json">{
"msg": "成功",
"code": 200,
"charge": true, // 计费标志 ture计费 false 不计费
"taskNo": "09522434433117405247", // 本次请求号
"data": {
"subid":"绑定id", // 绑定id
"telA":"134****6228", // 真实号码
"telX":"131****5232", // 隐私号码
"telB":"131****5232", // 对端号码
"subts":"20200717165840", // 绑定时间
"anucode":"0,0,0", // 放音编码
"expiration":"0", // 过期时间,单位:秒, 自绑定时间开始后expiration 秒自动解绑;0 表示不限制时间,不会自动解绑
"areacode":"", // 区号
"extra":{ // 扩展字段
"callunsub":"0", // 解绑推送消息控制 0-解绑不推送消息 1-解绑推送消息
"smsmtchannel":"1", //短信下行控制 1-现有流程 2-推送下发 3-现有流程下发并推送短信内容 4-拦截不发送
"calldisplay":"0", // 来显控制,针对AXB中的A或者B作为主叫时,是否在被叫上显示来话的真实号码 0-不显示真实号码 1-显示真实号码
"callpickup":"0", // 被叫接通推送事件控制 0-不推送被叫接通事件 1-推送被叫接通事件
"calldisplayshow":"0", // 推送被叫来显号码控制 0-推送中不携带被叫来显号码 1-推送中携带被叫来显号码
"callrecording":"0", // 录音控制 0-不录音 1-接通后录音 2-被叫响铃后录音
"callrestrict":"0" // 见callrestrict呼叫控制说明
}
}
}
</code></pre>
<h4>失败返回</h4>
<pre><code class="language-json">{
"msg": "隐私小号不是有效的手机号",
"code": 400
}</code></pre>
<p><a name="隐私小号AXB业务-解绑"></a></p>
<h3>隐私小号AXB业务-解绑</h3>
<h4>请求地址</h4>
<p><code>https://api.jumdata.com/virtual-axb/unbind</code></p>
<h4>请求方式</h4>
<ul>
<li>POST</li>
</ul>
<h4>参数</h4>
<table>
<thead>
<tr>
<th>名称</th>
<th>必须</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>subid</td>
<td>是</td>
<td>绑定id</td>
</tr>
<tr>
<td>telX</td>
<td>是</td>
<td>隐私号码</td>
</tr>
</tbody>
</table>
<blockquote>
<p>注:公共参数必须,详见公共参数说明</p>
</blockquote>
<h4>正确返回</h4>
<pre><code class="language-json">{
"msg": "成功",
"code": 200,
"charge": true, // 计费标志 ture计费 false 不计费
"taskNo": "09522434433117405247", // 本次请求号
"data": {
"result":0 // 解绑成功
}
}</code></pre>
<h4>失败返回</h4>
<pre><code class="language-json">{
"msg": "隐私小号不是有效的手机号",
"code": 400
}</code></pre>