Отключение сессий

 

Система может отключать RADIUS-сессии с помощью команды SOA. Данная функция выполняется с помощью внешнего скрипта, который ожидает сигнал, который посылается в случае изменения балансового счета или раз в минуту. Если баланс сессии меньше разрешенного, или превышен разрешенный объем трафика по тарифному плану, то скрипт выполняет команду SOA для сессии, которая удовлетворяет следующим условиям:

 

1. отрицательный баланс (берем баланс и вычитаем тариф, который определился в таблице сессий * на объем);

2. превышение объема трафика (max_bytes_in < in_bytes);

3. превышение разрешенного времени сессии (max_seconds < duration);

4. переключение тарифного плана и изменяется скорость подключения (по статистике - когда переключается тарифный план и изменяется скорость подключения);

5. изменение состояния ресурса (любое которое не Доступен).

 

Исполняемая команда на сервере указывается в параметрах источника Команда для отключения.

 

Пример команды для отключения:

echo "Acct-Session-Id=\"$Acct-Session-ID\", User-Name=\"$User-Name\", NAS-IP-Address=\"$NAS-IP-ADDRESS\"" | /usr/local/freeradius/bin/radclient -r 4 -x $NAS-IP-ADDRESS:1700 disconnect $KEY

 

Используемые переменные:

$Acct-Session-ID   - текущий номер радиус сессии

$User-Name          - логин пользователя

$NAS-IP-ADDRESS - IP маршрутизатора

 

Перечисленные выше переменные передаются радиус серверу в start записи.

 

$KEY - ключ, для устройства, задается в параметрах источника "Ключ источника", необходим для исполнения команды.

 

Возможно использовать другую команду на отключение.