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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 ... 13
1  Главная категория / Nodeny Plus / Re: Скрипты для телефонии : 24 Августа 2022, 10:31:23
Все еще актуально
2  Главная категория / Модули NodenyPlus / IPTVportal : 13 Мая 2022, 13:13:49
Подскажите какой функционал данного модуля. Можно ли просматривать/удалять количество абонентских устройств на учетке?
3  Главная категория / Nodeny Plus / Re: Не создается тариф : 03 Марта 2022, 06:31:43
Спасибо большое, помогло.
4  Главная категория / Nodeny Plus / Не создается тариф : 01 Марта 2022, 16:31:51
Добрый день, помогите разобраться с проблемой: не могу создать тариф "Создание услуги не выполнено", в дебаге:

Код:
Field 'category' doesn't have a default value 

{
  'param' => [
    'inet_unlim',
    'test511',
    '',
    '0',
    0,
    0,
    ',4,5,1,3,',
    '$VAR1 = {\'speed_out4\' => \'\',\'min_traf\' => \'\',\'speed_in1\' => 1000000,\'speed_out2\' => \'\',\'speed_in2\' => \'\',\'speed_in3\' => \'\',\'speed_out3\' => \'\',\'tags\' => \'\',\'period\' => 2592000,\'finish_count\' => \'1\',\'script\' => \'\',\'mode\' => \'\',\'speed_in4\' => \'\',\'wait_pos_balance\' => \'0\',\'speed_out1\' => 1000000};'
  ],
  'sql' => 'INSERT INTO services SET module=?, title=?, description=?, price=?, auto_renew=?, no_renew=?, grp_list=?, param=?'
};
 
 INSERT INTO services SET module='inet_unlim', title='test511', description='', price='0', auto_renew='0', no_renew='0', grp_list=',4,5,1,3,', param='$VAR1 = {\'speed_out4\' => \'\',\'min_traf\' => \'\',\'speed_in1\' => 1000000,\'speed_out2\' => \'\',\'speed_in2\' => \'\',\'speed_in3\' => \'\',\'speed_out3\' => \'\',\'tags\' => \'\',\'period\' => 2592000,\'finish_count\' => \'1\',\'script\' => \'\',\'mode\' => \'\',\'speed_in4\' => \'\',\'wait_pos_balance\' => \'0\',\'speed_out1\' => 1000000};'


Код:
root@localhost [nodeny]> DESCRIBE services;
+-------------+---------------------+------+-----+---------+----------------+
| Field       | Type                | Null | Key | Default | Extra          |
+-------------+---------------------+------+-----+---------+----------------+
| service_id  | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
| module      | varchar(64)         | NO   |     | NULL    |                |
| category    | varchar(64)         | NO   |     | NULL    |                |
| title       | varchar(64)         | NO   |     | NULL    |                |
| description | varchar(512)        | NO   |     | NULL    |                |
| grp_list    | longtext            | NO   |     | NULL    |                |
| conditions  | varchar(512)        | NO   |     |         |                |
| price       | float               | NO   |     | 0       |                |
| auto_renew  | tinyint(3) unsigned | NO   |     | 0       |                |
| no_renew    | tinyint(3) unsigned | NO   |     | 0       |                |
| param       | longtext            | NO   |     | NULL    |                |
+-
------------+---------------------+------+-----+---------+----------------+
5  Главная категория / Модули NodenyPlus / Re: Приостановление услуг (stop_service) : 15 Декабря 2021, 11:34:02
Решил по свежему написать сюда.Вот только что 5 минут назад звонок  Улыбающийся. Позвонил клиент и говорит: приостановите меня с 3-го августа по 1-е сентября. Ок, нет проблем. Понимаю что мне нужно записать в блокнотик просьбу клиента и завтра ему включить приостановку. Потому что приостановки наперед просто нет в биллинге. Вот и веду блокнотик себе  Веселый


а возможно ли добавить функционал, чтобы заранее можно было заказать приостановление? чтобы вместо простыни на 365 дней был выбор "с" и "по"

+1
6  Главная категория / Nodeny Plus / Re: Скрипты для телефонии : 29 Октября 2021, 12:10:27
Не совсем, это же готовое решение телефонии на базе 3CX, а мне нужны только скрипты
7  Главная категория / Nodeny Plus / Скрипты для телефонии : 28 Октября 2021, 18:29:51
Доброго времени суток, нужны скрипты php для телефонии, с передачей номера телефона абонента, которые позволят:
- вывести баланс абонента;
- вывести платежный код абонента;
- взять кредит
- заморозить учетную запись

Готов оплатить труд.
8  Главная категория / Ревизии / Re: rev 343. Условия для клиента в настройках услуги : 20 Сентября 2021, 08:41:42
Цитировать
Сорри за оффтоп, но ткинете носом где настраивается данный параметр, в настройках тарифах нет параметра "Условия", версия биллинга r638. В демке также не нашел данного параметра
Нашел))
9  Главная категория / Модули NodenyPlus / Re: Микротик : 27 Июня 2021, 12:51:14
Ну вот она ошибка, я нашел ее
Код:
call radreply('%{User-Name}','%{Calling-Station-Id}')

Здесь '%{Calling-Station-Id}' а чтобы имя дхцп сервера вставило нужно '%{Called-Station-Id}'
выглядит похоже, опечатка-с....
sql.conf исправляйте, заменяйте и наверное будет все хорошо, но это не точно )


У меня вообще не было этого файла в каталоге /usr/local/etc/raddb/
Нашел его в /usr/local/nodeny/etc/raddb/ и скопировал в /usr/local/etc/raddb/
Теперь его сожержимое такое...

Код:
# -*- text -*-
##
## sql.conf -- SQL modules
##
##      $Id$

sql {
        database = "mysql"
        driver = "rlm_sql_mysql"
        server = "localhost"
        port = 3306
        login = "nodeny"
        password = "hardpass"
        radius_db = "nodeny"

        deletestalesessions = yes
                                                                                     
        sqltrace = no                                                                 
        sqltracefile = ${logdir}/sqltrace.sql                                         
                                                                                     
        num_sql_socks = 5                                                             
                                                                                     
        connect_failure_retry_delay = 60                                             
                                                                                     
        lifetime = 0                                                                 
                                                                                     
        max_queries = 0                                                               
        authorize_check_query = "call radcheck('%{User-Name}')"
        authorize_reply_query = "call radreply('%{User-Name}', '%{Called-Station-Id}')"
        postauth_query = "call radupdate('%{User-Name}','%{reply:Framed-IP-Address}','nas=%{NAS-IP-Address}', '%{Called-Station-Id}')"
        accounting_update_query = "call radupdate('%{User-Name}','%{Framed-IP-Address}','nas=%{NAS-IP-Address}', '%{Called-Station-Id}')"                                                                                     
}

В файле radiusd.conf добавил $INCLUDE sql.conf и бутнул радиус, ошибка никуда не ушла, также не передается тег. В режиме отладки старая картина.... Куда еще копать?
10  Главная категория / Модули NodenyPlus / Re: Микротик : 26 Июня 2021, 10:42:48
Прошу помощи в настройке связки freeradius3 + микротик. Проблема в том что клиент не получает айпи из динамического пула. Если изменить один айпи из этого пула на статический, клиент получает, интернет работает все ок.

radiusd -X отображает

Код:
Ready to process requests
(7) Received Access-Request Id 43 from 10.55.97.2:45083 to 10.55.97.1:1812 length 113
(7)   User-Name = "3C:97:0E:AD:F2:5C"
(7)   NAS-Port-Type = Ethernet
(7)   NAS-Port = 2209350395
(7)   Service-Type = Framed-User
(7)   Calling-Station-Id = "1:3c:97:e:ad:f2:5c"
(7)   Called-Station-Id = "v109"
(7)   User-Password = ""
(7)   NAS-Identifier = "SAT1"
(7)   NAS-IP-Address = 10.55.97.2
(7) # Executing section authorize from file /usr/local/etc/raddb/sites-enabled/nodeny
(7)   authorize {
rlm_sql (sql): Reserved connection (5)
(7) sql: EXPAND call radcheck('%{User-Name}')
(7) sql:    --> call radcheck('3C:97:0E:AD:F2:5C')
(7) sql: Executing select query: call radcheck('3C:97:0E:AD:F2:5C')
(7) sql: User found in radcheck table
(7) sql: Conditional check items matched, merging assignment check items
(7) sql:   Cleartext-Password := ""
(7) sql: EXPAND call radreply('%{User-Name}','%{Calling-Station-Id}')
(7) sql:    --> call radreply('3C:97:0E:AD:F2:5C','1:3c:97:e:ad:f2:5c')
(7) sql: Executing select query: call radreply('3C:97:0E:AD:F2:5C','1:3c:97:e:ad:f2:5c')
[b](7) sql: ERROR: rlm_sql_mysql: ERROR 1321 (FUNCTION get_ip_by_tag ended without RETURN): 2F005
(7) sql: ERROR: SQL query error getting reply attributes[/b]
rlm_sql (sql): Released connection (5)
(7)     [sql] = fail
(7)   } # authorize = fail
(7) Invalid user (sql: rlm_sql_mysql: ERROR 1321 (FUNCTION get_ip_by_tag ended without RETURN): 2F005): [3C:97:0E:AD:F2:5C] (from client sat1 port 2209350395 cli 1:3c:97:e:ad:f2:5c)
(7) Using Post-Auth-Type Reject
(7) Post-Auth-Type sub-section not found.  Ignoring.
(7) # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny
(7) Delaying response for 1.000000 seconds
Waking up in 0.3 seconds.
Waking up in 0.6 seconds.
(7) Sending delayed response
(7) Sent Access-Reject Id 43 from 10.55.97.1:1812 to 10.55.97.2:45083 length 20
Waking up in 3.9 seconds.

Код функции get_ip_by_tag

Код:
mysql> SHOW CREATE FUNCTION get_ip_by_tag;
+---------------+--------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Function      | sql_mode                                   | Create Function                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | character_set_client | collation_connection | Database Collation |
+---------------+--------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| get_ip_by_tag | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` FUNCTION `get_ip_by_tag`( user_id INTEGER UNSIGNED, tag VARCHAR(64) ) RETURNS varchar(15) CHARSET utf8
    NO SQL
BEGIN
    DECLARE user_ip VARCHAR(15);
    DECLARE real_ip VARCHAR(15) DEFAULT 0;
    DECLARE row_cnt INTEGER;
    DECLARE ip_id INTEGER;
    DECLARE tries INTEGER DEFAULT 30;
    DECLARE id_min INTEGER;
    DECLARE id_max INTEGER;

    SELECT INET_NTOA(ip) INTO user_ip FROM ip_pool
        WHERE uid = user_id AND type='static' LIMIT 1;
    IF( user_ip IS NOT NULL ) THEN RETURN user_ip;
END IF;

    SELECT 1 INTO real_ip FROM users_services WHERE uid = user_id AND tags LIKE '%,realip,%';

    SELECT id, INET_NTOA(ip) INTO ip_id, user_ip FROM ip_pool
        WHERE uid = user_id AND type = 'dynamic' AND realip = IF(real_ip>0,1,0)
            AND tags LIKE CONCAT('%,', tag, ',%')
        LIMIT 1;

    IF( ip_id IS NOT NULL) THEN
        UPDATE ip_pool SET `release` = UNIX_TIMESTAMP() + 3600
            WHERE id = ip_id AND uid = user_id;
        SELECT ROW_COUNT() INTO row_cnt;
        IF( row_cnt > 0 ) THEN RETURN user_ip;
END IF;
    END IF;

    SELECT MAX(id), MIN(id) INTO id_max, id_min
        FROM ip_pool
        WHERE type = 'dynamic' AND realip = IF(real_ip>0,1,0)
            AND tags LIKE CONCAT('%,', tag, ',%');

    sel_ip: WHILE tries > 0 DO
        SELECT id, INET_NTOA(ip) INTO ip_id, user_ip
            FROM ip_pool
            WHERE uid = 0
                AND id >= (CEIL(RAND() * (id_max - id_min)) + id_min)
                AND id <= id_max
                LIMIT 1;
        IF( user_ip IS NOT NULL) THEN
            UPDATE ip_pool SET uid = user_id, `release` = UNIX_TIMESTAMP() + 3600
                WHERE id = ip_id AND uid = 0;
            SELECT ROW_COUNT() INTO row_cnt;
            IF( row_cnt > 0 ) THEN RETURN user_ip;
END IF;
            SET tries = tries - 5;
        END IF;
        SET tries = tries - 1;
    END WHILE;

END | latin1               | latin1_swedish_ci    | utf8_general_ci    |
+---------------+--------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)

11  Главная категория / Модули NodenyPlus / Re: Модуль мониторинга PON : 10 Февраля 2021, 00:22:36
Исходя из вышесказанного так понимаю на модуле можно ставить крест?
Цитировать
следующее на разработке: возможность добавлять своими патчами (потому что у всех запросы разные) скрипты для работ с олт через телнет
Жаль что не будет реализован данный функционал.
12  Главная категория / Общий раздел / Re: Загрузка процессора : 17 Января 2021, 10:46:24
Если смотреть пакеты командой netstat -w1 то в момент проблемы их количество меньше чем в момент нормальной работы сервера, а загрузка просто падает.
13  Главная категория / Общий раздел / Re: Загрузка процессора : 17 Января 2021, 10:14:15
top -SHP  и tcpdump на порт 53 и 123 пробовал, в момент проблемы ничего подозрительного на этих портах. Проблема случается циклично примерно в одно и тоже время, что еще можно посмотреть?
14  Главная категория / Общий раздел / Re: Загрузка процессора : 13 Января 2021, 19:48:58
Снова такая же беда, в момент проблемы вот такое....
https_://i.ibb.co/tZn7ZgC/2.png
15  Главная категория / Общий раздел / Re: Загрузка процессора : 06 Января 2021, 08:56:10
там как раз и видно что сетевая (ixl) укладывает в 0 idle.

если циклично то, можно предположить атаку,
для начала на аплинке  tcpdump -n -i имя_аплинка port 53
и тоже самое для 123 (довольно частые атаки и легко отбиваются...)

+ тюнить систему , оптимизировать фаер... и так далее



В течение пары часов может уходить в такое состояние до 5 мин  раз 10, потом нормализуется работа до следующего дня.

В нормальном состоянии:

tcpdump -n -i имя_аплинка port 53
и тоже самое для 123 (довольно частые атаки и легко отбиваются...)  .... сыпятся постоянно данные, как понять флуд это или нет?
Страниц: [1] 2 3 ... 13
Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!