VoIP hayvonot bog'i - ta'minlash

kirish

Bir kuni rahbariyat bizning ofisimizda IP-telefoniyani joriy etish bo'yicha tajribani ma'qulladi. Bu boradagi tajribam kam bo‘lgani uchun topshiriq menda katta qiziqish uyg‘otdi va masalaning turli jihatlarini o‘rganishga kirishdim. Sho'ng'in oxirida kimgadir foydali bo'ladi degan umidda olgan bilimlarimni baham ko'rishga qaror qildim. Shunday qilib…

Xom ma'lumotlar

Yulduzcha tanlangan va IP PBX sifatida joylashtirilgan. Telefonlar parki Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 va Dlink DPH-150S(E)/F3, Yealink T19 va T21 qurilmalaridan iborat. Ushbu o'zgarish eksperimentning bir qismi sifatida narx / sifat / qulaylik nisbati bo'yicha fikrni shakllantirish uchun hamma narsani ozgina sinab ko'rishga qaror qilinganligi bilan bog'liq.

Maqsad

Yangi qurilmalarni o'rnatish jarayonini iloji boricha soddalashtiring va birlashtiring. Barcha telefonlar vaqt sinxronlashtirilgan bo'lishi kerak, telefon kitobi serverdan yuklangan bo'lishi va administrator uchun sozlamalarga kirishni ta'minlashi kerak.

Ushbu muammoni hal qilish juda oddiy - telefonlarning avtomatik konfiguratsiyasini amalga oshiring. Ta'minlash. Aslida, bu ajoyib funktsiyani amalga oshirishim muhokama qilinadi.

tftpd, dhcpd sozlanmoqda

Sozlamalarni telefonlarga tarqatish uchun men tftp-ni universal variant sifatida tanladim, barcha platformalar tomonidan qo'llab-quvvatlanadi, sozlash va boshqarish oson.

tftp uchun maxsus konfiguratsiya talab qilinmadi. Men standart tftpd ni o'rnatdim va barcha kerakli fayllarni ildiz katalogiga joylashtirdim.
Sozlamalar fayllarini telefon ishlab chiqaruvchisiga muvofiq kataloglarga joylashtirdim. To'g'ri, Cisco qurilmasi hech qachon o'z papkasiga kirmagan, shuning uchun uni ildizida saqlashim kerak edi.

Telefonlarni tftp server joylashgan joyga yo'naltirish uchun men variant-66 dan foydalandim. Bundan tashqari, u ularni ishlab chiqaruvchi tomonidan alohida sinflarga ajratdi. Har bir sinf o'z manzil segmentini va konfiguratsiya fayllari uchun alohida papkani oldi. Aytgancha, D-link qurilmalari MAC manzillari bo'yicha hisoblanishi kerak edi, chunki ular dhcp so'rovida ishlab chiqaruvchi haqida ma'lumot bermaydi.

Fragment dhcpd.conf

# Kerakli variantlarni belgilang variant-66 kod 66 = matn; class "panasonic" { mos bo'lsa substring (variant sotuvchi-sinf-identifikator,0,9) = "Panasonic"; variant varianti-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (variant vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP Phone CP-7906"; variant varianti-66 "10.1.1.50/cisco/"; } class "grandstream" { mos bo'lsa substring (variant vendor-class-identifier,0,11) = "Grandstream"; optsion-66 "10.1.1.50/grandstream/"; } sinf "dlink" { agar (binary-to-ascii (16,8,":",substring(apparat,1,4)) = "c8:d3:a3:8d") yoki (binary-to-ascii) mos keladi (16,8,":",substring(apparat,1,4)) = "90:94:e4:72"); variant varianti-66 "10.1.1.50/dlink/"; } class "yealink" { mos bo'lsa substring (variant vendor-class-identifier,0,7) = "Yealink"; optsion-66 "10.1.1.50/yealink/"; }

Telefonlarni umumiy hovuzdan majburan chiqarib tashlash kerak edi. Aks holda, ular o'zlarining "suzish havzasi" ga borishni xohlamadilar.
Quyi tarmoq sozlamalariga misol

pastki tarmoq 10.1.1.0 tarmoq niqobi 255.255.255.0 { opsiya marshrutizatorlari 10.1.1.1; hovuz { "cisco" a'zolarini rad etish; "panasonic" a'zolarini rad etish; "dlink" a'zolarini rad etish; diapazon 10.1.1.230 10.1.1.240; } pool { "cisco" a'zolariga ruxsat berish; diapazon 10.1.1.65 10.1.1.69; } hovuz { "panasonic" a'zolariga ruxsat berish; diapazon 10.1.1.60 10.1.1.64; } pool { "dlink" a'zolariga ruxsat berish; diapazon 10.1.1.55 10.1.1.59; } }

Barcha xizmatlarni qayta ishga tushirgandan so'ng, telefonlar ishonchli tarzda sozlash uchun o'zlariga tayinlangan tftp serveriga o'tishdi. Qolgan narsa ularni u erga joylashtirishdir.

Cisco 7906

Men ushbu qurilmalarni asl qadoqlarida oldim. Men yulduzcha bilan do'stlashish uchun uni o'zgartirishim kerak edi. Lekin bu boshqa hikoya. Muayyan holatda, qurilmani sozlash uchun ko'rsatmalarga muvofiq men tftp serverining ildizida SEPAABBCCDDEEFF.cnf.xml faylini yaratdim. Bu erda AABCCCDDEEFF - qurilmaning MAC manzili.

Cisco-dan telefonlarni sozlash haqida allaqachon bir necha marta yozilgan, shuning uchun men sozlamalar bilan ishlaydigan faylni qoldiraman.
Cisco uchun sozlamalar

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

Agar siz ushbu seriyadagi telefonni sotib olmoqchi bo'lsangiz, ehtiyot bo'ling, avtomatik sozlash faqat 150S/F3 qurilmalarida qo'llab-quvvatlanadi. Mening qo'limga kelgan 150S/F2 qurilmasida men bunday funksiyani topmadim.

Konfiguratsiya fayli xml yoki oddiy matn formatida bo'lishi mumkin. Xml uchun bitta talab bor: teg satr boshida bo'lishi kerak, aks holda tahlilchi uni e'tiborsiz qoldiradi va mos keladigan parametrning qiymati o'zgarmaydi.

Telefonni sozlash uchun ikkita fayl ishlatiladi. f0D00580000.cfg - barcha telefonlar uchun sozlamalarni saqlash uchun va individual sozlamalar uchun 00112233aabb.cfg (kichik harfda MAC manzili). Shaxsiy sozlamalar tabiiy ravishda yuqoriroq ustuvorlikka ega.

Sozlamalarning to'liq to'plami mingdan ortiq satrlarni o'z ichiga oladi, shuning uchun maqolani chalkashtirmaslik uchun men minimal etarli sozlamalar to'plamini tasvirlab beraman.

Ildiz tugun talab qilinadi VOIP_CONFIG_FILE va uning ichida joylashgan tugun versiya. Sozlamalar faqat fayl versiyasi qurilmadagi joriy sozlamalardan yuqori bo'lsa qo'llaniladi. Ushbu qiymatni telefonning veb-interfeysi orqali texnik xizmat ko'rsatish bo'limida (tizimni boshqarish) bilib olishingiz mumkin. Zavod sozlamalari bo'lgan telefonlar uchun ikkala holatda ham bu 2.0002. Bundan tashqari, individual fayl versiyasi umumiy fayl versiyasidan kattaroq bo'lishi kerak.

Avval barcha telefonlar uchun umumiy konfiguratsiyaga ega faylni taqdim etaman. Aslida, u barcha sozlamalarni saqlaydi, shaxsiy fayl faqat telefon raqami va ekrandagi yozuv uchun javobgar bo'ladi.

Quyidagi ikkita blokda vaqt zonasi va vaqtni sinxronlashtirish parametrlari o'rnatiladi, RTP uchun boshlang'ich port va qurilmaning WAN va LAN ulagichlari o'rtasidagi tarmoq ko'prigi yoqilgan.

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

Konfiguratsiya parametrlarining haqiqiy nomlari ularni batafsil tavsiflashdan qochish uchun etarlicha tavsiflangan.
Bir qator uchun SIP

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

Masofadan boshqarish pulti sozlamalari

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

Telefon sozlamalari

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

Boshqa barcha sozlamalar "standart" bo'lib qoladi. Endi tarmoqqa ulangan har qanday Dlink telefoni hamma uchun umumiy parametrlar to'plamini darhol qabul qiladi. Qurilma uchun individual parametrlarni o'rnatish uchun alohida fayl kerak bo'ladi. Unda siz faqat individual abonent uchun kerakli sozlamalarni ko'rsatishingiz kerak.
abonent sozlamalari

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

Ushbu qurilmalar biroz boshqacha sxema bo'yicha sozlamalarni oladi. Konfiguratsiya matnli fayllarda saqlanadi. Konfiguratsiya faylining maksimal hajmi 120 KB. Fayllar sonidan qat'i nazar, ularning umumiy hajmi 120 KB dan oshmasligi kerak.
Konfiguratsiya fayli quyidagi shartlarga bo'ysunadigan qatorlar to'plamidan iborat:

  • Birinchi qator har doim sharh qatori bo'lib, quyidagi belgilar ketma-ketligini (44 bayt) o'z ichiga oladi:
    # Panasonic SIP telefon standart format fayli #
    Ushbu ketma-ketlikning o'n oltilik ko'rinishi:
    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 72D C 6 61 74
    Belgilangan belgilar ketma-ketligini tasodifiy o'zgartirishni oldini olish uchun konfiguratsiya faylini quyidagi qatordan boshlash tavsiya etiladi:
    # Panasonic SIP telefon standart format fayli # BU QATLINI O'ZGARTIRMANG!
  • Konfiguratsiya fayllari bo'sh qator bilan tugashi kerak.
  • Har bir qator ketma-ketlik bilan tugashi kerak " ".
  • Maksimal satr uzunligi 537 bayt, shu jumladan ketma-ketlik " "
  • Quyidagi qatorlar e'tiborga olinmaydi:
    • 537 bayt chegarasidan oshgan satrlar;
    • bo'sh chiziqlar;
    • "#" bilan boshlanadigan sharh satrlari;
  • Har bir parametr uchun satr XXX=“yyy” (XXX: parametr nomi, yy: uning qiymati) shaklida yoziladi. Qiymat qo'sh tirnoq ichiga olinishi kerak.
  • Parametr qatorini bir necha qatorga bo'lishga yo'l qo'yilmaydi. Bu konfiguratsiya faylini qayta ishlashda xatolikka olib keladi va natijada ishga tushirish muvaffaqiyatsiz tugadi.
  • Ba'zi parametrlarning qiymatlari har bir satr uchun alohida ko'rsatilishi kerak. Nomidagi "_1" qo'shimchasi bo'lgan parametr 1-qator uchun parametr; "_2" - 2-qator uchun va hokazo.
  • Parametr nomining maksimal uzunligi 32 belgidan iborat.
  • Parametr qiymatining maksimal uzunligi ikki tirnoqli belgilarni hisobga olmaganda 500 belgidan iborat.
  • Agar qiymat bo'sh joy belgisini o'z ichiga olmasa, satrda bo'sh joylarga ruxsat berilmaydi.
  • Parametrni bo'sh qiymatga o'rnatish uchun ba'zi parametr qiymatlari "bo'sh" sifatida belgilanishi mumkin.
  • Parametrlar alohida tartibda ko'rsatilmagan.
  • Agar konfiguratsiya faylida bir xil parametr bir necha marta ko'rsatilgan bo'lsa, avval belgilangan qiymat qo'llaniladi.

Konfiguratsiya fayliga bunday jiddiy talablar to'plami, ochig'ini aytganda, meni xafa qildi. Menimcha, Panasonic telefonlarida boshqaruv serveri bilan o'zaro aloqani amalga oshirish juda noqulay. Ushbu parametrda telefon boshqalardan sezilarli darajada past.
Qurilmani birinchi marta yoqqaningizda (yoki uni zavod sozlamalariga qaytarganingizdan so'ng) u mahsulot fayli deb ataladigan faylni (bu holda u KX-UT123RU.cfg) yuklashga harakat qiladi, bu faylga kirish yo'llari bo'lishi kerak. qolgan konfiguratsiya fayllari.
Mahsulot fayli# Panasonic SIP telefon standart format fayli # BU QATLINI O'ZGARTIRMANG!

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"

Shundan so'ng, telefon tayyorgarlikning muvaffaqiyatli yakunlanganligi haqida xabarni ko'rsatadi va uni qayta ishga tushirishni kutadi. Va qayta ishga tushirilgandan so'ng, u unga tayinlangan konfiguratsiya fayllarini qayta ishlashni boshlaydi.

Master.cfg faylida barcha telefonlar uchun umumiy sozlamalarni belgilash tavsiya etiladi. Dlink bilan bo'lgani kabi, men faqat ba'zi parametrlarni aniqlayman. Qolgan parametrlarning nomlari va ularning qiymatlarini ishlab chiqaruvchining veb-saytidagi hujjatlarda topish mumkin.
master.cfg################################################# ##########
#Tizim sozlamalari#
################################################# ##########
## Hisob qaydnomasiga kirish sozlamalari
ADMIN_ID="admin"
ADMIN_PASS="ADMIN_PWD"
USER_ID="foydalanuvchi"
USER_PASS="USER_PWD"

## Tizim vaqti sozlamalari
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 sozlamalari
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"

## Ta'minot sozlamalari
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"

################################################# ##########
#Tarmoq sozlamalari#
################################################# ##########
## IP sozlamalari
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

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

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

## XML ilovasi sozlamalari
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=""

An'anaga ko'ra, individual qurilma konfiguratsiya faylida faqat abonent sozlamalari qoladi.
aabbccddeeff.cfgDISPLAY_NAME_1="Foydalanuvchi #168"

PHONE_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="Yoqilgan"
PROFILE_ENABLE_1="Yoqilgan"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"

Grandstream GXP-1400

Ushbu telefonlarning parametrlari cfg{mac}.xml nomli bitta xml faylida saqlanadi. Yoki cfg{mac} nomi bilan oddiy matnda. Bu telefon faqat individual konfiguratsiya faylini soʻraydi, shuning uchun ularni umumiy faylga koʻchirish orqali sozlamalarni optimallashtirish ishlamaydi. Grandstreams-ni o'rnatishning yana bir xususiyati - parametrlarning nomlanishi. Ularning barchasi raqamlangan va P### sifatida belgilangan. Masalan:

P1650 - telefonni boshqarish uchun veb-interfeys uchun javobgar (0 - HTTPS, 1 - HTTP)
P47 - ulanish uchun SIP server manzili.

Agar konfiguratsiya matn faylida saqlangan bo'lsa, parametrlar hech qanday guruhlashni talab qilmaydi va istalgan tartibda bo'ladi. # bilan boshlangan satrlar izoh sifatida qabul qilinadi.

Agar sozlamalar xml formatida taqdim etilgan bo'lsa, ular tugunga joylashtirilishi kerak , bu esa o'z navbatida ichiga joylashtirilishi kerak . Barcha parametrlar ichidagi parametr qiymati bilan mos teglar shaklida yoziladi.
O'rnatish namunasi

1.0 8 1 1 SIP_PWD Foydalanuvchi # 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream o'ttiz

Yealink T19 va T21

Ushbu modellarning qurilmalari qurilmalar uchun individual konfiguratsiya fayllarini va modellar uchun umumiy fayllarni qo'llab-quvvatlaydi. Mening holimda umumiy parametrlarni mos ravishda y000000000031.cfg va y000000000034.cfg fayllariga joylashtirishim kerak edi. Shaxsiy konfiguratsiya fayllari MAC manziliga muvofiq nomlanadi: 00112233aabb.cfg.

Yealinks sozlamalari matn formatida saqlanadi. Yagona majburiy talablar birinchi qatorda #!versiya:1.0.0.1 formatida fayl versiyasi mavjudligi.

Barcha parametrlar parametr = qiymat shaklida yoziladi. Sharhlar "#" belgisi bilan boshlanishi kerak. Parametrlarning nomlari va ularning qiymatlarini ishlab chiqaruvchining veb-saytidagi hujjatlarda topish mumkin.
Umumiy sozlamalar#!versiyasi:1.0.0.1
#WAN port turini sozlang; 0-DHCP (standart), 1-PPPoE, 2-Statik IP-manzil;
network.internet_port.type = 0
#Kompyuter port turini sozlash; 0-Router, 1-Ko'prik (standart);
network.bridge_mode = 1
#Veb-serverning kirish turini sozlash; 0-o‘chirilgan, 1-HTTP & HTTPS(standart), faqat 2-HTTP, faqat 3-HTTPS;
network.web_server_type = 3
#Maksimal mahalliy RTP portini sozlang. U 0 dan 65535 gacha, standart qiymat 11800.
network.port.max_rtpport = 10100
#Minimal mahalliy RTP portini sozlang. U 0 dan 65535 gacha, standart qiymat 11780.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = foydalanuvchi
security.user_password = foydalanuvchi:USER_PWD
#Veb tilini belgilang, amaldagi qiymatlar: ingliz, xitoy, turk, portugal, ispan, italyan, frantsuz, rus, nemis va chex.
lang.wui = rus
#LCD tilini belgilang, amaldagi qiymatlar: ingliz (standart), Chinese_S, Chinese_T, nemis, frantsuz, turk, italyan, polyak, ispan va portugal.
lang.gui = rus
#Vaqt mintaqasi va vaqt mintaqasi nomini sozlang. Vaqt mintaqasi -11 dan +12 gacha, standart qiymat +8.
#Birlamchi vaqt mintaqasi nomi Xitoy (Pekin).
#Mavjud vaqt zonalari va vaqt mintaqasi nomlari uchun Yealink IP telefonlari foydalanuvchi qoʻllanmasiga qarang.
local_time.time_zone = +11
local_time.time_zone_name = Vladivostok
#NTP serverining domen nomi yoki IP manzilini sozlang. Standart qiymat cn.pool.ntp.org.
local_time.ntp_server1 = 10.1.1.4
#LCD ekranning logotip rejimini sozlash; 0-O'chirilgan (standart), 1-Tizim logotipi, 2-Maxsus logotip;
phone_setting.lcd_logo.mode = 1
#Kirish URL manzilini sozlang va masofaviy telefon kitobining nomini koʻrsating. X 1 dan 5 gacha.
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Telefon kitobi
xususiyatlar.remote_phonebook.flash_time = 3600

individual sozlamalar#!versiyasi:1.0.0.1
#Hisobni yoqish yoki oʻchirish1, 0-Oʻchirilgan (standart), 1-Enabled;
hisob.1.enable = 1
#Hisob uchun LCD displeyda ko'rsatilgan yorliqni sozlang1.
account.1.label = Test telefoni
#Hisob qaydnomasining ko'rsatiladigan nomini sozlang1.
account.1.display_name = Foydalanuvchi 998
#Ro'yxatdan o'tish autentifikatsiyasi uchun foydalanuvchi nomi va parolni sozlang.
account.1.auth_name = 998
hisob.1.parol = 998
#Ro'yxatdan o'tish foydalanuvchi nomini sozlang.
account.1.user_name = 998
#SIP server manzilini sozlang.
account.1.sip_server_host = 10.1.1.50
#SIP server uchun portni belgilang. Standart qiymat 5060.
account.1.sip_server_port = 5060

Natijada, men aytib o'tgan telefonlarda taqdim etilgan ajoyib avtomatik ta'minlash funktsiyasi tufayli, yangi qurilmalarni tarmoqqa ulashda hech qanday muammo yo'q edi. Bularning barchasi telefonning MAC manzilini aniqlash va shablon yordamida konfiguratsiya faylini yaratishga to'g'ri keldi.

Umid qilamanki, siz oxirigacha o'qing va o'qiganlaringizdan foyda ko'rdingiz.

E'tiboringiz uchun rahmat.

Manba: www.habr.com

a Izoh qo'shish