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

Compare with Current View Page History

« Previous Version 2 Next »

Источник данных типа ScriptCallDatasource позволяет вызывать внешние скрипты, реагируя на наступления некоторых событий в биллинге. Этот тип источника на самом деле не является "источником", то есть он не представляет никаких данных в биллинг, а служит только для "обратной реакции". Это связано с существующей реализацией внутреннего механизма обмена информацией между ядром биллинга, и источниками данных (двухсторонний обмен типа "данные" <--> "команды"). Данный источник одинаково хорошо работает под Windows и Linux/FreeBSD. Конечно, вы должны применять только платформо-зависимые скрипты (CMD, shell). Также возможен вызов любых исполняемых операционной системой файлов. Вызов осуществляется на том же сервере, который исполняет код биллинга (для вызова скрипта на удаленном сервере применяйте RemoteAgentDataSource).

Источних данных ScriptCallDatasource, будучи настроенным и запущенным, выполняет две функции (обе, или любую одну):

  • реагирование на наступление события изменения статуса Учетного Объекта - блокировка, разблокировка (биллингом), логин, логаут (службой авторизации)
  • периодическое сохранение текущего состояния всех Учетных Объектов 

В первом случае скрипту передаются (в виде аргументов командной строки) набор параметров, отвечающих указанным в настройках вариантов. При вызове каждый из агрументов параметра "параметры скрипта" заменяется на актуальное значение. Возможные варианты:

  • action - действие (PERMIT, DENY, LOGIN, LOGOUT), переданное биллингом
  • ip - IP-адрес учетного объекта
  • mask - сетевая маска учетного объекта
  • au_id - идентификатор учетного объекта
  • ds_id - идентификатор данного источника данных
  • timestamp - метка времени, момент наступления события (unit time в секундах с 1970 года)

Можно также опционально указать имя лог-файла, в который при каждом вызове скрипта будут записываться передаваемые ему параметры. Внимание: результаты работы (успешность вызова, выводимый им текст) никуда не сохраняются.

Внимание! Данный скрипт, обрабатывающий результаты передачи ему команд, вы должны написать сами (пользуясь примерами из дистрибутива)

 

  • No labels