====== Взгляд на 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), работает **не правильно**. Официально разработчики предлагают решать эту проблему используя [[https://wiki.asterisk.org/wiki/display/AST/CEL+Design+Goals|CEL]] - Channel Event Logging (я бы перевел как протокол событий канала). Учет статистики в miniPbx реализован именно с использованием CEL, что дает например возможность не только видеть вызов, но и проследить его путь (call tracking). Еще одна отличительная особенность статистики miniPbx - для уменьшения размера базы статистики некоторые поля попадают в кэш. Кэш это набор значений вида код - значение. Поэтому вместо полной строки в БД будут сохранятся не сами значения, а их индексы. Использование кэша дает еще один любопытный и полезный эффект, допустим номер 202 был закреплен за пользователем Иванов. Через некоторое время, он уволился, а теперь на его месте теперь работает Петрова и естественно, использует номер 202. Статистика по номеру 202 выведет нам звонки как Иванова так и Петровой, но нам будет видно, что до какого то времени номером пользовался один человек, а сейчас - другой. Далее предлагаю перейти к статье [[main_model_work_v1|Модели работы с miniPbx]] или перейти к изучению базовых функций.