VoIP zoologijos sodas – aprūpinimas

Įrašas

Vieną dieną vadovybė patvirtino eksperimentą, kad mūsų biure būtų įdiegta IP telefonija. Kadangi mano patirtis šioje srityje buvo menka, užduotis man sukėlė didelį susidomėjimą ir pasinėriau į įvairius šios problemos aspektus. Pasibaigus nardymui, nusprendžiau pasidalinti įgytomis žiniomis tikėdamasis, kad jos kam nors pravers. Taigi…

Neapdoroti duomenys

Asterisk buvo pasirinkta ir įdiegta kaip IP PBX. Telefonų parką sudaro Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 ir Dlink DPH-150S(E)/F3, Yealink T19 ir T21 įrenginiai. Tokį skirtumą lėmė tai, kad eksperimento metu buvo nuspręsta išbandyti po truputį visko, kad susidarytume nuomonę apie kainos/kokybės/patogumo santykį.

Užduotis

Kiek įmanoma supaprastinkite ir suvienodinkite naujų įrenginių nustatymo procesą. Visi telefonai turi būti sinchronizuoti laiką, turėti iš serverio įkeltą telefonų knygą ir suteikti administratoriui prieigą prie nustatymų.

Šios problemos sprendimas paprastas – įdiegti automatinę telefonų konfigūraciją, vadinamąją. Atidėjimų sudarymas. Tiesą sakant, bus aptartas mano šios nuostabios funkcijos įgyvendinimas.

Tftpd, dhcpd konfigūravimas

Nustatymams paskirstyti telefonams pasirinkau tftp kaip universalų variantą, palaikomą visose platformose, lengvai konfigūruojamą ir valdomą.

Tftp nereikėjo jokios konkrečios konfigūracijos. Įdiegiau standartinį tftpd ir įdėjau visus reikalingus failus į jo šakninį katalogą.
Nustatymų failus įdėjau į katalogus pagal telefono gamintoją. Tiesa, „Cisco“ įrenginys niekada nepateko į savo aplanką, todėl turėjau jį saugoti šaknyje.

Norėdamas nukreipti telefonus į tftp serverio vietą, naudojau parinktį-66. Be to, jis suskirstė juos į atskiras klases pagal gamintoją. Kiekviena klasė gavo savo adreso segmentą ir atskirą aplanką konfigūracijos failams. Beje, įrenginiai iš D-link turėjo būti skaičiuojami pagal MAC adresus, nes jie dhcp užklausoje nepateikia informacijos apie gamintoją.

Fragmentas dhcpd.conf

# Nurodykite reikiamų parinkčių parinktį option-66 kodas 66 = tekstas; class "panasonic" { match if substring (parinktis vendor-class-identifier,0,9) = "Panasonic"; parinktis variantas-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (parinktis vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP telefonas CP-7906"; parinktis variantas-66 "10.1.1.50/cisco/"; } class "grandstream" { match if substring (parinktis vendor-class-identifier,0,11) = "Grandstream"; parinktis variantas-66 "10.1.1.50/grandstream/"; } class "dlink" { match if (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "c8:d3:a3:8d") arba (binary-to-ascii (16,8",:",substring(hardware,1,4)) = "90:94:e4:72"); parinktis variantas-66 "10.1.1.50/dlink/"; } class "yealink" { match if substring (parinktis vendor-class-identifier,0,7) = "Yealink"; parinktis variantas-66 "10.1.1.50/yealink/"; }

Telefonus teko priverstinai pašalinti iš bendrojo fondo. Priešingu atveju jie nenorėjo eiti į savo „irklavimo baseiną“.
Potinklio nustatymų pavyzdys

potinklis 10.1.1.0 tinklo kaukė 255.255.255.0 { parinktys maršrutizatoriai 10.1.1.1; baseinas { paneigti "cisco" narius; paneigti „panasonic“ narius; paneigti "dlink" narius; diapazonas 10.1.1.230 10.1.1.240; } telkinys { leisti "cisco" nariams; diapazonas 10.1.1.65 10.1.1.69; } baseinas { leisti "panasonic" nariams; diapazonas 10.1.1.60 10.1.1.64; } telkinys { leisti "dlink" nariams; diapazonas 10.1.1.55 10.1.1.59; } }

Iš naujo paleidus visas susijusias paslaugas, telefonai užtikrintai nuėjo į jiems priskirtą tftp serverį nustatymams. Belieka juos ten patalpinti.

„Cisco 7906“

Šiuos įrenginius gavau originalioje pakuotėje. Turėjau jį pakeisti, kad susidraugaučiau su žvaigždute. Bet tai jau kita istorija. Konkrečiu atveju įrenginio konfigūravimui pagal instrukcijas tftp serverio šaknyje sukūriau failą SEPAABBCCDDEEFF.cnf.xml. Kur AABBBCCDDEEFF yra įrenginio MAC adresas.

Jau ne kartą buvo rašyta apie telefonų nustatymą iš Cisco, todėl paliksiu tik darbinį failą su nustatymais.
„Cisco“ nustatymai

<?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

Jei tik ruošiatės įsigyti šios serijos telefoną, būkite atsargūs, automatinis derinimas palaikomas tik 150S/F3 įrenginiuose. Į mano rankas patekusiame 150S/F2 įrenginyje tokio funkcionalumo neradau.

Konfigūracijos failas gali būti xml arba paprasto teksto formatu. Xml yra vienas reikalavimas: žyma turi būti eilutės pradžioje, antraip analizatorius ją ignoruos ir atitinkamo parametro reikšmė nepasikeis.

Telefonui konfigūruoti naudojami du failai. f0D00580000.cfg – visų telefonų nustatymams saugoti ir 00112233aabb.cfg (MAC adresas mažosiomis raidėmis) atskiriems nustatymams. Natūralu, kad atskiri nustatymai turi didesnį prioritetą.

Visą nustatymų rinkinį sudaro daugiau nei tūkstantis eilučių, todėl, kad straipsnis nebūtų perkrautas, aprašysiu minimalų pakankamą nustatymų rinkinį.

Būtinas šakninis mazgas VOIP_CONFIG_FILE ir jame esantis mazgas versija. Nustatymai bus taikomi tik tuo atveju, jei failo versija yra aukštesnė nei esami įrenginio nustatymai. Šią reikšmę galite sužinoti per telefono žiniatinklio sąsają priežiūros skiltyje (sistemos valdymas). Telefonams su gamykliniais nustatymais abiem atvejais jis yra 2.0002. Be to, atskiro failo versija turi būti didesnė nei bendrinamo failo versija.

Pirmiausia pateiksiu failą su bendra visų telefonų konfigūracija. Tiesą sakant, jis išsaugo visus nustatymus, kad atskiras failas bus atsakingas tik už telefono numerį ir užrašą ekrane.

Dviejuose toliau pateiktuose blokuose nustatomi laiko juostos ir laiko sinchronizavimo parametrai, įjungtas pradinis RTP prievadas ir tinklo tiltas tarp įrenginio WAN ir LAN jungčių.

Fragmentas Nr.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>

Tikrieji konfigūracijos parametrų pavadinimai yra pakankamai aprašomieji, kad jų nereikėtų išsamiai aprašyti.
SIP vienai eilutei

<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>

Nuotolinio valdymo pulto nustatymai

<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>

Telefono nustatymai

<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>

Visi kiti nustatymai išliks „numatytieji“. Dabar bet kuris „Dlink“ telefonas, prijungtas prie tinklo, iš karto priims bendrą parametrų rinkinį visiems. Norint nustatyti atskirus įrenginio parametrus, reikalingas atskiras failas. Jame jums tereikia nurodyti būtinus nustatymus individualiam abonentui.
abonento nustatymai

<?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

Šie įrenginiai gauna nustatymus pagal šiek tiek kitokią schemą. Konfigūracija saugoma tekstiniuose failuose. Didžiausias konfigūracijos failo dydis yra 120 KB. Nepriklausomai nuo failų skaičiaus, bendras jų dydis neturi viršyti 120 KB.
Konfigūracijos failą sudaro eilučių rinkinys, kuriam taikomos šios sąlygos:

  • Pirmoji eilutė visada yra komentaro eilutė, įskaitant šią simbolių seką (44 baitai):
    # Panasonic SIP telefono standartinio formato failas #
    Šešioliktainis šios sekos vaizdas:
    23 20 50 61 6E 61 73 6F 6E 69 63 20 53 49 50 20 50 68 6F 6 65 20 53 74 61E 6 64 61 72 64 20 46D 6 72 6 61
    Norint išvengti atsitiktinių nustatytos simbolių sekos pakeitimų, rekomenduojama konfigūracijos failą pradėti eilute:
    # Panasonic SIP telefono standartinio formato failas # NEKEISKE ŠIOS EILU!
  • Konfigūracijos failai turi baigtis tuščia eilute.
  • Kiekviena eilutė turi baigtis seka " “.
  • Didžiausias eilutės ilgis yra 537 baitai, įskaitant seką " “
  • Šios eilutės nepaisomos:
    • eilutės, viršijančios 537 baitų ribą;
    • tuščios eilutės;
    • komentarų eilutės, prasidedančios „#“;
  • Kiekvieno parametro eilutė rašoma tokia forma: XXX=“yyy“ (XXX: parametro pavadinimas, yyy: jo reikšmė). Vertė turi būti įtraukta į dvigubas kabutes.
  • Parametrų eilutės skaidymas į kelias eilutes neleidžiamas. Dėl to įvyks klaida apdorojant konfigūracijos failą ir inicijavimo klaida.
  • Kai kurių parametrų reikšmės turi būti nurodytos kiekvienai eilutei atskirai. Parametras su priesaga „_1“ pavadinime yra 1 eilutės parametras; „_2“ – 2 eilutei ir kt.
  • Maksimalus parametro pavadinimo ilgis yra 32 simboliai.
  • Maksimalus parametro reikšmės ilgis yra 500 simbolių, neįskaitant dvigubų kabučių.
  • Eilėje tarpai neleidžiami, nebent reikšmėje yra tarpo simbolis.
  • Kai kurios parametrų reikšmės gali būti nurodytos kaip „tuščios“, kad parametro vertė būtų tuščia.
  • Parametrai nurodyti jokia tvarka.
  • Jei tas pats parametras konfigūracijos faile nurodytas daugiau nei vieną kartą, taikoma pirmiausia nurodyta reikšmė.

Toks rimtas konfigūracijos failo reikalavimų rinkinys, atvirai kalbant, mane nuliūdino. Mano nuomone, sąveikos su valdymo serveriu įgyvendinimas Panasonic telefonuose yra itin nepatogus. Šiuo parametru telefonas gerokai prastesnis už kitus.
Įjungus įrenginį pirmą kartą (arba atkūrus gamyklinius nustatymus), jis bando įkelti vadinamąjį produkto failą (šiuo atveju tai yra KX-UT123RU.cfg), kuriame turėtų būti keliai į likusius konfigūracijos failus.
Produkto failas# Panasonic SIP telefono standartinio formato failas # NEKEISKE ŠIOS EILU!

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"

Po to telefonas parodys pranešimą apie sėkmingą pasiruošimo užbaigimą ir lauks, kol bus paleistas iš naujo. Ir po perkrovimo jis pradės apdoroti jam priskirtus konfigūracijos failus.

Master.cfg faile rekomenduojama nurodyti bendruosius nustatymus visiems telefonams. Kaip ir Dlink, nurodysiu tik kai kuriuos parametrus. Likusių parametrų pavadinimus ir jų reikšmes galima rasti dokumentacijoje gamintojo svetainėje.
meistras.cfg################################################# ##########
#Sistemos nustatymai#
################################################# ##########
## Prisijungimo paskyros nustatymai
ADMIN_ID="administratorius"
ADMIN_PASS="ADMIN_PWD"
USER_ID="naudotojas"
USER_PASS="USER_PWD"

## Sistemos laiko nustatymai
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=""

## Sistemos žurnalo nustatymai
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"

## Suteikimo nustatymai
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"

################################################# ##########
#Ryšio nustatymai#
################################################# ##########
## IP nustatymai
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## DNS nustatymai
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""

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

## XML programos nustatymai
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=""

Tradiciškai atskiro įrenginio konfigūracijos faile lieka tik abonento nustatymai.
aabbccddeeff.cfgDISPLAY_NAME_1="Naudotojas Nr. 168"

PHONE_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="Įjungta"
PROFILE_ENABLE_1="Įjungta"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"

Grandstream GXP-1400

Šių telefonų parametrai saugomi viename xml faile, pavadintame cfg{mac}.xml. Arba paprastu tekstu pavadinimu cfg{mac}. Šis telefonas prašo tik atskiro konfigūracijos failo, todėl optimizuoti nustatymus perkeliant juos į bendrą failą neveiks. Kita Grandstreams nustatymo ypatybė yra parametrų įvardijimas. Jie visi sunumeruoti ir pažymėti P###. Pavyzdžiui:

P1650 – atsakinga už telefono valdymo žiniatinklio sąsają (0 – HTTPS, 1 – HTTP)
47 psl. – SIP serverio adresas prisijungimui.

Jei konfigūracija saugoma tekstiniame faile, parametrai nereikalauja jokio grupavimo ir yra bet kokia tvarka. Eilutės, prasidedančios #, laikomos komentarais.

Jei parametrai pateikiami xml formatu, jie turi būti įdėti į mazgą , kuris savo ruožtu turi būti įdėtas . Visi parametrai yra parašyti atitinkamų žymų pavidalu, kurių viduje yra parametro reikšmė.
Nustatymo pavyzdys

1.0 8 1 1 SIP_PWD Vartotojas Nr. 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream trisdešimt

Yealink T19 ir T21

Šių modelių įrenginiai palaiko atskirus įrenginių konfigūracijos failus ir bendrus modelių konfigūracijos failus. Mano atveju bendruosius parametrus turėjau įdėti atitinkamai į failus y000000000031.cfg ir y000000000034.cfg. Atskiri konfigūracijos failai yra pavadinti pagal MAC adresą: 00112233aabb.cfg.

Yealink nustatymai saugomi teksto formatu. Vieninteliai privalomi reikalavimai yra failo versijos buvimas pirmoje eilutėje formatu #!version:1.0.0.1.

Visi parametrai rašomi forma parametras = reikšmė. Komentarai turi prasidėti simboliu „#“. Parametrų pavadinimus ir jų reikšmes galima rasti dokumentacijoje gamintojo svetainėje.
Bendrieji nustatymai#!versija: 1.0.0.1
#Konfigūruokite WAN prievado tipą; 0-DHCP (numatytasis), 1-PPPoE, 2-statinis IP adresas;
network.internet_port.type = 0
#Konfigūruokite kompiuterio prievado tipą; 0-maršrutizatorius, 1-tiltas (numatytasis);
network.bridge_mode = 1
#Konfigūruokite žiniatinklio serverio prieigos tipą; 0 – Išjungta, 1 – HTTP ir HTTPS (numatytasis), 2 – Tik HTTP, 3 – Tik HTTPS;
network.web_server_type = 3
#Konfigūruokite maksimalų vietinį RTP prievadą. Jis svyruoja nuo 0 iki 65535, numatytoji reikšmė yra 11800.
network.port.max_rtpport = 10100
#Konfigūruokite minimalų vietinį RTP prievadą. Jis svyruoja nuo 0 iki 65535, numatytoji reikšmė yra 11780.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = vartotojas
security.user_password = user:USER_PWD
#Nurodykite žiniatinklio kalbą, galiojančios reikšmės yra: anglų, kinų_S, turkų, portugalų, ispanų, italų, prancūzų, rusų, vokiečių ir čekų.
lang.wui = rusų kalba
#Nurodykite LCD kalbą, galiojančios reikšmės yra: anglų (numatytasis), Chinese_S, Chinese_T, vokiečių, prancūzų, turkų, italų, lenkų, ispanų ir portugalų.
lang.gui = rusų kalba
#Konfigūruokite laiko juostą ir laiko juostos pavadinimą. Laiko juosta svyruoja nuo -11 iki +12, numatytoji reikšmė yra +8.
#Numatytasis laiko juostos pavadinimas yra Kinija (Pekinas).
#Žr. Yealink IP Phones vartotojo vadovą, kad sužinotumėte daugiau galimų laiko juostų ir laiko juostų pavadinimų.
local_time.time_zone = +11
local_time.time_zone_name = Vladivostokas
#Konfigūruokite NTP serverio domeno pavadinimą arba IP adresą. Numatytoji reikšmė yra cn.pool.ntp.org.
local_time.ntp_server1 = 10.1.1.4
#Konfigūruokite LCD ekrano logotipo režimą; 0 – Išjungta (numatytasis), 1 – Sistemos logotipas, 2 – Tinkintas logotipas;
phone_setting.lcd_logo.mode = 1
#Konfigūruokite prieigos URL ir nuotolinės telefonų knygos pavadinimą. X svyruoja nuo 1 iki 5.
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Telefonų knyga
features.remote_phonebook.flash_time = 3600

individualūs nustatymai#!versija: 1.0.0.1
#Įjungti arba išjungti paskyrą1, 0 – Išjungta (numatytasis), 1 – Įjungta;
paskyra.1.įgalinti = 1
#Konfigūruokite LCD ekrane rodomą 1 paskyros etiketę.
account.1.label = Išbandyti telefoną
#Konfigūruokite rodomą paskyros pavadinimą1.
account.1.display_name = Vartotojas 998
#Konfigūruokite vartotojo vardą ir slaptažodį registro autentifikavimui.
account.1.auth_name = 998
paskyra.1.slaptažodis = 998
#Konfigūruokite registro vartotojo vardą.
account.1.user_name = 998
#Konfigūruokite SIP serverio adresą.
account.1.sip_server_host = 10.1.1.50
#Nurodykite SIP serverio prievadą. Numatytoji reikšmė yra 5060.
account.1.sip_server_port = 5060

Dėl to mano minėtuose telefonuose suteiktos nuostabios automatinio aprūpinimo funkcijos dėka naujų įrenginių prijungimo prie tinklo problemų nekilo. Viskas baigėsi tuo, kad išsiaiškino telefono MAC adresą ir sugeneravo konfigūracijos failą naudojant šabloną.

Tikiuosi, kad perskaitėte iki galo ir jums buvo naudinga tai, ką perskaitėte.

Ačiu už dėmesį.

Šaltinis: www.habr.com

Добавить комментарий