Блокировка спам-звонков и робозвонков с помощью Node.js

Автор: | 07.08.2026

Спам, мошеннические звонки и робозвонки — это как минимум раздражает. Для колл-центров с большим объёмом обращений они могут серьёзно повлиять на финансовые результаты. Давайте воспользуемся Twilio Marketplace и нашими навыками работы с Node.js, чтобы блокировать спамеров, роботов и мошенников.

*Перед началом работы вы уже должны знать, как обрабатывать входящие звонки с помощью Twilio.*

Twilio Add-ons Marketplace — отличное место для поиска дополнений к вашим Twilio-приложениям. Вы можете интегрировать сторонние технологии, не выходя за рамки Twilio API. Доступ к дополнениям можно получить через Twilio Console. Сегодня мы рассмотрим два дополнения для голосовых вызовов, которые помогут решить проблему спама: Marchex Clean Call и Nomorobo Spam Score.

После того как вы выбрали дополнение, нажмите кнопку **Установить** и согласитесь с условиями. В нашем случае мы хотим использовать эти дополнения при обработке входящих голосовых вызовов, поэтому убедитесь, что в разделе **Использовать в** установлен флажок **Входящий голосовой вызов**, и нажмите **Сохранить**, чтобы сохранить изменения.

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

Когда Twilio получает звонок на ваш номер телефона, он отправляет детали звонка на ваш вебхук (подробнее о настройке позже). В коде вебхука вы создаёте ответ TwiML, чтобы сообщить Twilio, как обработать звонок.

Для проверки на спам наш код должен проверить оценку спама номера и обработать звонок по-разному в зависимости от того, считает ли дополнение звонящего спамером или нет. В нашем примере мы будем возвращать тег TwiML для отклонения спамеров и тег для приветствия легитимных звонящих.

Код представляет собой простое приложение на Express:

Обратите внимание, что в коде есть проверки для обоих упомянутых дополнений. Код написан гибко и обрабатывает отсутствие данных в JSON-ответе, так что вы можете копировать и вставлять его, даже если планируете использовать только одно из дополнений. Далее мы подробнее разберём это приложение.

Вот пример того, что может вернуть Marchex Clean Call:

В нашем примере для принятия звонка требуется единогласное решение. Мы анализируем рекомендации от каждого дополнения, и если хотя бы одно из них советует заблокировать звонок, мы его отклоняем.

#### Варианты отклонения

Использование `` — это самый простой способ отклонить спамеров. Однако вы можете обрабатывать их иначе. В вашем распоряжении весь арсенал TwiML. Например, вы можете записать звонок, расшифровать запись с помощью другого дополнения и сохранить расшифровку для последующего анализа.

#### Варианты принятия звонка

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

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

Имея URL приложения, откройте Twilio Console и найдите номер телефона, который хотите использовать (или купите новый). На странице настройки номера прокрутите вниз до раздела **Голосовые вызовы** и рядом с **При входящем звонке** выберите «Вебхук» и вставьте URL функции. (Убедитесь, что выбран метод «HTTP POST».)

Теперь всё настроено. Вы можете позвонить на свой Twilio-номер. Надеемся, если вы не спамер, ваш звонок будет принят, и вы услышите приветствие.

Вы можете быстро позвонить на свой Twilio-номер, чтобы убедиться, что звонок проходит. Но как протестировать блокировку спама? Самый простой способ — написать несколько юнит-тестов, которые передают фиктивные JSON-данные в наш контроллер. Например, если мы хотим протестировать рекомендацию Nomorobo «BLOCK», можно использовать следующий JSON:

Как видите, Twilio Add-ons Marketplace предлагает множество возможностей для расширения ваших Twilio-приложений. Далее вы можете изучить справочник по дополнениям или почерпнуть полезные идеи из других наших руководств по Node.js. Куда бы вы ни направились дальше, вы можете уверенно оставить спамеров позади.