VoIP Zoo – Ապահովում

Մուտք

Մի օր ղեկավարությունը հաստատեց փորձը, որը թույլ տվեց մեր գրասենյակում IP հեռախոսակապ ներմուծել: Քանի որ այս ոլորտում իմ փորձառությունը սուղ էր, առաջադրանքը մեծ հետաքրքրություն առաջացրեց ինձ մոտ, և ես խորասուզվեցի հարցի տարբեր ասպեկտների ուսումնասիրության մեջ: Սուզվելու վերջում ես որոշեցի կիսվել իմ ձեռք բերած գիտելիքներով՝ հույս ունենալով, որ դա ինչ-որ մեկին օգտակար կլինի: Այսպիսով…

Նախնական տվյալներ

Asterisk-ն ընտրվել և գործարկվել է որպես IP PBX: Հեռախոսային պարկը բաղկացած է Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 և Dlink DPH-150S(E)/F3, Yealink T19 և T21 սարքերից։ Այս փոփոխությունը պայմանավորված է նրանով, որ փորձի շրջանակներում որոշվել է ամեն ինչից մի փոքր փորձել՝ գին/որակ/հարմարավետ հարաբերակցության վերաբերյալ կարծիք կազմելու համար։

Առաջադրանք

Հնարավորինս պարզեցնել և միավորել նոր սարքերի տեղադրման գործընթացը: Բոլոր հեռախոսները պետք է ժամանակի համաժամեցված լինեն, սերվերից բեռնված հեռախոսագիրք ունենան և ադմինիստրատորի համար մուտք գործեն կարգավորումներ:

Այս խնդրի լուծումը պարզ է՝ իրականացնել հեռախոսների ավտոմատ կոնֆիգուրացիա, այսպես կոչված: Ապահովում. Փաստորեն, կքննարկվի իմ այս հրաշալի գործառույթի իրականացումը։

Կարգավորում tftpd, dhcpd

Հեռախոսներին կարգավորումներ բաշխելու համար ես ընտրեցի tftp-ը որպես ունիվերսալ տարբերակ, որն աջակցվում է բոլոր հարթակների կողմից, հեշտ է կարգավորել և կառավարել:

tftp-ի համար հատուկ կոնֆիգուրացիա չի պահանջվել: Ես տեղադրեցի ստանդարտ tftpd և տեղադրեցի բոլոր անհրաժեշտ ֆայլերը դրա արմատային գրացուցակում:
Ես տեղադրեցի կարգավորումների ֆայլերը դիրեկտորիաներում՝ համաձայն հեռախոսի արտադրողի: Ճիշտ է, Cisco սարքը երբեք չի մտել իր թղթապանակը, ուստի ես ստիպված էի այն պահել իր արմատում:

Հեռախոսները tftp սերվերի գտնվելու վայրը ուղղելու համար ես օգտագործեցի տարբերակ-66: Բացի այդ, նա դրանք բաժանեց առանձին դասերի՝ ըստ արտադրողի։ Յուրաքանչյուր դաս ստացել է իր հասցեի հատվածը և կազմաձևման ֆայլերի անհատական ​​թղթապանակը: Ի դեպ, D-link-ից սարքերը պետք է հաշվարկվեին MAC հասցեներով, քանի որ dhcp հարցումում նրանք տեղեկատվություն չեն տրամադրում արտադրողի մասին:

Հատված dhcpd.conf

# Նշեք անհրաժեշտ ընտրանքների տարբերակը տարբերակ-66 կոդ 66 = տեքստ; class "panasonic" { match if substring (option vendor-class-identifier,0,9) = "Panasonic"; տարբերակ տարբերակ-66 «10.1.1.50/panasonic/»; } class "cisco" { match if substring (option vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP Phone CP-7906"; տարբերակ տարբերակ-66 «10.1.1.50/cisco/»; } class "grandstream" { match if substring (option vendor-class-identifier,0,11) = "Grandstream"; տարբերակ տարբերակ-66 «10.1.1.50/grandstream/»; } class "dlink" {համապատասխանում է if (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "c8:d3:a3:8d") կամ (binary-to-ascii) (16,8,":", substring (hardware,1,4)) = "90:94:e4:72"); տարբերակ տարբերակ-66 «10.1.1.50/dlink/»; } class "yealink" { match if substring (option vendor-class-identifier,0,7) = "Yealink"; տարբերակ տարբերակ-66 «10.1.1.50/yealink/»; }

Հեռախոսները պետք է բռնի դուրս հանվեին ընդհանուր լողավազանից։ Հակառակ դեպքում նրանք չէին ուզում գնալ իրենց «թիավարման լողավազան»:
Ենթացանցի կարգավորումների օրինակ

subnet 10.1.1.0 netmask 255.255.255.0 { option routers 10.1.1.1; լողավազան { մերժել «cisco»-ի անդամները; հերքել «Panasonic»-ի անդամներին; հերքել «dlink»-ի անդամները; միջակայք 10.1.1.230 10.1.1.240; } pool {թույլատրել «cisco»-ի անդամներին; միջակայք 10.1.1.65 10.1.1.69; } pool { թույլատրել «panasonic»-ի անդամներին; միջակայք 10.1.1.60 10.1.1.64; } pool { թույլատրել «dlink»-ի անդամներին; միջակայք 10.1.1.55 10.1.1.59; } }

Բոլոր ներգրավված ծառայությունները վերագործարկելուց հետո հեռախոսները վստահորեն գնացին իրենց նշանակված tftp սերվերին՝ կարգավորումների համար: Մնում է միայն դրանք տեղադրել այնտեղ։

Cisco 7906

Ես ստացել եմ այս սարքերը իրենց օրիգինալ փաթեթավորմամբ։ Ես ստիպված էի փոխել այն աստղանիշով ընկերանալու համար: Բայց դա այլ պատմություն է: Կոնկրետ դեպքում սարքը կարգավորելու համար, ըստ հրահանգների, ես ստեղծել եմ SEPAABBCCDDEEFF.cnf.xml ֆայլը tftp սերվերի արմատում։ Որտեղ AABBCCDDEEFF-ը սարքի MAC հասցեն է:

Արդեն մեկ անգամ չէ, որ գրվել է Cisco-ից հեռախոսներ տեղադրելու մասին, այնպես որ ես պարզապես կթողնեմ աշխատանքային ֆայլ՝ կարգավորումներով:
Կարգավորումներ Cisco-ի համար

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

Եթե ​​նոր եք պատրաստվում այս շարքի հեռախոս գնել, զգույշ եղեք, ավտոմատ կարգավորումն ապահովվում է միայն 150S/F3 սարքերում: 150S/F2 սարքի վրա, որը ձեռքս եկավ, ես նման ֆունկցիոնալություն չգտա։

Կազմաձևման ֆայլը կարող է լինել xml կամ պարզ տեքստի ձևաչափով: Xml-ի համար կա մեկ պահանջ՝ պիտակը պետք է լինի տողի սկզբում, հակառակ դեպքում վերլուծիչը կանտեսի այն և համապատասխան պարամետրի արժեքը չի փոխվի։

Հեռախոսը կարգավորելու համար օգտագործվում է երկու ֆայլ: f0D00580000.cfg - բոլոր հեռախոսների կարգավորումները պահելու համար և 00112233aabb.cfg (MAC հասցեն փոքրատառով) առանձին կարգավորումների համար: Անհատական ​​կարգավորումները բնականաբար ավելի բարձր առաջնահերթություն ունեն:

Կարգավորումների ամբողջական փաթեթը պարունակում է ավելի քան հազար տող, որպեսզի հոդվածը չխառնվի, ես նկարագրելու եմ պարամետրերի նվազագույն բավարար փաթեթը:

Պահանջվում է արմատային հանգույց VOIP_CONFIG_FILE և հանգույցը բույն է դրել դրա մեջ տարբերակ. Կարգավորումները կկիրառվեն միայն այն դեպքում, եթե ֆայլի տարբերակը ավելի բարձր է, քան սարքի ընթացիկ կարգավորումները: Այս արժեքը կարող եք պարզել հեռախոսի վեբ ինտերֆեյսի միջոցով՝ սպասարկման բաժնում (համակարգի կառավարում): Գործարանային կարգավորումներով հեռախոսների համար երկու դեպքում էլ 2.0002 է։ Բացի այդ, անհատական ​​ֆայլի տարբերակը պետք է ավելի մեծ լինի, քան ընդհանուր ֆայլի տարբերակը:

Սկզբում ես ֆայլ կներկայացնեմ ընդհանուր կոնֆիգուրացիայով բոլոր հեռախոսների համար: Փաստորեն, այն պահպանում է բոլոր կարգավորումները, անհատական ​​ֆայլը պատասխանատու կլինի միայն հեռախոսահամարի և էկրանի մակագրության համար:

Ստորև բերված երկու բլոկներում սահմանված են ժամային գոտու և ժամանակի համաժամացման պարամետրերը, RTP-ի սկզբնական պորտը և սարքի WAN և LAN միակցիչների միջև ցանցի կամուրջը միացված է:

Հատված թիվ 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>

Կազմաձևման պարամետրերի իրական անվանումները բավականաչափ նկարագրական են՝ խուսափելու համար դրանք մանրամասն նկարագրելուց:
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>

Հեռակառավարման կարգավորումներ

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

Հեռախոսի կարգավորումներ

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

Մնացած բոլոր կարգավորումները կմնան «կանխադրված»: Այժմ ցանցին միացված ցանկացած Dlink հեռախոս անմիջապես կընդունի բոլորի համար ընդհանուր պարամետրերի հավաքածու: Սարքի անհատական ​​պարամետրերը սահմանելու համար անհրաժեշտ է առանձին ֆայլ: Դրանում անհրաժեշտ է միայն նշել անհատական ​​բաժանորդի համար անհրաժեշտ կարգավորումները:
բաժանորդային կարգավորումներ

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

Այս սարքերը կարգավորումներ են ստանում մի փոքր այլ սխեմայի համաձայն: Կազմաձևը պահվում է տեքստային ֆայլերում: Կազմաձևման ֆայլի առավելագույն չափը 120 ԿԲ է: Անկախ ֆայլերի քանակից, դրանց ընդհանուր չափը չպետք է գերազանցի 120 ԿԲ-ը։
Կազմաձևման ֆայլը բաղկացած է մի շարք տողերից, որոնք ենթակա են հետևյալ պայմաններին.

  • Առաջին տողը միշտ մեկնաբանության տող է, ներառյալ նիշերի հետևյալ հաջորդականությունը (44 բայթ).
    # Panasonic SIP հեռախոսի ստանդարտ ձևաչափի ֆայլ #
    Այս հաջորդականության տասնվեցական ներկայացում.
    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 C 74 20 46
    Նիշերի սահմանված հաջորդականության պատահական փոփոխությունները կանխելու համար խորհուրդ է տրվում կազմաձևման ֆայլը սկսել տողով.
    # Panasonic SIP հեռախոսի ստանդարտ ձևաչափի ֆայլ # ՄԻ ՓՈԽԵՔ ԱՅՍ ԳԻԾԸ:
  • Կազմաձևման ֆայլերը պետք է ավարտվեն դատարկ տողով:
  • Յուրաքանչյուր տող պետք է ավարտվի հաջորդականությամբ « «.
  • Լարի առավելագույն երկարությունը 537 բայթ է՝ ներառյալ « հաջորդականությունը «
  • Հետևյալ տողերը անտեսվում են.
    • 537 բայթ սահմանաչափը գերազանցող տողեր;
    • դատարկ տողեր;
    • մեկնաբանությունների տողեր, որոնք սկսվում են «#»-ով;
  • Յուրաքանչյուր պարամետրի համար տողը գրված է XXX=«yyyy» ձևով (XXX՝ պարամետրի անունը, yyyy՝ դրա արժեքը): Արժեքը պետք է փակցված լինի կրկնակի չակերտների մեջ:
  • Պարամետրերի գիծը մի քանի տողերի բաժանելը չի ​​թույլատրվում: Սա կհանգեցնի կազմաձևման ֆայլի մշակման սխալի և, որպես հետևանք, սկզբնավորման ձախողման:
  • Որոշ պարամետրերի արժեքները պետք է նշվեն առանձին յուրաքանչյուր տողի համար: Անվան մեջ «_1» վերջածանցով պարամետրը 1-ին տողի պարամետրն է. «_2» - 2-րդ տողի համար և այլն:
  • Պարամետրի անվան առավելագույն երկարությունը 32 նիշ է:
  • Պարամետրի արժեքի առավելագույն երկարությունը 500 նիշ է՝ բացառությամբ կրկնակի չակերտների:
  • Տողում բացատներ չեն թույլատրվում, եթե արժեքը չի ներառում բացատ նիշ:
  • Պարամետրերի որոշ արժեքներ կարող են նշվել որպես «դատարկ»՝ պարամետրը դատարկ արժեք սահմանելու համար:
  • Պարամետրերը նշված են առանց հատուկ հերթականության:
  • Եթե ​​նույն պարամետրը մի քանի անգամ նշված է կազմաձևման ֆայլում, ապա կիրառվում է սկզբում նշված արժեքը:

Կազմաձևման ֆայլի պահանջների նման լուրջ փաթեթը, անկեղծ ասած, ինձ վրդովեցրեց: Իմ կարծիքով, Panasonic հեռախոսների վրա կառավարման սերվերի հետ փոխազդեցության իրականացումը չափազանց անհարմար է։ Այս պարամետրով հեռախոսը զգալիորեն զիջում է մյուսներին։
Երբ սարքն առաջին անգամ միացնում եք (կամ այն ​​գործարանային կարգավորումները վերականգնելուց հետո), այն փորձում է բեռնել այսպես կոչված արտադրանքի ֆայլը (այս դեպքում դա KX-UT123RU.cfg է), որը պետք է պարունակի դեպի մնացած կազմաձևման ֆայլերը:
Ապրանքի ֆայլ# Panasonic SIP հեռախոսի ստանդարտ ձևաչափի ֆայլ # ՄԻ ՓՈԽԵՔ ԱՅՍ ԳԻԾԸ:

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"

Դրանից հետո հեռախոսը կցուցադրի պատրաստման հաջող ավարտի մասին հաղորդագրություն և կսպասի մինչև այն վերաբեռնվի: Եվ վերաբեռնումից հետո այն կսկսի մշակել իրեն վերագրված կազմաձևման ֆայլերը:

Master.cfg ֆայլում խորհուրդ է տրվում նշել բոլոր հեռախոսների ընդհանուր կարգավորումները: Ինչպես Dlink-ի դեպքում, ես կնշեմ միայն որոշ պարամետրեր: Մնացած պարամետրերի անունները և դրանց արժեքները կարելի է գտնել արտադրողի կայքում ներկայացված փաստաթղթերում:
master.cfg############################################## ##########
#Համակարգի կարգավորումներ#
############################################## ##########
## Մուտքագրեք հաշվի կարգավորումներ
ADMIN_ID = ադմինիստրատոր
ADMIN_PASS="ADMIN_PWD"
USER_ID = "օգտվող"
USER_PASS="USER_PWD"

## Համակարգի ժամանակի կարգավորումներ
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-ի կարգավորումներ
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"

## Ապահովման կարգավորումներ
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"

############################################## ##########
#Ցանցի կարգավորումներ#
############################################## ##########
## IP-ի կարգավորումներ
CONNECTION_TYPE="1"
HOST_NAME = "UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## DNS կարգավորումներ
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR = 10.1.1.1
DNS2_ADDR=""

## HTTP կարգավորումներ
HTTPD_PORTOPEN_AUTO="Y"
HTTP_VER="1"
HTTP_USER_AGENT="Panasonic_{MODEL}/{fwver} ({mac})"
HTTP_SSL_VERIFY="0"
CFG_ROOT_CERTIFICATE_PATH=""

## XML հավելվածի կարգավորումներ
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=""

Ավանդաբար, սարքի անհատական ​​կազմաձևման ֆայլում մնում են միայն բաժանորդի կարգավորումները:
aabbccddeeff.cfgDISPLAY_NAME_1="Օգտվող #168"

PHONE_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="Միացված է"
PROFILE_ENABLE_1="Միացված է"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"

Grandstream GXP-1400

Այս հեռախոսների պարամետրերը պահվում են մեկ xml ֆայլում, որը կոչվում է cfg{mac}.xml: Կամ պարզ տեքստով cfg{mac} անունով: Այս հեռախոսը պահանջում է միայն անհատական ​​կազմաձևման ֆայլ, ուստի պարամետրերի օպտիմալացումը՝ դրանք ընդհանուր ֆայլ տեղափոխելու միջոցով չի աշխատի: Grandstreams-ի ստեղծման մեկ այլ առանձնահատկություն պարամետրերի անվանումն է: Նրանք բոլորը համարակալված են և նշանակված են որպես P###: Օրինակ:

P1650 – պատասխանատու է հեռախոսի կառավարման վեբ ինտերֆեյսի համար (0 – HTTPS, 1 – HTTP)
P47 – SIP սերվերի հասցեն միացման համար:

Եթե ​​կոնֆիգուրացիան պահվում է տեքստային ֆայլում, ապա պարամետրերը չեն պահանջում որևէ խմբավորում և գտնվում են ցանկացած կարգով: #-ով սկսվող տողերը դիտվում են որպես մեկնաբանություն:

Եթե ​​կարգավորումները ներկայացված են xml ձևաչափով, ապա դրանք պետք է տեղադրվեն հանգույցում , որն իր հերթին պետք է բույն դրվի . Բոլոր պարամետրերը գրված են համապատասխան պիտակների տեսքով՝ ներսում պարամետրի արժեքով։
Նախադրման օրինակ

1.0 8 1 1 SIP_PWD Օգտվողի թիվ 271 1 թ 271 270 թ 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream երեսուն

Yealink T19 և T21

Այս մոդելների սարքերը աջակցում են անհատական ​​կազմաձևման ֆայլեր սարքերի համար, իսկ սովորականները՝ մոդելների համար: Իմ դեպքում ես պետք է ընդհանուր պարամետրերը տեղադրեի համապատասխանաբար y000000000031.cfg և y000000000034.cfg ֆայլերում։ Անհատական ​​կազմաձևման ֆայլերը անվանվում են ըստ MAC հասցեի՝ 00112233aabb.cfg:

Yealinks-ի կարգավորումները պահվում են տեքստային ձևաչափով: Միակ պարտադիր պահանջը ֆայլի տարբերակի առկայությունն է առաջին տողում՝ #!տարբերակ:1.0.0.1 ձևաչափով։

Բոլոր պարամետրերը գրված են ձևի պարամետր = արժեք: Մեկնաբանությունները պետք է սկսվեն «#» գրանշանով: Պարամետրերի անվանումները և դրանց արժեքները կարելի է գտնել արտադրողի կայքում ներկայացված փաստաթղթերում:
Ընդհանուր կարգավորումներ#!Տարբերակ:1.0.0.1
#Կարգավորեք WAN պորտի տեսակը; 0-DHCP (կանխադրված), 1-PPPoE, 2-ստատիկ IP հասցե;
network.internet_port.type = 0
#Կարգավորեք PC պորտի տեսակը; 0-երթուղիչ, 1-կամուրջ (կանխադրված);
network.bridge_mode = 1
#Կարգավորեք վեբ սերվերի մուտքի տեսակը; 0-Անջատված, 1-HTTP & HTTPS (կանխադրված), 2-HTTP Միայն, 3-HTTPS միայն;
network.web_server_type = 3
#Կարգավորեք առավելագույն տեղական RTP պորտը: Այն տատանվում է 0-ից մինչև 65535, լռելյայն արժեքը 11800 է:
network.port.max_rtpport = 10100
#Կարգավորեք նվազագույն տեղական RTP պորտը: Այն տատանվում է 0-ից մինչև 65535, լռելյայն արժեքը 11780 է:
network.port.min_rtpport = 10000
security.user_name.admin = արմատ
security.user_password = արմատ:ADMIN_PWD
security.user_name.user = օգտվող
Security.user_password = օգտվող՝USER_PWD
#Նշեք վեբ լեզուն, վավեր արժեքներն են՝ անգլերեն, չինարեն_S, թուրքերեն, պորտուգալերեն, իսպաներեն, իտալերեն, ֆրանսերեն, ռուսերեն, գերմաներեն և չեխերեն:
lang.wui = ռուս
#Նշեք LCD լեզուն, վավեր արժեքներն են՝ անգլերեն (կանխադրված), չինարեն_S, չինարեն_T, գերմաներեն, ֆրանսերեն, թուրքերեն, իտալերեն, լեհերեն, իսպաներեն և պորտուգալերեն:
lang.gui = ռուս
#Կարգավորեք ժամային գոտին և ժամային գոտու անունը: Ժամային գոտին տատանվում է -11-ից մինչև +12, լռելյայն արժեքը +8 է:
#Լռելյայն ժամային գոտու անվանումն է Չինաստան (Պեկին):
#Դիտեք Yealink IP հեռախոսների օգտագործման ուղեցույցը՝ ավելի մատչելի ժամային գոտիների և ժամային գոտիների անունների համար:
local_time.time_zone = +11
local_time.time_zone_name = Վլադիվոստոկ
#Կարգավորեք NTP սերվերի տիրույթի անունը կամ IP հասցեն: Նախնական արժեքը cn.pool.ntp.org է:
local_time.ntp_server1 = 10.1.1.4
#Կարգավորեք LCD էկրանի լոգոյի ռեժիմը; 0-Անջատված (կանխադրված), 1-Համակարգի պատկերանշան, 2-Պատվերով լոգո;
phone_setting.lcd_logo.mode = 1
#Կարգավորեք մուտքի URL-ը և հեռակառավարվող հեռախոսագրքի անունը: X-ը տատանվում է 1-ից 5-ի սահմաններում:
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Հեռախոսագիրք
features.remote_phonebook.flash_time = 3600

անհատական ​​պարամետրեր#!Տարբերակ:1.0.0.1
#Միացնել կամ անջատել հաշիվը1, 0-Անջատված (կանխադրված), 1-Միացված;
account.1.enable = 1
#Կարգավորեք LCD էկրանին ցուցադրվող պիտակը account1-ի համար:
account.1.label = Փորձնական հեռախոս
#Կարգավորեք հաշվի ցուցադրման անունը1:
account.1.display_name = Օգտվող 998
#Կարգավորեք օգտվողի անունը և գաղտնաբառը գրանցման նույնականացման համար:
հաշիվ.1.auth_name = 998
հաշիվ.1.գաղտնաբառ = 998
#Կարգավորեք գրանցման օգտվողի անունը:
account.1.user_name = 998
#Կարգավորեք SIP սերվերի հասցեն:
account.1.sip_server_host = 10.1.1.50
#Նշեք SIP սերվերի պորտը: Նախնական արժեքը 5060 է:
account.1.sip_server_port = 5060

Արդյունքում՝ շնորհիվ իմ նշած հեռախոսներում տրամադրված հրաշալի ավտոմատ տրամադրման ֆունկցիայի, նոր սարքերը ցանցին միացնելու հետ կապված խնդիրներ չառաջացան։ Ամեն ինչ հանգեցրեց հեռախոսի MAC հասցեն պարզելու և ձևանմուշի միջոցով կազմաձևման ֆայլ ստեղծելուն:

Հուսով եմ՝ կարդացիք մինչև վերջ և օգուտ քաղեցիք ձեր կարդացածից։

Շնորհակալություն ուշադրության համար:

Source: www.habr.com

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