Как получить список активных вызовов от Twilio
Я сталкиваюсь с проблемой двойных записей при извлечении списка вызовов in-progress
с использованием API REST Twilio. Вот как я хочу, чтобы рабочий процесс проходил.
- Вызывающий абонент набирает номер клиента. Проверка
- Вызывающий абонент слышит приветственное сообщение и помещается в очередь вызовов. Проверка
- Оператор видит вызывающего абонента в очереди с панели мониторинга. Проблема
- Оператор выбирает соединение с вызывающим абонентом. Проверка
- Вызовы соединены мостом. Проверка
Моя проблема в том, что когда я делаю запрос для всех выполняемых вызовов, я получаю двойные записи.
- Одна запись отображается, как только вызывающий абонент помещен в очередь,
эта запись показывает номер вызывающего абонента в свойстве
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, если это возможно.
1 answers
Евангелист-разработчик Twilio здесь.
Вы можете фильтровать только входящие или исходящие вызовы в своем запросе API к Twilio. Если вы добавите параметр direction
в свой вызов getIterator
, вы сможете получать только входящий вызов в своих журналах, а не исходящий вызов, отправляемый агенту:
foreach($client->account->calls->getIterator(0,50,array("Status" => "in-progress", "Direction" => "inbound")) as $call):
Причина, по которой вы получаете несколько записей, заключается в том, что каждый человек, которому вы звоните (в данном случае агент и клиент), считается отдельным этапом вызова Твилио.