Биллинговая система Nodeny
19 Апреля 2024, 20:29:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: IPTV  (Прочитано 4728 раз)
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 199


Просмотр профиля
« : 26 Июня 2017, 20:02:19 »

Добрый вечер уважаемые гуру. В сети транслировали IPTV юникастом, как бонус, то бишь даром. Сейчас встал вопрос о платном IPTV. 60 каналов безплатно - социальные, вторая группа 20гр , и полный пакет 30гр. Всё это через nginx , только с разных подсеток. Блокировать-разрешать посредством access list на nginx не получается, поскольку там ещё подключены 3 биллинга . На скорую руку сделал тарифы с 4 напрвлениями, мир, Украина, iptv-midle, iptv-maxi , ну и взависимости от пакета, на 3, 4 направление скорость 10kb или 100Mb. Работает.... но мне не нравится , топорно. Хотелось бы использовать услугу повышения скорости , то есть в зависимости от направления увеличить скорость в 1000 раз. Тогда вопрос, как изменить услугу speed_up , чтобы услуга работала до конца месяца, и продлевалась.
Второй вариант , сделать через make_config , выборка по базовой услуге(iptv-midle, iptv-maxi) ip , с заносом в таблицы фаервола.
Ну и самый кошерный вариант наверное, управление самим nginx.
Кто , что может посоветовать, или поделится опытом. Сеть работает по ПОН технологии, один на порту, статические ip.
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 199


Просмотр профиля
« Ответ #1 : 28 Июня 2017, 21:44:35 »

Возможно ли изменить модуль услуги speed_up,что бы можно было выбрать режим, до конца месяца?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #2 : 28 Июня 2017, 22:40:26 »

Возможно ли изменить модуль услуги speed_up,что бы можно было выбрать режим, до конца месяца?
Можно. Посмотри /usr/local/nodeny/services/basic.pm и перенеси в /usr/local/nodeny/services/speed_up.pm

Код:
'mode' => {
                title   => 'Режим',
                ...
Код:
    {
        name    => 'mode',
        type    => 20,
        %{$l{mode}},
    },

и измени:
Код:
    $actions->{set_service} = {
        period  => int $service_new->{param}{period},
        tags    => ',inet,speed,',
    };
на
Код:
    $actions->{set_service} = {
        period  => int $service_new->{param}{period},
        tags    => ',inet,speed,',
        mode    => int $service_new->{param}{mode},
    };
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 199


Просмотр профиля
« Ответ #3 : 29 Июня 2017, 10:00:44 »

Спасибо большое.
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 199


Просмотр профиля
« Ответ #4 : 14 Июля 2018, 15:56:19 »

Опять по поводу IPTV. Решил сделать как услугу.
Есть три пакета - TV "СОЦІАЛЬНИЙ", TV "УКРАЇНА", TV "ВСЕСВІТ". Первый безплатний, второй скажем 20гр, третий 30гр. Соответственно количество каналов по возростающей. Соответственно стримы(m3u4) проксируются на сервере с nginx на разных IP : 1. 192.168.20.1 2. 192.168.30.1 3. 192.168.31.1 Плейлист один,  включает все стримы.
На серверах доступа написал скрипт для занесения абонентских IP в две таблицы, по крону.
Код:
#!/bin/sh
user="nas2"
pass="xxxxxxxxxxx"
db="nodeny"
/bin/cat /dev/null > /tmp/test.txt
sql1="SELECT INET_NTOA(ip) FROM ip_pool  WHERE uid  IN(SELECT uid FROM users_services WHERE service_id=18)" #18 у меня услуга TV "УКРАЇНА"
res1=`mysql -hXXX.XXX.XX.3 -u $user -p$pass $db -N -e "$sql1"`
printf "$res1" > /tmp/iptv-ukraina.txt

sql2="SELECT INET_NTOA(ip) FROM ip_pool  WHERE uid  IN(SELECT uid FROM users_services WHERE service_id=19)" #19 у меня услуга TV "ВСЕСВІТ"
res2=`mysql -hXXX.XXX.XX.3 -u $user -p$pass $db -N -e "$sql2"`
printf "$res2" > /tmp/iptv-vsesvit.txt

sed '/:[0-9]*$/ ! s:$:/32:' /tmp/iptv-ukraina.txt
/sbin/ipfw table 80 flush
for i in `cat /tmp/iptv-ukraina.txt`;
do /sbin/ipfw table 80 add $i;
 done

sed '/:[0-9]*$/ ! s:$:/32:' /tmp/iptv-vsesvit.txt
/sbin/ipfw table 81 flush
for i in `cat /tmp/iptv-vsesvit.txt`;
do /sbin/ipfw table 81 add $i;
 done

В фаерволе добавил два правила
 fwd 127.0.0.1,84 tcp from not "table(80)" to 192.168.30.0/24
 fwd 127.0.0.1,84 tcp from not "table(81)" to 192.168.31.0/24
В биллинге две базовые услуги до конца месяца.
Есть два нюанса. Первый, как настроить заглушку (nginx) , что бы на запрос типа h_t_t_p://192.168.30.1:8100/ch26/index.m3u8 получал демо-ролик?
И второй. Услуга без автопродления, не очень удобная. А если поставить автопродление, то каким образом клиент сможет потом самостоятельно отказаться от услуги на следующий месяц? Если сделать еще одну услугу(что бы с платного перейти на бесплатный пакет) - TV "СОЦІАЛЬНИЙ" за 0гр , то она не отображается.
Может кто сможет помочь, особенно по заглушке.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #5 : 17 Июля 2018, 10:25:48 »

Выбор тарифа за 0 денег можно так сделать: в /usr/local/nodeny/web/user/srv_info.pl в строке:

Код:
$service->{price} > 0 or next;

после > поставить =

Код:
$service->{price} >= 0 or next;
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 199


Просмотр профиля
« Ответ #6 : 17 Июля 2018, 10:27:41 »

Спасибо.
Теперь буду решать , как сделать заглушку.
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 199


Просмотр профиля
« Ответ #7 : 30 Июля 2018, 11:10:26 »

Выбор тарифа за 0 денег можно так сделать: в /usr/local/nodeny/web/user/srv_info.pl в строке:

Код:
$service->{price} > 0 or next;

после > поставить =

Код:
$service->{price} >= 0 or next;


Все равно не отображает нулевые тарифы. Где то есть еще зависимости.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #8 : 30 Июля 2018, 11:14:39 »

Еще у тарифа обязательно должно быть описание
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 199


Просмотр профиля
« Ответ #9 : 30 Июля 2018, 11:23:47 »

Есть описание.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #10 : 31 Июля 2018, 21:23:37 »

Еще:
1) в  /usr/local/nodeny/web/user/srv_select.pl
Код:
$service->{price} > 0 or next;
->
Код:
$service->{price} >= 0 or next;
2) services.pm
Код:
            if( $service_new{price} <= 0 )
            {
                debug('error', $L->('клиент не должен сам себе подключать бонусы'));
->
Код:
            if( $service_new{price} < 0 )
            {
                debug('error', $L->('клиент не должен сам себе подключать бонусы'));
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 199


Просмотр профиля
« Ответ #11 : 01 Августа 2018, 07:34:20 »

Спасибо.
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!