Пользователи с фильтром негативного депозита отключаются.

Модуль организации Diulup и VPN доступа
Ответить
vsevolod
Сообщения: 18
Зарегистрирован: Вт июл 12, 2011 10:37 am

Пользователи с фильтром негативного депозита отключаются.

Сообщение vsevolod »

Пользователи, у которых установлен фильтр негативного депозита подключаются, но сразу сбрасываются при первом срабатывании billd... Раньше такой проблеммы не было... Я вижу что skip negative deposit выполняется когда установлено поле guest, а поле guest не устанавливается, если не установлен пул негативного депозита...

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

Re: Пользователи с фильтром негативного депозита отключаются

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

проверено на версии 0.54 все работает, при негативном устанавливается guest


для примера можно проэмулировать в демо

vsevolod
Сообщения: 18
Зарегистрирован: Вт июл 12, 2011 10:37 am

Re: Пользователи с фильтром негативного депозита отключаются

Сообщение vsevolod »

Прошу прощения - не дописал...Я авторизуюсь через ipnet...

vsevolod
Сообщения: 18
Зарегистрирован: Вт июл 12, 2011 10:37 am

Re: Пользователи с фильтром негативного депозита отключаются

Сообщение vsevolod »

Активация через IPN...
Все таки сессии сбрасываются. При негативном депозите с фильтром в таблицу добавляются две строки -



vsevolod 0 172.20.29.118 00:00:22 0 0 0 0 IP 2 0 1345151212 22 0 -0.064740 0.00 108 0 0 0.000000 108 11 0 1 0.00 3
vsevolod 0 172.20.29.118 00:00:22 0 0 0 0 DJDcEq7dgP 2 0 22 22 0 -0.064740 0.00 108 0 0 0.000000 108 10 0 0 172.20.29.118 0.00 3



/usr/abills/libexec/billd DEBUG=6 LOGINS=vsevolod
Debug mode 6
<pre><code>
DELETE FROM dv_calls WHERE acct_session_id in ( 'IP' );
</code></pre>
<pre><code>
SELECT c.user_name,
c.nas_port_id,
INET_NTOA(c.framed_ip_address) AS ip,
SEC_TO_TIME(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(c.started)) AS duration,
c.acct_input_octets + 4294967296 * acct_input_gigawords AS acct_input_octets,
c.acct_output_octets + 4294967296 * acct_output_gigawords AS acct_output_octets,
c.ex_input_octets,
c.ex_output_octets,
c.acct_session_id,
u.uid,
c.join_service,
UNIX_TIMESTAMP() - c.lupdated AS last_alive,
UNIX_TIMESTAMP() - UNIX_TIMESTAMP(c.started) AS acct_session_time,
if(c.lupdated>0, c.lupdated - UNIX_TIMESTAMP(c.started), 0) AS duration_sec,
if(company.name IS NULL, b.deposit, cb.deposit) AS deposit,
if(u.company_id=0, u.credit, if (u.credit=0, company.credit, u.credit)) AS credit,
dv.tp_id AS tp_num,
u.disable AS login_status,
dv.disable AS dv_status,
c.sum AS session_sum,
c.tp_id AS calls_tp_id,
c.status,
if(dv.filter_id<>'', dv.filter_id, tp.filter_id) AS filter_id,
tp.bills_priority,
c.guest,
c.CID,
tp.credit AS tp_credit,
c.nas_id

FROM dv_calls c
LEFT JOIN users u ON (u.uid=c.uid)
LEFT JOIN dv_main dv ON (dv.uid=u.uid)

LEFT JOIN bills b ON (u.bill_id=b.id)
LEFT JOIN companies company ON (u.company_id=company.id)
LEFT JOIN bills cb ON (company.bill_id=cb.id)
LEFT JOIN tarif_plans tp ON (tp.id=dv.tp_id AND tp.module='Dv')

WHERE (c.user_name='vsevolod')
ORDER BY 1 ;
</code></pre>
==> check_lines
NAS: (3) 193.178.34.36 NAS_TYPE: ipcad STATUS: 0 Alive: 120 Online: 1
vsevolod | 172.20.29.118| 89| 0| 0| -0.064740|
START: 1345140618 DURATION: 0 UID: 2 SUM: 0.000000 BILL_ID: 2 TARIF_PLAN: 108 TRAF_TARIF: 0
IPN FILTER: /usr/abills/libexec/ipn_filter.sh vsevolod HANGUP 172.20.29.118 2 $NAS_MNG_USER $NAS_IP_ADDRESS
/usr/abills/libexec/up_down.sh 172.20.29.118 32 DOWN vsevolod $NAS_MNG_USER $NAS_IP_ADDRESS 2>&1 >/dev/null
02012-08-16 21:10:19 LOG_WARNING: HANGUP [vsevolod] NAS: 3 (193.178.34.36) DEPOSIT: -0.064740 CREDIT: 0.00 SESSION_SUM: 0.000000 SESSION_ID: DJDcEq7dgP Status: 1
GT: 0.24032

vsevolod
Сообщения: 18
Зарегистрирован: Вт июл 12, 2011 10:37 am

Re: Пользователи с фильтром негативного депозита отключаются

Сообщение vsevolod »

Немного разобрался. Работа с модулем IPn. При активизации пользователя, у которого негативный депозит и для тарифа включен фильтр негативного депозита в таблице dv_calls создаются две сессии со статусом 11 и 10. Та что 11 -у нее acct_session_id=IP и guest=1. та что 10 - у нее guest=0 и acct_session_id сгенерировано... А когда billd просматривает сесси, он сначала удаляет все строки в таблице dv_calls, у которых acct_session_id=IP. В результате остаются только сессии, у которых guest=0 и status=10. В результате billd обрывает все сесси с ,отрицательным депозитом... Может чтото где-то не до конца отрабатывает?...

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

Re: Пользователи с фильтром негативного депозита отключаются

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

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

Ответить