Биллинговая система Nodeny
24 Ноября 2024, 04:56:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1]
1  Главная категория / Nodeny Plus / Re: Уведомления о сообщении : 17 Декабря 2020, 11:47:57
Добрый день!
Настроил в тестовом биллинге пуши (629 ревизия, настроен с нуля, сертификат честный)
Отправляю сообщение на свою привязанную админскую учетку. Биллинг открыт в Хроме. Хром подписан на пуши от этого же сайта.
Если у меня активная вкладка Хрома открыта на этом же сайте - уведомление не всплывает
Если активна вкладка с любым другим сайтом - уведомление приходит нормально.
Если активная вкладка на биллинге, но само окно свернуто в таскбар - уведомление приходит.
Уведомления, которые не пришли - не приходят совсем, даже с запозданием. Типа их приняли и проигнорили.
Пробовал на Винде 7, пробовал на Линукс Минте. На винде Хром последний, на Минте - старый. Поведение везде одинаковое.

Кто-то сталкивался с таким поведением?
2  Главная категория / Модули NodenyPlus / Re: Модуль Omega TV : 30 Мая 2019, 16:59:43
Всё, нашли, в январском (553 ревизия) апдейте services.pm был решен вопрос с сортировкой порядка вызова методов модуля, похоже правка именно под этот модуль
Жалко, что не указана минимальная ревизия биллинга или не приложен патч файла services.pm к модулю, хотя бы readme какой-нибудь, пришлось по тексту ориентироваться
3  Главная категория / Модули NodenyPlus / Re: Модуль Omega TV : 28 Мая 2019, 16:04:32
Модуль скачивали 8 мая, файлы create.nod.omegatv.pm и create.services.omegatv.pm в архиве от 20 января 2019

Включил логгирование в _omegatv.pm, установил конец тарифного периода в (сейчас+1 минута) и подождал

24.05.2019 16:46:28 uid=1194 id=247786 service_id=259 t=1558705502 start=1558698540 end=1558705500
24.05.2019 16:46:28 omegatv api: uid=1194 /customer/tariff/set start
24.05.2019 16:46:28 omegatv api: uid=1194 /customer/tariff/set completed
24.05.2019 16:46:29 omegatv api: uid=1194 /customer/activate start
24.05.2019 16:46:29 omegatv api: uid=1194 /customer/activate completed
24.05.2019 16:46:29 omegatv api: uid=1194 /customer/block block
24.05.2019 16:46:30 omegatv api: uid=1194 /customer/block completed

Если вручную удалить / добавить услугу в учетке, все ОК
4  Главная категория / Модули NodenyPlus / Re: Модуль Omega TV : 28 Мая 2019, 11:40:21
Купили модуль, обнаружили проблему.
При переходе на следующий месяц модулем _omegatv.pm сначала отправляется команда на ВКЛЮЧЕНИЕ абонента, а потом через секунду - на ОТКЛЮЧЕНИЕ, в результате у абонента в кабинете билинга услуга типа включена, а в кабинете Омеги - выключена.
Биллинг настроен на заморозку услуг (wait_pos_balance)
5  Главная категория / Nodeny Plus / Re: Условия выбора тарифа - проблемы с переходом на новый период : 17 Мая 2018, 11:23:45
С id этого клиента в kernel.log нашлась единственная запись (при ручном включении тарифа оператором)
kernel.log:14.04.2018 15:38:51 Заблокирован доступ клиенту id=9871, баланс -90.00 < 0.00

web.log:   14.04.2018 15:38 Adm maytome(id=12, ip=10.11.3.31) операция с услугами uid=9871, cmd=add, id=0, service_id=71
web.log:   14.04.2018 15:39 Adm maytome(id=12, ip=10.11.3.31) посмотрел пароль uid=9871
web.log:   14.04.2018 15:39 Adm wolfzp(id=11, ip=10.11.3.26) создал платеж id=366474 категории 69, cash=90, uid=9871
web.log:   14.04.2018 15:39 Adm maytome(id=12, ip=10.11.3.31) посмотрел пароль uid=9871
web.log:   14.04.2018 15:43 Adm maytome(id=12, ip=10.11.3.31) добавил ip=10.13.98.110 клиенту id=9871
Лог моего скрипта файрволла
fw.log:       Apr 14 15:43:05 fw.sh: ON  IPS=[10.13.98.110] UID=[9871] XID=[268f] SPEED_IN=[50000000] SPEED_OUT=[25000000] GRP=[11] SRV=[71] TARIF=[] TABLE=[]
fw.log:       Apr 28 14:06:46 fw.sh: ON  IPS=[10.13.98.110] UID=[9871] XID=[268f] SPEED_IN=[50000000] SPEED_OUT=[25000000] GRP=[11] SRV=[71] TARIF=[] TABLE=[]

После чего абону пополнили счет, доступ включился
После окончания тарифного периода ядро не может перейти на новый период.
-------------------------
Upd
Нашел, где ошибка высвечивается
Карточка абонента (операторская сторона) -> Тариф (ajUserSrvInfo) -> Заказ следующей (ajUserSrvAdd) -> Продлить текущей ->
Цитировать
Ошибка:
ошибка получения данных клиента

Если ошибка устойчивая - к администратору (см. Debug)
Прикладываю Debug.txt (хотя там на мой взгляд ничего по этой ошибке нету)

В _ajUserSrvAdd.pl этот кусок кода мне ответил при ручном продлении тарифа:
Код:
    # add - подключение услуги
    # set_next - изменение поля 'следующая услуга' в существующей услуге
    my $cmd = ses::input('cmd') eq 'set_next'? 'set_next' : 'add';
...
        my %param = (
            cmd         => $cmd,
            id          => $id,
            uid         => $uid,
...
        my $err = services->proc( %param );

        if( $err )
        {
            return _('[span error]:[p][p]',
                $lang::error,
                $lang::services_pm->{$err->{for_adm}} || $err->{for_adm},
                L('Если ошибка устойчивая - к администратору (см. Debug)')
            );
        }
6  Главная категория / Nodeny Plus / Условия выбора тарифа - проблемы с переходом на новый период : 17 Мая 2018, 09:45:20
Начали использовать поле "Условия" в настройках тарифов (услуг)
Наткнулись на баг
Если уже установленный абоненту тариф не подходит под прописанные условия, то биллинг не может его корректно завершить и продлить на следующий месяц.
Когда оператор смотрит, что же с тарифом (ajUserSrvInfo.pl) ему сообщают:

Цитировать
Старт   14.04.2018 15:38
Конец   14.05.2018 15:38
Будет завершена с минуты на минуту

И тариф не завершается

Подозреваю, виноват следующий фрагмент:
Код:
services.pm:
...
    # --- Подключение услуги / установка поля `следующая услуга`

    {
        $cmd =~ /^(add|set_next)$/ or last;
        $service_id or last;
...
        my $conditions = $service_new{conditions}? "AND $service_new{conditions}" : '';
        my %u = Db->line("SELECT * FROM users u JOIN data0 d ON u.id=d.uid WHERE u.id=? $conditions LIMIT 1", $uid);
        %u or return {
            for_adm => 'ошибка получения данных клиента',
            for_usr => '',
        };
Что любопытно, эта ошибка нигде не высвечивается
Нужно ли здесь проверять, соответствует ли установленный тариф условиям?
7  Главная категория / Модули NodenyPlus / Re: Разрешение доступа админов только с определенных ip : 02 Декабря 2017, 17:32:10
Крайне полезная штука, особенно в свете того, что вход абонентов и админов теперь объединён.
Обновился до svn 483, файл admin.pl остался из версии 463 за 25 сентября...
Включите, пожалуйста, его в svn!
8  Главная категория / Модули NodenyPlus / Re: netflow : 01 Декабря 2017, 12:16:29
Апну тему с несколькими аплинками на одном устройстве.

Мы решили проблему так:
в конфиге коллектора номера интерфейсов перечисляются через запятую:
Код:
                ext_iface   => '8,6,12',       
netflow.pm сравнивает $src_iface и $dst_iface по списку:
Код:
                $res .= $h."2\n" if (",${ext_iface}," =~ /,${src_if},/); # Если в списке ",1,2,3," встречается подстрока /,3,/
                $res .= $h."1\n" if (",${ext_iface}," =~ /,${dst_if},/);
#                $res .= $h."2\n" if $ext_iface == $src_if;
#                $res .= $h."1\n" if $ext_iface == $dst_if;
9  Главная категория / Nodeny Plus / Re: FAQ. Несколько ip на PPPoE : 20 Мая 2017, 08:15:10
Пока сам попробую мозги поразмять Улыбающийся

Но из ответа следует:
1) данная фича еще не реализована, это не я плохо искал функционал
2) все реализуемо

Будут сложности - обращусь
10  Главная категория / Nodeny Plus / Re: FAQ. Несколько ip на PPPoE : 18 Мая 2017, 13:40:20
В такой реализации, как приведена в этой ветке, очень смущает строчка "WHERE uid = user_id AND type='static' ORDER BY ip "
То есть если добавить еще один адрес, меньший, чем последний, то все привязки поплывут
Никаких других механизмов фиксации ip по передаваемому логину не придумали?

Для нас тема очень актуальна, т.к. в N50.32 существует куча "корпоративных" абонентов, с индивидуальными логинами на общем счёте и не можем их нормально перенести

Насчет RADIUS - я у себя сделал так
Код:
/* For RADIUS 1.X */
DROP PROCEDURE IF EXISTS `radcheck`;

DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'XXXXXX') AS Value,'=='
  FROM users WHERE name=login;
  END$$
DELIMITER ;

/* For RADIUS 2.X */
DROP PROCEDURE IF EXISTS `radcheck2`;

DELIMITER $$
CREATE PROCEDURE `radcheck2` (IN login VARCHAR(64))
BEGIN
  SELECT id,name,'Cleartext-Password' AS Attribute,AES_DECRYPT(passwd,'XXXXXX') AS Value,':='
  FROM users WHERE name=login;
  END$$
DELIMITER ;
Для второго Радиуса нужно указывать не '==', а ':=', ну и как было указано выше, 'Cleartext-Password' вместо 'Password'
11  Главная категория / Nodeny 50 / Re: Производительность биллинговой машины. : 10 Ноября 2010, 09:07:09
Эмм .. вопрос ..
А приложения вообще собраны с поддержкой кучи процов ?
Везде галка [THREAD] стоит ?
Система, о которой пишет glat.
perl был собран без тредирования.

Код:
bash> ps -wwuH -p 19536
USER   PID %CPU %MEM     VSZ     RSS  TT  STAT STARTED        TIME COMMAND                                                                                           
root 19536   66.4     8.2 280392 277900  ??   R<    Mon10PM 623:58.14 perl nodeny.pl (perl5.8.9)

Наблюдаем периодический рост потребления ЦПУ (фактически 1 из 4) от ~0% до 60-70% (сейчас, утром, не в час пик), прочие параметры не меняются.
Тред единственный. Тот же mysql на ps -H показывает кучу тредов.
Имеет ли смысл пересобрать perl, если "use threads" не используется (иначе бы и не работало)?
(железо все то же, Phenom 4-хядерный, FreeBSD 7.2 под i386)
Страниц: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!