Курс Zabbix: мониторинг Asterisk и VoIP

Курс Zabbix: мониторинг Asterisk и VoIP с 8 сентября по 12 сентября

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

8 Записаться

Дистанционные курсы по Asterisk

Дистанционные курсы по Asterisk с 25 августа по 31 августа

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

2 Записаться

Курсы по Mikrotik MTCRE

Курсы по Mikrotik MTCRE с 8 декабря по 11 декабря

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

6 Записаться
Asterisk Realtime: Динамическое управление и масштабируемость
10
Мастер-класс
Александр Абабий
Asterisk Realtime: Динамическое управление и масштабируемость
скачать презентацию

Asterisk Realtime: Динамическое управление и масштабируемость

Рассматривается настройка Asterisk в режиме Realtime на основе работы с живыми конфигурациями. Важной задачей является использование ODBC-коннектора для интеграции с различными СУБД.

Поддерживаемые базы данных

Asterisk может работать через коннекторы ODBC с:

  • SQLite
  • PostgreSQL
  • MySQL/MariaDB
  • Oracle и др

Использование встроенного модуля для MongoDB не рекомендуется, так как он считается устаревшим. Наиболее часто применяется именно ODBC, так как он подходит и для Realtime, и для реализации пользовательских функций.

Функция ODBC в Asterisk

Функция ODBC — мощный инструмент для интеграции и обмена данными. С её помощью можно напрямую взаимодействовать с базой данных, исключая необходимость в дополнительных коннекторах. Пример: при входящем звонке можно получить из базы имя клиента или статус заказа. Такой подход часто используется в онлайн-магазинах и системах автоматизации обслуживания без участия операторов.

Реализация Realtime для основных сущностей

Наиболее часто в Realtime выносятся следующие модули:

  • PJSIP endpoints — конечные устройства (телефоны, софтфоны и т. д.), что обеспечивает удобное администрирование, мониторинг подключений и централизованное управление доступами.
  • Очереди (Queue) — удобно хранить в Realtime, так как это позволяет динамически управлять агентами и их статусами, стратегиями распределения звонков и нагрузкой.
  • Voicemail — актуально для западных рынков, где голосовая почта широко используется.
  • Access List — списки доступа можно хранить в базе и использовать через Permit/Deny.

Дополнительно возможна работа с музыкой на удержании и настройками CDR.

Практическая настройка

Конфигурация ODBC

При установке пакета ODBC и драйвера (например, odbc-mysql) автоматически создаются конфигурационные файлы. Необходимо указать:

  • IP-адрес сервера БД
  • порт
  • имя пользователя и пароль

Авторизация может быть реализована как на уровне ODBC, так и на уровне модуля res_odbc.

Разделение БД

Рекомендуется использовать разные базы для:

  • Realtime (регистрация конечных устройств, настройки SIP/Queues)
  • CDR (хранение записей звонков)

Это повышает производительность и снижает риск конфликтов.

Подключение модулей

После настройки коннектора в conf следует указать, какие именно модули Asterisk будут работать через Realtime. В sorcery.conf определяется, откуда загружаются сущности (например, ps_endpoints, ps_auths, ps_aors).

Для отладки можно включить параметр logging=yes, что позволяет видеть SQL-запросы прямо в консоли Asterisk.

Работа с PJSIP через Realtime

Для регистрации телефона необходимо создать три записи:

  • AOR (адрес ресурса)
  • Endpoint
  • Auth (данные авторизации)

Пример для добавления внутреннего номера 101:

  • в ps_aors задаётся max_contacts=1
  • в ps_auths прописывается username=101, password=…
  • в ps_endpoints указывается связь с AOR и Auth

После добавления записей в БД перезапуск Asterisk не требуется — достаточно применить module reload res_odbc.so.

Вопросы резервирования и масштабирования

Резервирование сильно зависит от бюджета компании:

  • для критичных систем (экстренные службы, 112) требуется сложное решение с Kamailio, RTPengine и сохранением состояния звонков;
  • для менее требовательных систем достаточно схемы с keepalived или использованием двух SIP-серверов в телефонах (Primary/Secondary).

Балансировка нагрузки возможна через DNS (например, при наличии 5 узлов Asterisk для распределения тысяч конечных точек).

Dialplan в Realtime

В Asterisk предусмотрено хранение dialplan в таблицах (extensions). Однако такой подход считается неудобным из-за громоздкой структуры. Более практичным решением является использование func_odbc или динамического генератора dialplan через HTTP/AGI-скрипты.

Заключение

Реализация Realtime через ODBC позволяет гибко управлять конфигурацией Asterisk, масштабировать систему и динамически изменять параметры без перезапуска. Наиболее эффективное применение Realtime — управление конечными точками (endpoints), очередями (queue), voicemail и списками доступа (ACL). Для интеграции с внешними CRM/ERP-системами использование func_odbc остаётся простым и мощным инструментом. При проектировании систем необходимо учитывать вопросы производительности и резервирования, исходя из задач бизнеса.

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

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

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

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

Наши
клиенты

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