Что потом происходит с пользователем, чей статус =5?

mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Что потом происходит с пользователем, чей статус =5?

Сообщение mnk »

Вобщем subj

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

висят запе потом складываются в базу

mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Сообщение mnk »

А с каким временем складываются.
С тем, когда им статус присвоен, или с временем записи в базу.

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

с начала сесии до момента последнего успешного апдейта

mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Сообщение mnk »

Вот бывают моменты, когда статус 5, а пользователь нормально работает.
Тогда что считать последним удачным аппдейтом:
Момент, когда поменялся статус
Или последняя запись в базу.

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

когда получил информацию о сесии

mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Сообщение mnk »

У меня нет alive и интервал для него стоит = 0
Информация обновляетя по billd -all
Получение информации о сессии в этом случае - это физически что ?

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

отдача даных через billd

mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Сообщение mnk »

1.Те, если у него статус 5, а отдача данных происходит, то все нормально. Это правильно?
2. Если отдачи нет, то через какое время его сбрасывает?

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

если у него статус 5 и происходит отдача ему присваивается статус ниже 5
2 - Alive

mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Сообщение mnk »

По идее так и должно быть, но не работает.
1. Пользователь может долго висеть со статусом 5 и он не понижается, пока он не выйдет. И при этом сессия записывается нормально.
2. После нескольких запусков billd -all даже если отдачи нет - пользователь продолжает висеть, правда со статусом 5.
И еще. Бывают пользователи, когда он реально есть, но у него статус 5 и не записываются данные полученные по snmp.
Последний раз редактировалось mnk Пт апр 20, 2007 1:26 pm, всего редактировалось 1 раз.

mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Сообщение mnk »

Поправил в файле billd строка ~202

Код: Выделить всё

 elsif (defined($external_stats->{in})) {
        $sessions->online_update({ USER_NAME => $line->[0],
                                ACCT_SESSION_ID => $acct_session_id,
                                STATUS          => 1,
                                %$external_stats
                                });
По первому пункту - заработало. Вернуло статус 1 при нормальном чтении.
Но повторюсь, что нормального чтения иногда не происходит, хотя пользователь реально есть(данные с тотал контрол полученные по snmp скриптом bash)

mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Сообщение mnk »

Мне кажется, что в случае, когда нет alive пакетов алгоритм должен быть следующий.
1. Когда при коннекте радиус возвращает номер порта, его надо сразу до записи в таблицу dv_calls, проверить -есть ли такой номер в таблице dv_calls и если он там есть, то сбосить соединение из таблицы с этим портом и записать его в базу.
2. При запуске скрипта billd -all , если при выполнении подпрограммы get_stats возвращается ошибка 1 раз, то этому соединению присваивается статус 5.
Если после 2го считывания ошибки нет, то статус меняется на 1, а если ошибка, то соединение сбрасывается (ZAP)
Если я не прав, то пусть меня поправит разработчик.
А если прав, то поможет реализовать данный алгоритм.

~AsmodeuS~
Site Admin
Сообщения: 5749
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Сообщение ~AsmodeuS~ »

да пока нет системы есл ипорт запят имеется срасывать соединение допишу эту возможность

mnk
Сообщения: 192
Зарегистрирован: Ср янв 31, 2007 7:21 am
Откуда: г. Вологда
Контактная информация:

Сообщение mnk »

Вы напишите в форуме, когда это добавите?
И по второму пункту -тоже пока не работает. У меня сегодня сессия одна висела 22 часа, хотя пользователя на линии не было и статус был 5 (может другой статус надо присваивать?). И хотя после сброса (ZAP), сессия записалась в базу нормально, проблема была в том, а что у пользователя за эти 22 часа баланс стал < 0 и постоянно в почту шли сообщения об этом.
Те желательно, чтобы после n (можно использовать ERROR_ALIVE_COUNT) ошибок биллинг сбрасывал это соединение.

Ответить