axb 类型
概述
主要页面提供 AXB 类型相关业务接口。
所有接口均使用 POST 方式进行交互,通讯格式为 application/json,服务器返回格式均为 JSON。
一、绑定
绑定逻辑说明:
如果指定 x 号码,则会判断 a x 和 bx 的绑定关系,检查 x 号码是否可用,如果存在绑定关系,则会提示已存在绑定关系;
如果不传 x 号码,则系统会随机一个一定能绑定成功的 x 号码进行绑定。
接口
POST https://axb.icsoc.net/api/axb/v2/binding
参数
参数名称 | 类型 | 说明 | 是否必须 | 默认值 |
---|---|---|---|---|
a | string | 主叫号码(若为固定电话,请加区号绑定) | 是 | / |
b | string | 被叫号码(若为固定电话,请加区号绑定) | 是 | / |
expiration | string | 过期时长(单位:秒, 自绑定时间开始后自动解绑;0 表示永不解绑) | 否 | 0 |
call_recording | string | 是否录音 | 否 | 0 |
x | string | 中间隐私号(不传递则随机一个 X 号码) | 否 | / |
area_code | string | x 号码区号 | 否 | / |
结果
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
code | int | 0为成功,其他均为不成功,请参考 message | 是 |
message | string | 是 | |
data | object | 否 | |
data.binding_id | string | 绑定 ID,成功时返回 | 否 |
data.x | string | 中间隐私号,成功时返回 | 否 |
例子
curl -d "a=01059658005&b=18566722456&call_recording=1" -H 'Authorization: Bearer a24e562a877c17f9a594c7ea7916bdbe807e23f711' https://axb.icsoc.net/api/axb/v2/binding
{
"code": 0,
"message": "success"
"data": {
"binding_id": "C2507X010X0027067109-11-0-CSHD-GXI",
"x": "18566722456"
},
}
二、AXB 更新
接口
POST https://axb.icsoc.net/api/axb/v2/update
参数
参数名称 | 类型 | 说明 | 是否必须 | 默认值 |
---|---|---|---|---|
binding_id | string | 绑定 ID | 是 | / |
a | string | 主叫号码(a 和 b 不能同时更新)(若为固定电话,请加区号绑定) | 是 | / |
b | string | 被叫号码(a 和 b 不能同时更新)(若为固定电话,请加区号绑定) | 是 | / |
expiration | string | 过期时长(单位:秒, 自绑定时间开始后多长时间后自动解绑;0 表示永不解绑) | 否 | 0 |
call_recording | string | 是否录音 | 否 | 0 |
结果
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
code | int | 0为成功,其他均为不成功,请参考 message | 是 |
message | string | 是 |
例子
curl -d "binding_id=C2507X010X0027067109-11-0-CSHD-GXI&a=01012345678&callRecording=1" -H 'Authorization: Bearer a24e562a877c17f9a594c7ea7916bdbe807e23f711' https://axb.icsoc.net/api/axb/v2/update
{
"code": 0,
"message": "success"
}
三、 AXB 查询
该接口为 AXB 查询业务接口。
查询方式有以下三中: 1、通过 binding_id; 2、通过 A+X 3、通过 B+X;
接口
POST https://axb.icsoc.net/api/axb/v2/detail
参数
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
binding_id | string | 绑定ID(若传入x和a或者传入x和b时,可忽略此参数) | 特殊可选 |
x | string | 中间号 | |
a | string | 主叫号码(若为固定电话,请加区号) | |
b | string | 被叫号码(若为固定电话,请加区号) |
结果
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
code | int | 0为成功,其他均为不成功,请参考 message | 是 |
message | string | 是 | |
data | object | 是 | |
data.binding_id | string | 绑定 ID | 是 |
data.a | string | 主叫号码 | 是 |
data.b | string | 被叫号码 | 否 |
data.x | string | 中间号码 | 是 |
data.area_code | string | 区号 | 否 |
data.binding_time | string | 绑定时间 | 是 |
data.expiration | string | 过期时间 | 是 |
data.call_recording | string | 录音控制 | 否 |
data.call_restrict | string | 呼叫控制 | 否 |
data.call_display | string | 来显控制 | 否 |
四、 AXB 解绑
接口
POST https://axb.icsoc.net/api/axb/v2/unbinding
参数
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
binding_id | string | 绑定ID | 是 |
结果
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
code | int | 0为成功,其他均为不成功,请参考 message | 是 |
message | string | 是 |
例子
curl -d "binding_id=C2507X010X0027067109-11-0-CSHD-GXI" -H 'access-token-id: a24e562a877c17f9a594c7ea7916bdbe807e23f711' https://axb.icsoc.net/api/axb/v2/unbinding
{
"code": 0,
"message": "success"
}
五、AXB 即时转接服务开放
此业务接口应用场景为:当一通电话开始时,若主叫方(a 号码)和 隐私号(x 号码) 没有任何绑定关系时,系统将主动推送一条消息到您设置的接口上,您的接口需返回被叫方(b 号码) 和 被叫上显示的号码(y 号码)
若客户端接口返回的 y 号码为空字符串,则默认被叫方上显示 x 号码
推送参数支持加密
签名算法,加密算法,解密算法,详见 附录
接口
POST 客户提供的推送地址
推送参数
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
mode | string | 固定值:axb | 是 |
type | int | 固定值:4 | 是 |
sign | string | 推送签名 | 是 |
data | object/string | 数据,加密时返回类型为 string | 是 |
data.a | string | 主叫号码 | 是 |
data.x | string | 中间号码 | 是 |
data.call_id | string | 呼叫 ID | 是 |
data.type | string | 类型;1: 语音 2: 短信 | 是 |
data.type_describe | string | 类型: 通话/短信 | 是 |
返回响应
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
code | int | 0 视为推送成功 | 是 |
sign | string | 签名。如果有此参数,则系统将验证签名 | 否 |
data | object/string | 数据,加密时返回类型为 string | 是 |
data.b | string | 被叫号码 | 否 |
data.y | string | 被叫显示号码,如果为空则默认显示 x 号码 | 否 |
举例
约定以下例子中,SECRET 为 12345678901234567890123456789012
未加密
{
"mode":"axb",
"type":4,
"data":{
"a":"01059658119",
"x":"13075543120",
"type":"1",
"call_id":"585e04592f44b014",
"type_describe":"通话"
},
"sign":"13d9a690036fac237ab73d3417ca5768",
"timestamp":1577343279
}
加密
{
"mode":"axb",
"type":4,
"data":"tCtoIonK05mDUrNasU9Vbdqsq+E/SazOex+Gu7cVlCAPrBdI/5uvaUnOY0o8QejEDmwZ/u8DyZ8xbW0z/pWJ9qwOhzDoKaxmS6yN2qMDNIjQ3WLfkD7br2i84Ri+zNnETmz26R84e8EsgXdZkbaVwvuiVBCIvw6aQHa1XceJHmU=",
"sign":"6a0e741f1551ebb74cabb236eb451406",
"timestamp":1577343356
}
此加密例子,解密后为上面 未加密 的数据,您可以测试
六、AXB 话单结束推送
该接口为 AXB 话单推送业务接口,需客户提供推送地址。
推送格式为 JSON
推送参数支持加密 签名算法,加密算法,解密算法,详见 附录
接口
POST 客户提供的推送地址
推送参数
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
mode | string | 固定值:axb | 是 |
type | int | 固定值:1 | 是 |
sign | string | 推送签名 | 是 |
data | object/string | 数据,加密时返回类型为 string | 是 |
data.binding_id | string | 绑定 ID | 是 |
data.a | string | 主叫号码 | 是 |
data.b | string | 被叫号码 | 是 |
data.x | string | 中间号码 | 是 |
data.call_id | string | 呼叫 ID | 是 |
data.call_type | string | 呼叫类型;1: 语音主叫 2: 语音被叫 3: 短信发送 4: 短信接收 | 是 |
data.call_time | string | 呼叫时间 | 是 |
data.call_recording | string | 录音控制 | 是 |
data.ringing_time | string | 响铃时间 | 是 |
data.start_time | string | 通话开始时间 | 是 |
data.release_time | string | 通话结束时间 | 是 |
data.recording_url | string | 录音地址 | 否 |
data.release_dir | string | 通话释放方向,1 表示主叫,2 表示被叫,0 表示平台释放 | 是 |
data.release_cause | string | 通话释放原因,此参数常用枚举见附录 | 是 |
返回响应
参数名称 | 类型 | 说明 | 是否必须 |
---|---|---|---|
code | int | 0 视为推送成功 | 是 |
返回的 json 中必须包含 code 字段,且值必须为 0 ,否则系统将视为推送失败,失败后,将以 15/15/30/180/1800/1800/1800/1800/3600(单位:秒)的频率重试通知客户端,如果所有的重试完成后仍然失败,则自动放弃通知。
举例
未加密
{
"mode":"axb",
"type":1,
"data":{
"a":"01059658119",
"x":"13075543120",
"b":"18566722456",
"c":null,
"binding_id":null,
"call_type":"110",
"call_time":"2019-12-26 14:54:39",
"ringing_time":"2019-12-26 14:54:43",
"start_time":"2019-12-26 14:54:53",
"release_time":"2019-12-26 14:54:53",
"call_id":"585e04592f44b014",
"release_dir":"1",
"release_cause":"16",
"call_recording":"0",
"recording_url":null,
"recording_mode":"1",
"transfer":null,
"transfer_reason":null,
"call_result":"0"
},
"sign":"1c9cc7470803e5605b88a4132cad021a",
"timestamp":1577343293
}
加密
{
"mode":"axb",
"type":1,
"data":"tAMpIJPIwcmRXahctUdRZYCBi0RBPqymmx/bPvk0PtdXDaKokoycyaOC0o6ed6l6iCzoGdrySft1qVGeCGnF1X+5j0OPI6MqlZJ3b120jj4NkrbVQ3hwbiYUbv3fMb162qdVo2ku5bWQvGmBzR7UOhkaKVRH7VVXq7CZoCMz9RnuvMC1SVOKSdLABfsCi0Qtxh4llxdsrMMESIm8RxMgYZuTVlW5M0nwIIHZLLu9dcISO94nQ9Y2T89/W/L8FijnWEdowPP2ZsbrfH1lm0UgkJ8FEbI2tRGkCy5TOytH40wZmkXq/bF4lIx574I8i+Nox03PPMx48BzFv25OpfI/4FJvwT6O2cyY2URezai3KdEqnA/QURfHZIeU7klxzA0jSl/jRdRVDFg8ACYoBmC4U43+NY+5VZPDeltJvaVUUFpyv/4LJe/mum6Ofqh+m2ytoUpLIQnDZvCWJqa/g4LHMmu2aPG7LXjUK1nq30l2gakucSNvAvMr8bv8fuelP7/VU8ttPPnr7Zf0fCz2ZEg8R5jNbElym8g7NA5qJev+R7J6oC3IOnwJUDTDO/YMCj4=",
"sign":"1c9cc7470803e5605b88a4132cad021a",
"timestamp":1577343293
}