Есть ли веб-перехватчик Twilio, который информирует меня о пользователях, которые вешают трубку до того, как их поставят в очередь?

У меня есть веб-крючок «входящий звонок» для приложения контакт-центра, над которым я работаю, и он в основном говорит вызывающему абоненту несколько слов («Добро пожаловать в компанию x и т. Д.»), А затем добавляет их в очередь звонков. .

Я могу добавить дополнительные веб-хуки для событий «действие» и «ожидание» для очереди, которые позволяют мне проверять ход вызова в очереди, однако я изо всех сил пытаюсь найти способ обрабатывать вызовы, которые зависают. перед входом в очередь. Например, если кто-то повесит трубку, когда система говорит: «Добро пожаловать в компанию x и т. Д.».

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


person lisburnite    schedule 31.10.2017    source источник


Ответы (2)


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

Вы можете получить веб-хуки для статусов входящих звонков. Вам просто нужно добавить URL-адрес к своему номеру телефона для «Изменения статуса звонка».

После завершения вызова вы получите веб-перехватчик, позволяющий отслеживать его выполнение.

В качестве альтернативы, как вы сказали, вы можете воспроизвести сообщение как часть waitUrl при <Enqueue> вызове. Однако вам не придется повторять это, вы действительно можете вернуть TwiML в ответ на waitUrl. Этот TwiML может включать <Redirect>, чтобы вы могли прочитать приветственное сообщение, а затем, например, перенаправить его на список воспроизведения музыки, который затем зацикливается.

Сообщите мне, если это поможет.

person philnash    schedule 31.10.2017
comment
Отлично, спасибо, я почему-то не заметил это поле ввода `` изменение статуса вызова '', я собираюсь поиграть с обоими вариантами, которые вы упомянули, и посмотрю, что работает лучше всего - person lisburnite; 01.11.2017

Более простой способ с моей стороны закодирован здесь - использовать цикл while и запрашивать api twilio для статуса вызова из call sid

account_sid = os.environ.get('TWILIO_ACCOUNT_SID')
auth_token  = os.environ.get('TWILIO__AUTH_TOKEN')
client = Client(account_sid, auth_token)


while True:
    r = client.calls(sid).fetch()
    c = to_dict(r)
    print(f'{datetime.now().strftime("%Y%m%d_%H%M%S")} from={c["from"]} to={c["to"]}  status={c["status"]}')
    #       ts  .                    .                .

    stop = c["status"] not in ['queued', 'ringing', 'in-progress']  # stop by :completed
    if stop: break

    time.sleep(3)
person Nam G VU    schedule 19.09.2020