{"id":30399,"date":"2019-10-31T21:35:20","date_gmt":"2019-10-31T18:35:20","guid":{"rendered":"https:\/\/prohoster.info\/blog\/voip-zoopark-provisioning\/"},"modified":"2019-10-31T21:35:20","modified_gmt":"2019-10-31T18:35:20","slug":"voip-zoopark-provisioning","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/voip-zoopark-provisioning","title":{"rendered":"VoIP zoo \u2014 Provisioning","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h4>Wprowadzenie<\/h4>\n<p>\nPewnego razu kierownictwo zatwierdzi\u0142o eksperyment zwi\u0105zany z wdro\u017ceniem telefonii IP w naszej firmie. Poniewa\u017c moje do\u015bwiadczenie w tej dziedzinie by\u0142o minimalne, zadanie wzbudzi\u0142o we mnie ogromne zainteresowanie, wi\u0119c zanurzy\u0142em si\u0119 w badanie r\u00f3\u017cnych aspekt\u00f3w tematu. Po zako\u0144czeniu tego procesu postanowi\u0142em podzieli\u0107 si\u0119 zdobyt\u0105 wiedz\u0105 \u2014 z nadziej\u0105, \u017ce komu\u015b si\u0119 przyda. I tak\u2026<\/p>\n<h4>Dane \u017ar\u00f3d\u0142owe<\/h4>\n<p>\nJako IP-ATS wybrano i wdro\u017cono Asterisk. Park telefon\u00f3w sk\u0142ada si\u0119 z urz\u0105dze\u0144 Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400, Dlink DPH-150S(E)\/F3, Yealink T19 i T21. Taki rozrzut wynika z faktu, \u017ce w ramach eksperymentu podj\u0119to decyzj\u0119 o pr\u00f3bie r\u00f3\u017cnych urz\u0105dze\u0144, aby wyrobi\u0107 swoje zdanie na temat stosunku ceny\/jako\u015bci\/komfortu.<\/p>\n<h4>Zadanie<\/h4>\n<p>\nMaksymalnie upro\u015bci\u0107 i zunifikowa\u0107 proces konfiguracji nowych aparat\u00f3w. Wszystkie telefony powinny by\u0107 zsynchronizowane czasowo, mie\u0107 ksi\u0105\u017ck\u0119 telefoniczn\u0105, wczytywan\u0105 z <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/server\/dts-los-angeles\/\"   title=\"serwera\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3475\">serwera<\/a> i zapewnia\u0107 dost\u0119p do ustawie\u0144 dla administratora.<\/p>\n<p>Rozwi\u0105zanie tego problemu jest proste \u2014 wdro\u017cy\u0107 automatyczn\u0105 konfiguracj\u0119 telefon\u00f3w, tzw. Provisioning. W\u0142a\u015bciwie, o mojej realizacji tej wspania\u0142ej funkcji b\u0119dzie mowa.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Konfiguracja tftpd, dhcpd<\/h4>\n<p>\nDo dostarczania ustawie\u0144 telefon\u00f3w wybra\u0142em tftp jako uniwersaln\u0105 opcj\u0119, wspieran\u0105 przez wszystkie platformy, \u0142atw\u0105 w konfiguracji i zarz\u0105dzaniu.<\/p>\n<p>Specjalna konfiguracja dla tftp nie by\u0142a wymagana. Zainstalowa\u0142em standardowy tftpd i umie\u015bci\u0142em wszystkie niezb\u0119dne pliki w jego g\u0142\u00f3wnym katalogu.<br \/>\nPliki z ustawieniami umie\u015bci\u0142em w katalogach zgodnie z producentem telefonu. Niestety, urz\u0105dzenie Cisco nie mog\u0142o znale\u017a\u0107 swojej teczki, wi\u0119c musia\u0142em je przechowywa\u0107 w g\u0142\u00f3wnym katalogu.<\/p>\n<p>Aby wskaza\u0107 telefonami lokalizacj\u0119 serwera tftp, skorzysta\u0142em z option-66. Dodatkowo podzieli\u0142em je na oddzielne klasy wed\u0142ug producenta. Ka\u017cda klasa otrzyma\u0142a sw\u00f3j w\u0142asny segment adres\u00f3w i indywidualny folder na pliki konfiguracyjne. Co ciekawe, urz\u0105dzenia D-link musia\u0142em identyfikowa\u0107 po adresach MAC, poniewa\u017c nie podaj\u0105 informacji o producencie w zapytaniu dhcp.<\/p>\n<p><b class=\"spoiler_title\">Fragment dhcpd.conf<\/b><\/p>\n<pre># \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \noption option-66 code 66 = text;\n\nclass &quot;panasonic&quot; {\n\tmatch if substring (option vendor-class-identifier,0,9) = &quot;Panasonic&quot;;\n\toption option-66 &quot;10.1.1.50\/panasonic\/&quot;;\n}\nclass &quot;cisco&quot; {\n\tmatch if substring (option vendor-class-identifier,0,36) = &quot;Cisco Systems, Inc. IP Phone CP-7906&quot;;\n\toption option-66 &quot;10.1.1.50\/cisco\/&quot;;\n}\n\nclass &quot;grandstream&quot; {\n match if substring (option vendor-class-identifier,0,11) = &quot;Grandstream&quot;;\n option option-66 &quot;10.1.1.50\/grandstream\/&quot;;\n}\n\nclass &quot;dlink&quot; {\n\tmatch if (binary-to-ascii (16,8,&quot;:&quot;,substring(hardware,1,4)) = &quot;c8:d3:a3:8d&quot;) or\n\t(binary-to-ascii (16,8,&quot;:&quot;,substring(hardware,1,4)) = &quot;90:94:e4:72&quot;);\n\toption option-66 &quot;10.1.1.50\/dlink\/&quot;;\n}\n\nclass &quot;yealink&quot; {\n                match if substring (option vendor-class-identifier,0,7) = &quot;Yealink&quot;;\n                option option-66 &quot;10.1.1.50\/yealink\/&quot;;\n        }\n\n<\/pre>\n<p>Telefony musia\u0142y zosta\u0107 si\u0142\u0105 wy\u0142\u0105czone z og\u00f3lnej puli. W przeciwnym razie nie chcia\u0142y wsi\u0105\u015b\u0107 do swojego \u00ab\u017cabiego\u00bb miejsca.<br \/>\n<b class=\"spoiler_title\">Przyk\u0142ad ustawie\u0144 podsieci<\/b><\/p>\n<pre>\npodsie\u0107 10.1.1.0 maska 255.255.255.0 {\n        opcja routery 10.1.1.1;\n        pul {\n                zabrania cz\u0142onkom &quot;cisco&quot;;\n                zabrania cz\u0142onkom &quot;panasonic&quot;;\n                zabrania cz\u0142onkom &quot;dlink&quot;;\n                zakres 10.1.1.230 10.1.1.240;\n        }\n        pul {\n                pozwala cz\u0142onkom &quot;cisco&quot;;\n                zakres 10.1.1.65 10.1.1.69;\n        }\n        pul {\n                pozwala cz\u0142onkom &quot;panasonic&quot;;\n                zakres 10.1.1.60 10.1.1.64;\n        }\n        pul {\n                pozwala cz\u0142onkom &quot;dlink&quot;;\n                zakres 10.1.1.55 10.1.1.59;\n        }\n}\n<\/pre>\n<p>Po ponownym uruchomieniu wszystkich zaanga\u017cowanych us\u0142ug telefony pewnie skierowa\u0142y si\u0119 po ustawienia do przydzielonego im serwera tftp. Pozosta\u0142o tylko umie\u015bci\u0107 je tam.<\/p>\n<h4>Cisco 7906<\/h4>\n<p>\nTe urz\u0105dzenia otrzyma\u0142em w fabrycznym opakowaniu. Musia\u0142em je przeprogramowa\u0107, aby po\u0142\u0105czy\u0107 z asterisk&#8217;em. Ale to osobna historia. W danym przypadku do skonfigurowania urz\u0105dzenia, zgodnie z instrukcj\u0105, stworzy\u0142em w katalogu tftp-serwera plik SEPAABBCCDDEEFF.cnf.xml. Gdzie AABBCCDDEEFF \u2014 adres MAC urz\u0105dzenia.<\/p>\n<p>O konfiguracji telefon\u00f3w Cisco napisano ju\u017c wiele razy, wi\u0119c po prostu zostawi\u0119 dzia\u0142aj\u0105cy plik z ustawieniami.<br \/>\n<b class=\"spoiler_title\">Ustawienia dla Cisco<\/b><\/p>\n<pre>\ntrue\n SIP\n root\n ADMIN_PWD\n\n \n D-M-Y\n Czas standardowy \u015brodkowego Pacyfiku\n     \n         \n             10.1.1.4\n              Unicast\n          \n     \n \n\n   \n 10.1.1.50\n \n 2000\n 5060\n 5061\n \n 10.1.1.50\n   \n \n\n Wy\u0142\u0105czone\n\n\n120\n \n\n \n true\n x-cisco-serviceuri-cfwdall\n x-cisco-serviceuri-pickup\n x-cisco-serviceuri-opickup\n x-cisco-serviceuri-gpickup\n x-cisco-serviceuri-meetme\n x-cisco-serviceuri-abbrdial\n false\n 2\n true\n true\n 2\n 2\n 0\n true\n false\n \n \n 6\n 10\n 180\n 3600\n 5\n 120\n 120\n 5\n 500\n 4000\n 70\n true\n Brak\n \n1\n false\n true\n false\n false\n none\n 101\n 3\navt\n 3\n false\n false\n Telefon Cisco\n 2\n false\n 15000\n10\n true\n false\n 16384\n 32766\n\n \n 9\n 10.1.1.50\n 5060\n  2 \n 3\n false\n 3\n \n 4\n 5\n \n true\n true\n false\n true\n \n \n U\u017cytkownik #103\n 103\n 103\n SIP_PWD\n \n \n$num\n5060\n 184\n 0\n dialplan.xml\n \n\n *0#\n true\n 2\n \n\n\n false\n false\n 1\n 0\n 1\n 0\n 0\n 0\n 1\n 0\n 1,7\n 09:00\n 12:00\n 01:00\n 1\n 2\n 10.1.1.50\n 0\n 100\n 50\n \n 0\n 0\n 5\n 1\n 10.1.1.50\n 0\n 0\n 0\n 0\n 0\n 0\n 1\n 1\n \n1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37\n\n Rosyjski_Rosja\n ru_RU\n \n utf-8\n \n\n \n \n \n \n1\n 0\n \n http:\/\/10.1.1.50\/provisioning\/cisco-services.xml\n \n \n \n \n http:\/\/10.1.1.50\/provisioning\/cisco-services.xml\n 96\n 0\n 96\n 2\n 0\n 0\n \n 3804\n &lt;!-- 10.1.1.50 --&gt;\n  \n\n false\n 1\n<\/pre>\n<p><\/p>\n<h4>D-Link DPH-150S\/F3<\/h4>\n<p>\nJe\u015bli zamierzasz zakupi\u0107 telefon z tej serii, zachowaj ostro\u017cno\u015b\u0107, automatyczna konfiguracja jest obs\u0142ugiwana tylko w urz\u0105dzeniach 150S\/F3. Nie znalaz\u0142em tej funkcji w modelu 150S\/F2, kt\u00f3ry trafi\u0142 w moje r\u0119ce.<\/p>\n<p>Plik konfiguracyjny mo\u017ce by\u0107 zar\u00f3wno w formacie xml, jak i w formacie zwyk\u0142ego tekstu. W przypadku xml istnieje jeden warunek: tag musi znajdowa\u0107 si\u0119 na pocz\u0105tku wiersza, w przeciwnym razie parser go zignoruje, a warto\u015b\u0107 odpowiedniego parametru nie zostanie zmieniona.<\/p>\n<p>Do konfiguracji telefonu u\u017cywane s\u0105 dwa pliki. f0D00580000.cfg \u2014 do przechowywania ustawie\u0144 wszystkich telefon\u00f3w oraz 00112233aabb.cfg (adres MAC zapisany ma\u0142ymi literami) dla ustawie\u0144 indywidualnych. Ustawienia indywidualne maj\u0105 oczywi\u015bcie wy\u017cszy priorytet.<\/p>\n<p>Pe\u0142ny zestaw ustawie\u0144 zawiera ponad tysi\u0105c linii, aby nie przyt\u0142acza\u0107 artyku\u0142u, opisz\u0119 minimum wystarczaj\u0105cego zestawu ustawie\u0144. <\/p>\n<p>Obowi\u0105zkowe s\u0105 w\u0119ze\u0142 g\u0142\u00f3wny <b>VOIP_CONFIG_FILE<\/b> i wbudowany w niego w\u0119ze\u0142 <b>version<\/b>. Ustawienia b\u0119d\u0105 stosowane tylko wtedy, gdy wersja pliku jest wy\u017csza ni\u017c bie\u017c\u0105ce ustawienia w urz\u0105dzeniu. Mo\u017cesz uzyska\u0107 t\u0119 warto\u015b\u0107 przez interfejs .web urz\u0105dzenia w sekcji maintenance (zarz\u0105dzanie systemem). Dla telefon\u00f3w z ustawieniami fabrycznymi w obu przypadkach to 2.0002. Ponadto, wersja pliku indywidualnego musi by\u0107 wi\u0119ksza od wersji pliku og\u00f3lnego.<\/p>\n<p>Na pocz\u0105tku przedstawiam plik z og\u00f3ln\u0105 konfiguracj\u0105 dla wszystkich telefon\u00f3w. W zasadzie przechowuje on wszystkie ustawienia, plik indywidualny b\u0119dzie odpowiada\u0142 tylko za numer telefonu i napis na ekranie. <\/p>\n<p>W dw\u00f3ch blokach przedstawionych poni\u017cej ustawia si\u0119 parametry strefy czasowej i synchronizacji czasu, pocz\u0105tkowy port dla RTP oraz w\u0142\u0105cza most sieciowy mi\u0119dzy portami WAN i LAN urz\u0105dzenia.<\/p>\n<p><b class=\"spoiler_title\">Fragment \u21161<\/b><\/p>\n<pre>\nDHCP\n2\n1\n1\n0\nVOIP\n10000\n200\n10.1.1.4\n1\n<time>71<\/time>\n<time>UCT_011<\/time>\n0\n60\n12\n1500\n\n\n1\n1\n<\/pre>\n<p>Nazwy parametr\u00f3w konfiguracji s\u0105 na tyle \"m\u00f3wi\u0105ce\", \u017ce nie trzeba ich dok\u0142adnie opisywa\u0107.<br \/>\n<b class=\"spoiler_title\">SIP dla jednej linii<\/b><\/p>\n<pre>\n5060\n\n\nSIP1\n10.1.1.50\n5060\n3600\n1\n10.1.1.50\n1\n0\nG711A,G711U,G722\n<\/pre>\n<p><b class=\"spoiler_title\">Ustawienia zdalnego zarz\u0105dzania<\/b><\/p>\n<pre>\n23\n80\n0\n443\n1\n0\n\n\n\nItem1\n10.1.1.152\n10.1.1.160\n\n\n\n\nAccount1\nadmin\nADMIN_PWD\n10\n\n\nAccount2\nguest\nGUEST_PWD\n5\n<\/pre>\n<p><b class=\"spoiler_title\">Ustawienia telefonu<\/b><\/p>\n<pre>\n<menu>123<\/menu>\n123\n\n0\n112\nFirma\n5\n1\n30\n0\n<time>0<\/time>\n1\n0,,1\n0\n0\n1\n\n\nXML-PBook1\nKsi\u0105\u017cka telefoniczna\nhttp:\/\/10.1.1.50\/provisioning\/dlink-phonebook.xml\n:\n0\n0\n\n\nprzyjaciel,dom,praca,biznes,ucze\u0144,kollega\n<\/pre>\n<p>Pozosta\u0142e ustawienia pozostan\u0105 \u201edomy\u015blne\u201d. Teraz ka\u017cdy telefon Dlink pod\u0142\u0105czony do sieci automatycznie przyjmie wsp\u00f3lny zestaw parametr\u00f3w. Aby ustawi\u0107 indywidualne ustawienia dla aparatu, potrzebny jest osobny plik. W nim trzeba tylko okre\u015bli\u0107 wymagane ustawienia dla pojedynczego abonenta.<br \/>\n<b class=\"spoiler_title\">ustawienia abonenta<\/b><\/p>\n<pre>\n2.0006\n\n\n\nSIP1\nUser #117\n117\n5060\n117\nSIP_PWD\n3600\n1\n5060\n117\nSIP_PWD\n<\/pre>\n<h4>Panasonic UT-KX123B<\/h4>\n<p>\nTe urz\u0105dzenia otrzymuj\u0105 ustawienia w nieco inny spos\u00f3b. Konfiguracja przechowywana jest w plikach tekstowych. Maksymalny rozmiar pliku konfiguracyjnego wynosi 120 KB. Niezale\u017cnie od liczby plik\u00f3w ich ca\u0142kowity rozmiar nie powinien przekracza\u0107 120 KB.<br \/>\nPlik konfiguracyjny sk\u0142ada si\u0119 z zestawu linii, na kt\u00f3re nak\u0142adaj\u0105 si\u0119 podane poni\u017cej warunki:<\/p>\n<ul>\n<li>Pierwsza linia zawsze zawiera komentarz, obejmuj\u0105cy nast\u0119puj\u0105c\u0105 sekwencj\u0119 znak\u00f3w (44 bajty):<br \/>\n# Panasonic SIP Phone Standard Format File #<br \/>\nSzesnastkowe przedstawienie tej sekwencji:<br \/>\n23 20 50 61 6E 61 73 6F 6E 69 63 20 53 49 50 20 50 68 6F 6E 65 20 53 74 61 6E 64 61 72 64 20 46 6F 72 6D 61 74 20 46 69 6C 65 20 23<br \/>\nAby zapobiec przypadkowemu zmianie ustalonej sekwencji znak\u00f3w, zaleca si\u0119 rozpocz\u0119cie pliku konfiguracyjnego od linii:<br \/>\n# Panasonic SIP Phone Standard Format File # DO NOT CHANGE THIS LINE!\n<\/li>\n<li>Pliki konfiguracyjne powinny ko\u0144czy\u0107 si\u0119 pust\u0105 lini\u0105.<\/li>\n<li>Ka\u017cda linia musi ko\u0144czy\u0107 si\u0119 sekwencj\u0105 \"\".<\/li>\n<li>Maksymalna d\u0142ugo\u015b\u0107 linii wynosi 537 bajt\u00f3w, w tym sekwencja \"\".<\/li>\n<li>Nast\u0119puj\u0105ce linie s\u0105 ignorowane:\n<ul>\n<li>linie przekraczaj\u0105ce limit 537 bajt\u00f3w;<\/li>\n<li>puste linie;<\/li>\n<li>linie komentarzy, zaczynaj\u0105ce si\u0119 od symbolu \"#\";<\/li>\n<\/ul>\n<\/li>\n<li>Linia ka\u017cdego parametru zapisywana jest w formie XXX=\"yyy\" (XXX: nazwa parametru, yyy: jego warto\u015b\u0107). Warto\u015b\u0107 musi by\u0107 uj\u0119ta w podw\u00f3jne cudzys\u0142owy.<\/li>\n<li>Podzia\u0142 linii parametr\u00f3w na kilka linii nie jest dozwolony. Spowoduje to b\u0142\u0105d przetwarzania pliku konfiguracyjnego i w rezultacie b\u0142\u0105d inicjalizacji.<\/li>\n<li>Warto\u015bci niekt\u00f3rych parametr\u00f3w musz\u0105 by\u0107 podawane osobno dla ka\u017cdej linii. Parametr z sufiksem \"_1\" w nazwie jest parametrem dla linii 1; \"_2\" \u2014 dla linii 2 itd.<\/li>\n<li>Maksymalna d\u0142ugo\u015b\u0107 nazwy parametru wynosi 32 znaki.<\/li>\n<li>Maksymalna d\u0142ugo\u015b\u0107 warto\u015bci parametru wynosi 500 znak\u00f3w, z wyj\u0105tkiem podw\u00f3jnych cudzys\u0142ow\u00f3w.<\/li>\n<li>W ci\u0105gu nie s\u0105 dozwolone \u017cadne spacje, z wyj\u0105tkiem przypadk\u00f3w, gdy warto\u015b\u0107 zawiera symbol spacji. <\/li>\n<li>Warto\u015bci niekt\u00f3rych parametr\u00f3w mo\u017cna poda\u0107 jako \u201epuste\u201d, aby ustawi\u0107 pust\u0105 warto\u015b\u0107 parametru.<\/li>\n<li>Parametry s\u0105 podawane w dowolnej kolejno\u015bci.<\/li>\n<li>Je\u015bli ten sam parametr jest podany w pliku konfiguracyjnym wi\u0119cej ni\u017c jeden raz, zastosowane zostanie pierwsze podane warto\u015b\u0107.<\/li>\n<\/ul>\n<p>Taki powa\u017cny zestaw wymaga\u0144 dotycz\u0105cych pliku konfiguracyjnego, szczerze m\u00f3wi\u0105c, mnie zmartwi\u0142. Moim zdaniem, realizacja interakcji z <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/server\/dts-prohoster\/\"   title=\"serwerem\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2960\">serwerem<\/a> zarz\u0105dzaniem w telefonach Panasonic jest niezwykle niewygodna. W tym zakresie telefon znacz\u0105co ust\u0119puje innym.<br \/>\nPo pierwszym w\u0142\u0105czeniu urz\u0105dzenia (lub po przywr\u00f3ceniu ustawie\u0144 fabrycznych) pr\u00f3buje ono za\u0142adowa\u0107 tzw. plik produktu (w tym przypadku KX-UT123RU.cfg), kt\u00f3ry powinien zawiera\u0107 \u015bcie\u017cki do pozosta\u0142ych plik\u00f3w konfiguracyjnych.<br \/>\n<b class=\"spoiler_title\">Plik produktu<\/b># Panasonic SIP Phone Standard Format File # DO NOT CHANGE THIS LINE!<\/p>\n<p>CFG_STANDARD_FILE_PATH=\"tftp:\/\/10.1.1.50\/panasonic\/{mac}.cfg\"<br \/>\nCFG_PRODUCT_FILE_PATH=\"tftp:\/\/10.1.1.50\/panasonic\/KX-UT123RU.cfg\"<br \/>\nCFG_MASTER_FILE_PATH=\"tftp:\/\/10.1.1.50\/panasonic\/master.cfg\"<\/p>\n<p>Po tym telefon wy\u015bwietli komunikat o pomy\u015blnym zako\u0144czeniu przygotowania i b\u0119dzie oczekiwa\u0142 na ponowne uruchomienie. A po ponownym uruchomieniu zacznie przetwarza\u0107 wymagane pliki konfiguracyjne.<\/p>\n<p>W pliku master.cfg zaleca si\u0119 podawanie og\u00f3lnych ustawie\u0144 dla wszystkich telefon\u00f3w. Tak jak w przypadku Dlink, wska\u017a\u0119 tylko niekt\u00f3re parametry. Nazwy pozosta\u0142ych parametr\u00f3w oraz ich warto\u015bci mo\u017cna znale\u017a\u0107 w dokumentacji na stronie producenta.<br \/>\n<b class=\"spoiler_title\">master.cfg<\/b>############################################################<br \/>\n# System Settings #<br \/>\n############################################################<br \/>\n## Login Account Settings<br \/>\nADMIN_ID=\"admin\"<br \/>\nADMIN_PASS=\"ADMIN_PWD\"<br \/>\nUSER_ID=\"user\"<br \/>\nUSER_PASS=\"USER_PWD\"<\/p>\n<p>## System Time Settings<br \/>\nNTP_ADDR=\"10.1.1.4\"<br \/>\nTIME_ZONE=\"660\"<br \/>\nDST_ENABLE=\"N\"<br \/>\nDST_OFFSET=\"60\"<br \/>\nDST_START_MONTH=\"3\"<br \/>\nDST_START_ORDINAL_DAY=\"2\"<br \/>\nDST_START_DAY_OF_WEEK=\"0\"<br \/>\nDST_START_TIME=\"120\"<br \/>\nDST_STOP_MONTH=\"10\"<br \/>\nDST_STOP_ORDINAL_DAY=\"2\"<br \/>\nDST_STOP_DAY_OF_WEEK=\"0\"<br \/>\nDST_STOP_TIME=\"120\"<br \/>\nLOCAL_TIME_ZONE_POSIX=\"\"<\/p>\n<p>## Syslog Settings<br \/>\nSYSLOG_ADDR=\"10.1.1.50\"<br \/>\nSYSLOG_PORT=\"514\"<br \/>\nSYSLOG_EVENT_SIP=\"6\"<br \/>\nSYSLOG_EVENT_CFG=\"6\"<br \/>\nSYSLOG_EVENT_VOIP=\"6\"<br \/>\nSYSLOG_EVENT_TEL=\"6\"<\/p>\n<p>## Provisioning Settings<br \/>\nOPTION66_ENABLE=\"Y\"<br \/>\nOPTION66_REBOOT=\"N\"<br \/>\nPROVISION_ENABLE=\"Y\"<br \/>\nCFG_STANDARD_FILE_PATH=\"tftp:\/\/10.1.1.50\/panasonic\/{mac}.cfg\"<br \/>\nCFG_PRODUCT_FILE_PATH=\"tftp:\/\/10.1.1.50\/panasonic\/KX-UT123RU.cfg\"<br \/>\nCFG_MASTER_FILE_PATH=\"tftp:\/\/10.1.1.50\/panasonic\/master.cfg\"<\/p>\n<p>############################################################<br \/>\n# Network Settings #<br \/>\n############################################################<br \/>\n## IP Settings<br \/>\nCONNECTION_TYPE=\"1\"<br \/>\nHOST_NAME=\"UT123\"<br \/>\nDHCP_DNS_ENABLE=\"Y\"<br \/>\nSTATIC_IP_ADDRESS=\"\"<br \/>\nSTATIC_SUBNET=\"\"<br \/>\nSTATIC_GATEWAY=\"\"<br \/>\nUSER_DNS1_ADDR=\"\"<br \/>\nUSER_DNS2_ADDR=\"\"<\/p>\n<p>## DNS Settings<br \/>\nDNS_QRY_PRLL=\"Y\"<br \/>\nDNS_PRIORITY=\"N\"<br \/>\nDNS1_ADDR=\"10.1.1.1\"<br \/>\nDNS2_ADDR=\"\"<\/p>\n<p>## HTTP Settings<br \/>\nHTTPD_PORTOPEN_AUTO=\"Y\"<br \/>\nHTTP_VER=\"1\"<br \/>\nHTTP_USER_AGENT=\"Panasonic_{MODEL}\/{fwver} ({mac})\"<br \/>\nHTTP_SSL_VERIFY=\"0\"<br \/>\nCFG_ROOT_CERTIFICATE_PATH=\"\"<\/p>\n<p>## XML Application Settings<br \/>\nXML_HTTPD_PORT=\"6666\"<br \/>\nXMLAPP_ENABLE=\"Y\"<br \/>\nXMLAPP_USERID=\"\"<br \/>\nXMLAPP_USERPASS=\"\"<br \/>\nXMLAPP_START_URL=\"\"<br \/>\nXMLAPP_INITIAL_URL=\" \"<br \/>\nXMLAPP_INCOMING_URL=\"\"<br \/>\nXMLAPP_TALKING_URL=\"\"<br \/>\nXMLAPP_MAKECALL_URL=\"\"<br \/>\nXMLAPP_CALLLOG_URL=\"\"<br \/>\nXMLAPP_IDLING_URL=\"\"<br \/>\nXMLAPP_LDAP_URL=\"<noindex>10.1.1.50\/provisioning\/panasonic-phonebook.xml<\/noindex>\u00bb<br \/>\nXMLAPP_LDAP_USERID=\"\"<br \/>\nXMLAPP_LDAP_USERPASS=\"\"<\/p>\n<p>W indywidualnym pliku konfiguracyjnym urz\u0105dzenia tradycyjnie pozostaj\u0105 tylko ustawienia abonenta.<br \/>\n<b class=\"spoiler_title\">aabbccddeeff.cfg<\/b>DISPLAY_NAME_1=\u201eU\u017cytkownik #168\u201d<\/p>\n<p>PHONE_NUMBER_1=\u201e168\u201d<br \/>\nSIP_URI_1=\u201e168\u201d<br \/>\nLINE_ENABLE_1=\u201eW\u0142\u0105czone\u201d<br \/>\nPROFILE_ENABLE_1=\u201eW\u0142\u0105czone\u201d<br \/>\nSIP_AUTHID_1=\u201e168\u201d<br \/>\nSIP_PASS_1=\u201eSIP_PWD\u201d<\/p>\n<p><\/p>\n<h4>Grandstream GXP-1400<\/h4>\n<p>\nUstawienia tych telefon\u00f3w s\u0105 przechowywane w jednym pliku xml o nazwie cfg{mac}.xml lub w zwyk\u0142ym pliku tekstowym o nazwie cfg{mac}. Ten telefon \u017c\u0105da tylko indywidualnego pliku konfiguracyjnego, wi\u0119c nie mo\u017cna zoptymalizowa\u0107 ustawie\u0144 poprzez umieszczenie ich w pliku wsp\u00f3lnym. Jeszcze jedn\u0105 cech\u0105 ustawienia Grandstream\u00f3w jest nazewnictwo parametr\u00f3w. Wszystkie s\u0105 ponumerowane i oznaczone jako P###. Na przyk\u0142ad:<\/p>\n<p>P1650 \u2013 odpowiada za interfejs webowy do zarz\u0105dzania telefonem (0 \u2013 HTTPS, 1 \u2013 HTTP)<br \/>\nP47 \u2013 adres serwera SIP do po\u0142\u0105czenia.<\/p>\n<p>Je\u015bli konfiguracja jest przechowywana w pliku tekstowym, parametry nie wymagaj\u0105 \u017cadnej grupowania i mog\u0105 by\u0107 w dowolnej kolejno\u015bci. Linie zaczynaj\u0105ce si\u0119 od # s\u0105 traktowane jako komentarze.<\/p>\n<p>W przypadku, gdy ustawienia s\u0105 przedstawione w formacie xml, musz\u0105 by\u0107 zagnie\u017cd\u017cone w elemencie  , kt\u00f3ry z kolei musi by\u0107 zagnie\u017cd\u017cony w . Wszystkie parametry s\u0105 zapisywane w postaci odpowiednich znacznik\u00f3w z warto\u015bci\u0105 parametru wewn\u0105trz.<br \/>\n<b class=\"spoiler_title\">Przyk\u0142ad konfiguracji<\/b><\/p>\n<pre>\n1\n    <!-- Nazwa konta. Nie mo\u017ce by\u0107 pusta. -->\n    109\n    <!-- Identyfikator SIP u\u017cytkownika -->\n    109\n    <!-- Identyfikator do autoryzacji -->\n    109\n    <!-- Has\u0142o do autoryzacji -->\n    SIP_PWD\n    <!-- Nazwa wy\u015bwietlana (John Doe) -->\n    User# 109\n<!-- Ustawienia og\u00f3lne -->\n        10.1.1.50\n        2\n   10.1.1.50<!-- serwer SIP linii 1 -->\n   0<!-- Wy\u0142\u0105czenie linii 2 -->\n   ADMIN_PWD<!-- has\u0142o administracyjne -->\n   USER_PWD<!-- has\u0142o do konsoli u\u017cytkownika -->\n   pl<!-- j\u0119zyk wy\u015bwietlania -->\n        0<!-- Uaktualnij z TFTP -->\n        10.1.1.50\/grandstream\n   1<!-- zablokuj konfiguracj\u0119 przez telefon (tylko podstawowe) -->\n   TZc-11<!-- strefa czasowa -->\n   10.1.1.4<!-- serwer NTP -->\n        1<!-- Pobierz PB z HTTP -->\n        http:\/\/10.1.1.50\/provisioning\/grandstream<!-- adres URL ksi\u0105\u017cki telefonicznej -->\n        30<!-- Automatyczna aktualizacja PB co 30 min -->\n<\/pre>\n<h4>Yealink T19 i T21<\/h4>\n<p>\nUrz\u0105dzenia tych modeli obs\u0142uguj\u0105 indywidualne pliki konfiguracyjne dla urz\u0105dze\u0144 oraz wsp\u00f3lne dla modeli. W moim przypadku musia\u0142em umie\u015bci\u0107 wsp\u00f3lne parametry w plikach y000000000031.cfg i y000000000034.cfg. Indywidualne pliki konfiguracyjne s\u0105 nazwane zgodnie z adresem MAC: 00112233aabb.cfg.<\/p>\n<p>Ustawienia dla yealink\u00f3w s\u0105 przechowywane w formacie tekstowym. Jedynym wymogiem jest obecno\u015b\u0107 w pierwszej linii wersji pliku w formacie #!version:1.0.0.1.<\/p>\n<p>Wszystkie parametry zapisywane s\u0105 w postaci parametr = warto\u015b\u0107. Komentarze musz\u0105 zaczyna\u0107 si\u0119 od znaku \"#\". Nazwy parametr\u00f3w i ich warto\u015bci mo\u017cna znale\u017a\u0107 w dokumentacji na stronie producenta.<br \/>\n<b class=\"spoiler_title\">og\u00f3lne ustawienia<\/b>#!version:1.0.0.1<br \/>\n#Configure the WAN port type; 0-DHCP (default), 1-PPPoE, 2-Static IP Address;<br \/>\nnetwork.internet_port.type = 0<br \/>\n#Configure the PC port type; 0-Router, 1-Bridge (default);<br \/>\nnetwork.bridge_mode = 1<br \/>\n#Configure the access type of the web server; 0-Disabled, 1-HTTP &#038; HTTPS(default), 2-HTTP Only, 3-HTTPS Only;<br \/>\nnetwork.web_server_type = 3<br \/>\n#Configure the maximum local RTP port. It ranges from 0 to 65535, the default value is 11800.<br \/>\nnetwork.port.max_rtpport = 10100<br \/>\n#Configure the minimum local RTP port. It ranges from 0 to 65535, the default value is 11780.<br \/>\nnetwork.port.min_rtpport = 10000<br \/>\nsecurity.user_name.admin = root<br \/>\nsecurity.user_password = root:ADMIN_PWD<br \/>\nsecurity.user_name.user = user<br \/>\nsecurity.user_password = user:USER_PWD<br \/>\n#Specify the web language, the valid values are: English, Chinese_S, Turkish, Portuguese, Spanish, Italian, French, Russian, Deutsch and Czech.<br \/>\nlang.wui = Polski<br \/>\n#Specify the LCD language, the valid values are: English (default), Chinese_S, Chinese_T, German, French, Turkish, Italian, Polish, Spanish and Portuguese.<br \/>\nlang.gui = Polski<br \/>\n#Configure the time zone and time zone name. The time zone ranges from -11 to +12, the default value is +8.<br \/>\n#The default time zone name is China(Beijing).<br \/>\n#Refer to Yealink IP Phones User Guide for more available time zones and time zone names.<br \/>\nlocal_time.time_zone = +11<br \/>\nlocal_time.time_zone_name = W\u0142adywostok<br \/>\n#Configure the domain name or the IP address of the NTP server. The default value is cn.pool.ntp.org.<br \/>\nlocal_time.ntp_server1 = 10.1.1.4<br \/>\n#Configure the logo mode of the LCD screen; 0-Disabled (default), 1-System logo, 2-Custom logo;<br \/>\nphone_setting.lcd_logo.mode = 1<br \/>\n#Configure the access URL and dispaly name of the remote phonebook. X ranges from 1 to 5.<br \/>\nremote_phonebook.data.1.url = <noindex>10.1.1.50\/provisioning\/yealink-phonebook.xml<\/noindex><br \/>\nremote_phonebook.data.1.name = Ksi\u0105\u017cka telefoniczna<br \/>\nfeatures.remote_phonebook.flash_time = 3600<\/p>\n<p>\n<b class=\"spoiler_title\">indywidualne ustawienia<\/b>#!version:1.0.0.1<br \/>\n#Enable or disable the account1, 0-Disabled (default), 1-Enabled;<br \/>\naccount.1.enable = 1<br \/>\n#Configure the label displayed on the LCD screen for account1.<br \/>\naccount.1.label = Telefon testowy<br \/>\n#Configure the display name of account1.<br \/>\naccount.1.display_name = U\u017cytkownik 998<br \/>\n#Configure the username and password for register authentication.<br \/>\naccount.1.auth_name = 998<br \/>\naccount.1.password = 998<br \/>\n#Configure the register user name.<br \/>\naccount.1.user_name = 998<br \/>\n#Configure the SIP server address.<br \/>\naccount.1.sip_server_host = 10.1.1.50<br \/>\n#Specify the port for the SIP server. The default value is 5060.<br \/>\naccount.1.sip_server_port = 5060<\/p>\n<p>\nW rezultacie, dzi\u0119ki doskona\u0142ej funkcji auto-provision, przewidzianej w wymienionych przeze mnie telefonach, nie by\u0142o \u017cadnych problem\u00f3w z pod\u0142\u0105czeniem nowych urz\u0105dze\u0144 do sieci. Wszystko sprowadzi\u0142o si\u0119 do ustalenia adresu MAC telefonu i wygenerowania pliku konfiguracyjnego na podstawie szablonu. <\/p>\n<p>Mam nadziej\u0119, \u017ce dotar\u0142e\u015b do ko\u0144ca i skorzysta\u0142e\u015b z przeczytanego tekstu.<\/p>\n<p>Dzi\u0119kujemy za uwag\u0119.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/237951\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043e\u0434\u043e\u0431\u0440\u0438\u043b\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043f\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044e IP \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0432 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0442\u043e\u0440\u0435. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u043e\u0439 \u043e\u043f\u044b\u0442 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0431\u044b\u043b \u043c\u0438\u0437\u0435\u0440\u043d\u044b\u043c, \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u0440\u043e\u0431\u0443\u0434\u0438\u043b\u0430 \u0432\u043e \u043c\u043d\u0435 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0438 \u044f \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u043b\u0441\u044f \u0432 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432 \u0432\u043e\u043f\u0440\u043e\u0441\u0430. \u041f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u2014 \u0432 \u043d\u0430\u0434\u0435\u0436\u0434\u0435, \u0447\u0442\u043e \u043a\u043e\u043c\u0443-\u0442\u043e \u043e\u043d\u0438 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f. \u0418\u0442\u0430\u043a\u2026 \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 IP-\u0410\u0422\u0421 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-30399","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043e\u0434\u043e\u0431\u0440\u0438\u043b\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043f\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044e IP \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0432 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0442\u043e\u0440\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/news\/voip-zoopark-provisioning\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47VoIP \u0437\u043e\u043e\u043f\u0430\u0440\u043a \u2014 Provisioning | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043e\u0434\u043e\u0431\u0440\u0438\u043b\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043f\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044e IP \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0432 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0442\u043e\u0440\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/voip-zoopark-provisioning\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:35:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:35:20+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47VoIP Zoo - Provisioning | ProHoster","description":"Wprowadzenie Pewnego razu kierownictwo zaakceptowa\u0142o eksperyment polegaj\u0105cy na wdro\u017ceniu telefonii IP w naszej firmie.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/voip-zoopark-provisioning","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47VoIP \u0437\u043e\u043e\u043f\u0430\u0440\u043a \u2014 Provisioning | ProHoster","og:description":"\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u041e\u0434\u043d\u0430\u0436\u0434\u044b \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043e\u0434\u043e\u0431\u0440\u0438\u043b\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043f\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044e IP \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0432 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0442\u043e\u0440\u0435.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/voip-zoopark-provisioning","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:35:20+00:00","article:modified_time":"2019-10-31T18:35:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30399","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-22 15:31:07","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:35:24","updated":"2026-02-22 15:31:07","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/30399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=30399"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/30399\/revisions"}],"predecessor-version":[{"id":162001,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/30399\/revisions\/162001"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=30399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=30399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=30399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}