Asterisk является мощной платформой для создания эффективной системы корпоративной IP-телефонии и VoIP-коммуникаций. Это подробное руководство проведет вас через все этапы установки и базовой конфигурации Asterisk 20 на Ubuntu Server, начиная с подготовительных шагов и заканчивая настройкой голосовых функций, IVR-меню и внешних подключений через SIP-провайдера. Освоив эти инструкции, вы сможете самостоятельно запустить полноценный центр связи для офиса или call-центра.
Asterisk (часто называемый Астериск) представляет собой свободно распространяемое программное обеспечение с открытым исходным кодом, предназначенное для преобразования стандартного сервера в многофункциональный центр связи. Программа позволяет построить адаптивную и масштабируемую телефонную систему, эффективно обрабатывающую множество одновременных соединений через интернет. Использование Asterisk широко распространено в корпоративных сетях, центрах обработки вызовов, а также для создания продвинутых систем голосовой коммуникации с поддержкой различных устройств и оборудования.
Использование Asterisk предлагает значительные выгоды для организаций любого размера - от небольшой компании до крупной корпорации с сотнями сотрудников. Рассмотрим наиболее важные из них:
Перед началом процесса установки важно убедиться, что ваша серверная платформа соответствует определенным минимальным требованиям. Тщательная подготовка системы является залогом стабильного и отказоустойчивого функционирования вашего сервера IP-телефонии.
Наиболее предпочтительными операционными системами для развертывания Asterisk являются дистрибутивы Linux, например, Ubuntu Server, Debian, CentOS или специализированный FreePBX. В данном руководстве в качестве примера будет использоваться Ubuntu Server, как одна из наиболее популярных и удобных платформ.
⚠️ Важно!
Для стабильного функционирования АТС Asterisk необходимо учитывать следующие системные требования:
Прежде чем приступить к компиляции Asterisk из исходного кода, требуется установить ряд вспомогательных пакетов и библиотек. Для пользователей Ubuntu/Debian выполните следующие команды в терминале:
sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential libxml2-dev libncurses5-dev libssl-dev \
libjansson-dev libsqlite3-dev uuid-dev libspeex-dev libspeexdsp-dev \
libogg-dev libvorbis-dev libasound2-dev libiksemel-dev libresample-dev \
libspandsp-dev libcodec2-dev git wget
Эти компоненты обеспечивают возможность сборки Asterisk, а также предоставляют поддержку для разнообразных функций, включая обработку аудиопотоков, работу с базами данных ODBC и обеспечение криптографической защиты.
Компиляция Asterisk из исходных файлов предоставляет наибольшую гибкость в настройке и позволяет использовать самую свежую стабильную версию программного обеспечения.
Приступим к загрузке последней стабильной версии Asterisk с официального ресурса Digium/Sangoma.
Перейдите в каталог для исходных файлов:
cd /usr/local/src/
Загрузите выбранную версию Asterisk:
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
Распакуйте загруженный архив:
sudo tar -xvzf asterisk-20-current.tar.gz
Перейдите в директорию с извлеченными исходными кодами:
cd asterisk-20.*/
Теперь необходимо выполнить компиляцию Asterisk и установить его программные модули.
Запустите скрипт configure для проверки зависимостей:
sudo ./configure
Используйте menuselect для интерактивного выбора требуемых модулей и опций:
sudo make menuselect
Подсказка: В menuselect можно выбрать дополнительные звуки (sounds), музыку на удержании (MOH), форматы файлов (mp3, wav) и другие опции. Для навигации используйте стрелки, для выбора/отмены выбора — пробел, для сохранения и выхода — Save & Exit
Выполните компиляцию Asterisk:
sudo make
Инсталлируйте Asterisk и все выбранные модули:
sudo make install
Установите типовые конфигурационные файлы:
sudo make samples
Установите скрипты инициализации для автозапуска:
sudo make config
Обновите кэш динамических библиотек:
sudo ldconfig
После успешной установки программного обеспечения необходимо выполнить несколько обязательных шагов для его первоначальной настройки.
Запустите Asterisk в консольном режиме для отладки и контроля:
sudo asterisk -vvvc
На экране появится приглашение CLI, что свидетельствует о работе Asterisk.
⚠️ Крайне важно!
По умолчанию Asterisk может работать от имени пользователя root. В целях повышения безопасности рекомендуется создать специализированного пользователя asterisk и настроить соответствующие права доступа.
Для обеспечения надлежащей конфиденциальности создайте системного пользователя asterisk:
sudo adduser --system --group --home /var/lib/asterisk --no-create-home \
--gecos "Asterisk PBX User" asterisk
sudo chown -R asterisk:asterisk /var/lib/asterisk
sudo chown -R asterisk:asterisk /var/log/asterisk
sudo chown -R asterisk:asterisk /var/run/asterisk
sudo chown -R asterisk:asterisk /var/spool/asterisk
sudo chown -R asterisk:asterisk /usr/lib/asterisk
sudo chown -R asterisk:asterisk /etc/asterisk
Ключевые файлы конфигурации Asterisk располагаются в директории /etc/asterisk/. Для начальной настройки системы телефонии нам потребуется модифицировать pjsip.conf (для управления SIP-абонентами и peers), extensions.conf (для определения правил маршрутизации вызовов и диалплана).
Чтобы пользователи могли подключаться к вашей IP-АТС, необходимо сконфигурировать внутренние SIP-номера (extensions). Мы сосредоточимся на протоколе PJSIP, который является предпочтительным выбором для современных развертываний Asterisk.
Откройте файл pjsip.conf для редактирования:
sudo nano /etc/asterisk/pjsip.conf
Структура конфигурации PJSIP включает:
Пример базовой конфигурации PJSIP для создания внутренних абонентов 201 и 202. В конфигурации указываются секции transport для определения протокола, endpoint для настройки абонента, auth для аутентификации и aor для регистрации.
Для старого chan_sip (если требуется совместимость) можно настроить аналогичные параметры в файле sip.conf с использованием типа friend или peer, указанием host=dynamic для динамических IP-адресов и других необходимых параметров.
После сохранения изменений выполните перезагрузку конфигурации командами pjsip reload или sip reload в зависимости от используемого драйвера.
Диалплан является центральным элементом Asterisk, управляющим логикой обработки и маршрутизации всех телефонных вызовов. Файл extensions.conf содержит детальные инструкции по обработке как входящих, так и исходящих соединений.
Откройте файл extensions.conf для внесения изменений:
sudo nano /etc/asterisk/extensions.conf
⚠️ Важно!
Всегда создавайте резервную копию конфигурационных файлов перед их модификацией:
sudo cp /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.backup
Структура диалплана:
В структуре диалплана каждый вызов обрабатывается в соответствии с определенным шаблоном. Основные компоненты:
В диалплане создаются контексты для различных групп пользователей. Например, контекст internal-users для внутренних абонентов, from-external для входящих звонков от провайдера, outbound-calls для исходящих вызовов. Используются шаблоны для определения номеров: _XXX для трехзначных, _2XX для номеров от 200 до 299.
После сохранения изменений выполните команду dialplan reload в CLI для применения новой конфигурации.
Для обеспечения возможности осуществления звонков на городские, мобильные или международные телефонные номера, а также для приема входящих вызовов из внешней сети, требуется настроить SIP-транк с провайдером услуг IP-телефонии.
SIP-транк (trunk) является виртуальным каналом, который соединяет ваш сервер Asterisk с оператором IP-телефонии или SIP-провайдером. Провайдер обычно предоставляет следующие данные: адрес сервера, логин, пароль и иногда префикс для набора.
Для настройки транка в PJSIP создаются секции endpoint, auth, aor и registration. В секции endpoint указывается контекст для входящих звонков, разрешенные кодеки и параметры аутентификации. Секция auth содержит учетные данные для авторизации на сервере провайдера. В aor указывается адрес SIP-сервера провайдера. Registration обеспечивает регистрацию на сервере провайдера.
После настройки проверьте статус регистрации командами pjsip show registrations или sip show registry в CLI. Статус должен отображаться как Registered.
На данном этапе требуется обновить диалплан Asterisk для корректной обработки входящих вызовов от провайдера и маршрутизации исходящих звонков на внешние номера.
Для входящих звонков создается контекст from-external, где обрабатываются вызовы от провайдера. Можно настроить IVR-меню с приветствием и выбором отдела, прямую маршрутизацию на конкретные внутренние номера или переадресацию в очередь.
Для исходящих звонков создается контекст outbound-calls с правилами набора для различных типов номеров: местные (7 цифр), междугородние (11 цифр), мобильные и международные. Используются шаблоны для определения формата номера и добавления необходимых префиксов.
Контекст outbound-calls включается в контекст internal-users директивой include, что позволяет внутренним абонентам совершать внешние вызовы.
Платформа Asterisk предоставляет обширный арсенал функций для автоматизации и усовершенствования процессов коммуникации в офисе.
IVR (Interactive Voice Response): Интерактивное голосовое меню (автосекретарь) — это автоматизированная система, позволяющая вызывающим абонентам взаимодействовать с АТС путем ввода тоновых сигналов DTMF. Используются приложения Background() для воспроизведения аудиофайлов, WaitExten() для ожидания ввода, Playback() для проигрывания звуков.
IVR-меню может быть многоуровневым с различными подменю для отделов. Настраиваются таймауты для ввода, обработка неверного ввода и возврат в главное меню.
Голосовая почта (Voicemail): Функция позволяет абонентам оставлять голосовые сообщения при недоступности вызываемого номера. Настройка производится в файле voicemail.conf, где указываются почтовые ящики с паролями и email-адресами для отправки уведомлений.
Очереди вызовов (Call Queues): Используются в колл-центрах для распределения входящих звонков между операторами. Конфигурация в файле queues.conf включает стратегию распределения (ringall, leastrecent, random), таймауты, музыку на удержании и список операторов.
Запись переговоров (Call Recording): Asterisk позволяет записывать телефонные разговоры с помощью приложений Monitor() или MixMonitor(). Записи сохраняются в директории /var/spool/asterisk/monitor/ в форматах wav, gsm или mp3.
Для организации конференций используется приложение ConfBridge. В файле confbridge.conf настраиваются параметры конференц-комнат: максимальное количество участников, музыка при ожидании, права администратора и другие опции.
Обеспечение конфиденциальности вашего сервера IP-телефонии критически важно для предотвращения несанкционированного доступа и мошеннических действий.
Дополнительные параметры безопасности включают отключение гостевого доступа (allowguest=no), включение alwaysauthreject=yes для предотвращения перебора паролей, ограничение методов SIP и настройку шифрования для защиты голосового трафика.
Для эффективного администрирования системы важно владеть командами CLI и использовать инструменты мониторинга.
Командная строка Asterisk (CLI) позволяет в реальном времени контролировать состояние системы. Для входа используйте команду: sudo asterisk -rvvv
Команда CLI | Описание |
---|---|
core show channels |
Отображает информацию о текущих активных каналах |
pjsip show endpoints |
Показывает список зарегистрированных PJSIP endpoints |
dialplan reload |
Перезагружает диалплан (extensions.conf) |
module show |
Список загруженных модулей |
queue show |
Информация об очередях вызовов |
voicemail show users |
Список почтовых ящиков |
core restart gracefully |
Плавный перезапуск после завершения звонков |
pjsip set logger on |
Включить логирование PJSIP для отладки |
AMI (Asterisk Manager Interface) позволяет управлять Asterisk удаленно. Настройка производится в файле manager.conf с указанием порта, адреса привязки и учетных записей с правами доступа.
Для мониторинга используются инструменты: Zabbix для системных метрик, Grafana с Prometheus для визуализации, CDR-Stats для анализа статистики звонков, FOP2 как панель оператора.
Проблема: Отсутствует регистрация SIP-абонентов
Решение: Проверьте правильность учетных данных, убедитесь что порт 5060 не заблокирован, проверьте настройки NAT, используйте pjsip set logger on для отладки
Проблема: Односторонняя передача голоса
Решение: Проверьте настройки NAT и внешний IP, откройте RTP порты 10000-20000, установите directmedia=no, проверьте совместимость кодеков
Проблема: Неправильная маршрутизация вызовов
Решение: Проверьте контексты в конфигурации, используйте dialplan show для анализа, проверьте приоритеты и синтаксис в extensions.conf
Для интеграции с CRM-системами используется ODBC или AGI-скрипты. Можно настроить автоматический поиск информации о клиенте при входящем звонке и отображение данных оператору.
Настройка отправки уведомлений о пропущенных звонках в Telegram или другие мессенджеры осуществляется через webhook или API с использованием скриптов в диалплане.
✅ Заключение
Asterisk является мощной и гибкой платформой для развертывания IP-телефонии в офисе любого размера. В этом руководстве мы рассмотрели процесс создания IP-АТС на базе Asterisk с нуля, охватив установку, настройку абонентов и транков, создание IVR и очередей и и мониторинг системы.
Представленная информация станет надежным фундаментом для запуска вашей системы IP-телефонии. Asterisk позволяет расширять функциональность по мере роста потребностей бизнеса. При возникновении сложных задач обращайтесь к документации или специалистам.
Успехов в освоении Asterisk и построении эффективной системы корпоративной связи!