Телефония на больших предприятиях представляет собой сложный комплекс интегрированных между собой программных систем, работа которых не может быть остановлена даже на 5 минут.
Таким образом, для промышленной телефонии выдвигаются своеобразные требования к ядру – АТС, а именно:
- возможность интеграции с различными корпоративными сервисами;
- отказоустойчивость и высокая доступность сервиса.
Для решения подобных задач может использоваться программный комплекс Asterisk. Asterisk представляет собой современную программную платформу, распространяемую под свободной лицензией, для создания системы IP-телефонии. В отличие от брендовых Avaya или Cisco, Asterisk не требует дополнительных затрат на программное обеспечение или специфическое аппаратное обеспечение. Решение разворачивается на Unix платформе и обеспечивает качественное функционирование телефонной системы разных масштабов.
Asterisk предлагает как классический функционал телефонной системы, так и расширенные функции, взаимодействует с традиционными системами телефонии и технологиями передачи голоса по IP-системам.
Рассмотрим решение каждого из выдвинутых нами требований выше на примере реализации с помощью IP-AТС Asterisk.
Real-Time Asterisk
Интеграция Asterisk с базами данных – один из основополагающих элементов, обеспечивающих возможность включения Asterisk в большую распределенную систему. Архитектура реального времени Asterisk (Asterisk Realtime Architecture, ARA) – это метод хранения конфигурационных файлов и их конфигурационных опций в таблице базы данных. Существует два типа архитектуры реального времени: статическая и динамическая. Статический вариант аналогичен традиционному методу чтения конфигурационного файла, за исключением того, что чтение данных осуществляется из базы данных. Метод динамической реализации архитектуры реального времени позволяет загружать и обновлять информацию об объектах по мере необходимости.
Суть реализации Realtime Asterisk заключается в применении системы управления базами данных (СУБД) для хранения конфигурации, это означает, что сам сервер телефонии обращается за данными не к файлам, а к базе данных. Это несколько увеличивает скорость работы, но основной уклон все же в том, что Real Time означает внесение изменений в режиме реального времени. Изменение в статической информации требует перезагрузки текстового файла сразу после внесения в него изменений, но динамическая информация запрашивается Asterisk по мере необходимости и не требует перезагрузки. Архитектура реального времени настраивается таким образом, чтобы указывать Asterisk, что брать из базы данных и откуда именно, что обеспечивает возможность загружать некоторые файлы из базы данных, а другие – из стандартных конфигурационных файлов.
Возможности Real-time Asterisk
Настройка Asterisk с использованием текстовых конфигурационных файлов приемлема на начальных этапах эксплуатации. Однако, необходимость взаимодействия сервера телефонии с другими службами, организация отказоустойчивых систем требует применения архитектуры реального времени, инструмента, предоставляющего широкие возможности автоматизации и интеграции с другими сервисами.
Достигается это благодаря следующим особенностям:
Особенность | Описание |
Интерактивность | Применение баз данных для хранения настроек Asterisk избавляет от необходимости повторного считывания конфигурационных файлов после внесения любых изменений |
Интегрируемость | Управление и наблюдение за сервером телефонии возможно посредством внесения изменений или считывания значений напрямую из базы данных. Использование этого метода может обеспечить тесную двустороннюю связь между сервером Asterisk и сторонним приложением, способным вести работу с базами данных |
Масштабируемость и гибкость конфигурирования | Организация конфигурации в виде таблиц базы данных существенно упрощает администрирование сервера телефонии. Например, создание абонента системы сводится к добавлению строки в таблицу добавочных номеров |
Проблемы и недостатки
Работа режима реального времени сервера телефонии имеет определенные особенности, которые могут усложнить работу. Перечислим некоторые проблемы, которые следует учитывать при проектировании системы.
Проблема | Описание |
Усложнение администрирования | Применение архитектуры реального времени предполагает наличие навыков администрирования баз данных |
Возможное замедление работы | При хранении настроек в конфигурационных файлах параметры считываются при запуске сервера либо принудительно. При этом настройки хранятся в оперативной памяти. Интерактивность realtime режима обеспечивается тем, что при каждом событии требуемые значения извлекаются из базы данных. При значительной нагрузке постоянный обмен сервера телефонии с базой данных может привести к задержкам в работе |
Усложнение структуры | Использование режима realtime предполагает наличие сервера баз данных. При наличии требования отказоустойчивости эту роль также следует резервировать, так как появляется дополнительная точка отказа |
Построение отказоустойчивости системы

Этапы построения кластера высокой доступности:
-
разворачивание двух одинаковых серверов на Unix платформе, сборка Asterisk;
-
настройка конфигурационных файлов на одном сервере; настройка синхронизации конфигурационных файлов между узлами кластера;
-
настройка пакета Keepalived для обеспечения: виртуального IP, переходящего от одного узла к другому; переключения между узлами кластера в случае выхода из строя одного из них;
-
настройка записи статистики на единый сервер Mysql (возможно настройка нескольких узлов Mysql с репликацией);
-
подключение двух провайдеров телефонной связи и резервирование канала интернет и каналообразующего оборудования.
Физически решение выглядит как два независимых сервера, которые находятся в одной IP-сети с общим IP-адресом, который при сбое "мигрирует" на резервный сервер.
Переключение на другой узел происходит по следующим триггерам:
-
недоступен один из узлов;
-
не запущен сервер Asterisk на одном из узлов;
-
недоступен порт tcp для работы Asterisk.
При срабатывании одного из этих триггеров на узле, где они сработали, выключается сервер Asterisk и удаляется IP адрес. В свою очередь, на втором узле запускается служба Asterisk и добавляется виртуальный адрес. Общее время на такие операции – не более 2-3 сек. После чего абоненты перерегистрируются и продолжают работу.
Подобная схема обеспечения отказоустойчивости при выполнении основных требований к окружению (продуманная топология IP-сети, резервирование электропитания и т.п.) может обеспечивать надежность на уровне 99,99% без применения какого-либо специализированного дорогостоящего оборудования.
Таким образом, Asterisk, как мы видим, удовлетворяет двум основным требованиям к промышленной телефонии и может быть использована на больших предприятиях.