Либо, как вариант, не убивать сессии, а выставлять им скорость 1 бит/с при блокировке (микротик это умеет) и перенаправлять трафик на заглушку через Filter-Id. А при пополнении счета ставить скорость тарифа и снимать перенаправление
Вот зачем это "нюню"? Я вам четко сказал, что "Session-Timeout" работает, микротик четко и без глюков отрубает сессию. Хотите PoD - не вопрос, механизм тот же. Вопрос все же остается открытым, куда правильно воткнуть для киляния сессий абонов при блокировке/разблокировке
Насколько я знаю у микротиков эта шняга не работает. На микротике нужно посылать Disconnect-Message.
Работает. Проверено. И изменение скоростей на лету тоже работает (уже сделал). А вот влепить в нужное место принудительное разъединение мозгов не хватает
Есть желание отсылать микротикам Session-Timeout при изменении доступа/скорости... Вопрос, в каком месте логичнее расположить код?
Код:
my $cmd = join('', '/bin/echo "User-Name=', $user_name, ',Session-Timeout=1" | radclient -q ', $user_nas, ':3799 coa password'); my $pid = fork(); if ($pid == 0) { exec($cmd) or die "could not exec my_program: $!"; } elsif (!defined($pid)) { die "could not fork"; }
По ТЗ мог какие-то моменты упустить. Например, что код выдается только одному абоненту один раз. То есть удаляется из файла и следующему абоненту выдается следующий. Ну и можно использованные коды скидывать в другой файл
Есть необходимость в модуле выдачи промо-кодов из txt/csv файлов. Абонент заходит в личный кабинет, жмет кнопочку, получает код. Код фиксируется за абонентом в базе - при повторном нажатии кнопочки код не меняется.