Zoo VoIP – Aprovizionare

Intrare

Într-o zi, conducerea a aprobat un experiment de introducere a telefoniei IP în biroul nostru. Întrucât experiența mea în acest domeniu a fost redusă, sarcina a trezit în mine un mare interes și m-am cufundat în studiul diverselor aspecte ale problemei. La finalul scufundării, am decis să împărtășesc cunoștințele pe care le dobândisem în speranța că vor fi de folos cuiva. Asa de…

Datele brute

Asterisk a fost selectat și implementat ca IP PBX. Flota de telefoane este formată din dispozitive Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 și Dlink DPH-150S(E)/F3, Yealink T19 și T21. Această variație se datorează faptului că, în cadrul experimentului, s-a decis să încercăm puțin din toate pentru a ne forma o opinie asupra raportului preț/calitate/confort.

Sarcină

Simplificați și unificați cât mai mult posibil procesul de configurare a noilor dispozitive. Toate telefoanele trebuie să fie sincronizate în timp, să aibă o agenda telefonică încărcată de pe server și să ofere acces la setări pentru administrator.

Soluția la această problemă este simplă - implementați configurarea automată a telefoanelor, așa-numita. Aprovizionare. De fapt, implementarea mea a acestei funcții minunate va fi discutată.

Configurarea tftpd,dhcpd

Pentru a distribui setările pe telefoane, am ales tftp ca opțiune universală, suportată de toate platformele, ușor de configurat și gestionat.

Nu a fost necesară nicio configurație specifică pentru tftp. Am instalat tftpd standard și am plasat toate fișierele necesare în directorul său rădăcină.
Am plasat fișierele de setări în directoare în conformitate cu producătorul telefonului. Adevărat, dispozitivul Cisco nu a intrat niciodată în folderul său, așa că a trebuit să îl stochez în rădăcină.

Pentru a îndrepta telefoanele către locația serverului tftp, am folosit opțiunea-66. În plus, le-a împărțit în clase separate în funcție de producător. Fiecare clasă a primit propriul segment de adresă și un folder individual pentru fișierele de configurare. Apropo, dispozitivele de la D-link trebuiau calculate după adrese MAC, deoarece nu oferă informații despre producător în cererea dhcp.

Fragment dhcpd.conf

# Specificați opțiunile necesare opțiunea opțiunea-66 cod 66 = text; class "panasonic" { match if substring (opțiune vendor-class-identifier,0,9) = "Panasonic"; opțiunea opțiunea-66 „10.1.1.50/panasonic/”; } class "cisco" { match if substring (opțiune vendor-class-identifier,0,36) = "Telefon IP Cisco Systems, Inc. CP-7906"; opțiunea opțiunea-66 „10.1.1.50/cisco/”; } class "grandstream" { match if substring (opțiune vendor-class-identifier,0,11) = "Grandstream"; opțiunea opțiunea-66 „10.1.1.50/grandstream/”; } clasa "dlink" { potrivire dacă (binar-la-ascii (16,8,":",substring(hardware,1,4)) = "c8:d3:a3:8d") sau (binar-la-ascii (16,8,":",substring(hardware,1,4)) = "90:94:e4:72"); opțiunea opțiunea-66 „10.1.1.50/dlink/”; } class "yealink" { match if substring (opțiune vendor-class-identifier,0,7) = "Yealink"; opțiunea opțiunea-66 „10.1.1.50/yealink/”; }

Telefoanele trebuiau excluse cu forța din bazinul general. În caz contrar, nu au vrut să meargă la „piscina pentru copii”.
Exemplu de setări de subrețea

subnet 10.1.1.0 netmask 255.255.255.0 { opțiune routere 10.1.1.1; pool { deny membrii „cisco”; refuză membrii „panasonic”; refuza membrii „dlink”; interval 10.1.1.230 10.1.1.240; } pool { permit membrii „cisco”; interval 10.1.1.65 10.1.1.69; } pool { permit membrii „panasonic”; interval 10.1.1.60 10.1.1.64; } pool { permit membrii „dlink”; interval 10.1.1.55 10.1.1.59; } }

După repornirea tuturor serviciilor implicate, telefoanele au mers cu încredere la serverul tftp alocat pentru setări. Rămâne doar să le plasăm acolo.

Cisco 7906

Am primit aceste dispozitive în ambalajul lor original. A trebuit să-l schimb ca să mă împrietenesc cu asterisc. Dar asta este o altă poveste. Într-un caz anume, pentru a configura dispozitivul, conform instrucțiunilor, am creat fișierul SEPAABBCCDDEEFF.cnf.xml în rădăcina serverului tftp. Unde AABBCCDDEEFF este adresa MAC a dispozitivului.

S-a scris deja de mai multe ori despre configurarea telefoanelor de la Cisco, așa că voi lăsa doar un fișier de lucru cu setările.
Setări pentru 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

Dacă sunteți pe cale să achiziționați un telefon din această serie, aveți grijă, reglarea automată este acceptată doar în dispozitivele 150S/F3. Pe dispozitivul 150S/F2 care mi-a venit în mâini, nu am găsit o astfel de funcționalitate.

Fișierul de configurare poate fi în format xml sau text simplu. Există o cerință pentru xml: eticheta trebuie să fie la începutul liniei, altfel analizatorul o va ignora și valoarea parametrului corespunzător nu se va modifica.

Două fișiere sunt folosite pentru a configura telefonul. f0D00580000.cfg - pentru stocarea setărilor pentru toate telefoanele și 00112233aabb.cfg (adresa MAC cu litere mici) pentru setările individuale. Setările individuale au în mod natural o prioritate mai mare.

Setul complet de setări conține mai mult de o mie de rânduri, pentru a nu aglomera articolul, voi descrie setul minim suficient de setări.

Este necesar nodul rădăcină VOIP_CONFIG_FILE iar nodul imbricat în el versiune. Setările vor fi aplicate numai dacă versiunea fișierului este mai mare decât setările curente din dispozitiv. Puteți afla această valoare prin interfața web a telefonului în secțiunea de întreținere (management sistem). Pentru telefoanele cu setări din fabrică, în ambele cazuri este 2.0002. În plus, versiunea fișierului individual trebuie să fie mai mare decât versiunea fișierului partajat.

În primul rând, voi furniza un fișier cu o configurație comună pentru toate telefoanele. De fapt, acesta stochează toate setările, fișierul individual va fi responsabil doar pentru numărul de telefon și inscripția de pe ecran.

În cele două blocuri de mai jos sunt setați fusul orar și parametrii de sincronizare orară, portul inițial pentru RTP și puntea de rețea dintre conectorii WAN și LAN ai dispozitivului este activată.

Fragmentul nr. 1

<GLOBAL_CONFIG_MODULE>
<WAN_Mode>DHCP</WAN_Mode>
<Default_Protocol>2</Default_Protocol>
<Enable_DHCP>1</Enable_DHCP>
<DHCP_Auto_DNS>1</DHCP_Auto_DNS>
<DHCP_Auto_Time>0</DHCP_Auto_Time>
<Host_Name>VOIP</Host_Name>
<RTP_Initial_Port>10000</RTP_Initial_Port>
<RTP_Port_Quantity>200</RTP_Port_Quantity>
<SNTP_Server>10.1.1.4</SNTP_Server>
<Enable_SNTP>1</Enable_SNTP>
<Time_Zone>71</Time_Zone>
<Time_Zone_Name>UCT_011</Time_Zone_Name>
<Enable_DST>0</Enable_DST>
<SNTP_Timeout>60</SNTP_Timeout>
<Default_UI>12</Default_UI>
<MTU_Length>1500</MTU_Length>
</GLOBAL_CONFIG_MODULE>
<LAN_CONFIG_MODULE>
<Enable_Bridge_Mode>1</Enable_Bridge_Mode>
<Enable_Port_Mirror>1</Enable_Port_Mirror>
</LAN_CONFIG_MODULE>

Numele reale ale parametrilor de configurare sunt suficient de descriptive pentru a evita descrierea lor în detaliu.
SIP pentru o linie

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

Setări telecomandă

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

Setările telefonului

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

Toate celelalte setări vor rămâne „implicite”. Acum orice telefon Dlink conectat la rețea va accepta imediat un set comun de parametri pentru toți. Pentru a seta parametrii individuali pentru dispozitiv, este necesar un fișier separat. În el, trebuie doar să specificați setările necesare pentru un abonat individual.
setările abonatului

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

Aceste dispozitive primesc setări conform unei scheme ușor diferite. Configurația este stocată în fișiere text. Dimensiunea maximă a fișierului de configurare este de 120 KB. Indiferent de numărul de fișiere, dimensiunea totală a acestora nu trebuie să depășească 120 KB.
Fișierul de configurare constă dintr-un set de linii, care sunt supuse următoarelor condiții:

  • Prima linie este întotdeauna o linie de comentariu, incluzând următoarea secvență de caractere (44 de octeți):
    # Panasonic SIP Phone Standard Format File #
    Reprezentarea hexazecimală a acestei secvențe:
    23 20 50 61 6E 61 73 6F 6E 69 63 20 53 49 50 20 50 68 6F 6 65 20 53 74 61E 6 64 61 72 64 20 46D 6 72 6 61 74 20 46 69 6 65
    Pentru a preveni modificările accidentale ale secvenței stabilite de caractere, se recomandă să porniți fișierul de configurare cu linia:
    # Panasonic SIP Phone Standard Format File # NU SCHIMBAȚI ACEASTA LINIE!
  • Fișierele de configurare trebuie să se încheie cu o linie goală.
  • Fiecare linie trebuie să se termine cu secvența „ ".
  • Lungimea maximă a șirului este de 537 de octeți, inclusiv secvența " "
  • Următoarele rânduri sunt ignorate:
    • linii care depășesc limita de 537 de octeți;
    • linii goale;
    • linii de comentarii care încep cu „#”;
  • Șirul pentru fiecare parametru este scris sub forma XXX=“yyy” (XXX: numele parametrului, yyy: valoarea acestuia). Valoarea trebuie inclusă între ghilimele duble.
  • Împărțirea unei linii de parametri în mai multe linii nu este permisă. Acest lucru va avea ca rezultat o eroare la procesarea fișierului de configurare și, ca urmare, o eroare de inițializare.
  • Valorile unor parametri trebuie specificate separat pentru fiecare linie. Parametrul cu sufixul „_1” în nume este parametrul pentru linia 1; „_2”—pentru linia 2 etc.
  • Lungimea maximă a numelui parametrului este de 32 de caractere.
  • Lungimea maximă a valorii parametrului este de 500 de caractere, excluzând ghilimelele duble.
  • Nu sunt permise spații în șir decât dacă valoarea include un caracter spațiu.
  • Unele valori ale parametrilor pot fi specificate ca „gol” pentru a seta parametrul la o valoare goală.
  • Parametrii nu sunt specificați într-o ordine anume.
  • Dacă același parametru este specificat de mai multe ori într-un fișier de configurare, se aplică prima valoare specificată.

Un set atât de serios de cerințe pentru fișierul de configurare, sincer vorbind, m-a supărat. După părerea mea, implementarea interacțiunii cu serverul de control pe telefoanele Panasonic este extrem de incomodă. În acest parametru, telefonul este semnificativ inferior altora.
Când porniți dispozitivul pentru prima dată (sau după ce îl resetați la setările din fabrică), acesta încearcă să încarce așa-numitul fișier de produs (în acest caz este KX-UT123RU.cfg), care ar trebui să conțină căile către fișierele de configurare rămase.
Fișierul produsului# Panasonic SIP Phone Standard Format File # NU SCHIMBAȚI ACEASTA LINIE!

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"

După aceasta, telefonul va afișa un mesaj despre finalizarea cu succes a pregătirii și va aștepta până când este repornit. Și după repornire, va începe să proceseze fișierele de configurare alocate acestuia.

Se recomandă specificarea setărilor generale pentru toate telefoanele în fișierul master.cfg. Ca și în cazul Dlink, voi specifica doar câțiva parametri. Numele parametrilor rămași și valorile acestora pot fi găsite în documentația de pe site-ul producătorului.
maestru.cfg#################################################################### ##########
#Setarile sistemului#
#################################################################### ##########
## Setările contului de autentificare
ADMIN_ID="admin"
ADMIN_PASS="ADMIN_PWD"
USER_ID="utilizator"
USER_PASS="USER_PWD"

## Setări oră de sistem
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=""

## Setări 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"

## Setări de aprovizionare
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"

#################################################################### ##########
#Setari de retea#
#################################################################### ##########
## Setări IP
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## Setări DNS
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""

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

## Setările aplicației 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=""

În mod tradițional, în fișierul de configurare individual al dispozitivului rămân doar setările abonatului.
aabbccddeeff.cfgDISPLAY_NAME_1="Utilizatorul #168"

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

Grandstream GXP-1400

Parametrii acestor telefoane sunt stocați într-un fișier xml numit cfg{mac}.xml. Sau în text simplu cu numele cfg{mac}. Acest telefon solicită doar un fișier de configurare individual, așa că optimizarea setărilor prin mutarea lor într-un fișier comun nu va funcționa. O altă caracteristică a instalării Grandstreams este denumirea parametrilor. Toate sunt numerotate și desemnate ca P###. De exemplu:

P1650 – responsabil pentru interfața web pentru gestionarea telefonului (0 – HTTPS, 1 – HTTP)
P47 – Adresa serverului SIP pentru conexiune.

Dacă configurația este stocată într-un fișier text, parametrii nu necesită nicio grupare și sunt în orice ordine. Rândurile care încep cu # sunt tratate ca comentarii.

Dacă setările sunt prezentate în format xml, acestea trebuie să fie imbricate într-un nod , care la rândul său trebuie să fie imbricat în . Toți parametrii sunt scriși sub formă de etichete corespunzătoare cu valoarea parametrului în interior.
Exemplu de stabilire

1.0 8 1 1 SIP_PWD Utilizator # 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream treizeci

Yealink T19 și T21

Dispozitivele acestor modele acceptă fișiere de configurare individuale pentru dispozitive și cele comune pentru modele. În cazul meu, a trebuit să plasez parametrii generali în fișierele y000000000031.cfg și respectiv y000000000034.cfg. Fișierele de configurare individuale sunt denumite în funcție de adresa MAC: 00112233aabb.cfg.

Setările pentru yealinks sunt stocate în format text. Singurele cerințe obligatorii sunt prezența versiunii fișierului în prima linie, în formatul #!version:1.0.0.1.

Toți parametrii sunt scriși sub forma parametru = valoare. Comentariile trebuie să înceapă cu un caracter „#”. Numele parametrilor și valorile acestora pot fi găsite în documentația de pe site-ul producătorului.
Setari generale#!versiunea:1.0.0.1
#Configurați tipul portului WAN; 0-DHCP (implicit), 1-PPPoE, 2-Adresă IP statică;
network.internet_port.type = 0
#Configurați tipul portului PC; 0-Router, 1-Bridge (implicit);
network.bridge_mode = 1
#Configurați tipul de acces al serverului web; 0-Dezactivat, 1-HTTP și HTTPS (implicit), Numai 2-HTTP, Numai 3-HTTPS;
network.web_server_type = 3
#Configurați portul RTP local maxim. Acesta variază de la 0 la 65535, valoarea implicită este 11800.
network.port.max_rtpport = 10100
#Configurați portul RTP local minim. Acesta variază de la 0 la 65535, valoarea implicită este 11780.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = utilizator
security.user_password = utilizator:USER_PWD
#Specificați limba web, valorile valide sunt: ​​engleză, chineză_S, turcă, portugheză, spaniolă, italiană, franceză, rusă, germană și cehă.
lang.wui = rusă
#Specificați limba LCD, valorile valide sunt: ​​engleză (implicit), chineză_S, chineză_T, germană, franceză, turcă, italiană, poloneză, spaniolă și portugheză.
lang.gui = rusă
#Configurați fusul orar și numele fusului orar. Fusul orar variază de la -11 la +12, valoarea implicită este +8.
#Numele implicit de fus orar este China (Beijing).
#Consultați Ghidul utilizatorului de telefoane IP Yealink pentru mai multe fusuri orare disponibile și nume de fus orar.
local_time.time_zone = +11
local_time.time_zone_name = Vladivostok
#Configurați numele domeniului sau adresa IP a serverului NTP. Valoarea implicită este cn.pool.ntp.org.
local_time.ntp_server1 = 10.1.1.4
#Configurați modul logo al ecranului LCD; 0-Dezactivat (implicit), 1-Sigla sistemului, 2-Sigla personalizată;
phone_setting.lcd_logo.mode = 1
#Configurați adresa URL de acces și numele afișat al agendei telefonice de la distanță. X variază de la 1 la 5.
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Agenda telefonică
features.remote_phonebook.flash_time = 3600

setări individuale#!versiunea:1.0.0.1
#Activați sau dezactivați contul1, 0-Dezactivat (implicit), 1-Activat;
cont.1.activare = 1
#Configurați eticheta afișată pe ecranul LCD pentru contul1.
account.1.label = Telefon de testare
#Configurați numele afișat al contului1.
account.1.display_name = Utilizator 998
#Configurați numele de utilizator și parola pentru autentificarea înregistrării.
account.1.auth_name = 998
cont.1.parola = 998
#Configurați numele de utilizator înregistrat.
cont.1.nume_utilizator = 998
#Configurați adresa serverului SIP.
cont.1.sip_server_host = 10.1.1.50
#Specificați portul pentru serverul SIP. Valoarea implicită este 5060.
cont.1.sip_server_port = 5060

Drept urmare, datorită minunatei funcții de auto-provizionare oferită în telefoanele pe care le-am menționat, nu au existat probleme la conectarea noilor dispozitive la rețea. Totul s-a rezumat la aflarea adresei MAC a telefonului și generarea unui fișier de configurare folosind un șablon.

Sper că ai citit până la sfârșit și ai beneficiat de ceea ce ai citit.

Vă mulțumesc pentru atenție.

Sursa: www.habr.com

Adauga un comentariu