Не считается траффик в последних версиях

Turbid
Сообщения: 91
Зарегистрирован: Пт мар 21, 2008 10:54 am

Сообщение Turbid »

ran писал(а):racct.pl и иже с ним кури...
Посмотрел diff с той старой версией, ничего не приметил, пару функций добаилось только.
freebsd 6.2, mpd 4.4, freeradius 1.1.7, abills 0.42 - Dv (pptp) + Ipn (ipcad) ~ с 2008 года
freebsd 7.2, mpd 5.4, freeradius 2.1.6, abills 0.5.1 - Dv (ppoe)+ mpd_filters ~ в процессе

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Re: Не считается траффик в последних версиях

Сообщение ran »

2Turbid: в / Система/ Сервер доступа/External Accounting: убери и будет тебе щастье... я тоже на это напоролся после обновления чуть мозги не поплавились пока понял :D . Оно теперь считает что ежли аккаунтинг екстёрнал то нефиг там дв и делать и ничё он по алайвам не делает поэтому в мониторинге и нули и сессий двшных нету... Вощем правильно канешна, просто раньше (скажем в какой-то февральской версии которая до сегодняшнего ночера стояла у меня) оно так не считало и понять почему перестало действительно сложно
Любой тупик - это тщательно замаскированный выход.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Re: Не считается траффик в последних версиях

Сообщение ran »

упс... тока ежли убрать екстёрнал аккаунтинг то сумма за траф снимается дважды: модулем дв и модулем ипн!

AsmodeuS, а вот это уже баг! какое отношение аккаунтинг имеет к биллингу? :shock:

ясно ж сказано: $conf{IPN_DEPOSIT_OPERATION}=1

тоись аккаунтинг должен вести дв по алайвам, отображать статистику по сессиям дв с нулевой ценой, а деньги имеет право снимать только ипн!

не... вертаю всё взад... такой хоккей нам не нужен :D
Любой тупик - это тщательно замаскированный выход.

Turbid
Сообщения: 91
Зарегистрирован: Пт мар 21, 2008 10:54 am

Re: Не считается траффик в последних версиях

Сообщение Turbid »

ran, спасибо за подтверждение бага, а то я уже думал что один такой счастливый. Ждем комментариев автора.
freebsd 6.2, mpd 4.4, freeradius 1.1.7, abills 0.42 - Dv (pptp) + Ipn (ipcad) ~ с 2008 года
freebsd 7.2, mpd 5.4, freeradius 2.1.6, abills 0.5.1 - Dv (ppoe)+ mpd_filters ~ в процессе

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Re: Не считается траффик в последних версиях

Сообщение ran »

Turbid писал(а):ran, спасибо за подтверждение бага, а то я уже думал что один такой счастливый. Ждем комментариев автора.
баг не в том что нули в мониторинге если в насе стоит екстёрнал аккаунтинг (с этим я согласен - раз екстёрнал значит дв и не аккаунтит) а в том, что если его убрать то дв начинает снимать деньги невзирая на $conf{IPN_DEPOSIT_OPERATION}=1!
Любой тупик - это тщательно замаскированный выход.

Turbid
Сообщения: 91
Зарегистрирован: Пт мар 21, 2008 10:54 am

Re: Не считается траффик в последних версиях

Сообщение Turbid »

ran писал(а):баг не в том что нули в мониторинге если в насе стоит екстёрнал аккаунтинг (с этим я согласен - раз екстёрнал значит дв и не аккаунтит) а в том, что если его убрать то дв начинает снимать деньги невзирая на $conf{IPN_DEPOSIT_OPERATION}=1!
http://abills.net.ua/wiki/doku.php?id=a ... nual:dv_ip
External Accounting: Указывает что данные для аккаунтинга берутся не с RADIUS сервера, а с внешнего источника. Обязательно включаем опцию.
freebsd 6.2, mpd 4.4, freeradius 1.1.7, abills 0.42 - Dv (pptp) + Ipn (ipcad) ~ с 2008 года
freebsd 7.2, mpd 5.4, freeradius 2.1.6, abills 0.5.1 - Dv (ppoe)+ mpd_filters ~ в процессе

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Re: Не считается траффик в последних версиях

Сообщение ran »

а ну да это у меня уже склероз... я думаю дело во фрагменте кода из Acct.pm было:

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

#Alive status 3
elsif($acct_status_type eq 3) {
  $self->{SUM}=0 if (! $self->{SUM}); 
 
  if ($NAS->{NAS_EXT_ACCT}) {
    $self->query($db, "UPDATE dv_calls SET
      status='$acct_status_type',
      nas_port_id='$RAD->{NAS_PORT}',
      acct_session_time=UNIX_TIMESTAMP()-UNIX_TIMESTAMP(started),
      acct_input_octets='$RAD->{INBYTE}',
      acct_output_octets='$RAD->{OUTBYTE}',
      ex_input_octets='$RAD->{INBYTE2}',
      ex_output_octets='$RAD->{OUTBYTE2}',
      framed_ip_address=INET_ATON('$RAD->{FRAMED_IP_ADDRESS}'),
      lupdated=UNIX_TIMESTAMP(),
      sum=sum+$self->{SUM},
      acct_input_gigawords='$RAD->{ACCT_INPUT_GIGAWORDS}',
      acct_output_gigawords='$RAD->{ACCT_OUTPUT_GIGAWORDS}'
    WHERE
      acct_session_id=\"$RAD->{ACCT_SESSION_ID}\" and 
      user_name=\"$RAD->{USER_NAME}\" and
      nas_id='$NAS->{NAS_ID}';", 'do');

  	return $self;
   }
стало:

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

#Alive status 3
elsif($acct_status_type eq 3) {
  $self->{SUM}=0 if (! $self->{SUM}); 
  if ($NAS->{NAS_EXT_ACCT}) {
    my $ipn_fields='';
  	if ($NAS->{IPN_COLLECTOR}) {
  	  $ipn_fields="sum=sum+$self->{SUM},
      acct_input_octets='$RAD->{INBYTE}',
      acct_output_octets='$RAD->{OUTBYTE}',
      ex_input_octets='$RAD->{INBYTE2}',
      ex_output_octets='$RAD->{OUTBYTE2}',
      acct_input_gigawords='$RAD->{ACCT_INPUT_GIGAWORDS}',
      acct_output_gigawords='$RAD->{ACCT_OUTPUT_GIGAWORDS}',";
     }

    $self->query($db, "UPDATE dv_calls SET
      $ipn_fields
      status='$acct_status_type',
      nas_port_id='$RAD->{NAS_PORT}',
      acct_session_time=UNIX_TIMESTAMP()-UNIX_TIMESTAMP(started),
      framed_ip_address=INET_ATON('$RAD->{FRAMED_IP_ADDRESS}'),
      lupdated=UNIX_TIMESTAMP()
    WHERE
      acct_session_id=\"$RAD->{ACCT_SESSION_ID}\" and 
      user_name=\"$RAD->{USER_NAME}\" and
      nas_id='$NAS->{NAS_ID}';", 'do');



  	return $self;
   }
тоись по сути добавилась проверочка и заполнение как раз нужных полей

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

    my $ipn_fields='';
  	if ($NAS->{IPN_COLLECTOR}) {
  	  $ipn_fields="sum=sum+$self->{SUM},
      acct_input_octets='$RAD->{INBYTE}',
      acct_output_octets='$RAD->{OUTBYTE}',
      ex_input_octets='$RAD->{INBYTE2}',
      ex_output_octets='$RAD->{OUTBYTE2}',
      acct_input_gigawords='$RAD->{ACCT_INPUT_GIGAWORDS}',
      acct_output_gigawords='$RAD->{ACCT_OUTPUT_GIGAWORDS}',";
     }
из-за которой они и не заполняются... остаётся выяснить что такое $NAS->{IPN_COLLECTOR} ;)

думаю что если эту проверочку закомментировать то всё чудненько будет работать ;)
Любой тупик - это тщательно замаскированный выход.

knop80
Сообщения: 8
Зарегистрирован: Вс фев 15, 2009 6:52 pm

Re: Не считается траффик в последних версиях

Сообщение knop80 »

my $ipn_fields='';
if ($NAS->{IPN_COLLECTOR}) {
$ipn_fields="sum=sum+$self->{SUM},
acct_input_octets='$RAD->{INBYTE}',
acct_output_octets='$RAD->{OUTBYTE}',
ex_input_octets='$RAD->{INBYTE2}',
ex_output_octets='$RAD->{OUTBYTE2}',
acct_input_gigawords='$RAD->{ACCT_INPUT_GIGAWORDS}',
acct_output_gigawords='$RAD->{ACCT_OUTPUT_GIGAWORDS}',";
}
Так кто нибудь попробовал убрать данный фрагмент кода и если да то с какими результатами?

Ck-NoSFeRaTU
Сообщения: 54
Зарегистрирован: Ср фев 20, 2008 12:17 pm
Контактная информация:

Re: Не считается траффик в последних версиях

Сообщение Ck-NoSFeRaTU »

knop80 писал(а):
my $ipn_fields='';
if ($NAS->{IPN_COLLECTOR}) {
$ipn_fields="sum=sum+$self->{SUM},
acct_input_octets='$RAD->{INBYTE}',
acct_output_octets='$RAD->{OUTBYTE}',
ex_input_octets='$RAD->{INBYTE2}',
ex_output_octets='$RAD->{OUTBYTE2}',
acct_input_gigawords='$RAD->{ACCT_INPUT_GIGAWORDS}',
acct_output_gigawords='$RAD->{ACCT_OUTPUT_GIGAWORDS}',";
}
Я просто закомментил "if ($NAS->{IPN_COLLECTOR}) {", вроде работает. Тоже решил обновиться, аж с версии 1,5годовой давности, выполняя апдейты базы из CHANGES, столкнулся с тем, что что-то там пропущено и пришлось подгонять базу под abills.sql, нехорошо это. Ещё пришлось закомментить в /Ipn/webinterface строчку print @{ $Ipn_Collector->{ZONES_IPS}{1} }, иначе в юзерском кабинете по "тарифам трафика" была куча html-листинга, графики пока не победил: вначале вопил, что не может скрипт AC_RunActiveContent.js, загрузить, глянул - абиллс почему-то считает что биллинг обязательно должен лежать в корне сайта, поправил в HTML.pm строчку $PATH, теперь флешка грузится, charts.xml забирается, но виснет при загрузке с такими симптомами:
Изображение
Да и вообще страница с IPN статистикой и до этого грузилась не быстро, теперь же вообще ахтунг.

lasik
Сообщения: 983
Зарегистрирован: Чт янв 10, 2008 5:20 pm
Откуда: Россия, Москва

Re: Не считается траффик в последних версиях

Сообщение lasik »

обнови абиллс, это было решено только недавно

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

Re: Не считается траффик в последних версиях

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

просьба указывать что пропущено в CHANGELOG

в поточном снепшоте версии 0.5 уже все вышесказанное поправлено

Ck-NoSFeRaTU
Сообщения: 54
Зарегистрирован: Ср фев 20, 2008 12:17 pm
Контактная информация:

Re: Не считается траффик в последних версиях

Сообщение Ck-NoSFeRaTU »

~AsmodeuS~ писал(а):просьба указывать что пропущено в CHANGELOG
Приложил к сообщению архив, там три sql файла со структурой: old - старой базы от биллинга примерно от 08.04.2008, с которой мигрировал, medium.sql - результат наложения изменения из changes, current - текущая база, в которой даже после правки руками ещё остались некоторые несооветствия, типа изменения типов некоторых полей, типа таблицы voip_trunks.
На всякий непрошедшие из changes строчки:
Duplicate column name 'credit_date' - ALTER TABLE users ADD COLUMN `credit_date` date default '0000-00-00';
Table '1.cards_dillers' doesn't exist - ALTER TABLE cards_dillers ADD `uid` int(11) unsigned NOT NULL default '0';
Table '1.cards_dillers' doesn't exist - ALTER TABLE cards_dillers DROP key name;
Table '1.iptv_ti_channels' doesn't exist - ALTER TABLE iptv_ti_channels ADD COLUMN `mandatory` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0';
~AsmodeuS~ писал(а):в поточном снепшоте версии 0.5 уже все вышесказанное поправлено
Обновился, хотя прошлую версию чекаутил вчера или позавчера. ${NAS}->{IPN_COLLECTOR} заработал, порча заголовков и отображение HTML броузером так и осталась, если оставить print @{ $Ipn_Collector->{ZONES_IPS}{1} }; (Вообще непонятно зачем оно, больше похоже на отладочный мусор):
Изображение
Ну а графики вообще отвалились, ибо теперь закомментированы. ^_^

Позже: А не... нифига, IPN_COLLECTOR не заработал, просто закешировался. Теперь же стало ещё хуже, ещё и IPN перестал трафик считать, если у клиента выбраны определенные NAS`ы, глючит из-за условия un.nas_id IN ($DATA->{NAS_ID}) в этом куске, пока вернул его взад как было в прошлой ревизии:

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

--- Ipn_Collector.bad   2009-09-02 18:04:33.000000000 +0400
+++ Ipn_Collector.pm    2009-07-23 11:15:48.000000000 +0400
@@ -107,14 +107,8 @@
                 LEFT JOIN bills cb ON (c.bill_id=cb.id)
                 LEFT JOIN tarif_plans tp ON (tp.id=dv.tp_id)
                 LEFT JOIN dv_calls calls ON (u.id=calls.user_name)
-     LEFT JOIN users_nas un ON(u.uid=un.uid)
-                WHERE u.uid=dv.uid and u.domain_id=0
-                 and dv.ip > 0 and u.disable=0 and dv.disable=0
-                 and (un.nas_id IN ($DATA->{NAS_ID}) or un.nas_id IS NULL)
-                GROUP BY u.uid;";
-
-
-
+                WHERE u.uid=dv.uid
+                 and dv.ip > 0 and u.disable=0 and dv.disable=0;";
    }
   elsif ( $CONF->{IPN_DEPOSIT_OPERATION} ) {
        $sql="select u.uid, calls.framed_ip_address, calls.user_name,
Вложения
abills-sql.tar.tgz
(18.23 КБ) 520 скачиваний

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

Re: Не считается траффик в последних версиях

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

спасибо поправлено

Ответить