http://docs.bitel.ru/pages/viewpage.act ... Id=1606506Цитата:
Также как у сервиса, у сессии может быть состояние: подключена или отключена. Состояние "подключена" означает, что доступ открыт, клиент может нормально работать, "отключена" - используется для схем без физического отключения сессий, например, когда вместо PoD-пакета при нехватке денег на балансе отправляется CoA с запретом всех направлений, кроме сервера статистики; или при инициации сессии по трафику, когда доступом управляет коммутатор: в состоянии "отключена" тарификация сессии не производится.
По умолчанию состояние сессии всегда "подключена". Переключить состояние сессии можно в обработчике процессора протокола при приходе update-пакета RADIUS (или же start/stop пакета сервисной сессии), в зависимости от содержимого этого пакета: request.setOption( InetRadiusProcessor.DEVICE_STATE, InetServ.STATE_ENABLE ) или request.setOption( InetRadiusProcessor.DEVICE_STATE, InetServ.STATE_DISABLE ). А также в обработчике активации сервисов, если по RADIUS-пакетам не ясно в каком состоянии сессия: для этого в connectionModify( e ) при обработке переключения доступа нужно установить e.setConnectionStateModified( true ).
Для сессий в состоянии "отключена" можно назначить другие значения таймаутов после последнего RADIUS-пакета: connection.disable.suspend.timeout (по умолчанию равен значению connection.suspend.timeout) и connection.disable.close.timeout (по умолчанию равен значению connection.close.timeout), т.к. на отдельных маршрутизаторах для сессий в таком состоянии можно увеличить интервал посылки update-пакетов.
При работе с RADIUS, если по Start-пакету нельзя определить в каком состоянии началась сессия или ни в Start-пакете, ни в Update от NASа не приходит IP-адрес, в конфигурации устройства - NAS'а, или в конфигурации его типа устройства, или в одном из предков следует указать параметр connection.start.fromAccess=1. В этом режиме при отправке Access-сервером Access-Accept в ответ на Access-Request в базу будет добавлена запись по сессии в статусе ожидание (waiting), которую считает Accounting-сервер при получении Start-пакета. По умолчанию этот режим отключен.
CoAServiceActivator e.setConnectionStateModified( true ) выполняет, если указан флаг sa.radius.connection.stateModify=1.
Для ISG/SE обычно состояние определяется по активности ISG/SE-сервиса (тоже есть параметр конфига для ISG/SEServiceActivator).