·14 мин·1 просмотров

Как мониторить очереди Asterisk в реальном времени: полное руководство

Все способы мониторинга очередей Asterisk в реальном времени — от CLI-команд и событий AMI до аналитических платформ. Примеры кода, сравнительная таблица и инструкции по настройке.

A
Astervis
Команда инженеров и продактов

Если у вас колл-центр на Asterisk, очереди — это пульс всей операции. Каждый неотвеченный звонок, каждое долгое ожидание, каждый простаивающий оператор стоят вам денег. При этом большинство администраторов Asterisk работают вслепую: у них нет представления о том, что происходит в очередях прямо сейчас.

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

Зачем нужен мониторинг очередей в реальном времени

Прежде чем переходить к «как», оцифруем «зачем».

Колл-центр без мониторинга в реальном времени по определению работает реактивно. Вы узнаёте о проблемах уже после того, как они обошлись вам в деньги:

  • Потерянные звонки: средний показатель по отрасли — 5–8 %. Без оповещений в реальном времени всплески потерь остаются незамеченными до вечернего отчёта.
  • Нарушения SLA: если ваша цель — 80 % звонков, отвеченных за 20 секунд, вы должны узнать об отставании в ту же минуту, а не завтра утром.
  • Перекос в загрузке операторов: один оператор захлёбывается, трое сидят без дела. Без живого дашборда супервизор не может перераспределить нагрузку на лету.
  • Перегрузка транков: когда все SIP-транки заняты, входящие абоненты слышат короткие гудки. Мониторинг транков в реальном времени это предотвращает.

Математика простая: колл-центр, обрабатывающий 500 звонков в день, снизив потери на 2 %, сохраняет 10 звонков ежедневно. Даже при средней ценности звонка в $50 это $500 в день или $130 000 в год — только за счёт мониторинга в реальном времени.

Способ 1: CLI-команды Asterisk

Самая простая отправная точка. В Asterisk есть встроенные CLI-команды для просмотра состояния очередей.

queue show

Самая часто используемая команда:

asterisk -rx "queue show"

Вывод:

support has 3 calls (max unlimited) in 'rrmemory' strategy (18s holdtime, 145s talktime), W:0, C:47, A:12, SL:78.3%, SL2:65.2% within 60s Members: SIP/1001 (ringinuse disabled) (dynamic) (Not in use) has taken 15 calls (last was 342 secs ago) SIP/1002 (ringinuse disabled) (dynamic) (In use) has taken 18 calls (last was 12 secs ago) SIP/1003 (ringinuse disabled) (dynamic) (Paused) has taken 14 calls (last was 890 secs ago) Callers: 1. SIP/trunk-00000a1b (wait: 0:18, prio: 0) 2. SIP/trunk-00000a1c (wait: 0:09, prio: 0) 3. SIP/trunk-00000a1d (wait: 0:03, prio: 0)

Ключевые поля:

  • W (Weight — вес), C (Completed — завершённые звонки), A (Abandoned — потерянные звонки)
  • SL (Service Level в процентах — звонки, отвеченные в пределах целевого времени)
  • Состояния участников очереди: Not in use, In use, Paused, Unavailable, Ringing, Busy
  • Время ожидания абонентов в реальном времени

queue show [queue_name]

Для конкретной очереди:

asterisk -rx "queue show sales"

Ограничения CLI-команд

  • Ничего не сохраняется: статистика обнуляется при перезапуске Asterisk
  • Нет сравнения с историей: вы видите «сейчас», но не можете сравнить со вчерашним днём
  • Нет оповещений: проверять нужно вручную, push-уведомлений нет
  • Только снимок: вы видите состояние в один момент времени, а не динамику
  • Плохо масштабируется: запуск CLI-команд в цикле ненадёжен и прожорлив по ресурсам

CLI полезен для быстрой диагностики, но для промышленного мониторинга его недостаточно.

Способ 2: Asterisk Manager Interface (AMI)

AMI — событийный интерфейс Asterisk, на котором построено большинство инструментов мониторинга. Он отдаёт события обо всём, что происходит в очередях, в реальном времени.

Настройка AMI

Отредактируйте /etc/asterisk/manager.conf:

[general] enabled = yes port = 5038 bindaddr = 127.0.0.1 [monitor] secret = your_secure_password deny = 0.0.0.0/0.0.0.0 permit = 127.0.0.1/255.255.255.0 read = agent,call,reporting write = agent,call,originate

Перезагрузите конфигурацию после изменений:

asterisk -rx "manager reload"

Ключевые события очередей

AMI генерирует событие на каждое изменение состояния очереди. Самые важные из них:

СобытиеКогда срабатываетКлючевые поля
QueueCallerJoinАбонент попал в очередьQueue, Position, Count, CallerIDNum
QueueCallerLeaveАбонент покинул очередьQueue, Position, Count, HoldTime
QueueCallerAbandonАбонент положил трубку, не дождавшись ответаQueue, Position, OriginalPosition, HoldTime
QueueMemberStatusИзменилось состояние оператораQueue, Interface, Status, Paused
QueueMemberAddedОператор вошёл в очередьQueue, MemberName, Interface
QueueMemberRemovedОператор вышел из очередиQueue, MemberName, Interface
QueueMemberPauseОператор встал на паузу или снялся с неёQueue, Interface, Paused, Reason
AgentConnectЗвонок соединён с операторомQueue, Interface, HoldTime, RingTime
AgentCompleteОператор завершил разговорQueue, Interface, HoldTime, TalkTime

Приём событий AMI (пример на Python)

Минимальный скрипт на Python, который слушает события очередей в реальном времени:

import socket import re def connect_ami(host='127.0.0.1', port=5038, user='monitor', secret='your_secure_password'): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) # Read banner sock.recv(1024) # Login sock.send(f'Action: Login\r\nUsername: {user}\r\nSecret: {secret}\r\n\r\n'.encode()) sock.recv(4096) # Subscribe to queue events sock.send('Action: QueueStatus\r\n\r\n'.encode()) print("Connected to AMI. Listening for queue events...") buffer = '' while True: data = sock.recv(4096).decode('utf-8', errors='ignore') buffer += data while '\r\n\r\n' in buffer: event, buffer = buffer.split('\r\n\r\n', 1) if 'Event: Queue' in event or 'Event: Agent' in event: print(f"\n{'='*50}") print(event) connect_ami()

AMI-команды для управления очередями

Помимо приёма событий, через AMI можно активно управлять очередями:

Action: QueueStatus # Get current state of all queues Action: QueueSummary # Get summary statistics Action: QueueAdd # Add agent to queue dynamically Action: QueueRemove # Remove agent from queue Action: QueuePause # Pause/unpause an agent Action: QueueReset # Reset queue statistics

Ограничения «сырого» AMI

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

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

Способ 3: файл queue_log

Asterisk пишет все события очередей в /var/log/asterisk/queue_log. На этом файле построено большинство инструментов исторической отчётности.

Формат queue_log

Каждая строка выглядит так:

UNIX_TIMESTAMP|CALLID|QUEUE|AGENT|EVENT|PARAM1|PARAM2|PARAM3

Примеры записей:

1710720000|1710719980.123|support|SIP/1001|CONNECT|18|1710719982.124|5 1710720180|1710719980.123|support|SIP/1001|COMPLETECALLER|18|180|| 1710720200|1710720190.125|support|NONE|ABANDON|1|1|15

Ключевые события в queue_log

СобытиеОписаниеПараметры
ENTERQUEUEАбонент попал в очередьURL, CallerID
CONNECTЗвонок соединён с операторомHoldTime, BridgedChannel, RingTime
COMPLETECALLERАбонент положил трубку после разговораHoldTime, TalkTime, Position
COMPLETEAGENTОператор положил трубку после разговораHoldTime, TalkTime, Position
ABANDONАбонент ушёл, не дождавшись ответаPosition, OrigPosition, WaitTime
RINGNOANSWERОператор не ответил вовремяRingTime
TRANSFERЗвонок был переведёнExtension, Context
PAUSEОператор встал на паузуReason
UNPAUSEОператор снялся с паузы

Разбор queue_log (Bash)

Быстрый однострочник, чтобы посмотреть долю потерянных звонков за сегодня:

# Count today's events TODAY=$(date +%s -d "today 00:00") awk -F'|' -v start="$TODAY" '$1 >= start' /var/log/asterisk/queue_log | \ awk -F'|' '{events[$5]++} END {for(e in events) print e, events[e]}' | sort -k2 -rn

Ограничения

  • Работа с файлом: разбор текстовых файлов плохо масштабируется дальше нескольких тысяч звонков в день
  • Нет дашборда в реальном времени: вы разбираете данные постфактум
  • Проблемы с ротацией: при неаккуратной настройке ротации логов часть данных теряется
  • Ручная агрегация: расчёт KPI вроде service level требует нетривиальных скриптов

Способ 4: запись CDR и CEL в базу данных

Для постоянного хранения настройте запись CDR (Call Detail Records) или CEL (Channel Event Logging) в базу данных.

CDR в MySQL/PostgreSQL

В /etc/asterisk/cdr_adaptive_odbc.conf:

[asterisk_cdr] connection = asterisk table = cdr alias start => calldate alias clid => src

Так вы получите записи о звонках, доступные через SQL. Но в CDR нет специфики очередей: есть записи о звонках, но нет метрик очередей — времени ожидания по каждой очереди, эффективности операторов внутри очереди или причин потери звонка.

CEL для детальных событий

CEL (Channel Event Logging) даёт куда более гранулярные данные, чем CDR. Для хранения в базе настройте /etc/asterisk/cel_odbc.conf. CEL фиксирует по каждому каналу события CHAN_START, ANSWER, BRIDGE_ENTER, BRIDGE_EXIT и HANGUP.

Однако чтобы превратить сырые события CEL в осмысленные дашборды очередей, потребуется:

  1. Сложные SQL-запросы с объединением нескольких событий
  2. Логика конечного автомата для восстановления хода звонка
  3. Собственная агрегация KPI
  4. Слой визуализации (Grafana, своё приложение и т. д.)

Именно здесь большинство самодельных решений либо застревают, либо съедают месяцы инженерного времени.

Способ 5: open-source инструменты

Есть несколько open-source проектов, которые пытаются решить задачу мониторинга очередей Asterisk:

QPanel

QPanel — панель реального времени для очередей Asterisk и FreeSWITCH. Подключается по AMI и показывает текущее состояние очередей.

Плюсы: бесплатно, open-source, отображение в реальном времени Минусы: минималистичный интерфейс, нет исторической аналитики, вялая разработка, нет оповещений, нет отслеживания KPI

Устали угадывать, что происходит в очередях?

Astervis даёт 30+ реалтайм-графиков, KPI операторов и CRM-интеграцию для вашего Asterisk PBX. On-premise. Установка за 5 минут. От $119/мес flat без ограничения на операторов.

Попробовать бесплатно

MoniAst

Веб-панель мониторинга Asterisk: показывает текущие звонки и внутренние номера.

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

CDR-Stats

Когда-то многообещающий инструмент аналитики CDR на Django.

Плюсы: был функционально полным Минусы: фактически заброшен — последнее значимое обновление было много лет назад. Код эпохи Python 2. Для новых внедрений не рекомендуется.

Grafana + собственные дашборды

Мощный DIY-вариант: складывать данные queue_log или CEL в InfluxDB/TimescaleDB и строить дашборды в Grafana.

Плюсы: гибко, бесплатно, мощная визуализация Минусы: на нормальную настройку уйдёт 40–80 часов инженерного времени. Свои пайплайны данных. Постоянная поддержка. Никакой готовой логики по очередям «из коробки». Вы строите продукт, а не пользуетесь им.

Способ 6: коммерческие решения

QueueMetrics

Ветеран рынка. Написан на Java, существует с 2005 года.

Цена: от CHF 8 за оператора в месяц (облако) или разовая лицензия Плюсы: развёрнутая отчётность, зрелый продукт, поддержка wallboard Минусы: зависимость от Java (нужен Tomcat), устаревший интерфейс, сложная установка, дорого на масштабе (50 операторов = CHF 400 в месяц), медленное развитие

Asternic Call Center Stats

Сфокусирован на отчётности по очередям.

Цена: для полного функционала нужна коммерческая лицензия Плюсы: прямая интеграция с queue_log, генерация отчётов Минусы: в основном историческая отчётность (не реальное время), устаревший интерфейс, ограниченная настройка дашбордов, легаси-код на PHP

Astervis

Современный SaaS, созданный специально для мониторинга и аналитики очередей Asterisk.

Цена: от $119 в месяц (число операторов не ограничено) до индивидуальных Enterprise-планов Установка: одна команда — подключение по AMI, без Java, без PHP, без сложных зависимостей

Ключевые отличия:

  • 30+ графиков в реальном времени: тепловые карты, эффективность очередей, дашборды операторов, аналитика транков — всё обновляется вживую
  • Отслеживание работы операторов: индивидуальные KPI, рейтинги, динамика времени обработки, решение с первого звонка в разрезе оператора
  • Установка одной командой: curl -fsSL https://api.astervis.io/api/releases/install.sh | bash — запуск меньше чем за 5 минут
  • Self-hosted: данные остаются в вашей инфраструктуре. Изначально дружелюбно к GDPR.
  • Интеграция с CRM: нативные коннекторы Bitrix24 и AmoCRM — история клиента прямо во время разговора
  • Прослушивание записей: слушайте записи разговоров прямо в аналитическом дашборде
  • Современный стек: TimescaleDB для аналитики временных рядов, а не легаси-базы
  • 14 дней бесплатно: без привязки карты

Как выбрать подход

Матрица решения:

ПодходВремя внедренияРеальное времяИсторияОповещенияСтоимостьКому подходит
CLI-команды0 минСнимокНетНетБесплатноБыстрая диагностика
Скрипт на AMI20+ чДаСвоими силамиСвоими силамиБесплатноРазработчикам, пишущим свои инструменты
Разбор queue_log5+ чНетБазоваяНетБесплатноПростых проверок по истории
CDR/CEL + Grafana40–80 чЧастичноДаСвоими силамиБесплатноКомандам с инженерным ресурсом
QPanel1–2 чДаНетНетБесплатноТолько базового отображения в реальном времени
QueueMetrics2–4 чДаДаДа$$$Легаси-окружений с большим бюджетом
Astervis5 минДаДаДаот $119/месПромышленных колл-центров

Настройка мониторинга в реальном времени на Astervis

Если хотите пройти путь от нуля до полноценного мониторинга очередей меньше чем за 10 минут — вот маршрут:

Шаг 1: установите Astervis

На сервере Asterisk (или на отдельном сервере мониторинга с доступом к AMI):

curl -fsSL https://api.astervis.io/api/releases/install.sh | bash

Инсталлятор сам определит конфигурацию Asterisk, развернёт базу данных и запустит службу мониторинга.

Шаг 2: настройте подключение к AMI

Убедитесь, что AMI включён в /etc/asterisk/manager.conf (см. Способ 2 выше). Astervis нужен доступ на чтение событий agent, call и reporting.

Шаг 3: откройте дашборд

Откройте в браузере http://your-server:3000. Вы сразу увидите:

  • Состояние очередей вживую: звонки в ожидании, свободные операторы, текущее время ожидания
  • Тепловую карту: распределение нагрузки по часам и дням недели
  • Дашборд операторов: кто на линии, кто свободен, кто на паузе
  • Контроль SLA: service level в реальном времени относительно ваших целей
  • Загрузку транков: активные каналы по каждому транку

Шаг 4: настройте оповещения (опционально)

Настройте уведомления на случай, когда:

  • Время ожидания в очереди превысило порог (например, 60 секунд)
  • Доля потерянных звонков резко выросла
  • Все операторы недоступны
  • Загрузка транка выше 80 %

Ключевые метрики

Когда мониторинг в реальном времени заработал, сосредоточьтесь на этих KPI очередей:

Service Level (SL)

Формула: (Звонки, отвеченные в пределах целевого времени / Всего звонков) × 100

Отраслевой стандарт — 80/20 (80 % звонков отвечены за 20 секунд). Следите за этим в реальном времени, чтобы ловить нарушения SLA до того, как они накопятся.

Average Speed of Answer (ASA)

Формула: Суммарное время ожидания по отвеченным звонкам / Количество отвеченных звонков

Ориентир: до 30 секунд для большинства колл-центров. Если ASA растёт в течение дня, значит в очереди не хватает операторов.

Доля потерянных звонков (Abandonment Rate)

Формула: (Потерянные звонки / Всего звонков, попавших в очередь) × 100

Ориентир: до 5 %. Показатель выше 8 % обычно говорит о нехватке персонала или проблемах с маршрутизацией.

Загруженность оператора (Occupancy)

Формула: (Суммарное время обработки / Суммарное время в системе) × 100

Ориентир: 75–85 %. Ниже 70 % — персонала слишком много. Выше 90 % — выгорание и падение качества.

First Call Resolution (FCR)

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

Лучшие практики мониторинга очередей Asterisk

  1. Мониторьте круглосуточно, а не только в рабочие часы: звонки в нерабочее время часто вскрывают проблемы с транками, неверно настроенные failover-сценарии или неожиданные всплески обращений.

  2. Сначала соберите базовые показатели: перед настройкой порогов оповещений понаблюдайте 2 недели. У каждого колл-центра своя «норма».

  3. Используйте тепловые карты для планирования смен: мониторинг в реальном времени — про настоящее, а тепловые карты показывают закономерности для будущего планирования персонала.

  4. Смотрите на динамику, а не только на снимок: очередь с тремя ожидающими — это нормально, если она рассасывается, и тревожно, если растёт. Хороший мониторинг показывает и то и другое.

  5. Сопоставляйте метрики очередей с качеством связи: время ожидания ничего не значит, если в разговоре проблемы со звуком. Следите за обоими сразу.

  6. Разбор — еженедельно, оптимизация — ежемесячно: используйте историю для еженедельных разборов с командой и ежемесячной оптимизации процессов.

Заключение

Мониторинг очередей Asterisk в реальном времени — не опция для серьёзного колл-центра, а разница между управлением на опережение и постоянным тушением пожаров.

Если начинаете с нуля, обходите DIY-подходы стороной, пока у вас нет выделенных инженеров. Современные инструменты вроде Astervis дают 30+ графиков в реальном времени, отслеживание работы операторов и интеграцию с CRM — всё на вашей инфраструктуре — меньше чем за 10 минут.

Начните бесплатный 14-дневный триал — карта не нужна. Посмотрите, что на самом деле происходит в ваших очередях Asterisk.


Работаете на FreePBX? Читайте наше руководство: FreePBX Call Center Reporting: как получить аналитику в реальном времени

Сравниваете инструменты? Читайте: Лучшие инструменты мониторинга Asterisk в 2026 году

Хватит гадать. Начни видеть.

Реальная картина вашего Asterisk колл-центра: время ожидания, активность операторов, нагрузка на транки и 30+ графиков. On-premise на вашем сервере. Установка за 5 минут. Без карты.

От $119/мес flat. Без ограничения на операторов. Триал 14 дней.

Поделиться