Как получить список активных вызовов от Twilio


Я сталкиваюсь с проблемой двойных записей при извлечении списка вызовов in-progress с использованием API REST Twilio. Вот как я хочу, чтобы рабочий процесс проходил.

  1. Вызывающий абонент набирает номер клиента. Проверка
  2. Вызывающий абонент слышит приветственное сообщение и помещается в очередь вызовов. Проверка
  3. Оператор видит вызывающего абонента в очереди с панели мониторинга. Проблема
  4. Оператор выбирает соединение с вызывающим абонентом. Проверка
  5. Вызовы соединены мостом. Проверка

Моя проблема в том, что когда я делаю запрос для всех выполняемых вызовов, я получаю двойные записи.

  • Одна запись отображается, как только вызывающий абонент помещен в очередь, эта запись показывает номер вызывающего абонента в свойстве from и номер Twilio в свойстве to.
  • Вторая запись появляется после выбора соединения вызовов. Похоже, что это дубликат первого, но вместо отображения глобального 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, если это возможно.
 4
Author: drewwyatt, 2013-04-17

1 answers

Евангелист-разработчик Twilio здесь.

Вы можете фильтровать только входящие или исходящие вызовы в своем запросе API к Twilio. Если вы добавите параметр direction в свой вызов getIterator, вы сможете получать только входящий вызов в своих журналах, а не исходящий вызов, отправляемый агенту:

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

Причина, по которой вы получаете несколько записей, заключается в том, что каждый человек, которому вы звоните (в данном случае агент и клиент), считается отдельным этапом вызова Твилио.

 3
Author: Jon Gottfried, 2014-01-14 00:45:26