Handler-скрипт — исполняемый файл, как правило, написанный на shell. С его помощью LANBilling может совершать действия во внешних системах. Например, останавливать интернет-сессию абонента, если учётная запись попала в блокировку.
В старых версиях LANBilling вместо handler-скриптов использовались vg-скрипты. Подробнее о том, как перенастроить работу с vg на handler, написано в этой инструкции.
Когда в LANBilling происходит событие, предусмотренное скриптом, система передаёт в handler-скрипт набор параметров:
Скрипт обрабатывает эти параметры и выполняет последовательность команд.
Чтобы работать с handler-скриптом, подготовьте файл и пропишите путь к нему в конфигурации системы. Можно настроить handler-скрипт для модулей:
Вы можете использовать сразу несколько скриптов: например, для ядра LANBilling и для RADIUS-агента. В этом случае убедитесь, что скрипты не будут конфликтовать.
Пример handler-скрипта: scripts_handler.py
Путь к скрипту для LBcore нужно указать в файле конфигурации /etc/billing.conf
. Пример:
# External script handler
handler = /usr/local/billing/scripts/handler.py
Для учётных записей телефонии и IP-телефонии с агентами LBphone, VoIP:
Для учётных записей интернета с агентами Netflow, RADIUS:
Для учётных записей услуг:
Событие | Тип УЗ, агент | Параметр | Значение |
---|---|---|---|
Когда в учётной записи телефонии начинает или заканчивает действовать номер телефона. Система проверяет это изменение раз в час |
УЗ телефонии, агенты LBphone и VoIP |
edit | |
Создание учётной записи | Все агенты | create | |
После создания учётной записи скрипт вызывается ещё раз | Все агенты | Зависит от статуса учётной записи:
|
|
Изменение учётной записи | Все агенты | edit | |
Смена тарифа | Все агенты | edit | |
Изменение полосы пропускания | УЗ интернета, агенты RADIUS и Netflow |
edit | |
Смена статуса | УЗ интернета, агенты RADIUS и Netflow |
|
|
Удаление учётной записи | Все агенты | delete |
Пример handler-скрипта: scripts_handler.example.LBucd.py
Путь к скрипту для LBucd нужно указать в файле конфигурации /etc/billing.conf.LBucd
. Пример:
# External script handler
handler = /usr/local/billing/scripts/handler.example.LBucd.sh
Событие | Параметр | Значение |
---|---|---|
Создание учётной записи | create | |
После создания скрипт вызывается ещё раз | Зависит от статуса учётной записи:
|
|
Изменение учётной записи | edit | |
Смена статуса |
|
|
Удаление учётной записи | delete |
Пример handler-скрипта: Setup_handler.example.LBarcd
Путь к скрипту для LBarcd нужно указать в файле конфигурации /etc/billing.conf.LBarcd
. Пример:
# External script handler
handler = /usr/local/billing/scripts/handler.example.LBarcd.sh
Calling-Station-Id
;Событие | Параметр | Значение |
---|---|---|
Создание учётной записи | create | |
После создания скрипт вызывается ещё раз | Зависит от статуса учётной записи:
|
|
Изменение учётной записи | edit | |
Смена статуса |
|
|
Удаление учётной записи | delete | |
Учётная запись перешла в любой статус, кроме «Отключена (10)», и у неё есть сессия с типом NAS: cisco_isg или redback | isg-stop | |
IP-адрес сервера доступа | ||
Логин, переданный во время аутентификации | ||
IP-адрес сессии | ||
Значение атрибута Calling-Station-Id |
||
Ограничение полосы пропускания |
||
Новый статус учётной записи | ||
Старый статус учётной записи | ||
Идентификатор сессии | ||
Логин учётной записи в системе | ||
У учётной записи изменилась полоса пропускания | stop | |
Причина разрыва. Значение выбирается на основе поля stop_req записи сессии в БД:
|
||
Идентификатор сессии | ||
Логин, переданный во время аутентификации | ||
IP-адрес сервера доступа | ||
IP-адрес сессии | ||
Значение атрибута Calling-Station-Id |
||
Новое ограничение полосы пропускания |
||
Старое ограничение полосы пропускания |
||
Имя пользователя, переданное во время аутентификации | ||
После того как для сессии получен start-пакет | start | |
Идентификатор сессии | ||
Логин, переданный во время аутентификации | ||
IP-адрес сервера доступа | ||
IP-адрес сессии | ||
Значение атрибута Calling-Station-Id |
||
Новое ограничение полосы пропускания |
||
Имя пользователя, переданное во время аутентификации | ||
Логин учётной записи в системе | ||
Сессия разорвана, причина разрыва установлена в stop_req | stop | |
Причина разрыва:
|
||
Идентификатор сессии | ||
Логин, переданный во время аутентификации | ||
IP-адрес сервера доступа | ||
IP-адрес сессии | ||
Значение атрибута Calling-Station-Id |
||
Ограничение полосы пропускания |
||
Логин учётной записи в системе | ||
Исчерпана квота (для оборудования Cisco ISG) | quota | |
Идентификатор сессии | ||
Логин, переданный во время аутентификации | ||
IP-адрес сервера доступа | ||
IP-адрес сессии | ||
Значение атрибута Calling-Station-Id |
||
Ограничение полосы пропускания |
||
Логин учётной записи в системе |
Пример handler-скрипта: scripts_handler.example.LBircd
Путь к скрипту нужно указать в файле конфигурации /etc/billing.conf.LBircd
. Пример:
# External script handler
handler = /usr/local/billing/scripts/handler.example.LBircd.sh
Calling-Station-Id
;Событие | Параметр | Значение |
---|---|---|
Создание учётной записи | create | |
После создания учётной записи скрипт вызывается ещё раз | Зависит от статуса учётной записи:
|
|
Изменение учётной записи | edit | |
Смена статуса |
|
|
Удаление учётной записи | delete | |
После того как для сессии получен старт-пакет | start | |
Идентификатор сессии | ||
Логин, переданный во время аутентификации | ||
IP-адрес сервера доступа | ||
Сессия разорвана, причина разрыва установлена в stop_req | stop | |
Причина разрыва:
|
||
Идентификатор сессии | ||
Логин, переданный во время аутентификации | ||
IP-адрес сервера доступа | ||
IP-адрес сессии | ||
Ограничение полосы пропускания |
||
Значение атрибута Calling-Station-Id |
Есть вопросы по документации? Пожалуйста, напишите их