Как использовать twilio, чтобы гарантировать живой ответ или голосовую почту?

Обновление: у меня все работает https://github.com/coolaj86/bizilio

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

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

Что я хотел бы сделать, так это поставить задачу, например, использовать собрать и сказать "нажмите 2, чтобы ответить" с 5-секундным тайм-аутом, а затем подключить вызов (или сбросить вызов), и если нет представителя отвечает перейти на голосовую почту.

Я не понимаю, как подключить человека, который нажимает 2, к звонящему телефону.


person coolaj86    schedule 17.07.2013    source источник


Ответы (2)


Евангелист Twilio здесь.

Так что просто чтобы убедиться, что я понимаю ваш вопрос. У вас есть клиенты, которые делают входящие звонки, и для каждого звонящего клиента вы набираете кучу представителей. Но вы хотите убедиться, что представитель действительно хочет принять этот вызов, выдав «вызов» какого-то рода, который требует явных действий с его стороны для завершения.

Это вполне возможно с Twilio, и большая часть того, как это сделать, описана в этих инструкциях:

https://www.twilio.com/docs/howto/callscreening (нажмите * ответить на этот звонок)

http://www.twilio.com/blog/2009/05/dialing-multiple-numbers-simultaneously-with-twilio.html

https://www.twilio.com/docs/api/rest/answering-machine-detection (обнаружение автоответчика)

Это две ключевые части этого HowTo.

Во-первых, он использует существительное Number для набора второй ветви вызова. В вашем случае это набор представителя. Существительное <Number> имеет атрибут URL, который позволяет указать URL-адрес, который Twilio запросит, когда представитель ответит. Это дает вам возможность предоставить некоторый TwiML, который Twilio выполнит для этой части вызова. Таким образом, вы можете, например, попросить представителя нажать цифру 2.

Во-вторых, у глагола <Dial> установлен атрибут действия. Этот URL-адрес будет запрошен, когда вторая часть звонка представителю завершится и даст вам возможность предпринять какие-либо другие действия. Поэтому, если агент не отвечает или не нажимает 2 в течение требуемого времени, его вызов завершается, и ваше приложение может позвонить другому представителю.

Надеюсь, это поможет.

person Devin Rader    schedule 17.07.2013

Ответ Девина правильный, но глагол < Number > всегда немного сложен в использовании.

Вы также можете использовать твимлет Найти меня или придумать, как его запрограммировать. twimlet в своем приложении, если вы решили не использовать готовые twimlets.

Идея заключается в том, что он набирает до 10 номеров, один за другим. Даже если вы не используете все 10 номеров, вы можете ввести достаточно, чтобы в конечном итоге на звонок ответил человек *несмотря ни на что.< /эм>*

В противном случае, другое решение, которое я использовал в своем приложении Twilio, заключается в том, что перед тем, как вы наберете номер, вы говорите им в своем глаголе, что если они нажмут на голосовую почту, то они не оставят там сообщения, так как это >НЕ БУДУТ отвечать. Затем, если они нажмут 1 во время прослушивания голосовой почты телефона, он ОТКЛЮЧИТСЯ (но не отключит их), они не оставят сообщение на эту голосовую почту и будут перенаправлены на ваш TwiML.

— Затем вы перенаправляете их на голосовую почту Twimlet —>

где вы просите их оставить адрес электронной почты и номер телефона, а Twilio отправляет вам аудио по электронной почте. Таким образом, вы сможете ответить на их беспокойство позже.

TwiML должен выглядеть так:

‹ Скажи > Бла-бла, не отвечай на первое голосовое сообщение ‹ /Скажи >

‹ Набрать> представитель # ‹ /Набрать>

//В зависимости от ответа, если он пропущен, они выходят из команды Dial.

‹ перенаправить > "URL-адрес голосовой почты" ‹ / перенаправить >

(перейдите на страницу голосовой почты, чтобы понять, как настроить ее в соответствии с вашим выбором / бизнес-логикой.)

person Zagstrug    schedule 17.07.2013
comment
Еще один метод, который я использовал: поставить клиента на удержание в < Dial > < Conference > < /Dial > после сообщения ему, что он подключается. Затем вы делаете запрос к API и делаете исходящий звонок представителю. Вы используете < Say > и < Gather > и говорите представителю «1 принять», «2 отклонить». (это ruby, не знаю, какой у вас предпочитаемый язык) if params['Digits'] == '1' затем вы выполняете < Dial > < Conference > < /Dial > и соединяете вызовы. В противном случае, используя SID участника конфы, вы загружаете их из конференции и отправляете на свою систему голосовой почты. - person Zagstrug; 17.07.2013
comment
У вас есть пример этого @zagstrug? - person RichHalliwell; 11.01.2020