Перейти до

Ubilling + NAS на FreeBSD бортжурнал починаючого адміна


Рекомендованные сообщения

 

вчем проблема?

В недобавленных, в соответствующем справочнике сетях DHCP?

 

ну это я понял. Они посути должны сами формироваться при установки ubilling исходя от настроенных сетевых интерфейсов?

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 1,8k
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Вітаю Татко!   

Не так вже й багато   Ход коньом:   # cat /bin/clear_dhcpdlog #!/bin/sh /bin/echo > /var/log/dhcpd.log /usr/local/etc/rc.d/isc-dhcpd restart # chmod a+x /bin/clear_dhcpdlog # crontab -e

http://wiki.ubilling.net.ua/doku.php?id=userstats       Расист? http://wiki.ubilling.net.ua/doku.php?id=userstats

Posted Images

 

 

ну это я понял. Они посути должны сами формироваться при установки ubilling исходя от настроенных сетевых интерфейсов?

Ну никто ж за вас кликать не будет в админке, решая, для каких сетей дхцп должно материализоваться.

Ссылка на сообщение
Поделиться на других сайтах
nightfly доброго времени суток!

Вопрос "ламерский"

какая здесь:

http://wiki.ubilling.net.ua/doku.php?id=development

"среда разработки", конкретнее:

http://wiki.ubilling.net.ua/lib/exe/fetch.php?cache=&w=286&h=277&media=samplemod.png

Ссылка на сообщение
Поделиться на других сайтах

 

 

"среда разработки", конкретнее:

Netbeans.

Спрыгнул на него уже хз сколько лет назад. Начинал с  zend studio -> eclipse -> netbeans. Теперь вполне доволен жизнью.

 

znimok_ekrana_z_20170130_12_58_58.png

Ссылка на сообщение
Поделиться на других сайтах

 

 

Netbeans. Спрыгнул на него уже хз сколько лет назад. Начинал с  zend studio -> eclipse -> netbeans. Теперь вполне доволен жизнью.

Щиро дякую! Буду осваивать..... 

Ссылка на сообщение
Поделиться на других сайтах

да нетбинс тема :)

очень удобная штука

особенно alt + shift + f

и ctrl + left click по имени функции))

Відредаговано l1ght
Ссылка на сообщение
Поделиться на других сайтах

Привет,  вопрос таков, как перенаправить должников с реальными айпишками ?  

 

я так понимаю, нужно будет подкорректировать вот эти правила   вместо второй таблички поставить 10ю, или как то делается по другому ? ? 

 

#Debtors forwarding
${FwCMD} add 4 allow ip from table\(2\) to 8.8.8.8 dst-port 53 via em0                    
${FwCMD} add 4 allow ip from 8.8.8.8 to table\(2\) src-port 53 via em0
${FwCMD} add 4 allow ip from table\(2\) to me dst-port 80 via em0
${FwCMD} add 4 allow ip from me to table\(2\) src-port 80 via em0
${FwCMD} add 6 fwd 127.0.0.1,80 ip from table\(47\) to not me dst-port 80
${FwCMD} delete 65534

Ссылка на сообщение
Поделиться на других сайтах

Привет,  вопрос таков, как перенаправить должников с реальными айпишками ?  

 

я так понимаю, нужно будет подкорректировать вот эти правила   вместо второй таблички поставить 10ю, или как то делается по другому ? ? 

 

#Debtors forwarding

${FwCMD} add 4 allow ip from table\(2\) to 8.8.8.8 dst-port 53 via em0                    

${FwCMD} add 4 allow ip from 8.8.8.8 to table\(2\) src-port 53 via em0

${FwCMD} add 4 allow ip from table\(2\) to me dst-port 80 via em0

${FwCMD} add 4 allow ip from me to table\(2\) src-port 80 via em0

${FwCMD} add 6 fwd 127.0.0.1,80 ip from table\(47\) to not me dst-port 80

${FwCMD} delete 65534

 

А глянуть ipfw table 47 list низя?

У вас там по-умолчанию "искаропки" должники будут

 

 

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

Добрый день,  подскажите куда копать, если не всех абонентов отключает при отрицательном балансе ?  Кредитного лимита  нету. Абоненты с реальными айпишками. 

Ссылка на сообщение
Поделиться на других сайтах

Вообще все должники (отключенные) должно попадать в 47 таблицу. Попробуйте посмотреть ее содержимое. Также проверьте восстанавливается ли она после перезгрузки сервера.

Ссылка на сообщение
Поделиться на других сайтах

Всем привет
Возможмо не по тему,но прошу помогите
когда установляется freebsd у него 3 раздела 1.boot    2.freebsd-ufs      3.swap
так для бекапа нужно все 3 раздела дампит или только freebsd-ufs
и еще swap как понимаю для ubilling-а не так и важно так как он для виртуализации,право ли я понял?

Ссылка на сообщение
Поделиться на других сайтах

 

 

для бекапа нужно все 3 раздела дампит или только freebsd-ufs

для бекапа лучше пользоваться бекапалкой как вариант запуск по "крону":

25      7,19    *       *       *       root    /bin/ubapi "backupdb"

Ссылка на сообщение
Поделиться на других сайтах

 

для бекапа нужно все 3 раздела дампит или только freebsd-ufs

для бекапа лучше пользоваться бекапалкой как вариант запуск по "крону":

25      7,19    *       *       *       root    /bin/ubapi "backupdb"

 

там бекап из ftp сервера,хотелось сделат дамп на флешку а потом из LiveCd сделат востоновление,но не знаю mysql тоже будет скопирован

Ссылка на сообщение
Поделиться на других сайтах

 

 

там бекап из ftp сервера,хотелось сделат дамп на флешку а потом из LiveCd сделат востоновление,но не знаю mysql тоже будет скопирован

Да. Копируется БД, также критически важный конфигурационный файлы самой ОС.

Ссылка на сообщение
Поделиться на других сайтах

 

 

ну ничего не мешает дописать всё что нужно бекапить в самом скрипте

Здесь и не поспоришь. Очень удобно использовать сервера виртуализации. Образы делаются за минуту. Столько же и на восстановление.

Ссылка на сообщение
Поделиться на других сайтах

 

там бекап из ftp сервера,хотелось сделат дамп на флешку а потом из LiveCd сделат востоновление,но не знаю mysql тоже будет скопирован

Да. Копируется БД, также критически важный конфигурационный файлы самой ОС.

 

ок понял,спасибо

Ссылка на сообщение
Поделиться на других сайтах

Нужна помощь. FreeBSD NAS + Freeradius + mpd. PPPoE подключается, но шейперы не работают.

Радиус атрибуты:

screenshot_192_168_160_3_2017_03_27_09_1

 

Дебаг радиуса:

rad_recv: Access-Request packet from host 127.0.0.1 port 10669, id=44, length=268
	NAS-Identifier = "beta.skystar.com.ua"
	NAS-IP-Address = 127.0.0.1
	Message-Authenticator = 0x56d629105099fa7e741a1d59864b2ed9
	Acct-Session-Id = "595972-vlan50-3"
	NAS-Port = 3
	NAS-Port-Type = Ethernet
	Service-Type = Framed-User
	Framed-Protocol = PPP
	Calling-Station-Id = "6466b3e81b0d"
	NAS-Port-Id = "vlan50"
	mpd-link = "vlan50-3"
	Tunnel-Medium-Type:0 = IEEE-802
	Tunnel-Client-Endpoint:0 = "64:66:b3:e8:1b:0d"
	User-Name = "00002"
	MS-CHAP-Challenge = 0xbb1e68dd1189bf802a669b7609ee0c72
	MS-CHAP2-Response = 0x0100df097885d16cb8733c681dacfd15e9590000000000000000ab30640ad5bd267e099b540b81b1b2d9d01514148a9bb643
# Executing section authorize from file /usr/local/etc/raddb/sites-enabled/default
+group authorize {
++[preprocess] = ok
++[chap] = noop
[mschap] Found MS-CHAP attributes.  Setting 'Auth-Type  = mschap'
++[mschap] = ok
++[digest] = noop
[eap] No EAP-Message, not doing EAP
++[eap] = noop
[sql] 	expand: %{User-Name} -> 00002
[sql] sql_set_user escaped user --> '00002'
rlm_sql (sql): Reserving sql socket id: 3
[sql] 	expand: SELECT (@cnt := @cnt + 1) AS `id`, `UserName`, `Attribute`, `Value`, `op`           FROM `radius_check`           CROSS JOIN (SELECT @cnt := 0) AS `dummy`           WHERE `UserName` = '%{SQL-User-Name}'           ORDER BY `id` -> SELECT (@cnt := @cnt + 1) AS `id`, `UserName`, `Attribute`, `Value`, `op`           FROM `radius_check`           CROSS JOIN (SELECT @cnt := 0) AS `dummy`           WHERE `UserName` = '00002'           ORDER BY `id`
[sql] User found in radcheck table
[sql] 	expand: SELECT (@cnt := @cnt + 1) AS `id`, `UserName`, `Attribute`, `Value`, `op`           FROM `radius_reply`           CROSS JOIN (SELECT @cnt := 0) AS `dummy`           WHERE `UserName` = '%{SQL-User-Name}'           ORDER BY `id` -> SELECT (@cnt := @cnt + 1) AS `id`, `UserName`, `Attribute`, `Value`, `op`           FROM `radius_reply`           CROSS JOIN (SELECT @cnt := 0) AS `dummy`           WHERE `UserName` = '00002'           ORDER BY `id`
[sql] 	expand: SELECT `GroupName`           FROM `radius_usergroup`           WHERE `UserName` = '%{SQL-User-Name}'           ORDER BY `priority` -> SELECT `GroupName`           FROM `radius_usergroup`           WHERE `UserName` = '00002'           ORDER BY `priority`
[sql] 	expand: SELECT (@cnt := @cnt + 1) AS `id`, `GroupName`, `Attribute`, `Value`, `op`           FROM `radius_groupcheck`           CROSS JOIN (SELECT @cnt := 0) AS `dummy`           WHERE `GroupName` = '%{Sql-Group}'           ORDER BY `id` -> SELECT (@cnt := @cnt + 1) AS `id`, `GroupName`, `Attribute`, `Value`, `op`           FROM `radius_groupcheck`           CROSS JOIN (SELECT @cnt := 0) AS `dummy`           WHERE `GroupName` = '3:2130706433'           ORDER BY `id`
[sql] User found in group 3:2130706433
[sql] 	expand: SELECT (@cnt := @cnt + 1) AS `id`, `GroupName`, `Attribute`, `Value`, `op`           FROM `radius_groupreply`           CROSS JOIN (SELECT @cnt := 0) AS `dummy`           WHERE `GroupName` = '%{Sql-Group}'           ORDER BY `id` -> SELECT (@cnt := @cnt + 1) AS `id`, `GroupName`, `Attribute`, `Value`, `op`           FROM `radius_groupreply`           CROSS JOIN (SELECT @cnt := 0) AS `dummy`           WHERE `GroupName` = '3:2130706433'           ORDER BY `id`
rlm_sql (sql): Released sql socket id: 3
++[sql] = ok
++[expiration] = noop
++[logintime] = noop
[pap] WARNING: Auth-Type already set.  Not setting to PAP
++[pap] = noop
+} # group authorize = ok
Found Auth-Type = MSCHAP
# Executing group from file /usr/local/etc/raddb/sites-enabled/default
+group MS-CHAP {
[mschap] Creating challenge hash with username: 00002
[mschap] Client is using MS-CHAPv2 for 00002, we need NT-Password
[mschap] adding MS-CHAPv2 MPPE keys
++[mschap] = ok
+} # group MS-CHAP = ok
Login OK: [00002] (from client NAS 2 port 3 cli 6466b3e81b0d)
# Executing section post-auth from file /usr/local/etc/raddb/sites-enabled/default
+group post-auth {
++[exec] = noop
+} # group post-auth = noop
Sending Access-Accept of id 44 to 127.0.0.1 port 10669
	Framed-IP-Address = 172.16.50.2
	Framed-IP-Netmask = 255.255.255.255
	mpd-pipe += "1=bw 32240Kbyte/s"
	mpd-pipe += "5=bw 32240Kbyte/s"
	mpd-table-static += "3=172.16.50.2"
	mpd-table-static += "4=172.16.50.2"
	MS-CHAP2-Success = 0x01533d45424330313138393943374334363243354534303938314635373537464333414433434335464535
	MS-MPPE-Recv-Key = 0x074632e9fe738cb34b6a1482b5e0c062
	MS-MPPE-Send-Key = 0x357e3f8c2f1f0e3b2fb7950d05db3955
	MS-MPPE-Encryption-Policy = 0x00000001
	MS-MPPE-Encryption-Types = 0x00000006
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
rad_recv: Accounting-Request packet from host 127.0.0.1 port 10670, id=38, length=270
	NAS-Identifier = "beta.skystar.com.ua"
	NAS-IP-Address = 127.0.0.1
	Acct-Session-Id = "595972-vlan50-3"
	NAS-Port = 3
	NAS-Port-Type = Ethernet
	Service-Type = Framed-User
	Framed-Protocol = PPP
	Calling-Station-Id = "6466b3e81b0d"
	NAS-Port-Id = "vlan50"
	mpd-link = "vlan50-3"
	Tunnel-Medium-Type:0 = IEEE-802
	Tunnel-Client-Endpoint:0 = "64:66:b3:e8:1b:0d"
	Acct-Status-Type = Start
	Framed-IP-Address = 172.16.50.2
	Framed-IP-Netmask = 255.255.255.255
	Framed-IPv6-Address = ::
	User-Name = "00002"
	Acct-Multi-Session-Id = "595972-B-1"
	mpd-bundle = "B-1"
	mpd-iface = "ng0"
	mpd-iface-index = 7
	Acct-Link-Count = 1
	Acct-Authentic = RADIUS
# Executing section preacct from file /usr/local/etc/raddb/sites-enabled/default
+group preacct {
++[preprocess] = ok
[acct_unique] Hashing 'NAS-Port = 3,NAS-Identifier = "beta.skystar.com.ua",NAS-IP-Address = 127.0.0.1,Acct-Session-Id = "595972-vlan50-3",User-Name = "00002"'
[acct_unique] Acct-Unique-Session-ID = "050d416d1eec652d".
++[acct_unique] = ok
+} # group preacct = ok
# Executing section accounting from file /usr/local/etc/raddb/sites-enabled/default
+group accounting {
++[exec] = noop
[attr_filter.accounting_response] 	expand: %{User-Name} -> 00002
attr_filter: Matched entry DEFAULT at line 12
++[attr_filter.accounting_response] = updated
+} # group accounting = updated
Sending Accounting-Response of id 38 to 127.0.0.1 port 10670
Finished request 1.
Cleaning up request 1 ID 38 with timestamp +14
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 44 with timestamp +14
Ready to process requests.
rad_recv: Accounting-Request packet from host 127.0.0.1 port 10671, id=95, length=318
	NAS-Identifier = "beta.skystar.com.ua"
	NAS-IP-Address = 127.0.0.1
	Acct-Session-Id = "595895-vlan50-4"
	NAS-Port = 4
	NAS-Port-Type = Ethernet
	Service-Type = Framed-User
	Framed-Protocol = PPP
	Calling-Station-Id = "6466b3e81b0d"
	NAS-Port-Id = "vlan50"
	mpd-link = "vlan50-4"
	Tunnel-Medium-Type:0 = IEEE-802
	Tunnel-Client-Endpoint:0 = "64:66:b3:e8:1b:0d"
	Framed-IP-Address = 172.16.50.2
	Framed-IP-Netmask = 255.255.255.255
	Framed-IPv6-Address = ::
	User-Name = "00002"
	Acct-Multi-Session-Id = "595895-B-2"
	mpd-bundle = "B-2"
	mpd-iface = "ng1"
	mpd-iface-index = 8
	Acct-Link-Count = 1
	Acct-Authentic = RADIUS
	Acct-Status-Type = Stop
	Acct-Terminate-Cause = Lost-Service
	Acct-Session-Time = 130
	Acct-Input-Octets = 78
	Acct-Input-Packets = 6
	Acct-Input-Gigawords = 0
	Acct-Output-Octets = 2845
	Acct-Output-Packets = 37
	Acct-Output-Gigawords = 0
# Executing section preacct from file /usr/local/etc/raddb/sites-enabled/default
+group preacct {
++[preprocess] = ok
[acct_unique] Hashing 'NAS-Port = 4,NAS-Identifier = "beta.skystar.com.ua",NAS-IP-Address = 127.0.0.1,Acct-Session-Id = "595895-vlan50-4",User-Name = "00002"'
[acct_unique] Acct-Unique-Session-ID = "9aef731b53a7fa26".
++[acct_unique] = ok
+} # group preacct = ok
# Executing section accounting from file /usr/local/etc/raddb/sites-enabled/default
+group accounting {
++[exec] = noop
[attr_filter.accounting_response] 	expand: %{User-Name} -> 00002
attr_filter: Matched entry DEFAULT at line 12
++[attr_filter.accounting_response] = updated
+} # group accounting = updated
Sending Accounting-Response of id 95 to 127.0.0.1 port 10671
Finished request 2.
Cleaning up request 2 ID 95 with timestamp +67

IPFW:

ipfw pipe show

08101:   5.240 Mbit/s    0 ms burst 0 
q139173 32 KB 0 flows (1 buckets) sched 73637 weight 0 lmax 0 pri 0 droptail
 sched 73637 type FIFO flags 0x0 0 buckets 0 active
10000: 257.920 Mbit/s    0 ms burst 0 
q141072  50 sl. 0 flows (1 buckets) sched 75536 weight 0 lmax 0 pri 0 droptail
 sched 75536 type FIFO flags 0x0 0 buckets 0 active
10001: 257.920 Mbit/s    0 ms burst 0 
q141073  50 sl. 0 flows (1 buckets) sched 75537 weight 0 lmax 0 pri 0 droptail
 sched 75537 type FIFO flags 0x0 0 buckets 0 active
00101:   5.240 Mbit/s    0 ms burst 0 
q131173 32 KB 0 flows (1 buckets) sched 65637 weight 0 lmax 0 pri 0 droptail
 sched 65637 type FIFO flags 0x0 0 buckets 0 active


ipfw list

00004 allow ip from table(2) to 8.8.8.8 dst-port 53 via vlan50
00004 allow ip from 8.8.8.8 to table(2) src-port 53 via vlan50
00004 allow ip from table(2) to me dst-port 80 via vlan50
00004 allow ip from me to table(2) src-port 80 via vlan50
00004 allow ip from table(2) to 8.8.8.8 dst-port 53 via vlan54
00004 allow ip from 8.8.8.8 to table(2) src-port 53 via vlan54
00004 allow ip from table(2) to me dst-port 80 via vlan54
00004 allow ip from me to table(2) src-port 80 via vlan54
00005 fwd 127.0.0.1,80 ip from 172.32.0.0/16 to not me dst-port 80
00005 fwd 127.0.0.1,443 ip from 172.32.0.0/16 to not me dst-port 443
00006 fwd 127.0.0.1,80 ip from table(47) to not me dst-port 80
06000 nat 1 ip from table(2) to not table(9) out xmit em0
06001 nat 1 ip from any to me in recv em0
12000 pipe tablearg ip from table(3) to any via vlan50 in
12000 pipe tablearg ip from table(3) to any via vlan54 in
12001 pipe tablearg ip from any to table(4) via vlan50 out
12001 pipe tablearg ip from any to table(4) via vlan54 out
65533 deny ip from table(2) to any via vlan54
65533 deny ip from table(2) to any via vlan50
65535 allow ip from any to any


ipfw table all list

--- table(2), set(0) ---
172.16.0.0/16 0
--- table(3), set(0) ---
172.16.50.2/32 0
172.16.54.3/32 101
--- table(4), set(0) ---
172.16.50.2/32 0
172.16.54.3/32 8101
--- table(9), set(0) ---
--- table(32), set(0) ---
--- table(47), set(0) ---
Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від Zend
      Продам сабж.
      2 контроллера CA07336-C001, в каждом по одном интерфейсном модуле CA07336-C009 (2 x 1Gbps iSCSI)
      HDD: 24 x 900GB SAS 10K
      Исправен.
      С ним могу продать шкафчик того же вендора.
       
      Стоимость - $4000, торг
       

    • Від Dilan
      Собственно ищу кто сделает такую связку с нуля под ключ. Тз высылаю в личку. Заранее спасибо.

×
×
  • Створити нове...