Этот пример приложения на Java Servlets моделирует типичный опыт работы колл-центра, но с добавлением больше Reese’s Pieces.
Потерявшиеся инопланетяне могут позвонить агенту и получить инструкции о том, как безопасно покинуть Землю. В этом руководстве мы покажем ключевые фрагменты кода, которые позволяют агенту отправить звонящего на голосовую почту, а позже прочитать расшифровки и прослушать сообщения.
Чтобы запустить это примерное приложение самостоятельно, скачайте код и следуйте инструкциям на GitHub.
*Больше примеров приложений IVR можно найти на нашей странице приложений IVR.*
Когда инопланетный звонящий связывается с нашим колл-центром, нам нужно определить, куда направить звонок. В зависимости от введенных данных мы направим этот звонок на добавочный номер. Добавочные номера используются для поиска *агента*. Любая строка может быть использована для определения добавочного номера.
Как только мы найдем агента, мы можем использовать глагол `
С этой информацией мы предоставляем инопланетянам список доступных агентов, чтобы они могли выбрать одного. Давайте посмотрим, как мы ищем агента.
Когда мы получаем звонок от инопланетянина, мы предлагаем им набор опций. В данном случае опции следующие:
— Для Бродо нажмите 2
— Для Дагоба нажмите 3
— Для Уубера нажмите 4
Когда инопланетный звонящий сделал свой выбор, мы используем нажатие клавиши для поиска `Agent`.
Теперь, когда пользователь выбрал своего агента, нашим следующим шагом будет соединение звонка с этим агентом.
Этот код начинает процесс передачи звонка нашему агенту.
Передавая `url` в существительное `
По сути, мы говорим Twilio выполнить некоторый TwiML, который услышит только агент.
Теперь нашего агента можно вызвать, но как агент будет взаимодействовать с этой функцией? Давайте разберемся, что происходит при скрининге звонка агента.
Когда наш агент поднимает трубку, мы используем глагол `
Если агент отвечает, вводя любую цифру, ответ будет обработан нашим маршрутом `agents/message`. Это `
Теперь наш агент может взаимодействовать со звонком, но что, если наш агент в данный момент отсутствует? В таких случаях полезно настроить голосовую почту.
Когда Twilio делает запрос к нашему методу действия `Call`, он передает аргумент `DialCallStatus`, чтобы сообщить нам статус звонка. Если статус `»completed»`, мы завершаем звонок. В противном случае нам нужно `
Мы также указываем `action` для `
Теперь давайте посмотрим, как на самом деле записать звонок.
Когда мы говорим Twilio записывать, у нас есть несколько опций, которые мы можем передать глаголу `
Здесь мы указываем `
Обратите внимание, что мы перенаправляем на URL, который специфичен для этого агента. Это удобный способ указать, какой агент был вызван для создания голосового сообщения. Таким образом, мы также можем сохранить связанного агента вместе с голосовым сообщением.
Наконец, мы увидим, как просмотреть голосовую почту агента.
Как только мы найдем агента, все, что нам нужно сделать, это отобразить его записи. Мы связываем агента вместе с его записями в `View`.
Можно искать записи через Twilio REST API, но поскольку у нас уже есть все необходимые данные в запросе `transcribeCallback`, мы можем легко сохранить их самостоятельно и сэкономить на дополнительном запросе.
Вот и все! Мы только что реализовали IVR с реальными агентами, скринингом звонков и голосовой почтой.
Если вы Java-разработчик, работающий с Twilio, возможно, вам будут интересны и другие наши руководства.
Увеличьте скорость отклика, автоматизируя ключевые для вашего бизнеса рабочие процессы.
Отправляйте SMS (и MMS) уведомления списку администраторов серверов.
#### Помогло ли это?
Спасибо за ознакомление с этим руководством! Если у вас есть отзывы, которыми вы хотите поделиться, мы будем рады их услышать. Свяжитесь с нами в Twitter и расскажите, что вы создали!