Перейти до

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


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

Бачив, але бігати по селі і переналаштовувати марежеві, роутери і т.п. бажання немає

Ага, коли провайдери з пятизначними кількостями абонентів мігрують на якусь біллінгову систему, вони точно не "бігають по селі" а спочатку думають про конвертацію абонбази. Благо простих як дошка засобів для цього передбачено цілу купу - від прямої роботи з базою до зручної "консолі розробника". Якщо в провайдера нема відповідних фахівців здатних просто зробити з одної БД іншу - вони просто звертаються до розробника. Є підозра що останній точно знає як в фіналі має виглядати цілістна сконвертована БД. В нормі перехід в продакшні займає рівно стільки часу аби переткнути кабель з одного тазіка в інший.

Так здогадуюсь процес "міграції" ви розумієте як "сісти і нареєструвати руками Х абонентів клікаючи мишою". Ок.

 

Ви придумали нову назву для діапазону IP адрес?

Ні, просто хоч трохи орієнтуюсь в термінології. То сабнети.

 

In the context of the Internet addressing structure, an address pool is a set of Internet Protocol addresses available at any level in the IP address allocation hierarchy. At the top level, the IP address pool is managed by the Internet Assigned Numbers Authority (IANA). The total IPv4 address pool contains 4294967296 (232) addresses, while the size of the IPv6 address pool is 2128 (340282366920938463463374607431768211456) addresses.

Думаю перекладете самостійно.

 

у NMLEASES можна вказати два місця звідки витягувати невідомі ІР?

Хвилини 4 часу на таке потрібно. Можете назвати хоч одну причину навіщо це може бути потрібним хочаб одному адекватному провайдеру? Ключове слово - провайдеру.

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 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

процес "міграції"

ключове слово міграція, від бази до бази.

З чого мігрувати якщо все втикнуто в роутер мікротік і так летить,(25 машин в мережі) тому що з початку все робилося на 4 компа, щоб поганяти контру по мережі і дати теті інтернету. про фінансову вигоду тоді і мови не було, як і поняття про будування мережі.

що нагуглив то набудував + тяга до збочень :rolleyes: = маєм, що маєм.

тепер перелаштую там де сильно криво зліпив, порегаю абонів і буде мені щастя) :)

 

Можете назвати хоч одну причину навіщо це може бути потрібним хочаб одному адекватному провайдеру?

з нормально побудованою мережею такої потреби немає, я просто запитав, а раптом можна.

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

Одного не можу зрозуміти - звідки звичка реплікувати на себе загальнодержавні проблеми? :(

В себе їх категорично простіше вирішити і забути ніж в глобальних масштабах.

 

тепер перелаштую там де сильно криво зліпив

З того і варто починати - за звичай більшість проблем криється тяжкому наслідді.

 

(25 машин в мережі)

Памятаю "проблема" була 7к юзерів в московії перетягнути з з самопала і pppoe на ubilling з dhcp - а це я навіть не знаю як називається, але точно не "проблемою".

 

з нормально побудованою мережею такої потреби немає

От бачите - самі собі і визначили шлях до подальшого розвитку, що якраз добре. :)

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

Містика з МС (принаймі для мене, ще з перших спроб установки Убілінга, уже писав вище).

 

переставив усе начисто (оффлайн).

10 хв і білінг з вебморди налаштований, усе фунциклірує.

 

pkg_add -K -rf mc

незахотів ставитися, толком не написав чому.

я спробував

cd /usr/ports/misc/mc
make config
make install clean

непідійшла версія PCRE-8.31, тіпа PCRE-8.32 має бути, на цім установка МС стала.

Мені за кілька хвилин йти треба було, я по шурику фрю переставив і в онлайн режимі запустив установку убілінга, прийшов усе стояло, відстроїв - усе працює.

 

знов ставити МС

 

cd /usr/ports/misc/mc
make config
make install clean

 

поставив .. перегрузив ... інет у юзера пропав(

нат піднявся, в ipfw 3 і 4 табличках адрес користувача є :wacko:

пінг з фрі на 8.8.8.8 є.

 

власне переставити усе начисто за 1 годину не проблема і не

реплікувати на себе загальнодержавні проблеми

але з консолі я задовбуся по ФС ходити і правити конфіги усьго решту.

Ссылка на сообщение
Поделиться на других сайтах
незахотів ставитися, толком не написав чому.

він не хоче оскверняти сервер - арійці використовують sh =)

 

але з консолі я задовбуся по ФС ходити і правити конфіги усьго решту.

хвилин 20 грання для достроювання "всього" після чого забувається шо туди шелл є.

 

Давайте вгадаю FreeBSD 8.2 i386?

Ссылка на сообщение
Поделиться на других сайтах
Давайте вгадаю FreeBSD 8.2 i386?

FreeBSD 8.3-RELEASE i386

перший пост, там посилання звідки качав

хвилин 20 грання для достроювання "всього" після чого забувається шо туди шелл є.

:wacko: ну щож треба так буду

 

ps. кому 20 хв кому цілий день з гуглом

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

і прийшов я з весілля з бодуном страшнезним

і переставив я фрю начисто

і почав шукати команди консольні до фряхи

і не правились мені конфіги без бубна адмінського

і знайшов я мануал як той бубин зробити

і прочитав молитву сісадмінську наніч

і піду я спати бо в консолі на п'яну голову нічого незроблю.

 

ps. епілептичний припадок після ще однієї невдалої спроби прикрутити МС зважаючи на

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

оновити порти - ідея nightfly

portsnap fetch
portsnap extract
portsnap update

і мс ставиться гладко

 

cd /usr/ports/misc/mc
make config
make install clean

 

Може варто добавити в доку UHW

для роботи сервісу UHW необхідно щоб був запущений DNS сервер.

наприклад в

/etc/rc.conf

додати

named_enable="YES"

 

і підправити конфіг

/etc/namedb/named.conf

listen-on {
172.32.0.1; ...;;
};

 

обгрунтувати?

мій любимий МС є і я узявся все строїти начисто

UHW заворот неспрацював, я прикинув, що може заворот не працює з невідомими доменами.

підправив конфіг намед і запустив його, заворот запрацював на ура.

для певності ребутнув сервер без автозапуску намед, заворот знову заклинило, запустив намед все завелось.

 

ps а раптом хтось не захоче віртуал хости у себе піднімати

Ссылка на сообщение
Поделиться на других сайтах
UHW необхідно щоб був запущений DNS сервер.

не бачу в принципі взаємозвязку - якшо ви про

 

option domain-name-servers 172.32.0.1;

так це самоочевидно, хоча з тим же успіхом то може бути і 8.8.8.8 до якого просто треба буде відкрити доступ і проНАТити.

 

і підправити конфіг

ви б прочитали, що там написано над listen-on

 

 

мій любимий МС є і я узявся все строїти начисто

Відкрию таємницю - типовий DNS під типові потреби біллінг/стата/uhw в локальній зоні, "строїться" рівно в один рядок і триває це приблизно півтори секунди. Апач з всіми віртуалхостами - ще в районі трьох секунд. Що там ще "дуже складно і довго" робиться руками?

 

ps а раптом хтось не захоче віртуал хости у себе піднімати

а раптом йому взагалі не варто нічого робити?

 

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

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

ну, я хотів допомогти

хоча з тим же успіхом то може бути і 8.8.8.8 до якого просто треба буде відкрити доступ і проНАТити

із доки "Неизвестным MAC DHCP должен выдавать адреса из служебной подсети не имеющей доступа к интернету..."

так це самоочевидно

комусь очевидно, а хтось питатися буде чому не завертає?

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

Серед наших послуг є відповіді на запитання "і чому не завертає?", "як зробити аби пищ-пищ?" і "чому трава зелена?". Також для тих, хто не бажає думати про такі речі взагалі, і хоче, щоб все працювало як і належить, є постійні варіанти співпраці.

 

У будь якому випадку всі питання які можуть виникати в процесі встановлення та експлуатації вирішуються на рівні рефлексів, молодшим адмінським персоналом який хоч трохи підпадає під мінімальні рекомендації з FAQ. Звичайно можна попросити адмініструвати мережу і прибиральницю Зіну, але наскільки показує досвід, кількох сотень нормальних телекомів - такі рішення не є популярними і роботи від яких залежить функціонування мережі в цілому якось ніби прийнято доручати відповідно кваліфікованому персоналу.

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

Сьогодні замінив мікротік Убілінгом, процес пройшов гладко.

чий МАС знав сам зереєстрував, чий незнав - перезвонили :) UHW рулит!

я тепер найкрутіший доморощений провайдер з роздачею ДСЛ B)

 

ВЕЛИКЕ СПАСИБІ Команді розробників Убілінга і nightfly особисто за допомогу.

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

Моніторинг сигналу абонентів на Mikrotik

які умови щоб модуль працював?

 

у мене на мікротіку LAN з WLAN в бріджі

 

altet.ini

MTSIGMON_ENABLED=1

 

# snmpwalk -c mgo -v2c 192.168.1.48 .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: RouterOS RB Groove A-2Hn

 

 

post-4093-0-10555800-1359717380_thumb.jpg

post-4093-0-73642100-1359717396_thumb.jpg

 

в результаті абсолютно чиста сторінка навіть без меню білінга

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

Хм, все виглядає начебто нормально.

А покажіть но, що виходить в результаті виконання наступного коду з PHP консолі ("Консоль розробника" -> "PHP консоль") :

 

function zb_MsmDeviceQuery($ip,$community) {
 $oid='.1.3.6.1.4.1.14988.1.1.1.2.1.3';
 $mask_mac=false;
 $result=array();

 @$rawsnmp=snmpwalkoid($ip, $community, $oid);

 if (!empty($rawsnmp)) {
	 if (is_array($rawsnmp)) {
			 foreach ($rawsnmp as $indexOID => $rssi) {
				 $oidarray=explode(".", $indexOID);
				 $end_num=sizeof($oidarray);
				 $mac='';

				 for ($counter=2;$counter<8;$counter++) {
						 $temp=sprintf('%02x', $oidarray[$end_num-$counter]);

						 if (($counter <5) && $mask_mac)
								 $mac=":xx$mac";
						 else if ($counter==7)
								 $mac="$temp$mac";
						 else
								 $mac=":$temp.$mac";
				 }


				 $mac=str_replace('.','',$mac);
				 $mac=trim($mac);
				 $rssi=str_replace('INTEGER:','',$rssi);
				 $rssi=trim($rssi);
				 $result[$mac]=$rssi;

			 }
	 }
 }

 return ($result);

}
$snmpData=zb_MsmDeviceQuery('192.168.1.48','mgo');
debarr($snmpData);

 

якщо фокус не вдався, значить пробуємо максимально просто:

 

$rawsnmp=snmpwalkoid('192.168.1.48', 'mgo', '.1.3.6.1.4.1.14988.1.1.1.2.1.3');
debarr($rawsnmp);

 

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

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

знову порожня сторінка

 

 


# rawsnmp=snmpwalkoid('192.168.1.48', 'mgo', '.1.3.6.1.4.1.14988.1.1.1.2.1.3');
Badly placed ()'s.
# Badly placed ()'s.
Unmatched '.
# debarr($rawsnmp);
Badly placed ()'s.
mg# Badly placed ()'s.
Unmatched '.

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

Значить виконуємо останній маленький шматок в "PHP консолі" паралельно позирюючи в tail -F /var/log/httpd-error.log

Є чуйка, що PHP може бути зібрано без SNMP.

 

 

Badly placed ()'s.

 

ви, що насправді додумались ото тицьнути в шелл? :D

Ссылка на сообщение
Поделиться на других сайтах
ви, що насправді додумались ото тицьнути в шелл?

упс я недумаючи :rolleyes:

 

в ПХП консолі

$rawsnmp=snmpwalkoid('192.168.1.48', 'mgo', '.1.3.6.1.4.1.14988.1.1.1.2.1.3');
debarr($rawsnmp);

tail -F /var/log/httpd-error.log

нічого нового не з'являється при спробі виконати скрипт

 

на сторінці

Fatal error: Call to undefined function snmpwalkoid() in /usr/local/www/apache22/data/billing/modules/general/sqlconsole/index.php(193) : eval()'d code on line 1

 

Є чуйка, що PHP може бути зібрано без SNMP.

 

я SNMP тільки що поставив, його небуло. В phpinfo(); згадок про SNMP немає

Ссылка на сообщение
Поделиться на других сайтах
Fatal error: Call to undefined function snmpwalkoid() in /usr/local/www/apache22/data/billing/modules/general/sqlconsole/index.php(193) : eval()'d code on line 1

повторююсь

 

Є чуйка, що PHP може бути зібрано без SNMP.

 

я SNMP тільки що поставив

пофіг

 

php -m думаю повинно наштовхнути вас на думку, що PHP таки зібрано без snmp

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

пофіг

я й про то кажу, що небуло SNMP з пхп поставлено PHP зібрано без snmp

 

напевно покищо обійдуся без моніторингу.

немає бажання переставляти php на робочому сервері.

зберу ще інфи, що доставити-переставити, потім усе разом переставлю попередньо усе забекапивши.

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

Корпоративні користувачі.

 

Припустимо ситуація така:

у клієнта є два компи підєднані до свіча, тудаж іде кабель від мене.

Оба компа зареєстровані і зв'язані в білінгу.

Оба компа получают по 2Mb/512k одночасно.

 

На мікротіку в одну чергу (2Mb/512k) можна було додати дві IP адреси тобто сумарна швидкість на два компа не перевищувала швидкість тарифу.

Тепер получається клієнт платить за одну швидкість одного тарифу а фактично одержує у два рази більше.

 

Варіант 1 замінити свіч на роутер і відновити справедливість.

Варіант 2 засобами білінга відновити справедливість.

 

Питання: такі засоби в убілінгу є?

Ссылка на сообщение
Поделиться на других сайтах
Варіант 1 замінити свіч на роутер і відновити справедливість.

Нормально, а ще досить кльово торгувати роутерами.

 

Варіант 2 засобами білінга відновити справедливість.

Можна, чому ж ні - але це досить безглузда ідея насправді. Реалізується написанням простої обгортки в OnConnect над GetCF. Але повторююсь - це безглуздо.

 

немає бажання переставляти php на робочому сервері.

робиться в 1 рядок, всього-то один модуль доставити з php-extensions.

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

я йому уже свіч продав того року :facepalm:

Можна, чому ж ні - але це досить безглузда ідея насправді

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

Продам ще й роутер :)

робиться в 1 рядок, всього-то один модуль доставити з php-extensions.

я нагуглив

cd /usr/ports/lang/php-extensions/
make deinstall
make install

в процесі інсталу в діалозі конфігу вибрати потрібні опціїї (SNMP) решта як себе поведуть х-зна.

в міру свого невігластва я припускаю, що усе правильно поставлю з Х спроби. Тому бекап вінта.

 

ps. якщо поділитесь одним рядком який перезбере PHP буду безмежно вдячний.

Ссылка на сообщение
Поделиться на других сайтах
я йому уже свіч продав того року :facepalm:

ліпше б ділдо

 

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

ну, звичайно - є така опція USER_WITH_DILDO=1

 

ps. якщо поділитесь одним рядком який перезбере PHP буду безмежно вдячний.

cd /usr/ports/lang/php5-extensions/ && make WITH_MYSQL=yes WITH_MBSTRING=yes WITH_ICONV=yes WITH_GD=yes WITH_BCMATH=yes WITH_XML=yes WITH_SNMP=yes BATCH=yes install

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

:lol: :lol:

 

cd /usr/ports/lang/php5-extensions/ && make WITH_MYSQL=yes...

 

моніторинг з мікротіка працює. - багато багато позитивних емоцій!!!

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

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

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

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

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

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

Вхід

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

Войти сейчас
  • Зараз на сторінці   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
      Собственно ищу кто сделает такую связку с нуля под ключ. Тз высылаю в личку. Заранее спасибо.

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