Взгляд на miniPbx со стороны asterisk
Сервер телефонии состоит из сервера Asterisk и специальной программы mpbxd. Для чего нужен Asterisk, что он делает и как, мне кажется объяснять не надо. Служба mpbxd занимается создание конфигурации asterisk и обработкой статистики, также именно она изолирует разные домены друг от друга при подключении по протоколу AMI (важно для CRM систем).
Конфигурация asterisk, который работает в составе системы miniPbx имеет следующую структуру: в каталоге /etc/asterisk есть подкаталог include в нем лежат файлы:
- calendars.conf - настройка календарей
- extensions.conf - настройка для обработки и распределения в соответствующий домен входящих вызовов
- gateways.conf - описание и настройки внешних шлюзов поставщиков услуг (провайдеров)
- musiconhold.conf - настройка музыки для удержания
- record_calls.conf - настройка записи входящих для внешних номеров
- registrations.conf - регистрация внешних номеров для поставщиков услуг (провайдеров) которые хотят работать с регистрацией;
и подкаталоги:
- extensions - план нумерации для каждого домена
- musiconhold - настройка музыки для удержания для каждого домена
- numbers - настройка абонентских терминалов для каждого домена
- queues - настройки очередей для каждого домена
Все это подключается из главных файлов (extensions.conf, sip.conf, queues.conf) директивой #include.
Что это может дать администратору?
- Если вы действительно разбираетесь в asterisk, то не каких дополнительных знаний чтобы читать и понимать конфигурацию Вам не потребуется. Если Вы не понимаете как работает та или иная услуга, опция или возможность, то Вы всегда можете посмотреть конфигурацию и сделав тестовые звонки посмотреть отладочную информацию;
- Все ваши действия в интерфейсе администратора НЕ будут применены до тех пор, пока вы не нажмете кнопку «Применить»;
- Каждое «Применение» конфигурации создает резервную копию предыдущей. Это позволит Вам в экстренном случае (если что то пошло не так) вернутся на предыдущую, рабочую конфигурацию;
Обработка статистики в asterisk - это отдельная большая тема, но могу сказать точно, что на сложных сценариях прохождения вызова, таких как перевод (особенно сопровождаемый), переадресация и некоторых других, стандартный механизм (управляется из cdr.conf), работает не правильно. Официально разработчики предлагают решать эту проблему используя CEL - Channel Event Logging (я бы перевел как протокол событий канала). Учет статистики в miniPbx реализован именно с использованием CEL, что дает например возможность не только видеть вызов, но и проследить его путь (call tracking).
Еще одна отличительная особенность статистики miniPbx - для уменьшения размера базы статистики некоторые поля попадают в кэш. Кэш это набор значений вида код - значение. Поэтому вместо полной строки в БД будут сохранятся не сами значения, а их индексы. Использование кэша дает еще один любопытный и полезный эффект, допустим номер 202 был закреплен за пользователем Иванов. Через некоторое время, он уволился, а теперь на его месте теперь работает Петрова и естественно, использует номер 202. Статистика по номеру 202 выведет нам звонки как Иванова так и Петровой, но нам будет видно, что до какого то времени номером пользовался один человек, а сейчас - другой.
Далее предлагаю перейти к статье Модели работы с miniPbx или перейти к изучению базовых функций.