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


How to grab a list of active calls from Twilio

当使用Twilio REST API拉in-progress调用列表时,我遇到了双重记录问题。下面是我想要的工作流程。

  1. 呼叫方拨打客户端号码。检查
  2. 来电者将听到欢迎留言,并进入呼叫队列。检查
  3. 操作员在仪表板上看到队列中的呼叫者。<<strong> 问题/em>
  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 -->

还有一些值得注意的地方

  • 这有一点样式,所以我可以看到我在做什么,大多数这些交互最终将发生在iPad或桌面软件。
  • 上面提到的第二条记录(显示座席电话号码的记录)可以在显示为排队的呼叫列表和显示为in-progress的呼叫列表之间移动。只有第一条记录(显示Twilio电话号码的那条)总是出现in-progress
  • 是的,我可以通过忽略显示Twilio数字作为to属性的记录来过滤我的记录,但我更愿意在Twilio的端过滤它,如果可能的话。

Twilio Developer Evangelist here.

你可以在Twilio的API请求中只过滤传入或传出呼叫。如果您将direction参数添加到getIterator呼叫中,那么您应该能够在日志中只获得传入呼叫,而不是向座席发出呼叫:

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

您获得多个条目的原因是因为您呼叫的每个人(在本例中称为代理和客户)被Twilio计算为呼叫的单个分支。