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

# Посочете необходимите опции option option-66 код 66 = текст; клас "panasonic" { match if substring (опция 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 (опция vendor-class-identifier,0,11) = "Grandstream"; опция опция-66 "10.1.1.50/grandstream/"; } class "dlink" { match if (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "c8:d3:a3:8d") or (binary-to-ascii (16,8,":",подниз(хардуер,1,4)) = "90:94:e4:72"); опция опция-66 "10.1.1.50/dlink/"; } клас "yealink" { съответства на подниз (option vendor-class-identifier,0,7) = "Yealink"; опция опция-66 "10.1.1.50/yealink/"; }

Телефоните трябваше да бъдат принудително изключени от общия пул. Иначе не искаха да ходят на техния „басейн за гребане“.
Пример за настройки на подмрежата

подмрежа 10.1.1.0 мрежова маска 255.255.255.0 { опция рутери 10.1.1.1; pool { deny членове на "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 KB. Независимо от броя на файловете, общият им размер не трябва да надвишава 120 KB.
Конфигурационният файл се състои от набор от редове, които са предмет на следните условия:

  • Първият ред винаги е ред за коментар, включващ следната последователност от знаци (44 байта):
    # Файл със стандартен формат на SIP телефон Panasonic #
    Шестнадесетично представяне на тази последователност:
    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 6F 72 6D 61 74 20 46 69 6 C 65 20 23
    За да предотвратите случайни промени в установената последователност от знаци, се препоръчва да стартирате конфигурационния файл с реда:
    # Файл със стандартен формат на SIP телефон Panasonic # НЕ ПРОМЕНЯЙТЕ ТОЗИ РЕД!
  • Конфигурационните файлове трябва да завършват с празен ред.
  • Всеки ред трябва да завършва с последователността " ".
  • Максималната дължина на низа е 537 байта, включително последователността " "
  • Следните редове се игнорират:
    • редове, надвишаващи ограничението от 537 байта;
    • празни редове;
    • коментарни редове, започващи с "#";
  • Низът за всеки параметър е написан във формата XXX=“yyy” (XXX: име на параметър, yyy: неговата стойност). Стойността трябва да бъде затворена в двойни кавички.
  • Разделянето на параметър на няколко реда не е разрешено. Това ще доведе до грешка при обработката на конфигурационния файл и, като резултат, неуспешна инициализация.
  • Стойностите на някои параметри трябва да бъдат посочени отделно за всеки ред. Параметърът със суфикс "_1" в името е параметърът за ред 1; „_2“—за ред 2 и т.н.
  • Максималната дължина на името на параметъра е 32 знака.
  • Максималната дължина на стойността на параметъра е 500 знака, с изключение на двойните кавички.
  • Не са разрешени интервали в низа, освен ако стойността не включва знак за интервал.
  • Някои стойности на параметри могат да бъдат посочени като „празни“, за да зададете празна стойност на параметъра.
  • Параметрите са посочени без конкретен ред.
  • Ако един и същ параметър е посочен повече от веднъж в конфигурационен файл, се прилага стойността, посочена първа.

Такъв сериозен набор от изисквания за конфигурационния файл, честно казано, ме разстрои. Според мен внедряването на взаимодействие с контролния сървър на телефони Panasonic е изключително неудобно. В този параметър телефонът е значително по-нисък от другите.
Когато включите устройството за първи път (или след като го върнете към фабричните настройки), то се опитва да зареди така наречения продуктов файл (в случая това е KX-UT123RU.cfg), който трябва да съдържа пътищата до оставащи конфигурационни файлове.
Продуктов файл# Файл със стандартен формат на SIP телефон Panasonic # НЕ ПРОМЕНЯЙТЕ ТОЗИ РЕД!

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 се съхраняват в текстов формат. Единствените задължителни изисквания са наличието на версията на файла на първия ред, във формат #!version:1.0.0.1.

Всички параметри се записват във формата параметър = стойност. Коментарите трябва да започват със знака "#". Имената на параметрите и техните стойности могат да бъдат намерени в документацията на уебсайта на производителя.
Основни настройки#!версия:1.0.0.1
#Конфигурирайте типа WAN порт; 0-DHCP (по подразбиране), 1-PPPoE, 2-статичен IP адрес;
network.internet_port.type = 0
#Конфигурирайте типа порт на компютъра; 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 = root
security.user_password = root:ADMIN_PWD
security.user_name.user = потребител
security.user_password = потребител: USER_PWD
#Посочете уеб езика, валидните стойности са: английски, китайски_S, турски, португалски, испански, италиански, френски, руски, немски и чешки.
lang.wui = руски
#Посочете LCD езика, валидните стойности са: английски (по подразбиране), китайски_S, китайски_T, немски, френски, турски, италиански, полски, испански и португалски.
lang.gui = руски
#Конфигурирайте часовата зона и името на часовата зона. Часовата зона варира от -11 до +12, стойността по подразбиране е +8.
#Името на часовата зона по подразбиране е Китай (Пекин).
#Вижте Ръководството на потребителя за IP телефони Yealink за повече налични часови зони и имена на часови зони.
местно_време.часова_зона = +11
local_time.time_zone_name = Владивосток
#Конфигурирайте името на домейна или IP адреса на NTP сървъра. Стойността по подразбиране е 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
#Конфигурирайте потребителското име и паролата за удостоверяване на регистъра.
account.1.auth_name = 998
account.1.password = 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 адреса на телефона и генериране на конфигурационен файл с помощта на шаблон.

Надявам се, че сте прочели до края и сте се възползвали от прочетеното.

Благодаря ви за вниманието.

Източник: www.habr.com

Добавяне на нов коментар