VoIP Zoo – Provisioning

Vstup

Jednoho dne vedení schválilo experiment se zavedením IP telefonie v naší kanceláři. Vzhledem k tomu, že mé zkušenosti v této oblasti byly mizivé, úkol ve mně vzbudil velký zájem a vrhl jsem se do studia různých aspektů problematiky. Na konci ponoru jsem se rozhodl podělit se o nabyté znalosti v naději, že se budou někomu hodit. Tak…

Počáteční data

Asterisk byl vybrán a nasazen jako IP PBX. Flotila telefonů se skládá ze zařízení Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 a Dlink DPH-150S(E)/F3, Yealink T19 a T21. Tato variace je způsobena tím, že v rámci experimentu bylo rozhodnuto vyzkoušet od všeho trochu, abychom si udělali názor na poměr cena/kvalita/komfort.

Úkol

Maximálně zjednodušte a sjednoťte proces nastavování nových zařízení. Všechny telefony musí být časově synchronizované, mít načtený telefonní seznam ze serveru a poskytovat administrátorovi přístup k nastavení.

Řešení tohoto problému je jednoduché – implementujte automatickou konfiguraci telefonů, tzv. Poskytování zásob. Ve skutečnosti se bude diskutovat o mé implementaci této úžasné funkce.

Konfigurace tftpd, dhcpd

Pro distribuci nastavení do telefonů jsem zvolil tftp jako univerzální možnost, podporovanou všemi platformami, snadnou konfigurací a správou.

Pro tftp nebyla vyžadována žádná specifická konfigurace. Nainstaloval jsem standardní tftpd a umístil všechny potřebné soubory do jeho kořenového adresáře.
Soubory nastavení jsem umístil do adresářů podle výrobce telefonu. Je pravda, že zařízení Cisco se nikdy nedostalo do své složky, takže jsem jej musel uložit do kořenového adresáře.

Abych nasměroval telefony na umístění serveru tftp, použil jsem volbu-66. Navíc je rozdělil do samostatných tříd podle výrobce. Každá třída obdržela svůj vlastní segment adresy a samostatnou složku pro konfigurační soubory. Mimochodem, zařízení od D-linku bylo nutné počítat podle MAC adres, jelikož v požadavku dhcp neuvádějí informace o výrobci.

Fragment dhcpd.conf

# Zadejte požadované možnosti volba volba-66 kód 66 = text; class "panasonic" { match if substring (volba vendor-class-identifier,0,9) = "Panasonic"; volba volba-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (volba vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP telefon CP-7906"; volba volba-66 "10.1.1.50/cisco/"; } class "grandstream" { match if substring (volba vendor-class-identifier,0,11) = "Grandstream"; volba volba-66 "10.1.1.50/grandstream/"; } class "dlink" { match if (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "c8:d3:a3:8d") nebo (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "90:94:e4:72"); volba volba-66 "10.1.1.50/dlink/"; } class "yealink" { match if substring (volba vendor-class-identifier,0,7) = "Yealink"; volba volba-66 "10.1.1.50/yealink/"; }

Telefony musely být násilně vyloučeny z obecného fondu. Jinak se jim do jejich „brouzdaliště“ nechtělo.
Příklad nastavení podsítě

podsíť 10.1.1.0 maska ​​sítě 255.255.255.0 { možnost routerů 10.1.1.1; pool { odepřít členy "cisco"; odmítnout členy "panasonic"; odepřít členy "dlink"; rozsah 10.1.1.230 10.1.1.240; } pool { povolit členy "cisco"; rozsah 10.1.1.65 10.1.1.69; } pool { povolit členy "panasonic"; rozsah 10.1.1.60 10.1.1.64; } pool { povolit členy "dlink"; rozsah 10.1.1.55 10.1.1.59; } }

Po restartu všech zúčastněných služeb telefony s jistotou odešly na přidělený tftp server pro nastavení. Nezbývá než je tam umístit.

Cisco 7906

Tyto přístroje jsem obdržel v originálním balení. Musel jsem to změnit, abych se spřátelil s hvězdičkou. Ale to je jiný příběh. V konkrétním případě jsem pro konfiguraci zařízení podle návodu vytvořil soubor SEPAABBCCDDEEFF.cnf.xml v rootu tftp serveru. Kde AABBCCDDEEFF je MAC adresa zařízení.

O nastavení telefonů od společnosti Cisco již bylo napsáno více než jednou, takže nechám pracovní soubor s nastavením.
Nastavení pro 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

Pokud se právě chystáte pořídit telefon této řady, buďte opatrní, automatické ladění je podporováno pouze u zařízení 150S/F3. Na zařízení 150S/F2, které se mi dostalo do rukou, jsem takovou funkcionalitu nenašel.

Konfigurační soubor může být ve formátu xml nebo prostého textu. Pro xml je jeden požadavek: značka musí být na začátku řádku, jinak ji bude parser ignorovat a hodnota odpovídajícího parametru se nezmění.

Ke konfiguraci telefonu se používají dva soubory. f0D00580000.cfg - pro uložení nastavení pro všechny telefony a 00112233aabb.cfg (MAC adresa malými písmeny) pro individuální nastavení. Jednotlivá nastavení mají přirozeně vyšší prioritu.

Celá sada nastavení obsahuje více než tisíc řádků, abych článek nezahltil, popíšu minimální dostatečnou sadu nastavení.

Je vyžadován kořenový uzel VOIP_CONFIG_FILE a uzel v něm vnořený verze. Nastavení se použijí pouze v případě, že verze souboru je vyšší než aktuální nastavení v zařízení. Tuto hodnotu zjistíte přes webové rozhraní telefonu v sekci údržba (správa systému). U telefonů s továrním nastavením je to v obou případech 2.0002. Kromě toho musí být verze jednotlivého souboru vyšší než verze sdíleného souboru.

Nejprve poskytnu soubor se společnou konfigurací pro všechny telefony. Ve skutečnosti ukládá všechna nastavení, jednotlivý soubor bude zodpovědný pouze za telefonní číslo a nápis na obrazovce.

Ve dvou blocích níže se nastavuje časové pásmo a parametry synchronizace času, je povolen počáteční port pro RTP a síťový most mezi konektory WAN a LAN zařízení.

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>

Skutečné názvy konfiguračních parametrů jsou dostatečně popisné, abychom se vyhnuli jejich podrobnému popisu.
SIP pro jednu linku

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

Nastavení dálkového ovládání

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

Nastavení telefonu

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

Všechna ostatní nastavení zůstanou „výchozí“. Nyní každý telefon Dlink připojený k síti okamžitě přijme společnou sadu parametrů pro všechny. Pro nastavení jednotlivých parametrů zařízení je potřeba samostatný soubor. V něm stačí zadat potřebná nastavení pro jednotlivého účastníka.
nastavení předplatitele

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

Tato zařízení přijímají nastavení podle mírně odlišného schématu. Konfigurace je uložena v textových souborech. Maximální velikost konfiguračního souboru je 120 kB. Bez ohledu na počet souborů by jejich celková velikost neměla přesáhnout 120 KB.
Konfigurační soubor se skládá ze sady řádků, které podléhají následujícím podmínkám:

  • První řádek je vždy řádek komentáře, včetně následující sekvence znaků (44 bajtů):
    # Soubor standardního formátu SIP telefonu Panasonic #
    Hexadecimální vyjádření této posloupnosti:
    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
    Aby se předešlo náhodným změnám zavedené sekvence znaků, doporučuje se začít konfigurační soubor řádkem:
    # Soubor standardního formátu SIP telefonu Panasonic # TENTO ŘÁDEK NEMĚŇTE!
  • Konfigurační soubory musí končit prázdným řádkem.
  • Každý řádek musí končit sekvencí " ".
  • Maximální délka řetězce je 537 bajtů, včetně sekvence " "
  • Následující řádky jsou ignorovány:
    • řádky přesahující limit 537 bajtů;
    • prázdné řádky;
    • řádky komentářů začínající "#";
  • Řetězec pro každý parametr je zapsán ve tvaru XXX=“yyy“ (XXX: název parametru, yyy: jeho hodnota). Hodnota musí být uzavřena do dvojitých uvozovek.
  • Rozdělení řádku parametrů na několik řádků není povoleno. To bude mít za následek chybu při zpracování konfiguračního souboru a v důsledku toho selhání inicializace.
  • Hodnoty některých parametrů musí být specifikovány samostatně pro každý řádek. Parametr s příponou "_1" v názvu je parametrem pro řádek 1; "_2" – pro řádek 2 atd.
  • Maximální délka názvu parametru je 32 znaků.
  • Maximální délka hodnoty parametru je 500 znaků bez uvozovek.
  • V řetězci nejsou povoleny žádné mezery, pokud hodnota neobsahuje znak mezery.
  • Některé hodnoty parametrů lze zadat jako „prázdné“ a nastavit parametr na prázdnou hodnotu.
  • Parametry nejsou specifikovány v žádném konkrétním pořadí.
  • Pokud je stejný parametr zadán v konfiguračním souboru více než jednou, použije se hodnota zadaná jako první.

Tak vážný soubor požadavků na konfigurační soubor mě, upřímně řečeno, naštval. Podle mého názoru je implementace interakce s řídicím serverem na telefonech Panasonic extrémně nepohodlná. V tomto parametru je telefon výrazně horší než ostatní.
Při prvním zapnutí (nebo po resetování do továrního nastavení) se zařízení pokusí načíst tzv. produktový soubor (v tomto případě je to KX-UT123RU.cfg), který by měl obsahovat cesty k zbývající konfigurační soubory.
Soubor produktu# Soubor standardního formátu SIP telefonu Panasonic # TENTO ŘÁDEK NEMĚŇTE!

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"

Poté telefon zobrazí zprávu o úspěšném dokončení přípravy a počká na restartování. A po restartu začne zpracovávat konfigurační soubory, které jsou mu přiřazeny.

Doporučuje se zadat obecná nastavení pro všechny telefony v souboru master.cfg. Stejně jako u Dlinku upřesním pouze některé parametry. Názvy zbývajících parametrů a jejich hodnoty naleznete v dokumentaci na webu výrobce.
master.cfg################################################## ##########
#Nastavení systému#
################################################## ##########
## Nastavení přihlašovacího účtu
ADMIN_ID="admin"
ADMIN_PASS="ADMIN_PWD"
USER_ID="uživatel"
USER_PASS="USER_PWD"

## Nastavení systémového času
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=""

## Nastavení 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"

## Nastavení zajišťování
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"

################################################## ##########
#Nastavení sítě#
################################################## ##########
## Nastavení IP
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## Nastavení DNS
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""

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

## Nastavení aplikace 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=""

V konfiguračním souboru jednotlivých zařízení tradičně zůstávají pouze nastavení předplatitele.
aabbccddeeff.cfgDISPLAY_NAME_1="Uživatel #168"

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

Grandstream GXP-1400

Parametry těchto telefonů jsou uloženy v jednom xml souboru s názvem cfg{mac}.xml. Nebo jako prostý text s názvem cfg{mac}. Tento telefon vyžaduje pouze individuální konfigurační soubor, takže optimalizace nastavení přesunutím do společného souboru nebude fungovat. Další funkcí nastavení Grandstreamů je pojmenování parametrů. Všechny jsou očíslovány a označeny jako P###. Například:

P1650 – zodpovědný za webové rozhraní pro správu telefonu (0 – HTTPS, 1 – HTTP)
P47 – Adresa SIP serveru pro připojení.

Pokud je konfigurace uložena v textovém souboru, parametry nevyžadují žádné seskupování a jsou v libovolném pořadí. Řádky začínající # jsou považovány za komentáře.

Pokud jsou nastavení prezentována ve formátu xml, musí být vnořena do uzlu , který zase musí být vnořen . Všechny parametry jsou zapsány ve formě odpovídajících značek s hodnotou parametru uvnitř.
Příklad nastavení

1.0 8 1 1 SIP_PWD Uživatel # 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream třicet

Yealink T19 a T21

Zařízení těchto modelů podporují individuální konfigurační soubory pro zařízení a společné pro modely. V mém případě jsem musel obecné parametry umístit do souborů y000000000031.cfg, respektive y000000000034.cfg. Jednotlivé konfigurační soubory jsou pojmenovány podle MAC adresy: 00112233aabb.cfg.

Nastavení pro yealinks jsou uložena v textovém formátu. Jedinými povinnými požadavky je přítomnost verze souboru na prvním řádku ve formátu #!verze:1.0.0.1.

Všechny parametry se zapisují ve tvaru parametr = hodnota. Komentáře musí začínat znakem „#“. Názvy parametrů a jejich hodnoty naleznete v dokumentaci na webu výrobce.
Obecné nastavení#!verze:1.0.0.1
#Nakonfigurujte typ portu WAN; 0-DHCP (výchozí), 1-PPPoE, 2-Statická IP adresa;
network.internet_port.type = 0
#Nakonfigurujte typ portu PC; 0-Router, 1-Bridge (výchozí);
network.bridge_mode = 1
#Nakonfigurujte typ přístupu webového serveru; 0-Zakázáno, 1-HTTP & HTTPS (výchozí), 2-Pouze HTTP, 3-HTTPS Pouze;
network.web_server_type = 3
#Nakonfigurujte maximální místní port RTP. Pohybuje se od 0 do 65535, výchozí hodnota je 11800.
network.port.max_rtpport = 10100
#Nakonfigurujte minimální místní RTP port. Rozsah je od 0 do 65535, výchozí hodnota je 11780.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = uživatel
security.user_password = uživatel:USER_PWD
#Uveďte jazyk webu, platné hodnoty jsou: angličtina, čínština_S, turečtina, portugalština, španělština, italština, francouzština, ruština, němčina a čeština.
lang.wui = ruština
#Uveďte jazyk LCD, platné hodnoty jsou: angličtina (výchozí), čínština_S, čínština_T, němčina, francouzština, turečtina, italština, polština, španělština a portugalština.
lang.gui = ruština
#Nakonfigurujte časové pásmo a název časového pásma. Časové pásmo se pohybuje od -11 do +12, výchozí hodnota je +8.
#Výchozí název časového pásma je Čína (Peking).
#Více dostupných časových pásem a názvů časových pásem naleznete v uživatelské příručce Yealink IP Phones.
local_time.time_zone = +11
local_time.time_zone_name = Vladivostok
#Nakonfigurujte název domény nebo IP adresu serveru NTP. Výchozí hodnota je cn.pool.ntp.org.
local_time.ntp_server1 = 10.1.1.4
#Nakonfigurujte režim loga obrazovky LCD; 0-Zakázáno (výchozí), 1-Logo systému, 2-Vlastní logo;
phone_setting.lcd_logo.mode = 1
#Nakonfigurujte přístupovou adresu URL a zobrazte název vzdáleného telefonního seznamu. X se pohybuje od 1 do 5.
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Telefonní seznam
features.remote_phonebook.flash_time = 3600

individuální nastavení#!verze:1.0.0.1
#Povolit nebo zakázat účet1, 0-Zakázáno (výchozí), 1-Povoleno;
účet.1.povolit = 1
#Nakonfigurujte štítek zobrazený na LCD obrazovce pro účet1.
account.1.label = Testovací telefon
#Nakonfigurujte zobrazovaný název účtu1.
account.1.display_name = Uživatel 998
#Nakonfigurujte uživatelské jméno a heslo pro ověření registrace.
account.1.auth_name = 998
účet.1.heslo = 998
#Nakonfigurujte uživatelské jméno registrace.
account.1.user_name = 998
#Nakonfigurujte adresu serveru SIP.
account.1.sip_server_host = 10.1.1.50
#Uveďte port pro server SIP. Výchozí hodnota je 5060.
account.1.sip_server_port = 5060

Výsledkem bylo, že díky skvělé funkci automatického poskytování poskytované v telefonech, které jsem zmínil, nebyly žádné problémy s připojením nových zařízení k síti. Vše se zvrtlo na zjištění MAC adresy telefonu a vygenerování konfiguračního souboru pomocí šablony.

Doufám, že jste dočetli až do konce a že vám to, co jste přečetli, přineslo užitek.

Děkuji vám za pozornost.

Zdroj: www.habr.com

Přidat komentář