Спам, мошеннические звонки и робозвонки — это как минимум раздражает. Для колл-центров с большим потоком звонков они могут серьёзно повлиять на финансовые результаты. Давайте воспользуемся Twilio Marketplace и нашими навыками в PHP, чтобы блокировать спамеров, робозвонщиков и мошенников.
*Перед началом работы вы уже должны знать, как обрабатывать входящие звонки с помощью Twilio.*
Вы можете интегрировать сторонние технологии, не выходя за рамки Twilio API. Доступ к дополнениям (Add-ons) можно получить через Twilio Console. Сегодня мы рассмотрим два дополнения для голосовых вызовов, которые помогут решить проблему спама: Marchex Clean Call и Nomorobo Spam Score.
После того как вы определились с дополнением, нажмите кнопку **Установить** и согласитесь с условиями. В нашем случае мы хотим использовать эти дополнения при обработке входящих голосовых вызовов, поэтому убедитесь, что в разделе **Использовать в** установлен флажок **Входящий голосовой вызов**, и нажмите **Сохранить**, чтобы сохранить изменения.
Обратите внимание на настройку **Уникальное имя**. Она понадобится вам в коде для чтения результатов дополнения. В коде для этого руководства мы используем имена по умолчанию.
Когда Twilio получает звонок на ваш номер телефона, он отправляет данные о вызове на ваш вебхук (подробнее о настройке позже). В коде вебхука вы создаёте ответ TwiML, чтобы указать Twilio, как обработать звонок.
Для проверки на спам наш код должен проверить спам-рейтинг номера и обработать звонок по-разному в зависимости от того, считает ли дополнение звонящего спамером или нет. В нашем примере мы вернём тег TwiML, чтобы отклонить спамеров, и тег TwiML для приветствия легитимных звонящих.
Код представляет собой простое приложение на Laravel. Фильтрация запросов удобно реализована с помощью посредника (Middleware) Laravel.
В нашем примере для принятия звонка требуется единогласное решение. Мы анализируем рекомендации от каждого дополнения, и если хотя бы одно из них предлагает заблокировать звонок, мы его отклоняем.
#### Варианты отклонения
Использование `
Теперь нужно настроить ваш Twilio-номер так, чтобы при входящем звонке вызывалось ваше приложение. Для этого потребуется публичный хост. Вы можете развернуть приложение любым удобным способом, если оно будет доступно извне, или использовать ngrok для локального тестирования.
Имея URL приложения, откройте Twilio Console и найдите номер телефона, который хотите использовать (или купите новый). На странице настройки номера прокрутите вниз до раздела **Голосовые вызовы** и рядом с пунктом **При входящем звонке** выберите «Вебхук» и вставьте URL функции. (Убедитесь, что выбран метод «HTTP POST».)
Теперь всё настроено. Вы можете позвонить на свой Twilio-номер. Если вы не спамер, ваш звонок должен быть принят, и вы услышите приветствие.
Вы можете быстро позвонить на свой Twilio-номер, чтобы убедиться, что звонок проходит. Но как протестировать блокировку спама? Самый простой способ — написать юнит-тесты, которые передают фиктивный JSON в контроллер. Например, если мы хотим протестировать рекомендацию Nomorobo «BLOCK», можно использовать следующий JSON:
Как видите, Twilio Add-ons Marketplace предлагает множество возможностей для расширения ваших приложений на Twilio. Далее вы можете изучить справочник по дополнениям или почерпнуть полезные советы из других наших руководств по PHP. Куда бы вы ни двигались дальше, вы можете уверенно оставить спамеров позади.