Это старая версия документа!
Взгляд на 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 выведет нам звонки как Иванова так и Петровой, но нам будет видно, что до какого то времени номером пользовался один человек, а сейчас - другой.