更新时间:2018-12-29 13:49
当您使用隐私号码服务绑定一组AXB(或者AXN、以下统一以AXB为代表说明)隐私关系后,可以通过使用MNS的Queue模型来接收话单回执消息,话单回执消息时记录了AXB三元组发生的所有的通话记录行为。
云通信的所有业务消息都用过MNS消息服务向外发送。用户每订阅一个类别的消息(比如隐私号码话单回执消息(SecretReport),系统都会为用户分配一个独立的消息队列。用户可以通过阿里云账号拿到一个临时的token用于获取队列中的消息。用户可以下载demo,编写简单的消息处理类即可完成消息处理的任务。在页面上订阅消息,订阅完消息后,能拿到消息队列名称(queueName)。比如:Alicom-Queue-xxxxxx-SecretReport 。队列名字每个用户都不同。
呼叫发起时话单回执消息SecretStartReport
名称 | 类型 | 描述 | 示例 | 是否必须 |
---|---|---|---|---|
pool_key | String | 对应的号池Key | FC1234567 | 必须 |
sub_id | Long | 通话对应的三元组的绑定关系ID | 123456 | 必须 |
call_id | String | 唯一标识一通通话记录的ID | abcdef1234 | 必须 |
phone_no | String | AXB中的A号码 | 15000000000 | 必须 |
secret_no | String | AXB中的X号码 | 1700000000 | 必须 |
peer_no | String | AXB中的B号码或者N号码 | 1580000000 | 必须 |
called_display_no | String | 被叫显号 | 1580100000 | 必须 |
call_type | Interger | 呼叫类型 | 0:主叫(phone_no打给peer_no);1:被叫(peer_no打给phone_no);2:短信发送;3:短信接收; 4:呼叫拦截; 5:短信收发拦截 | 必须 |
call_time | String | 主叫拨打时间 | “2017-09-01 12:00:00” | 必须 |
out_id | String | 外部业务ID | 123456 | 可选 |
隐私号码目前提供一种消息类型,话单回执消息SecretReport
名称 | 类型 | 描述 | 示例 | 是否必须 |
---|---|---|---|---|
pool_key | String | 对应的号池Key | FC1234567 | 必须 |
sub_id | Long | 通话对应的三元组的绑定关系ID | 123456 | 必须 |
call_id | String | 唯一标识一通通话记录的ID | abcdef1234 | 必须 |
phone_no | String | AXB中的A号码 | 15000000000 | 必须 |
secret_no | String | AXB中的X号码 | 1700000000 | 必须 |
peer_no | String | AXB中的B号码或者N号码 | 1580000000 | 必须 |
called_display_no | String | 被叫显号 | 1580100000 | 必须 |
call_type | Interger | 呼叫类型 | 0:主叫(phone_no打给peer_no);1:被叫(peer_no打给phone_no);2:短信发送;3:短信接收; 4:呼叫拦截; 5:短信收发拦截 | 必须 |
call_time | String | 主叫拨打时间 | “2017-09-01 12:00:00” | 必须 |
start_time | String | 被叫接听时间 | “2017-09-01 12:01:00” | 必须 |
ring_time | String | 呼叫送被叫端局时,被叫端局响应的时间 | “2017-09-01 12:01:00” | 必须 |
free_ring_time | String | 被叫手机真实的振铃时间,free_ring_time > call_out_time代表被叫真实发生了振铃事件, 相等代表未振铃 | “2017-09-01 12:01:00” | 必须 |
release_time | String | 被叫挂断时间,release_time - start_time 代表通话时长 如果结果为0,代表呼叫未接通 | “2017-09-01 12:02:00” | 必须 |
sms_number | Interger | 短信长度 | “2017-09-01 12:01:00” | 可选 |
release_dir | Interger | 通话释放方向,0代表平台释放 1代表主叫挂断 2代表被叫挂断 | 0 | 必须 |
out_id | String | 外部业务ID | 123456 | 可选 |
release_cause | Interger | 释放原因 1:未分配的号码 2:无路由到指定的转接网 3:无路由到目的地 4:发送专用信息音 16:正常的呼叫拆线 17:用户忙 18:用户未响应 19:用户未应答 20:用户缺席 21:呼叫拒收 22:号码改变 27:目的地不可达 28:无效的号码格式(地址不全) 29:性能拒绝 31:正常—未指定 34: 无电路/通路可用 42: 交换设备拥塞 50:所请求的性能未预定 53:CUG中限制去呼叫 55: CUG中限制来呼叫 57:承载能力无权 58:承载能力目前不可用 65:承载能力未实现 69:所请求的性能未实现 87:被叫用户不是CUG的成员 88:不兼容的目的地 90:不存在的CUG 91:无效的转接网选择 95:无效的消息,未指定 97:消息类型不存在或未实现 99:参数不存在或未实现 102:定时器终了时恢复 103:参数不存在或未实现—传递 110:消息带有未被识别的参数—舍弃 111:协议错误,未指定 127:互通,未指定 |
1 | 可选 |
下载对应语音的消息DEMO工程,工程所需要的所有依赖项都放在DEMO工程的lib目录下,将对于的依赖项引入到您的工程当中既可按照DEMO样例编写接收消息的程序。
SDK&DEMO【下载地址】
// 代码节选,详见aliyun-dypls-php-sdk/msg_demo/MsgDemo.php
...
echo "消息接口查阅隐私号服务状态报告返回结果:\n";
MsgDemo::receiveMsg(
// 消息类型, SecretReport: 隐私号服务状态报告
"SecretReport",
// 在云通信页面开通相应业务消息后,就能在页面上获得对应的queueName
"Alicom-Queue-xxxxxxxx-SecretReport",
/**
* 回调
* @param stdClass $message 消息数据
* @return bool 返回true,则工具类自动删除已拉取的消息。返回false,消息不删除可以下次获取
*/
function ($message) {
print_r($message);
return false;
}
);
在文档使用中是否遇到以下问题
更多建议
匿名提交