VoIP Zoo – Provisioning

Merkintä

Eräänä päivänä johto hyväksyi kokeen IP-puhelimen käyttöön ottamiseksi toimistossamme. Koska kokemukseni tältä alalta oli niukkaa, tehtävä herätti minussa suurta kiinnostusta ja syventyin tutkimaan asian eri puolia. Sukelluksen lopussa päätin jakaa hankkimani tiedon siinä toivossa, että siitä olisi jollekin hyötyä. Niin…

Raakatiedot

Asterisk valittiin ja otettiin käyttöön IP-vaihteeksi. Puhelinkanta koostuu Cisco 7906g-, Panasonic UT-KX123B-, Grandstream GXP1400- ja Dlink DPH-150S(E)/F3-, Yealink T19- ja T21 -laitteista. Tämä vaihtelu johtuu siitä, että osana kokeilua päätettiin kokeilla vähän kaikkea, jotta muodostuisi mielipide hinta/laatu/mukavuus-suhteesta.

Tehtävä

Yksinkertaista ja yhdistä uusien laitteiden käyttöönottoprosessi mahdollisimman paljon. Kaikkien puhelimien on oltava aikasynkronoituja, puhelinluettelo on ladattu palvelimelta ja niiden on annettava järjestelmänvalvojalle pääsy asetuksiin.

Ratkaisu tähän ongelmaan on yksinkertainen - ota käyttöön puhelimien automaattinen konfigurointi, ns. Varausten luominen. Itse asiassa tämän upean toiminnon toteuttamisestani keskustellaan.

Määritetään tftpd, dhcpd

Asetusten jakamiseen puhelimille valitsin tftp:n yleiseksi vaihtoehdoksi, jota kaikki alustat tukevat, helppo määrittää ja hallita.

Tftp:lle ei vaadittu erityisiä määrityksiä. Asensin standardin tftpd:n ja laitoin kaikki tarvittavat tiedostot sen juurihakemistoon.
Laitoin asetustiedostot hakemistoihin puhelimen valmistajan mukaisesti. Totta, Cisco-laite ei koskaan mennyt kansioonsa, joten jouduin tallentamaan sen juureen.

Osoittaakseni puhelimet tftp-palvelimen sijaintiin käytin vaihtoehtoa-66. Lisäksi hän jakoi ne erillisiin luokkiin valmistajien mukaan. Jokainen luokka sai oman osoitesegmentin ja erillisen kansion asetustiedostoille. Muuten, D-linkin laitteet piti laskea MAC-osoitteiden mukaan, koska ne eivät anna tietoja valmistajasta dhcp-pyynnössä.

Fragmentti dhcpd.conf

# Määritä vaaditut asetukset option-66 koodi 66 = teksti; class "panasonic" { match if substring (optio vendor-class-identifier,0,9) = "Panasonic"; option option-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (vaihtoehto vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP-puhelin CP-7906"; option option-66 "10.1.1.50/cisco/"; } class "grandstream" { match if substring (optio vendor-class-identifier,0,11) = "Grandstream"; vaihtoehto option-66 "10.1.1.50/grandstream/"; } class "dlink" { match if (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "c8:d3:a3:8d") tai (binary-to-ascii (16,8",:",osamerkkijono(hardware,1,4)) = "90:94:e4:72"); vaihtoehto option-66 "10.1.1.50/dlink/"; } class "yealink" { match if substring (optio vendor-class-identifier,0,7) = "Yealink"; option option-66 "10.1.1.50/yealink/"; }

Puhelimet oli pakko sulkea pois yleisestä poolista. Muuten he eivät halunneet mennä "melontaaltaaseen".
Esimerkki aliverkon asetuksista

aliverkko 10.1.1.0 verkkopeite 255.255.255.0 { option reitittimet 10.1.1.1; pool { deny "ciscon" jäsenet; kieltää "panasonicin" jäsenet; kieltää "dlinkin" jäsenet; alue 10.1.1.230 10.1.1.240; } pool { salli "ciscon" jäsenet; alue 10.1.1.65 10.1.1.69; } pool { salli "panasonicin" jäsenet; alue 10.1.1.60 10.1.1.64; } pool { salli "dlinkin" jäsenet; alue 10.1.1.55 10.1.1.59; } }

Kun kaikki asiaan liittyvät palvelut käynnistettiin uudelleen, puhelimet menivät luottavaisesti niille määritetylle tftp-palvelimelle asetuksia varten. Jäljelle jää vain sijoittaa ne sinne.

cisco 7906

Sain nämä laitteet alkuperäisissä pakkauksissaan. Minun piti vaihtaa se, jotta ystävystyin tähdellä. Mutta se on eri tarina. Tietyssä tapauksessa laitteen konfiguroimiseksi ohjeiden mukaan loin tiedoston SEPAABBCCDDEEFF.cnf.xml tftp-palvelimen juureen. Missä AABBBCCDDEEFF on laitteen MAC-osoite.

Puhelinten asettamisesta Ciscosta on kirjoitettu jo useammin kuin kerran, joten jätän vain toimivan tiedoston asetuksista.
Ciscon asetukset

<?xml version="1.0" encoding="UTF-8"?>
<device xsi_type="axl:XIPPhone" ctiid="94">
<fullConfig>true</fullConfig>
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>root</sshUserId>
<sshPassword>ADMIN_PWD</sshPassword>
<devicePool>
<dateTimeSetting>
<dateTemplate>D-M-Y</dateTemplate>
<timeZone>Central Pacific Standard Time</timeZone>
<ntps>
<ntp>
<name>10.1.1.4</name>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
<callManagerGroup>
<members> <member priority="0"> <callManager>
<name>10.1.1.50</name>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>10.1.1.50</processNodeName>
</callManager> </member> </members>
</callManagerGroup>
<srstInfo>
<srstOption>Disable</srstOption>
</srstInfo>
<connectionMonitorDuration>120</connectionMonitorDuration>
</devicePool>
<sipProfile>
<sipCallFeatures>
<cnfJoinEnabled>true</cnfJoinEnabled>
<callForwardURI>x-cisco-serviceuri-cfwdall</callForwardURI>
<callPickupURI>x-cisco-serviceuri-pickup</callPickupURI>
<callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI>
<callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI>
<meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI>
<abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI>
<rfc2543Hold>false</rfc2543Hold>
<callHoldRingback>2</callHoldRingback>
<localCfwdEnable>true</localCfwdEnable>
<semiAttendedTransfer>true</semiAttendedTransfer>
<anonymousCallBlock>2</anonymousCallBlock>
<callerIdBlocking>2</callerIdBlocking>
<dndControl>0</dndControl>
<remoteCcEnable>true</remoteCcEnable>
<retainForwardInformation>false</retainForwardInformation>
</sipCallFeatures>
<sipStack>
<sipInviteRetx>6</sipInviteRetx>
<sipRetx>10</sipRetx>
<timerInviteExpires>180</timerInviteExpires>
<timerRegisterExpires>3600</timerRegisterExpires>
<timerRegisterDelta>5</timerRegisterDelta>
<timerKeepAliveExpires>120</timerKeepAliveExpires>
<timerSubscribeExpires>120</timerSubscribeExpires>
<timerSubscribeDelta>5</timerSubscribeDelta>
<timerT1>500</timerT1>
<timerT2>4000</timerT2>
<maxRedirects>70</maxRedirects>
<remotePartyID>true</remotePartyID>
<userInfo>None</userInfo>
</sipStack>
<autoAnswerTimer>1</autoAnswerTimer>
<autoAnswerAltBehavior>false</autoAnswerAltBehavior>
<autoAnswerOverride>true</autoAnswerOverride>
<transferOnhookEnabled>false</transferOnhookEnabled>
<enableVad>false</enableVad>
<preferredCodec>none</preferredCodec>
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<dtmfOutofBand>avt</dtmfOutofBand>
<kpml>3</kpml>
<alwaysUsePrimeLine>false</alwaysUsePrimeLine>
<alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
<phoneLabel>Cisco Phone</phoneLabel>
<stutterMsgWaiting>2</stutterMsgWaiting>
<callStats>false</callStats>
<offhookToFirstDigitTimer>15000</offhookToFirstDigitTimer>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>true</disableLocalSpeedDialConfig>
<poundEndOfDial>false</poundEndOfDial>
<startMediaPort>16384</startMediaPort>
<stopMediaPort>32766</stopMediaPort>
<sipLines>
<line button="1" lineIndex="1">
<featureID>9</featureID>
<proxy>10.1.1.50</proxy>
<port>5060</port>
<autoAnswer> <autoAnswerEnabled>2</autoAnswerEnabled> </autoAnswer>
<callWaiting>3</callWaiting>
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>3</messageWaitingLampPolicy>
<messagesNumber></messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>true</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
<featureLabel></featureLabel>
<displayName>User #103</displayName>
<name>103</name>
<authName>103</authName>
<authPassword>SIP_PWD</authPassword>
</line>
</sipLines>
<externalNumberMask>$num</externalNumberMask>
<voipControlPort>5060</voipControlPort>
<dscpForAudio>184</dscpForAudio>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
<dialTemplate>dialplan.xml</dialTemplate>
</sipProfile>
<commonProfile>
<phonePassword>*0#</phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>
<loadInformation></loadInformation>
<vendorConfig>
<disableSpeaker>false</disableSpeaker>
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
<forwardingDelay>1</forwardingDelay>
<pcPort>0</pcPort>
<settingsAccess>1</settingsAccess>
<garp>0</garp>
<voiceVlanAccess>0</voiceVlanAccess>
<videoCapability>0</videoCapability>
<autoSelectLineEnable>1</autoSelectLineEnable>
<webAccess>0</webAccess>
<daysDisplayNotActive>1,7</daysDisplayNotActive>
<displayOnTime>09:00</displayOnTime>
<displayOnDuration>12:00</displayOnDuration>
<displayIdleTimeout>01:00</displayIdleTimeout>
<spanToPCPort>1</spanToPCPort>
<loggingDisplay>2</loggingDisplay>
<loadServer>10.1.1.50</loadServer>
<recordingTone>0</recordingTone>
<recordingToneLocalVolume>100</recordingToneLocalVolume>
<recordingToneRemoteVolume>50</recordingToneRemoteVolume>
<recordingToneDuration></recordingToneDuration>
<displayOnWhenIncomingCall>0</displayOnWhenIncomingCall>
<rtcp>0</rtcp>
<moreKeyReversionTimer>5</moreKeyReversionTimer>
<autoCallSelect>1</autoCallSelect>
<logServer>10.1.1.50</logServer>
<g722CodecSupport>0</g722CodecSupport>
<headsetWidebandUIControl>0</headsetWidebandUIControl>
<handsetWidebandUIControl>0</handsetWidebandUIControl>
<headsetWidebandEnable>0</headsetWidebandEnable>
<handsetWidebandEnable>0</handsetWidebandEnable>
<peerFirmwareSharing>0</peerFirmwareSharing>
<enableCdpSwPort>1</enableCdpSwPort>
<enableCdpPcPort>1</enableCdpPcPort>
</vendorConfig>
<versionStamp>1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37</versionStamp>
<userLocale>
<name>Russian_Russian_Federation</name>
<langCode>ru_RU</langCode>
<version></version>
<winCharSet>utf-8</winCharSet>
</userLocale>
<networkLocale></networkLocale>
<networkLocaleInfo>
<name></name>
<version></version>
</networkLocaleInfo>
<deviceSecurityMode>1</deviceSecurityMode>
<idleTimeout>0</idleTimeout>
<authenticationURL></authenticationURL>
<directoryURL>http://10.1.1.50/provisioning/cisco-services.xml</directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<servicesURL>http://10.1.1.50/provisioning/cisco-services.xml</servicesURL>
<dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<transportLayerProtocol>2</transportLayerProtocol>
<singleButtonBarge>0</singleButtonBarge>
<capfAuthMode>0</capfAuthMode>
<capfList><capf>
<phonePort>3804</phonePort>
<!-- <processNodeName>10.1.1.50</processNodeName> -->
</capf> </capfList>
<certHash></certHash>
<encrConfig>false</encrConfig>
<advertiseG722Codec>1</advertiseG722Codec>
</device>

D-Link DPH-150S/F3

Jos olet juuri ostamassa tämän sarjan puhelinta, ole varovainen, sillä automaattista viritystä tuetaan vain 150S/F3-laitteissa. Käsiini tulleesta 150S/F2-laitteesta en löytänyt tällaista toimivuutta.

Asetustiedosto voi olla xml- tai pelkkä teksti -muodossa. Xml:lle on yksi vaatimus: tagin on oltava rivin alussa, muuten jäsentäjä jättää sen huomioimatta eikä vastaavan parametrin arvo muutu.

Puhelimen asetusten määrittämiseen käytetään kahta tiedostoa. f0D00580000.cfg - kaikkien puhelimien asetusten tallentamiseen ja 00112233aabb.cfg (MAC-osoite pienillä kirjaimilla) yksittäisille asetuksille. Yksilöllisillä asetuksilla on luonnollisesti korkeampi prioriteetti.

Täysi asetussarja sisältää yli tuhat riviä, jotta artikkeli ei sotkeutuisi, kuvailen riittävän vähimmäisasetusjoukon.

Juurisolmu vaaditaan VOIP_CONFIG_FILE ja solmu sisäkkäin sen sisällä versio. Asetukset otetaan käyttöön vain, jos tiedostoversio on suurempi kuin laitteen nykyiset asetukset. Voit selvittää tämän arvon puhelimen verkkoliittymän kautta ylläpitoosiossa (järjestelmänhallinta). Tehdasasetuksella varustetuissa puhelimissa se on molemmissa tapauksissa 2.0002. Lisäksi yksittäisen tiedoston version on oltava suurempi kuin jaetun tiedoston versio.

Ensin annan tiedoston, jossa on yhteinen kokoonpano kaikille puhelimille. Itse asiassa se tallentaa kaikki asetukset; yksittäinen tiedosto vastaa vain puhelinnumerosta ja näytöllä olevasta merkinnästä.

Kahdessa alla olevassa lohkossa asetetaan aikavyöhyke- ja aikasynkronointiparametrit, RTP:n alkuportti ja verkon silta laitteen WAN- ja LAN-liittimien välillä on käytössä.

Fragmentti nro 1

<GLOBAL_CONFIG_MODULE>
<WAN_Mode>DHCP</WAN_Mode>
<Default_Protocol>2</Default_Protocol>
<Enable_DHCP>1</Enable_DHCP>
<DHCP_Auto_DNS>1</DHCP_Auto_DNS>
<DHCP_Auto_Time>0</DHCP_Auto_Time>
<Host_Name>VOIP</Host_Name>
<RTP_Initial_Port>10000</RTP_Initial_Port>
<RTP_Port_Quantity>200</RTP_Port_Quantity>
<SNTP_Server>10.1.1.4</SNTP_Server>
<Enable_SNTP>1</Enable_SNTP>
<Time_Zone>71</Time_Zone>
<Time_Zone_Name>UCT_011</Time_Zone_Name>
<Enable_DST>0</Enable_DST>
<SNTP_Timeout>60</SNTP_Timeout>
<Default_UI>12</Default_UI>
<MTU_Length>1500</MTU_Length>
</GLOBAL_CONFIG_MODULE>
<LAN_CONFIG_MODULE>
<Enable_Bridge_Mode>1</Enable_Bridge_Mode>
<Enable_Port_Mirror>1</Enable_Port_Mirror>
</LAN_CONFIG_MODULE>

Konfigurointiparametrien todelliset nimet ovat riittävän kuvaavia, jotta niitä ei tarvitse kuvailla yksityiskohtaisesti.
SIP yhdelle riville

<SIP_CONFIG_MODULE>
<SIP__Port>5060</SIP__Port>
<SIP_Line_List>
<SIP_Line_List_Entry>
<ID>SIP1</ID>
<Register_Addr>10.1.1.50</Register_Addr>
<Register_Port>5060</Register_Port>
<Register_TTL>3600</Register_TTL>
<Enable_Reg>1</Enable_Reg>
<Proxy_Addr>10.1.1.50</Proxy_Addr>
<DTMF_Mode>1</DTMF_Mode>
<DTMF_Info_Mode>0</DTMF_Info_Mode>
<VoiceCodecMap>G711A,G711U,G722</VoiceCodecMap>
</SIP_Line_List_Entry>
</SIP_Line_List>
</SIP_CONFIG_MODULE>

Kaukosäätimen asetukset

<MMI_CONFIG_MODULE>
<Telnet_Port>23</Telnet_Port>
<Web_Port>80</Web_Port>
<Web_Server_Type>0</Web_Server_Type>
<Https_Web_Port>443</Https_Web_Port>
<Remote_Control>1</Remote_Control>
<Enable_MMI_Filter>0</Enable_MMI_Filter>
<Telnet_Prompt></Telnet_Prompt>
<MMI_Filter>
<MMI_Filter_Entry>
<ID>Item1</ID>
<First_IP>10.1.1.152</First_IP>
<End_IP>10.1.1.160</End_IP>
</MMI_Filter_Entry>
</MMI_Filter>
<MMI_Account>
<MMI_Account_Entry>
<ID>Account1</ID>
<Name>admin</Name>
<Password>ADMIN_PWD</Password>
<Level>10</Level>
</MMI_Account_Entry>
<MMI_Account_Entry>
<ID>Account2</ID>
<Name>guest</Name>
<Password>GUEST_PWD</Password>
<Level>5</Level>
</MMI_Account_Entry>
</MMI_Account>
</MMI_CONFIG_MODULE>

Puhelinasetukset

<PHONE_CONFIG_MODULE>
<Menu_Password>123</Menu_Password>
<KeyLock_Password>123</KeyLock_Password>
<Fast_Keylock_Code></Fast_Keylock_Code>
<Enable_KeyLock>0</Enable_KeyLock>
<Emergency_Call>112</Emergency_Call>
<LCD_Title>Company</LCD_Title>
<LCD_Constrast>5</LCD_Constrast>
<LCD_Luminance>1</LCD_Luminance>
<Backlight_Off_Time>30</Backlight_Off_Time>
<Enable_Power_LED>0</Enable_Power_LED>
<Time_Display_Style>0</Time_Display_Style>
<Enable_TimeDisplay>1</Enable_TimeDisplay>
<Alarm__Clock>0,,1</Alarm__Clock>
<Date_Display_Style>0</Date_Display_Style>
<Date_Separator>0</Date_Separator>
<Enable_Pre-Dial>1</Enable_Pre-Dial>
<Xml_PhoneBook>
<Xml_PhoneBook_Entry>
<ID>XML-PBook1</ID>
<Name>Phonebook</Name>
<Addr>http://10.1.1.50/provisioning/dlink-phonebook.xml</Addr>
<Auth>:</Auth>
<Policy>0</Policy>
<Sipline>0</Sipline>
</Xml_PhoneBook_Entry>
</Xml_PhoneBook>
<Phonebook_Groups>friend,home,work,business,classmate,colleague</Phonebook_Groups>
</PHONE_CONFIG_MODULE>

Kaikki muut asetukset pysyvät "oletusasetuksissa". Nyt mikä tahansa verkkoon liitetty Dlink-puhelin hyväksyy välittömästi kaikille yhteiset parametrit. Yksittäisten parametrien asettamiseen laitteelle tarvitaan erillinen tiedosto. Siinä sinun tarvitsee vain määrittää tarvittavat asetukset yksittäiselle tilaajalle.
tilaaja-asetukset

<?xml version="1.0" encoding="UTF-8"?>
<VOIP_CONFIG_FILE>
<version>2.0006</version>
<SIP_CONFIG_MODULE>
<SIP_Line_List>
<SIP_Line_List_Entry>
<ID>SIP1</ID>
<Display_Name>User #117</Display_Name>
<Phone_Number>117</Phone_Number>
<Register_Port>5060</Register_Port>
<Register_User>117</Register_User>
<Register_Pswd>SIP_PWD</Register_Pswd>
<Register_TTL>3600</Register_TTL>
<Enable_Reg>1</Enable_Reg>
<Proxy_Port>5060</Proxy_Port>
<Proxy_User>117</Proxy_User>
<Proxy_Pswd>SIP_PWD</Proxy_Pswd>
</SIP_Line_List_Entry>
</SIP_Line_List>
</SIP_CONFIG_MODULE>
</VOIP_CONFIG_FILE>

Panasonic UT-KX123B

Nämä laitteet vastaanottavat asetukset hieman erilaisen järjestelmän mukaan. Asetukset tallennetaan tekstitiedostoihin. Määritystiedoston enimmäiskoko on 120 kt. Tiedostojen lukumäärästä riippumatta niiden kokonaiskoko ei saa ylittää 120 kt.
Määritystiedosto koostuu joukosta rivejä, joita koskevat seuraavat ehdot:

  • Ensimmäinen rivi on aina kommenttirivi, joka sisältää seuraavan merkkijonon (44 tavua):
    # Panasonicin SIP-puhelimen vakiomuotoinen tiedosto #
    Tämän sekvenssin heksadesimaalinen esitys:
    23 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 6 72 6 61 74 20 46 C 69 6 65
    Jotta vältetään vahingossa tehdyt muutokset vakiintuneeseen merkkijonoon, on suositeltavaa aloittaa asetustiedosto rivillä:
    # Panasonic SIP -puhelimen vakiomuotoinen tiedosto # ÄLÄ MUUTA TÄTÄ RIVIÄ!
  • Asetustiedostojen lopussa on oltava tyhjä rivi.
  • Jokaisen rivin tulee päättyä sekvenssiin " ".
  • Merkkijonon enimmäispituus on 537 tavua, mukaan lukien sekvenssi " "
  • Seuraavat rivit jätetään huomioimatta:
    • rivit ylittävät 537 tavun rajan;
    • tyhjät rivit;
    • kommenttirivit, jotka alkavat "#":lla;
  • Kunkin parametrin merkkijono kirjoitetaan muodossa XXX=“yyy” (XXX: parametrin nimi, yyy: sen arvo). Arvo tulee laittaa lainausmerkkeihin.
  • Parametririvin jakaminen useisiin riveihin ei ole sallittua. Tämä johtaa virheeseen määritystiedoston käsittelyssä ja sen seurauksena alustusvirheen.
  • Joidenkin parametrien arvot on määritettävä erikseen kullekin riville. Parametri, jonka nimessä on pääte "_1", on rivin 1 parametri; "_2" — riville 2 jne.
  • Parametrin nimen enimmäispituus on 32 merkkiä.
  • Parametrin arvon enimmäispituus on 500 merkkiä ilman lainausmerkkejä.
  • Merkkijonossa ei saa olla välilyöntejä, ellei arvo sisällä välilyöntiä.
  • Jotkin parametriarvot voidaan määrittää "tyhjiksi", jolloin parametri asetetaan tyhjäksi.
  • Parametrit ei ole määritelty tietyssä järjestyksessä.
  • Jos sama parametri määritetään useammin kuin kerran määritystiedostossa, käytetään ensin määritettyä arvoa.

Tällaiset vakavat vaatimukset määritystiedostolle suoraan sanoen järkyttivät minua. Mielestäni vuorovaikutuksen toteuttaminen ohjauspalvelimen kanssa Panasonic-puhelimissa on erittäin hankalaa. Tässä parametrissa puhelin on huomattavasti muita huonompi.
Kun käynnistät laitteen ensimmäisen kerran (tai tehdasasetusten palauttamisen jälkeen), se yrittää ladata ns. tuotetiedoston (tässä tapauksessa se on KX-UT123RU.cfg), jonka tulee sisältää polut jäljellä olevat asetustiedostot.
Tuotetiedosto# Panasonic SIP -puhelimen vakiomuotoinen tiedosto # ÄLÄ MUUTA TÄTÄ RIVIÄ!

CFG_STANDARD_FILE_PATH="tftp://10.1.1.50/panasonic/{mac}.cfg"
CFG_PRODUCT_FILE_PATH="tftp://10.1.1.50/panasonic/KX-UT123RU.cfg"
CFG_MASTER_FILE_PATH="tftp://10.1.1.50/panasonic/master.cfg"

Tämän jälkeen puhelin näyttää viestin valmistuksen onnistumisesta ja odottaa, kunnes se käynnistetään uudelleen. Ja uudelleenkäynnistyksen jälkeen se alkaa käsitellä sille määritettyjä kokoonpanotiedostoja.

Master.cfg-tiedostossa on suositeltavaa määrittää yleisasetukset kaikille puhelimille. Kuten Dlinkissä, määritän vain joitain parametreja. Muiden parametrien nimet ja niiden arvot löytyvät valmistajan verkkosivuston dokumentaatiosta.
master.cfg################################################# ##########
#Järjestelmäasetukset#
################################################# ##########
## Kirjautumistilin asetukset
ADMIN_ID="järjestelmänvalvoja"
ADMIN_PASS="ADMIN_PWD"
USER_ID="käyttäjä"
USER_PASS="USER_PWD"

## Järjestelmän aika-asetukset
NTP_ADDR="10.1.1.4"
TIME_ZONE="660"
DST_ENABLE="N"
DST_OFFSET="60"
DST_START_MONTH="3"
DST_START_ORDINAL_DAY="2"
DST_START_DAY_OF_WEEK="0"
DST_START_TIME="120"
DST_STOP_MONTH="10"
DST_STOP_ORDINAL_DAY="2"
DST_STOP_DAY_OF_WEEK="0"
DST_STOP_TIME="120"
LOCAL_TIME_ZONE_POSIX=""

## Syslog-asetukset
SYSLOG_ADDR="10.1.1.50"
SYSLOG_PORT="514"
SYSLOG_EVENT_SIP="6"
SYSLOG_EVENT_CFG="6"
SYSLOG_EVENT_VOIP="6"
SYSLOG_EVENT_TEL="6"

## Käyttöönottoasetukset
OPTION66_ENABLE="Y"
OPTION66_REBOOT="N"
PROVISION_ENABLE="Y"
CFG_STANDARD_FILE_PATH="tftp://10.1.1.50/panasonic/{mac}.cfg"
CFG_PRODUCT_FILE_PATH="tftp://10.1.1.50/panasonic/KX-UT123RU.cfg"
CFG_MASTER_FILE_PATH="tftp://10.1.1.50/panasonic/master.cfg"

################################################# ##########
#Verkkoasetukset#
################################################# ##########
## IP-asetukset
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## DNS-asetukset
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""

## HTTP-asetukset
HTTPD_PORTOPEN_AUTO="Y"
HTTP_VER="1"
HTTP_USER_AGENT="Panasonic_{MODEL}/{fwver} ({mac})"
HTTP_SSL_VERIFY="0"
CFG_ROOT_CERTIFICATE_PATH=""

## XML-sovellusasetukset
XML_HTTPD_PORT="6666"
XMLAPP_ENABLE="Y"
XMLAPP_USERID=""
XMLAPP_USERPASS=""
XMLAPP_START_URL=""
XMLAPP_INITIAL_URL=" "
XMLAPP_INCOMING_URL=""
XMLAPP_TALKING_URL=""
XMLAPP_MAKECALL_URL=""
XMLAPP_CALLLOG_URL=""
XMLAPP_IDLING_URL=""
XMLAPP_LDAP_URL="10.1.1.50/provisioning/panasonic-phonebook.xml»
XMLAPP_LDAP_USERID=""
XMLAPP_LDAP_USERPASS=""

Perinteisesti vain tilaajan asetukset säilyvät yksittäisen laitteen asetustiedostossa.
aabbccddeeff.cfgDISPLAY_NAME_1="Käyttäjä #168"

PHONE_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="Käytössä"
PROFILE_ENABLE_1="Käytössä"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"

Grandstream GXP-1400

Näiden puhelimien parametrit on tallennettu yhteen xml-tiedostoon nimeltä cfg{mac}.xml. Tai pelkkänä tekstinä nimellä cfg{mac}. Tämä puhelin pyytää vain yksittäistä asetustiedostoa, joten asetusten optimointi siirtämällä ne yhteiseen tiedostoon ei toimi. Toinen Grandstreams-asetusten ominaisuus on parametrien nimeäminen. Ne on kaikki numeroitu ja merkitty P###. Esimerkiksi:

P1650 – vastaa puhelimen hallinnan verkkoliittymästä (0 – HTTPS, 1 – HTTP)
P47 – SIP-palvelimen osoite yhteyttä varten.

Jos konfiguraatio on tallennettu tekstitiedostoon, parametrit eivät vaadi ryhmittelyä ja ovat missä tahansa järjestyksessä. #:llä alkavat rivit käsitellään kommentteina.

Jos asetukset esitetään xml-muodossa, ne on oltava sisäkkäin solmussa , joka vuorostaan ​​täytyy olla sisäkkäin . Kaikki parametrit kirjoitetaan vastaavien tunnisteiden muodossa, joiden sisällä on parametrin arvo.
Asetusesimerkki

1.0 8 1 1 SIP_PWD Käyttäjä nro 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream kolmekymmentä

Yealink T19 ja T21

Näiden mallien laitteet tukevat yksittäisiä konfiguraatiotiedostoja laitteille ja yhteisiä malleille. Minun tapauksessani minun piti sijoittaa yleiset parametrit tiedostoihin y000000000031.cfg ja y000000000034.cfg. Yksittäiset määritystiedostot nimetään MAC-osoitteen mukaan: 00112233aabb.cfg.

Yelinkkien asetukset tallennetaan tekstimuodossa. Ainoat pakolliset vaatimukset ovat tiedostoversion läsnäolo ensimmäisellä rivillä muodossa #!version:1.0.0.1.

Kaikki parametrit kirjoitetaan muodossa parametri = arvo. Kommenttien tulee alkaa "#"-merkillä. Parametrien nimet ja niiden arvot löytyvät valmistajan verkkosivuston dokumentaatiosta.
Yleiset asetukset#!versio: 1.0.0.1
#Määritä WAN-portin tyyppi; 0-DHCP (oletus), 1-PPPoE, 2-staattinen IP-osoite;
verkko.internet_portti.tyyppi = 0
#Määritä PC-portin tyyppi; 0-reititin, 1-silta (oletus);
network.bridge_mode = 1
#Määritä verkkopalvelimen käyttöoikeus; 0 - Ei käytössä, 1 - HTTP & HTTPS (oletus), 2 - Vain HTTP, 3 - Vain HTTPS;
network.web_server_type = 3
#Määritä suurin paikallinen RTP-portti. Se vaihtelee välillä 0 - 65535, oletusarvo on 11800.
network.port.max_rtpport = 10100
#Määritä paikallinen RTP-portin vähimmäismäärä. Se vaihtelee välillä 0 - 65535, oletusarvo on 11780.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = käyttäjä
security.user_password = user:USER_PWD
#Määritä verkkokieli, kelvolliset arvot ovat: englanti, kiina_S, turkki, portugali, espanja, italia, ranska, venäjä, saksa ja tšekki.
lang.wui = venäjä
#Määritä nestekidenäytön kieli, kelvolliset arvot ovat: englanti (oletus), Chinese_S, Chinese_T, saksa, ranska, turkki, italia, puola, espanja ja portugali.
lang.gui = venäjä
#Määritä aikavyöhyke ja aikavyöhykkeen nimi. Aikavyöhyke vaihtelee välillä -11 - +12, oletusarvo on +8.
#Oletusaikavyöhykkeen nimi on Kiina (Peking).
#Katso Yealink IP Phones -käyttöoppaasta lisää käytettävissä olevia aikavyöhykkeitä ja aikavyöhykkeiden nimiä.
paikallinen_aika.aikavyöhyke = +11
local_time.time_zone_name = Vladivostok
#Määritä NTP-palvelimen toimialueen nimi tai IP-osoite. Oletusarvo on cn.pool.ntp.org.
local_time.ntp_server1 = 10.1.1.4
#Määritä LCD-näytön logotila; 0 - Ei käytössä (oletus), 1 - Järjestelmän logo, 2 - Mukautettu logo;
phone_setting.lcd_logo.mode = 1
#Määritä etäpuhelinmuistion pääsy-URL-osoite ja näyttönimi. X on 1-5.
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Puhelinmuistio
features.remote_phonebook.flash_time = 3600

yksittäisiä asetuksia#!versio: 1.0.0.1
#Ota käyttöön tai poista käytöstä tili1, 0-Ei käytössä (oletus), 1-Käytössä;
account.1.enable = 1
#Määritä LCD-näytössä näkyvä tarra tilille1.
account.1.label = Testaa puhelinta
#Määritä tilin1 näyttönimi.
account.1.display_name = Käyttäjä 998
#Määritä käyttäjätunnus ja salasana rekisteröintitodennuksen käyttöön.
account.1.auth_name = 998
tili.1.salasana = 998
#Määritä rekisterin käyttäjänimi.
tili.1.käyttäjänimi = 998
#Määritä SIP-palvelimen osoite.
account.1.sip_server_host = 10.1.1.50
#Määritä SIP-palvelimen portti. Oletusarvo on 5060.
account.1.sip_server_port = 5060

Tämän seurauksena mainitsemissani puhelimissa tarjotun upean automaattisen tarjontatoiminnon ansiosta ei ollut ongelmia uusien laitteiden yhdistämisessä verkkoon. Kaikki johtui puhelimen MAC-osoitteen selvittämisestä ja määritystiedoston luomisesta mallin avulla.

Toivottavasti luit loppuun asti ja hyödyit lukemastasi.

Kiitos huomiota.

Lähde: will.com

Lisää kommentti