{"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\/nl\/blog\/news\/voip-zoopark-provisioning","title":{"rendered":"VoIP-dierenpark \u2014 Provisioning","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h4>Inleiding<\/h4>\n<p>\nOp een dag gaf het management groen licht voor een experiment met de implementatie van IP-telefonie in ons bedrijf. Aangezien mijn ervaring op dit gebied minimaal was, wekte de taak enorme interesse in mij en dompelde ik me onder in het bestuderen van verschillende aspecten van de kwestie. Na het voltooien van mijn onderdompeling besloot ik mijn verworven kennis te delen, in de hoop dat het iemand zou helpen. Dus\u2026<\/p>\n<h4>Brongegevens<\/h4>\n<p>\nAls IP-telefooncentrale is Asterisk gekozen en uitgerold. Het telefoonpark bestaat uit Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 en Dlink DPH-150S(E)\/F3, Yealink T19 en T21. Deze verscheidenheid is te wijten aan het feit dat we tijdens het experiment hebben besloten om uit verschillende opties te proberen, om een eigen mening te vormen over de verhouding prijs\/kwaliteit\/gebruiksgemak.<\/p>\n<h4>Task<\/h4>\n<p>\nMaximaal vereenvoudigen en uniformiseren van het instellen van nieuwe apparaten. Alle telefoons moeten tijdsynchronisatie hebben, beschikken over een telefoonboek dat wordt geladen vanuit <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/server\/dts-los-angeles\/\"   title=\"de server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3475\">de server<\/a> en toegang tot de instellingen bieden voor de administrator.<\/p>\n<p>De oplossing voor deze taak is eenvoudig \u2014 implementeer automatische configuratie van de telefoons, de zogenaamde Provisioning. Eigenlijk zal ik het hebben over mijn implementatie van deze geweldige functie.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Instelling tftpd, dhcpd<\/h4>\n<p>\nVoor het verstrekken van instellingen aan de telefoons heb ik tftp gekozen als een universele optie die door alle platforms wordt ondersteund, eenvoudig te configureren en te beheren.<\/p>\n<p>Specifieke configuratie voor tftp was niet nodig. Ik installeerde de standaard tftpd en plaatste alle noodzakelijke bestanden in de hoofddirectory.<br \/>\nIk heb de configuratiebestanden in mappen geplaatst op basis van de fabrikant van de telefoon. De Cisco-apparaten konden echter niet in hun eigen map terecht, dus moest ik ze in de hoofddirectory bewaren.<\/p>\n<p>Om de telefoons de locatie van de tftp-server aan te geven, gebruikte ik option-66. Daarnaast heb ik ze verdeeld in aparte klassen op basis van de fabrikant. Elke klasse kreeg een eigen adressegment en een individuele map voor configuratiebestanden. \u00dcbrigens, de apparaten van D-link moesten via MAC-adressen worden ge\u00efdentificeerd, omdat ze geen informatie over de fabrikant in het dhcp-verzoek verstrekten.<\/p>\n<p><b class=\"spoiler_title\">Fragment van 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>De telefoons moesten handmatig uit de algemene pool worden verwijderd. Anders wilden ze niet naar hun \u2018kikkerbad\u2019 gaan.<br \/>\n<b class=\"spoiler_title\">Voorbeeld van netwerkinstellingen<\/b><\/p>\n<pre>\nsubnet 10.1.1.0 netmask 255.255.255.0 {\n        option routers 10.1.1.1;\n        pool {\n                deny members of \"cisco\";\n                deny members of \"panasonic\";\n                deny members of \"dlink\";\n                range 10.1.1.230 10.1.1.240;\n        }\n        pool {\n                allow members of \"cisco\";\n                range 10.1.1.65 10.1.1.69;\n        }\n        pool {\n                allow members of \"panasonic\";\n                range 10.1.1.60 10.1.1.64;\n        }\n        pool {\n                allow members of \"dlink\";\n                range 10.1.1.55 10.1.1.59;\n        }\n}\n<\/pre>\n<p>Na het opnieuw opstarten van alle betrokken services gingen de telefoons vol vertrouwen naar de toegewezen tftp-server voor instellingen. Het enige dat nog resteerde, was om ze daar te plaatsen.<\/p>\n<h4>Cisco 7906<\/h4>\n<p>\nDeze apparaten kwamen in fabrieksverpakking bij mij aan. Ik moest ze opnieuw insteken om ze met Asterisk te laten werken. Maar dat is een ander verhaal. In dit specifieke geval heb ik, volgens de instructies, in de root van de TFTP-server het bestand SEPAABBCCDDEEFF.cnf.xml aangemaakt. Waarbij AABBCCDDEEFF het MAC-adres van het apparaat is.<\/p>\n<p>Er is al verschillende keren over de configuratie van Cisco-telefoons geschreven, dus ik laat gewoon het werkende configuratiebestand achter.<br \/>\n<b class=\"spoiler_title\">Instellingen voor Cisco<\/b><\/p>\n<pre>\ntrue\n SIP\n root\n ADMIN_PWD\n\n \n D-M-Y\n Centraal Stille Oceaan Tijd\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 Uitschakelen\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 None\n \n1\n false\n true\n false\n false\n none\n 101\n 3\navt\n 3\n false\n false\n Cisco Telefoon\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 Gebruiker #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 Nederlands_Nederland\n nl_NL\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>\nAls u van plan bent een telefoon uit deze serie aan te schaffen, wees dan voorzichtig, want de auto-configuratie wordt alleen ondersteund op de apparaten 150S\/F3. Op het apparaat 150S\/F2 dat ik in handen had, vond ik deze functionaliteit niet.<\/p>\n<p>Het configuratiebestand kan zowel in xml-formaat als in gewoon tekstformaat zijn. Voor xml geldt \u00e9\u00e9n vereiste: de tag moet aan het begin van de regel staan, anders negeert de parser deze en wordt de waarde van de betreffende parameter niet veranderd.<\/p>\n<p>Voor het instellen van de telefoon worden twee bestanden gebruikt. f0D00580000.cfg \u2014 voor het opslaan van de instellingen van alle telefoons en 00112233aabb.cfg (MAC-adres in kleine letters) voor individuele instellingen. Individuele instellingen hebben natuurlijk een hogere prioriteit.<\/p>\n<p>De volledige set instellingen omvat meer dan duizend regels; om het artikel niet te overladen, beschrijf ik de minimale set noodzakelijke instellingen. <\/p>\n<p>Verplichte elementen zijn de wortelnode <b>VOIP_CONFIG_FILE<\/b> en de ingesloten node <b>version<\/b>. De instellingen worden alleen toegepast als de versie van het bestand hoger is dan die van de huidige instellingen op het apparaat. Deze waarde kan worden achterhaald via de webinterface van de telefoon in de sectie onderhoud (systeembeheer). Voor telefoons met fabrieksinstellingen is dit in beide gevallen 2.0002. Bovendien moet de versie van het individuele bestand hoger zijn dan die van het algemene bestand.<\/p>\n<p>Eerst geef ik het bestand met de algemene configuratie voor alle telefoons. In wezen bevat het alle instellingen; het individuele bestand is alleen verantwoordelijk voor het telefoonnummer en de tekst op het scherm. <\/p>\n<p>In de twee onderstaande blokken worden de parameters voor de tijdzone en tijdsynchronisatie ingesteld, de beginpoort voor RTP en wordt de netwerkkoppeling tussen de WAN- en LAN-aansluitingen van het apparaat ingeschakeld.<\/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>De namen van de configuratieparameters zijn duidelijk genoeg om ze niet in detail te hoeven beschrijven.<br \/>\n<b class=\"spoiler_title\">SIP voor \u00e9\u00e9n lijn<\/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\">Instellingen voor externe bediening<\/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\">Telefooninstellingen<\/b><\/p>\n<pre>\n<menu>123<\/menu>\n123\n\n0\n112\nBedrijf\n5\n1\n30\n0\n<time>0<\/time>\n1\n0,,1\n0\n0\n1\n\n\nXML-PBook1\nTelefoonboek\nhttp:\/\/10.1.1.50\/provisioning\/dlink-phonebook.xml\n:\n0\n0\n\n\nvriend,thuis,werk,zakelijk,klasgenoot,collega\n<\/pre>\n<p>Alle andere instellingen blijven \"standaard\". Nu zal elke Dlink-telefoon die op het netwerk is aangesloten onmiddellijk een gezamenlijke set parameters aannemen. Om individuele parameters voor het toestel in te stellen, is een apart bestand nodig. Alleen de noodzakelijke instellingen voor de afzonderlijke abonnee moeten daarin worden opgegeven.<br \/>\n<b class=\"spoiler_title\">abonnee-instellingen<\/b><\/p>\n<pre>\n2.0006\n\n\n\nSIP1\nGebruiker #117\n117\n5060\n117\nSIP_PWD\n3600\n1\n5060\n117\nSIP_PWD\n<\/pre>\n<h4>Panasonic UT-KX123B<\/h4>\n<p>\nDeze apparaten ontvangen instellingen op een iets andere manier. De configuratie wordt opgeslagen in tekstbestanden. De maximale grootte van het configuratiebestand bedraagt 120 KB. Ongeacht het aantal bestanden mag de totale grootte ervan niet meer dan 120 KB zijn.<br \/>\nHet configuratiebestand bestaat uit een reeks regels waaraan de onderstaande voorwaarden zijn verbonden:<\/p>\n<ul>\n<li>Altijd begint de eerste regel met een commentaarregel die de volgende reeks tekens bevat (44 bytes):<br \/>\n# Panasonic SIP Phone Standard Format File #<br \/>\nHexadecimale weergave van deze reeks:<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 \/>\nOm onbedoelde wijziging van de vastgestelde reeks tekens te voorkomen, wordt aangeraden het configuratiebestand te beginnen met de regel:<br \/>\n# Panasonic SIP Phone Standard Format File # DO NOT CHANGE THIS LINE!\n<\/li>\n<li>Configuratiebestanden moeten eindigen met een lege regel.<\/li>\n<li>Elke regel moet eindigen met de reeks \"\".<\/li>\n<li>De maximale lengte van een regel is 537 bytes, inclusief de reeks \"\".<\/li>\n<li>De volgende regels worden genegeerd:\n<ul>\n<li>regels die de limiet van 537 bytes overschrijden;<\/li>\n<li>lege regels;<\/li>\n<li>commentaarregels die beginnen met het teken \"#\";<\/li>\n<\/ul>\n<\/li>\n<li>De regel van elke parameter wordt genoteerd in de vorm XXX=\"yyy\" (XXX: parameternaam, yyy: waarde). De waarde moet in dubbele aanhalingstekens worden geplaatst.<\/li>\n<li>Het splitsen van parameterregels in meerdere regels is niet toegestaan. Dit zal leiden tot een verwerkingsfout van het configuratiebestand en resulteert in een initialisatiefout.<\/li>\n<li>Waarden van sommige parameters moeten apart worden opgegeven voor elke lijn. Een parameter met de suffix \"_1\" in de naam is voor lijn 1; \"_2\" voor lijn 2, etc.<\/li>\n<li>De maximale lengte van de parameternaam is 32 tekens.<\/li>\n<li>De maximale lengte van de waarde van de parameter bedraagt 500 tekens, exclusief dubbele aanhalingstekens.<\/li>\n<li>Spaties in een regel zijn niet toegestaan, behalve wanneer de waarde een spatie bevat. <\/li>\n<li>De waarden van sommige parameters kunnen 'leeg' worden opgegeven om een lege waarde voor de parameter in te stellen.<\/li>\n<li>Parameters worden zonder een vaste volgorde opgegeven.<\/li>\n<li>Als dezelfde parameter meer dan eens in het configuratiebestand wordt opgegeven, wordt de eerste opgegeven waarde gebruikt.<\/li>\n<\/ul>\n<p>Ik was, om eerlijk te zijn, teleurgesteld door zo'n strenge set eisen aan het configuratiebestand. Naar mijn mening is de interactie met <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/server\/dts-prohoster\/\"   title=\"server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2960\">server<\/a> de beheerfunctie van Panasonic-telefoons extreem onhandig. Op dit punt is de telefoon aanzienlijk inferieur aan andere modellen.<br \/>\nBij de eerste inschakeling van het apparaat (of na een fabrieksreset) probeert het een zogenaamd productbestand te laden (in dit geval KX-UT123RU.cfg), waarin de paden naar de andere configuratiebestanden moeten staan.<br \/>\n<b class=\"spoiler_title\">Productbestand<\/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>Daarna toont de telefoon een bericht op het scherm dat de voorbereiding succesvol is afgerond en wacht deze totdat deze opnieuw wordt opgestart. Na de herstart begint deze met het verwerken van de vereiste configuratiebestanden.<\/p>\n<p>In het bestand master.cfg wordt aangeraden om algemene instellingen voor alle telefoons op te geven. Net als bij Dlink geef ik slechts enkele parameters aan. De namen van de overige parameters en hun waarden zijn te vinden in de documentatie op de website van de fabrikant.<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>In het individuele configuratiebestand van het apparaat blijven, zoals gebruikelijk, alleen de instellingen van de abonnee over.<br \/>\n<b class=\"spoiler_title\">aabbccddeeff.cfg<\/b>DISPLAY_NAME_1=\"Gebruiker #168\"<\/p>\n<p>PHONE_NUMBER_1=\"168\"<br \/>\nSIP_URI_1=\"168\"<br \/>\nLINE_ENABLE_1=\"Ingeschakeld\"<br \/>\nPROFILE_ENABLE_1=\"Ingeschakeld\"<br \/>\nSIP_AUTHID_1=\"168\"<br \/>\nSIP_PASS_1=\"SIP_PWD\"<\/p>\n<p><\/p>\n<h4>Grandstream GXP-1400<\/h4>\n<p>\nDe instellingen van deze telefoons worden opgeslagen in \u00e9\u00e9n xml-bestand met de naam cfg{mac}.xml, of in een tekstbestand met de naam cfg{mac}. Deze telefoon vraagt alleen om het individuele configuratiebestand, waardoor het niet mogelijk is om de instellingen te optimaliseren door ze in een algemeen bestand te plaatsen. Een andere eigenschap van de configuratie van Grandstream is de naamgeving van de parameters. Ze zijn allemaal genummerd en aangeduid als P###. Bijvoorbeeld:<\/p>\n<p>P1650 \u2013 regelt de webinterface voor het beheren van de telefoon (0 \u2013 HTTPS, 1 \u2013 HTTP)<br \/>\nP47 \u2013 het adres van de SIP-server voor verbinding.<\/p>\n<p>Als de configuratie in een tekstbestand is opgeslagen, vereisen de parameters geen groepering en kunnen ze in elke volgorde staan. Regels die beginnen met # worden als opmerkingen beschouwd.<\/p>\n<p>Als de instellingen in xml-formaat zijn gepresenteerd, moeten ze zijn genest binnen de node , die op zijn beurt moet zijn genest binnen . Alle parameters worden weergegeven als de bijbehorende tags met de waarde van de parameter binnenin.<br \/>\n<b class=\"spoiler_title\">Voorbeeld configuratie<\/b><\/p>\n<pre>\n1\n    <!-- Accountnaam. Mag niet leeg zijn. -->\n    109\n    <!-- SIP-gebruikers-ID -->\n    109\n    <!-- Authenticate-ID -->\n    109\n    <!-- Authenticatiewachtwoord -->\n    SIP_PWD\n    <!-- Weergavenaam (John Doe) -->\n    Gebruiker# 109\n<!-- Algemene instellingen -->\n        10.1.1.50\n        2\n   10.1.1.50<!-- lijn 1 sip-server -->\n   0<!-- lijn 2 uitschakelen -->\n   ADMIN_PWD<!-- adminwachtwoord -->\n   USER_PWD<!-- wachtwoord gebruikerswebconsole -->\n   nl<!-- weergavetaal -->\n        0<!-- Upgraden vanaf TFTP -->\n        10.1.1.50\/grandstream\n   1<!-- configuratie vergrendelen via telefoon (alleen basis) -->\n   TZc-11<!-- tijdzone -->\n   10.1.1.4<!-- NTP-server -->\n        1<!-- PB downloaden vanaf HTTP -->\n        http:\/\/10.1.1.50\/provisioning\/grandstream<!-- basis-URL van telefoonboek -->\n        30<!-- Auto-update PB in 30 minuten -->\n<\/pre>\n<h4>Yealink T19 en T21<\/h4>\n<p>\nDe apparaten van deze modellen ondersteunen individuele configuratiebestanden voor apparaten en gemeenschappelijke modellen. In mijn geval heb ik de gemeenschappelijke parameters geplaatst in de bestanden y000000000031.cfg en y000000000034.cfg. Individuele configuratiebestanden zijn genoemd naar het MAC-adres: 00112233aabb.cfg.<\/p>\n<p>De instellingen voor Yealink-telefoons worden opgeslagen in een tekstformaat. De enige vereiste is dat de eerste regel de bestandsversie bevat, in het formaat #!version:1.0.0.1.<\/p>\n<p>Alle parameters worden vastgelegd in de vorm parameter = waarde. Commentaar moet beginnen met het symbool \"#\". De namen van parameters en hun waarden zijn te vinden in de documentatie op de website van de fabrikant.<br \/>\n<b class=\"spoiler_title\">gemeenschappelijke instellingen<\/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 = Russisch<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 = Russisch<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 = Vladivostok<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 = Telefoonboek<br \/>\nfeatures.remote_phonebook.flash_time = 3600<\/p>\n<p>\n<b class=\"spoiler_title\">individuele instellingen<\/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 = Test telefoon<br \/>\n#Configure the display name of account1.<br \/>\naccount.1.display_name = Gebruiker 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>\nDankzij de geweldige functie auto-provision, die voorzien is in de eerder genoemde telefoons, ontstonden er geen problemen bij het aansluiten van nieuwe apparaten op het netwerk. Het kwam allemaal neer op het achterhalen van het MAC-adres van de telefoon en het genereren van een configuratiebestand op basis van een sjabloon. <\/p>\n<p>Ik hoop dat je tot het einde hebt gelezen en nut hebt gehaald uit wat je hebt gelezen.<\/p>\n<p>Bedankt voor uw aandacht.<br \/>\n<br \/>Bron: <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.4 - 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\/nl\/blog\/news\/voip-zoopark-provisioning\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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 \u2014 Provisioning | ProHoster","description":"Inleiding Eens keurde het management een experiment goed om IP-telefonie in ons kantoor in te voeren.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/voip-zoopark-provisioning","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/30399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=30399"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/30399\/revisions"}],"predecessor-version":[{"id":162001,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/30399\/revisions\/162001"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=30399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=30399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=30399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}