Взгляд на miniPbx со стороны asterisk

Сервер телефонии состоит из сервера Asterisk и специальной программы mpbxd. Для чего нужен Asterisk, что он делает и как, мне кажется объяснять не надо. Служба mpbxd занимается создание конфигурации asterisk и обработкой статистики, также именно она изолирует разные домены друг от друга при подключении по протоколу AMI (важно для CRM систем).

Конфигурация asterisk, который работает в составе системы miniPbx имеет следующую структуру: в каталоге /etc/asterisk есть подкаталог include в нем лежат файлы:

и подкаталоги:

Все это подключается из главных файлов (extensions.conf, sip.conf, queues.conf) директивой #include.

Что это может дать администратору?

  1. Если вы действительно разбираетесь в asterisk, то не каких дополнительных знаний чтобы читать и понимать конфигурацию Вам не потребуется. Если Вы не понимаете как работает та или иная услуга, опция или возможность, то Вы всегда можете посмотреть конфигурацию и сделав тестовые звонки посмотреть отладочную информацию;
  2. Все ваши действия в интерфейсе администратора НЕ будут применены до тех пор, пока вы не нажмете кнопку «Применить»;
  3. Каждое «Применение» конфигурации создает резервную копию предыдущей. Это позволит Вам в экстренном случае (если что то пошло не так) вернутся на предыдущую, рабочую конфигурацию;

Обработка статистики в asterisk - это отдельная большая тема, но могу сказать точно, что на сложных сценариях прохождения вызова, таких как перевод (особенно сопровождаемый), переадресация и некоторых других, стандартный механизм (управляется из cdr.conf), работает не правильно. Официально разработчики предлагают решать эту проблему используя CEL - Channel Event Logging (я бы перевел как протокол событий канала). Учет статистики в miniPbx реализован именно с использованием CEL, что дает например возможность не только видеть вызов, но и проследить его путь (call tracking).

Еще одна отличительная особенность статистики miniPbx - для уменьшения размера базы статистики некоторые поля попадают в кэш. Кэш это набор значений вида код - значение. Поэтому вместо полной строки в БД будут сохранятся не сами значения, а их индексы. Использование кэша дает еще один любопытный и полезный эффект, допустим номер 202 был закреплен за пользователем Иванов. Через некоторое время, он уволился, а теперь на его месте теперь работает Петрова и естественно, использует номер 202. Статистика по номеру 202 выведет нам звонки как Иванова так и Петровой, но нам будет видно, что до какого то времени номером пользовался один человек, а сейчас - другой.

Далее предлагаю перейти к статье Модели работы с miniPbx или перейти к изучению базовых функций.