{
//Задаем имя файла вывода данных
Host.OutputFileName = Host.OutputFileName + ' '+ 'SNMP2';
Host.Echo('OldState - ' + Sender.OldState + StateAsString(Sender.OldState));
Host.Echo('NewState - ' + Sender.NewState + StateAsString(Sender.NewState));
var SNMP = Sender.CreateSNMPAccessServerObject(true);
if (SNMP == null) // Нет настроек
{
Host.Echo('Не заданы настройки SNMP для ' + Sender.DisplayName);
return;
}
var Port = Sender.AccessServerPort; //Номер порта устройства доступа
SNMP.SheduledTaskOnTimeout(15, 'TestSwitch_1');
SNMP.ExceptOnTimeout = false;
var PortState = SNMP.ifAdminStatus(Port);
Host.Echo('Состояние порта ' + Port +':');
Host.Echo(' ifAdminStatus - ' + PortState);
Host.Echo(' ifOperStatus - ' + SNMP.ifOperStatus(Port));
var NewPortState = 1; // work
if (Sender.NewState < 0 && Sender.NewState != -brNotAuth)
NewPortState = 2; // block
if (NewPortState != PortState)
{
SNMP.SetifAdminStatus(Port, NewPortState);
Host.Echo('Изменено состояние порта на ' + NewPortState);
}
}
можно ли используя этот скрипт следующее:
Абонент переходит в состояние заблокирован (отрицательный баланс), скрипт отключает порт и ставит пользователя в паузу.
Потом пополняем счет пользователя, скрипт включает порт и снимает паузу