Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Принцип работы

1. При старте все конфигурационные файлы объединяются в один, пользовательский конфиг переопределяет системный.

2. Пакеты обрабатываются по URL вида /plugin/name, где plugin - один из плагинов hard, name - произвольное название объекта плагина. Одновременно может использоваться несколько объектов одного плагина. Каждый объект плагин имеет собственные настройки (определенные в plugins.plugin.name). Активные объекты плагинов определяются в конфигурационном файле default.yml в ключе enabled_plugins. Например:

Активны объекты main и test плагина base и main плагина dhcp
enabled_plugins: [base/main, base/test, dhcp/main]

3. Перед обработкой запроса непосредственно объектом плагина, выполняется последовательность фильтров определенных в plugins.plugin.name.call_stack в прямом порядке. После завершения действий объекта плагина, выполняются те же фильтры из call_stack, но в обратном порядке. Таким образом, с помощью добавления пользовательского фильтра можно изменять данные как запроса, так и ответа приложения.

4. При обработке аккаунтинг-update пакетов, данные помещаются в кэш mongo db в коллекцию accounting_data. Загрузка данных аккаунтинга (cdr и трафика) в биллинг выполняется отдельным скриптом, который запускается коммандой ./init/hard.sh batch (в опции -f можно указать дирректорию с пользовательскими настройками). Данный скрипт должен периодически запускаться через cron.

  • No labels