При возникновении определённых событий система может вызывать внешние программы их обработки.
Для вызова таких программ, нужно прописать в конфигурационном файле название файла обработки и путь к нему. При определении внешних обработчиков можно указывать дополнительные флаги.
При вызове внешних обработчиков, система передаёт им определенный параметры и ожидает ответа в формате:
флаг_успешного_выполнения:информационное_сообщение_для_системы
флаг_успешного_выполнения | 1 - Операция выполнена успешно 0 - Операция не выполнена |
---|---|
информационное_сообщение_для_системы | Набор пар НАЗВАНИЕ=ПАРАМЕТРЫ |
Пример ответа об успешном выполнении внешнего обработчика:
1:INFO=Операция выполнена
Пример программы . Возвращает код успешного выполнения:
#!/bin/sh # External operation example echo "1:INFO=Operation complite. Arguments: '$@'";
Система может обрабатывать следующие события:
$conf{external_useradd} | Создание пользователя. Вызывается после успешного заведения пользователя в системе Пример файла: abills/misc/external_adduser |
---|---|
$conf{external_userdel} | Удаление пользователя. Вызывается поле удаления пользователя из системы |
$conf{external_userchange} | Изменение учетных данных Параметры передаваемые команде DOMAIN_ID=0 ACTIVATE=0000-00-00 UID=1356 LOGIN=VarfolomeevaNG REDUCTION=1 CREDIT=0.00 ACTION_COMMENTS= REDUCTION_DATE=0000-00-00 CREDIT_DATE=0000-00-00 GID=0 EXPIRE=0000-00-00 DEPOSIT=208.930789 COMPANY_ID= |
$conf{external_payments} | Изменение баланса внесение суммы Параметры передаваемые команде DOMAIN_ID=0 ORDER= ACCOUNT_ID=417 UID=3434 DATE=2010-09-21 14:01:55 LOGIN=casper ER= CREDIT=180.00 INNER_DESCRIBE= CUSTOMER=- GID=0 OP_SID=nUGgWkGQYUHhZ5bB SUM=12 DEPOSIT=273.004166 COMPANY_ID=0 DESCRIBE= CREATE_INVOICE=1 METHOD=0 EXT_ID= QUICK=1 |
$conf{external_fees} | Изменение баланса (списание суммы) |
$conf{external_userdisable} | Блокировка пользователя |