RealTime в Asterisk: архитектура и конфигурация

RealTime в Asterisk: архитектура и конфигурация с 5 октября по 9 октября

Количество
свободных мест

8 Записаться

Курсы по Mikrotik MTCNA

Курсы по Mikrotik MTCNA с 6 апреля по 10 апреля

Количество
свободных мест

7 Записаться

Курс по Zabbix

Zabbix: мониторинг Asterisk и VoIP с 7 сентября по 11 сентября

Количество
свободных мест

8 Записаться
Как организовать свою карусель
18
Доклад
Евгений Полозов
Как организовать свою карусель

Эффективность работы современного колл-центра или системы автоматического обзвона сегодня упирается не столько в качество лидов, сколько в техническую возможность до этих лидов «достучаться». Отрасль сталкивается с серьезным вызовом: операторы связи и мобильные приложения-определители активно блокируют подозрительный трафик, а пользователи всё реже поднимают трубку, когда видят незнакомый или помеченный как «спам» номер. Традиционные методы обзвона с одного-двух статических номеров больше не работают — они приводят к быстрой блокировке ресурсов и падению дозвона до критических значений. Для решения этой проблемы используются комплексные системы, где центральное место занимает интеллектуальная «карусель» номеров — механизм динамического управления и ротации идентификаторов звонящего (Caller ID).

Проблема низкой эффективности исходящих вызовов часто кроется в отсутствии предварительной фильтрации и неграмотном управлении пулом номеров. Даже если компания использует продвинутые инструменты, такие как автоматизированные дайлеры или голосовые боты, без системы «умной» подстановки номеров их КПД остается низким. Чтобы исправить ситуацию, необходимо внедрять многоуровневый подход: от первичного скоринга базы до глубокой интеграции с телефонией на базе API. Это позволяет не только повысить процент ответов, но и значительно продлить «жизнь» используемым номерам, предотвращая их попадание в черные списки.

Почему стандартные решения для обзвона больше не эффективны

Основная сложность современного VoIP-трафика заключается в агрессивной политике операторов по борьбе со спамом. Если раньше можно было купить пачку номеров и «крутить» их до упора, то сегодня системы защиты срабатывают мгновенно. Стандартные карусели, которые предлагают многие провайдеры «из коробки», часто обладают рядом недостатков: они медленные, статистика по ним приходит с задержкой в сутки, а сами пулы номеров могут быть «отравлены» еще до начала работы.

Для достижения реального результата нужно понимать, как именно системы фильтрации маркируют звонки. Обычно это происходит на основе частоты вызовов с одного номера и реакции абонентов (сбросы, пометки «спам» в приложениях). Применение инструментов предварительного анализа, например, скоринга, позволяет отсечь до 58% бесполезного трафика — тех контактов, до которых в принципе невозможно дозвониться в данный момент. Однако оставшиеся 42% «живых» лидов все равно требуют защиты. Здесь в игру вступает профессиональная карусель, которая распределяет нагрузку так, чтобы ни один номер не превысил порог подозрительной активности.

Основные задачи, которые решает грамотная система ротации:

  • Снижение вероятности блокировки: за счет равномерного распределения вызовов между большим количеством идентификаторов.
  • Повышение лояльности абонентов: использование местных номеров (региональная привязка) увеличивает вероятность того, что человек снимет трубку.
  • Экономия ресурсов: автоматический вывод «заспамленных» номеров из работы позволяет не тратить деньги на вызовы, которые заведомо будут отклонены.
  • Гибкое управление: возможность в реальном времени менять логику дозвона в зависимости от текущих показателей ASR (Answer Seizure Ratio) и качества связи.

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

Техническая архитектура и требования к производительности

Современная система управления номерами должна строиться по принципу API-first. Это означает, что любая часть логики — будь то добавление нового номера, смена приоритета транка или получение статистики — должна быть доступна через программный интерфейс. В основе таких систем часто лежат высокопроизводительные языки программирования, такие как Go, что позволяет достигать скорости обработки до 250 запросов в секунду (RPS) на обычном офисном сервере. При этом время отклика (latency) не должно превышать 50 миллисекунд, иначе задержки при инициации вызова станут заметны операторам и клиентам.

Важнейшим элементом является работа с данными о мобильных номерах. Система должна в реальном времени обращаться к актуальным базам DEF-кодов и реестрам MNP (Mobile Number Portability). Это критично, так как абонент может сменить оператора, сохранив номер, и звонок с «Билайна» на бывший номер «Билайна», который теперь в «МТС», будет тарифицироваться и обрабатываться иначе.

Чтобы всё это работало стабильно, необходимо учитывать несколько технических аспектов:

  1. Актуальность кэша: базы перенесенных номеров должны обновляться регулярно, а доступ к ним — быть мгновенным.
  2. Масштабируемость: система должна легко переваривать рост нагрузки при увеличении количества одновременных звонков.
  3. Отказоустойчивость: если сервис ротации недоступен, телефония должна уметь совершать вызов через резервный дефолтный маршрут.

При внедрении подобных решений часто требуется профессиональная установка Asterisk с последующей тонкой настройкой взаимодействия между АТС и внешним сервисом управления каруселью.

Управление матрицей транков и операторов

Сердце системы — это таблица (матрица), в которой прописаны связи между исходящими каналами (транками) и операторами связи. Каждой записи в этой матрице можно присвоить определенные параметры, которые определяют поведение системы в конкретный момент времени.

Основные параметры управления:

  • Вес (Priority/Weight): позволяет распределять трафик между разными провайдерами в процентном соотношении.
  • Статус: транк может быть активным, выключенным или находиться в режиме «карантина».
  • Ограничения (Limits): параметры CPS (вызовов в секунду) и максимальное количество одновременных соединений. Это защищает систему от перегрузки и санкций со стороны вышестоящего оператора.
  • Регулярные выражения: используются для преобразования номеров в нужный формат (например, добавление или удаление «7», «8» или международного префикса).

Система позволяет группировать операторов и регионы. Это удобно, когда нужно настроить общую логику для всех мелких региональных провайдеров или, наоборот, выделить «большую четверку» в отдельные приоритетные каналы. В такой архитектуре каждый звонок проходит через фильтр: система определяет, кто владеет номером абонента, в каком регионе он находится, и только после этого выбирает лучший Caller ID из доступного пула. Чтобы быть уверенным в безопасности таких соединений, рекомендуется проводить регулярный аудит IP-ATC на предмет уязвимостей и корректности настроек маршрутизации.

Сценарии выбора номера: от региона до истории вызовов

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

1. Подбор по оператору (On-net)
Система старается совершить вызов «внутри сети». Например, если мы звоним абоненту МТС, карусель выберет исходящий номер МТС. Это часто дешевле и, что более важно, такие звонки реже помечаются как спам самими операторами.

2. Региональный подбор (Geo-matching)
Это один из самых эффективных методов повышения дозвона. Если человек в Новосибирске видит входящий звонок с кодом своего города, доверие к нему в разы выше, чем к номеру с кодом Москвы или 8-800. Система анализирует код региона абонента и подставляет соответствующий Caller ID из локального пула.

3. Привязка по истории (Succession)
Если компания звонит клиенту повторно, очень важно сохранить преемственность. Система ищет в базе данных информацию о том, с какого номера был совершен последний успешный (или даже неуспешный) звонок этому человеку, и старается подставить именно его. Это создает ощущение персонального общения и исключает ситуацию, когда клиент каждый раз видит новый «случайный» номер.

4. Ротация по кругу (Round Robin) или случайный выбор
Самый простой режим, который используется внутри конкретного пула для равномерного распределения нагрузки на номера, чтобы ни один из них не «перегрелся» от слишком большого количества вызовов в час.

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

Интеграция с Asterisk через API

Для инженеров, работающих с Asterisk, интеграция карусели должна быть максимально прозрачной и не нагружать Dialplan лишними вычислениями. Оптимальный способ — использование внешних запросов к API сервиса ротации.

Процесс выглядит следующим образом:

  1. Asterisk при поступлении вызова отправляет быстрый HTTP-запрос (например, через curl или специализированные AGI-скрипты) в систему карусели.
  2. Система возвращает ответ, содержащий все необходимые данные для совершения звонка: имя транка, Caller ID и дополнительные переменные.
  3. Для удобства обработки в Asterisk ответ часто формируется в виде строки, которую можно сразу использовать в команде MSet. Это избавляет от необходимости парсить сложные JSON-структуры внутри диалплана.

Пример параметров, передаваемых в Asterisk:

  • TRUNK_NAME: название канала, через который пойдет звонок.
  • OUTBOUND_CID: номер, который увидит абонент.
  • DIVERSITY_ID: уникальный идентификатор вызова для последующей аналитики.

Такой подход позволяет вынести всю сложную логику за пределы АТС, оставляя её только для коммутации голоса. При этом важно помнить про защиту IP-ATC, так как внешние интеграции требуют открытия определенных портов или настройки защищенных туннелей.

Asterisk как платформа и богатство интерфейсов

Статистика, аналитика и контроль качества (MOS)
Система ротации номеров не может считаться полноценной без обратной связи. После каждого завершенного вызова Asterisk через Hangup Handler должен передавать информацию о результате звонка обратно в систему карусели.

Сбор статистики включает в себя:

SIP-коды завершения: 200 OK (успех), 486 Busy (занято), 480/487 (нет ответа), 503/505 (ошибки оператора). Постоянные ошибки на определенных транках — сигнал для системы о необходимости их временного отключения.

Длительность звонка (Billable Duration): если звонок длится 1-2 секунды, скорее всего, это был сброс или сработал автоответчик.

Оценка качества голоса (MOS): это критический параметр. Если в каком-то регионе или на конкретном операторе падает качество звука, система должна уметь автоматически переключать трафик на другие каналы. Для обеспечения стабильного качества в высоконагруженных сетях применяется приоритезация трафика QoS.

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

«Холодильник» для номеров: система автоматического карантина

Одной из самых полезных функций интеллектуальной карусели является механизм автоматического карантина (или, как его называют технические специалисты, «холодильник»). Это алгоритм, который следит за «здоровьем» каждого номера в пуле.

Как работает карантин:

  1. Система фиксирует подозрительную активность или плохую статистику по номеру (много сбросов, низкий ASR, специфические ошибки от оператора).
  2. Номер автоматически переводится в статус «на карантине» и перестает участвовать в распределении трафика.
  3. Номер «отдыхает» заданное время (например, от нескольких часов до пары суток). Это позволяет обнулить временные фильтры операторов и приложений.
  4. По истечении времени номер возвращается в работу, но сначала на него подается небольшая, тестовая нагрузка.

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

 

Заключение

Внедрение интеллектуальной карусели номеров — это не просто дань моде на автоматизацию, а жизненная необходимость для любого бизнеса, чья работа связана с исходящими коммуникациями. Это сложный инженерный продукт, который объединяет в себе возможности высокопроизводительных API, глубокую аналитику данных и гибкость настроек телефонии.

Использование такой системы позволяет:

  • Стабильно поддерживать высокий уровень дозвона вне зависимости от ужесточения фильтров операторов.
  • Продлевать срок службы номерной емкости, снижая затраты на её обновление.
  • Получать прозрачную аналитику по качеству связи и эффективности каждого канала в реальном времени.
  • Автоматизировать рутинные процессы управления транками, освобождая время технических специалистов.

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

Ежегодная конференция по Asterisk 2026!

Билеты уже в продаже!

Остались вопросы?

Я - Игорь Кондрашин, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

Наши
клиенты

Посмотреть все