当您使用语音的API接口发送外呼后,可以通过使用MNS的Queue模型来接收语音的回执消息。
消息的订阅
云通信的所有业务消息都用过MNS消息服务向外发送。用户每订阅一个类别的消息(比如语音呼叫消息VoiceReport),系统都会为用户分配一个独立的消息队列。用户可以通过阿里云账号拿到一个临时的token用于获取队列中的消息。用户可以下载demo,编写简单的消息处理类即可完成消息处理的任务。在页面上订阅消息,订阅完消息后,能拿到消息队列名称(queueName)。比如:Alicom-Queue-xxxxxx-VoiceReport 。队列名字每个用户都不同。
消息类型
语音提供一种消息类型,呼叫记录消息(VoiceReport)
语音呼叫记录消息VoiceReport消息体格式
名称 | 类型 | 描述 | 示例 | 是否必须 |
---|---|---|---|---|
call_id | String | 呼叫ID。 | 100001616500^100001871490 | 必须 |
start_time | String | 通话开始时间,未接通则为空。 | 2017-06-01 10:00:00 | 可选 |
end_time | String | 通话结束时间,未接通则为空。 | 2017-06-01 10:00:00 | 可选 |
duration | String | 通话时长,未接通为0。 | 10 | 可选 |
status_code | String | 呼叫结果状态码。 | 200010 | 必须 |
status_msg | String | 结果描述。 | 执行完成 | 可选 |
out_id | String | 扩展字段回传,将调用API时传入的字段返回。 | 123456 | 可选 |
dtmf | String | DTMF按键。 | 123456 | 可选 |
技术对接步骤
下载消息SDK
下载对应语音的消息DEMO工程,工程所需要的所有依赖php包都放在DEMO工程的录下,将对于的php包引入到您的工程当中既可按照DEMO样例编写接收消息的程序。
SDK&DEMO下载地址,请参见SDK&DEMO下载。
编写样例程序
// 代码节选,详见aliyun-dyvms-php-sdk/msg_demo/MsgDemo.php
...
echo "消息接口查阅语音状态报告返回结果:\n";
MsgDemo::receiveMsg(
// 消息类型, VoiceReport: 语音状态报告
"VoiceReport",
// 在云通信页面开通相应业务消息后,就能在页面上获得对应的queueName
"Alicom-Queue-xxxxxxxx-VoiceReport",
/**
* 回调
* @param stdClass $message 消息数据
* @return bool 返回true,则工具类自动删除已拉取的消息。返回false,消息不删除可以下次获取
*/
function ($message) {
print_r($message);
return false;
}
);