FreePBX - популярная система IP-телефонии с открытым исходным кодом. Она позволяет гибко настраивать функционал АТС и удобно управлять ею через веб-интерфейс.
Обзор возможностей FreePBX
FreePBX основана на платформе Asterisk и предоставляет графический интерфейс для настройки и администрирования АТС. Система появилась в 2006 году и с тех пор постоянно развивается сообществом разработчиков.
Asterisk – это мощное и бесплатное решение для построения собственного сервера IP-телефонии, по сути является программной Мини-IP-АТС. В этой статье разберемся как развернуть такой сервер и поговорим о его настройках.
Для развертывания Asterisk мы с вами будем использовать готовый дистрибутив FreePBX Distro на базе операционной системы Sangoma Linux 7, которая в свою очередь сделана на базе CentOS. Система хорошо встает как на “железные” сервера, так и на виртуальные машины, системные требования не прихотливые – процессора на 2 ядра и 2 гигабайта оперативной памяти хватит для небольшого офиса на 30 абонентов. Если планируется большее количество абонентов, лучше увеличить количество оперативной памяти до 4 гигабайт и использовать процессор уровня Intel Core i5-6600T (или аналогичный).
Основные преимущества FreePBX:
- Гибкая маршрутизация входящих и исходящих вызовов
- Удобный веб-интерфейс для настройки
- Широкий выбор готовых модулей с дополнительным функционалом
- Поддержка оборудования от разных производителей
- Возможность интеграции со сторонним ПО
- Регулярные обновления с исправлениями и новыми функциями
FreePBX поддерживает широкий спектр SIP-устройств, аналоговых телефонов, GSM-шлюзов и программных телефонов. Также доступна интеграция с такими сервисами как Google Workspace, Office 365, Zoho, Salesforce.
Основные модули FreePBX:
- Endpoint Manager - настройка IP-телефонов
- Queues - очереди вызовов и распределение между агентами
- Ring Groups - группы одновременного вызова
- IVR - интерактивное голосовое меню
- Voicemail - голосовая почта
- Reporting - статистика и отчетность
Требования к системе и этапы установки
Для запуска FreePBX нужен выделенный сервер со следующими минимальными характеристиками:
- CPU - 1 ядро, 2 ГГц
- RAM - 1 Гб
- HDD - 8 Гб
Рекомендуется использовать 64-разрядную ОС CentOS или Debian. Также подойдут Ubuntu Server, RHEL, CloudLinux.
Основные этапы установки:
- Подготовка ОС - настройка сети, обновление ПО, установка необходимых пакетов
- Установка Asterisk 13/16 и зависимостей
- Настройка брандмауэра UFW - открытие портов RTP, SIP, HTTPS
- Загрузка и распаковка дистрибутива FreePBX
- Запуск скриптов установки FreePBX
После этого будет доступен веб-интерфейс по адресу https://IP-сервера или домену.
Первые шаги после установки
Сразу после установки нужно выполнить следующие настройки в модуле System Admin:
- Создать учетную запись администратора для доступа к FreePBX
- Активировать систему и получить ключ активации
- Присвоить серверу статический IP-адрес
- Настроить DNS сервера
- Настроить почтовый сервер для отправки уведомлений
- Установить часовой пояс
Также нужно проверить настройки брандмауэра и межсетевого экрана, чтобы разрешить необходимый SIP/RTP трафик.
Другие полезные первоначальные настройки:
- Настроить оповещения о сбоях системы
- Включить систему определения вторжений
- Создать голосовые подсказки и системные оповещения
Создание внутренних номеров
Для создания внутренних номеров (extensions) используется одноименный модуль FreePBX. Это можно сделать двумя способами:
Быстрое создание номеров
В модуле Extensions доступен "мастер" быстрого создания новых номеров. Нужно указать тип номера, номер, отображаемое имя и некоторые другие параметры.
Поддерживаются следующие типы внутренних номеров:
- Chan SIP - для IP-телефонов
- Chan IAX2 - устаревший протокол VoIP
- Chan PJSIP - для WebRTC и программных клиентов
- Chan ISDN - для подключения к АТС по ISDN
Расширенные настройки
Также доступно ручное создание номеров с более подробной настройкой параметров: аутентификация, codecs, DTMF режимы, forwarding, calling ID и т.д. Это позволяет гибко настраивать особенности каждого внутреннего номера.
Номера также можно импортировать из CSV файла. Это удобно при переносе с другой АТС или при большом количестве номеров.
После создания номеров, их нужно будет сопоставить с физическими IP-телефонами в модуле Endpoint Manager.
Также важно правильно настроить входящие и исходящие маршруты для обеспечения корректной маршрутизации.
Настройка IP-телефонов
Для настройки IP-телефонов в FreePBX используется модуль Endpoint Manager. Он позволяет централизованно управлять большим количеством устройств.
Глобальные настройки
Сначала нужно указать IP-адрес сервера FreePBX и порт провижионинга, на который телефоны будут обращаться за настройками.
Шаблоны телефонов
Далее создаются шаблоны для определенных моделей телефонов, где настраиваются кнопки, линии, отображаемое имя, часовой пояс и другие параметры.
Сопоставление с внутренними номерами
На последнем этапе телефоны сопоставляются с внутренними номерами на основе MAC-адреса. Также важно правильно указать шаблон и модель телефона.
После применения новых настроек телефон сам обратится к FreePBX за конфигурацией и перезагрузится.
Настройка входящих вызовов
Чтобы настроить маршрутизацию входящих вызовов, используется модуль Inbound Routes.
Маршрутизация на внутренние номера
Самый распространенный вариант - это маршрутизация входящих вызовов на определенный внутренний номер. Для этого нужно создать новый входящий маршрут и указать номер DID или CID.
Использование групп вызова
Также входящие вызовы можно направлять на группу вызова (ringgroup
). Это позволит поочередно или одновременно оповещать группу абонентов о новых вызовах.
Маршрутизация в очереди
Если нужно организовать очередь с приоритезацией и автоматическим распределением вызовов на операторов, входящие звонки можно отправлять в специальную очередь (queue
).
Настройка временных условий
Во входящих маршрутах можно настраивать временные условия, чтобы вызовы поступали на разные номера в зависимости от дня недели или времени суток.
Это позволяет гибко маршрутизировать звонки в зависимости от бизнес-процессов компании.
Настройка исходящих вызовов
Для настройки маршрутизации исходящих вызовов используется модуль Outbound Routes. Без корректной настройки исходящих маршрутов абоненты АТС не смогут совершать звонки за ее пределы.
Экстренные вызовы
Первым в списке исходящих маршрутов должен быть маршрут для экстренных служб - полиция, скорая, пожарные и т.д. Он гарантирует корректную маршрутизацию вызовов даже при недоступности основных транков.
Местные и бесплатные вызовы
Для местных и бесплатных вызовов обычно используется один общий маршрут. Можно воспользоваться мастером для автоматической генерации шаблонов набора на основе телефонного кода города и оператора связи.
Международные вызовы
Для международных звонков имеет смысл создать отдельный маршрут и ограничить к нему доступ с помощью пароля. Это позволит контролировать расходы на такие звонки.
Внутренние вызовы
Вызовы между внутренними абонентами маршрутизируются внутри АТС без использования внешних линий. Но если нужно ограничить сотрудникам возможность звонить определенным внутренним номерам, можно создать выделенный маршрут для внутренних вызовов.
Дополнительные возможности
Группы вызова
Группы вызова (ring groups) позволяют настроить одновременный или последовательный вызов нескольких абонентов. Это удобно использовать для быстрого оповещения ответственных сотрудников о важных входящих звонках.
Очереди
Модуль очередей (queues) implements complex call distribution and prioritization logic. Calls can be routed to queues, which then distribute them to agents according to configured rules. This allows flexible routing of large call volumes.
Интеграция со сторонними сервисами
FreePBX можно интегрировать с различными сторонними сервисами для расширения функциональности.
SIPStation
SIPStation - это облачный провайдер SIP-транкинга. Интеграция позволяет легко подключаться к их сервису и управлять настройками через GUI FreePBX.
Google Workspace
Позволяет использовать Google Contacts для корпоративных справочников в FreePBX. Также реализует интеграцию голосовой почты и записи разговоров с Google Drive.
Zoho CRM
Интеграция с Zoho CRM позволяет отображать данные о клиенте на экране IP-телефона в момент входящего или исходящего звонка. Это повышает эффективность работы менеджеров.
Резервное копирование и восстановление
Регулярное резервное копирование критически важно для защиты от сбоев и восстановления после них. В FreePBX есть встроенный функционал для бэкапов.
Ручное резервное копирование
Администратор может в любой момент создать полную резервную копию всей конфигурации и настроек из интерфейса FreePBX.
Автоматическое резервное копирование
Можно настроить расписание для периодического автоматического создания бэкапов без участия человека. Резервные копии будут сохраняться локально и/или удаленно.
Восстановление из резервной копии
При возникновении проблем конфигурацию FreePBX можно восстановить из ранее созданного бэкапа за считанные минуты. Это позволяет минимизировать время простоя системы.
Обновление до новой версии
Разработчики FreePBX регулярно выпускают обновления с исправлениями уязвимостей и новыми функциями.
Подготовка к обновлению
Перед обновлением важно выполнить бэкап текущей конфигурации, на случай если что-то пойдет не так. Также стоит изучить заметки к релизам.
Обновление через веб-интерфейс
Самый простой способ обновления - это использовать встроенный в GUI мастер обновлений. Весь процесс занимает несколько минут.
Обновление через консоль
Более гибкий, но сложный вариант - обновление FreePBX из командной строки. Это позволяет использовать скрипты и более точно контролировать процесс.
Диагностика и устранение неполадок
FreePBX предоставляет различные средства для диагностики проблем и отслеживания работы системы.
Просмотр логов
Веб-интерфейс позволяет просматривать логи Asterisk и других компонентов в режиме реального времени. Это помогает выявлять ошибки и предупреждения.
Определение кодов ошибок
Большинство проблем сопровождается конкретными кодами ошибок или предупреждений. Их можно посмотреть в логах и затем найти описание в базе знаний или документации.
Диагностика проблем с вызовами
Существуют специальные средства для захвата и анализа сигнального трафика VoIP. Они помогают диагностировать различные проблемы с соединением, качеством звука, односторонним аудио.
Поиск решений в базе знаний
FreePBX имеет обширную базу знаний с описанием типовых проблем и способов их решения. Часто быстрее найти готовое решение чем разбираться самому.