如何从 Twilio 获取活动呼叫列表

dre*_*att 5 php twilio

in-progress使用 Twilio REST API提取调用列表时,我遇到了双记录问题。这就是我想要的工作流程。

  1. 呼叫者拨打客户的号码。查看
  2. 呼叫者会听到欢迎消息并被放入呼叫队列中。查看
  3. 接线员从仪表板中看到队列中的呼叫者。问题
  4. 接线员选择连接到呼叫者。查看
  5. 呼叫已桥接。查看

我的问题是,当我查询所有正在进行的呼叫时,我得到了双记录。

  • 一旦呼叫者被放入队列中,就会显示一条记录,该记录显示属性中呼叫者的号码from以及to属性中的 Twilio 号码。
  • 选择连接呼叫后会出现第二条记录。它似乎与第一个重复,但它没有将全球 Twilio 号码(母号码)显示为属性to,而是显示代理的电话号码。

以下是我提取列表的方式:

<?php foreach($client->account->calls->getIterator(0,50,array("Status" => "in-progress")) as $call): ?>
    <tr>
    <td><?=$call->start_time?></td>
    <td><?=$call->duration?></td>
    <td><?=$call->from?></td>
    <td><?=$call->to?></td>
    <td>
        <form action="actions/queue.php" method="post">
        <input type="hidden" name="caller" value="<?=$call->parent_call_sid?>" />
        <input type="submit" value="Return Call to Queue" style="color: #555;" />
        </form>
    </td>
    </tr>
<?php endforeach; ?><!-- foreach calls as call -->
Run Code Online (Sandbox Code Playgroud)

还有一些值得注意的额外事情。

  • 它有一些样式,以便我可以看到我在做什么,大部分交互最终将在 iPad 或桌面软件上进行。
  • 上面提到的第二条记录(显示座席电话号码的记录)可以在显示为已排队的呼叫列表和显示为 的呼叫列表之间移动in-progress。只有第一个记录(显示 Twilio 电话号码的记录)始终显示in-progress
  • 是的,我可以通过忽略将 Twilio 编号显示为属性的记录来过滤掉我端的记录to,但如果可能的话,我更愿意在 Twilio 端过滤它。

Jon*_*ied 3

这里是 Twilio 开发者布道者。

您可以仅过滤对 Twilio 的 API 请求中的传入或传出呼叫。如果您directiongetIterator呼叫添加参数,您应该只能在日志中获取传入呼叫,而不能获取发送至代理的传出呼叫:

foreach($client->account->calls->getIterator(0,50,array("Status" => "in-progress", "Direction" => "inbound")) as $call):
Run Code Online (Sandbox Code Playgroud)

您收到多个条目的原因是因为您呼叫的每个人(在本例中为代理和客户)都被 Twilio 计为呼叫的单个部分。