Управление звонками с несколькими агентами Twilio

Я работаю в проекте с Twilio, чтобы делать и принимать звонки. Итак, представьте, что вы хотите сделать звонок, а с другой стороны, у нас есть 3 агента, чтобы принять звонок, с тремя номерами twilio. Я хочу показать входящий вызов только одному из агентов (случайным образом).

Я не уверен, что для достижения такого поведения я должен создать другой ответ с другим или другим агентом.

Например:

response = Twilio::TwiML::Response.new do |r|
  # Should be your Twilio Number or a verified Caller ID
  r.Dial :callerId => caller_id do |d|
      d.Client <custom_client_name>
  end

или же

response = Twilio::TwiML::Response.new do |r|
  # Should be your Twilio Number or a verified Caller ID
  r.Dial :callerId => caller_id do |d|
      d.Number <custom_client_number>
  end

Спасибо вам, ребята!

2 ответа

Решение

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

Это звучит как довольно хороший пример использования нашего TaskRouter API. TaskRouter позволяет помещать входящие вызовы в очередь, которая будет использовать рабочий процесс для назначения этих вызовов операторам, когда они доступны.

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

Дайте мне знать, если это поможет.

Я вижу сценарий так:

                         /- agent 1
client    -> pick random |- agent 2
(make call)              \- agent 3

Для этого я бы:

  1. Отслеживайте доступность агента независимо от Twilio. Например, каждый раз, когда агент начинает вызов, вы отмечаете его как в вызове на своем бэкэнде, а когда вызов заканчивается, вы снова отмечаете агента доступным.
  2. Если конечная точка голосовой связи поражена, когда клиент запрашивает новый вызов, вы запрашиваете доступных операторов и выбираете одного случайным образом. Затем верните необходимый TwiML, чтобы набрать этого агента. Вы также можете настроить конференцию для большей гибкости (например, переключение операторов во время разговора).
  3. Если агент недоступен, верните TwiML с <say> глагол, сообщающий клиенту, что никакие агенты не доступны.
Другие вопросы по тегам