VoIP Zoo – Provisioning

Iscrizione

Una volta che la direzione ha approvato un esperimento sull'implementazione della telefonia IP nel nostro ufficio. Poiché la mia esperienza in questo settore era scarsa, il compito ha suscitato in me un grande interesse e mi sono immerso nello studio di vari aspetti della questione. Alla fine dell'immersione ho deciso di condividere le conoscenze acquisite, nella speranza che possano essere utili a qualcuno. COSÌ…

Dati iniziali

Asterisk è stato selezionato e distribuito come IP PBX. La flotta di telefoni è composta da dispositivi Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 e Dlink DPH-150S(E)/F3, Yealink T19 e T21. Questa variazione è dovuta al fatto che nell'ambito dell'esperimento si è deciso di provare un po' di tutto per farsi un'opinione sul rapporto prezzo/qualità/convenienza.

Compito

Semplificare e unificare il più possibile il processo di configurazione di nuovi dispositivi. Tutti i telefoni devono essere sincronizzati in tempo, avere una rubrica caricata dal server e fornire accesso alle impostazioni per l'amministratore.

La soluzione a questo problema è semplice: implementare la configurazione automatica dei telefoni, la cosiddetta. approvvigionamento. In realtà, verrà discussa la mia implementazione di questa meravigliosa funzione.

Configurazione di tftpd, dhcpd

Per distribuire le impostazioni sui telefoni, ho scelto tftp come opzione universale, supportata da tutte le piattaforme, facile da configurare e gestire.

Non era richiesta alcuna configurazione specifica per TFTP. Installato tftpd normale e inserito tutti i file necessari nella sua directory principale.
I file con le impostazioni vengono posizionati nelle directory indicate dal produttore del telefono. È vero, il dispositivo Cisco non è entrato nella sua cartella, doveva essere archiviato nella root.

Per indirizzare i telefoni alla posizione del server TFTP, ho utilizzato l'opzione-66. Inoltre, li ha divisi in classi separate per produttore. Ogni classe ha ricevuto il proprio segmento di indirizzi e una cartella individuale per i file di configurazione. A proposito, i dispositivi D-Link dovevano essere calcolati tramite indirizzi MAC, poiché non forniscono informazioni sul produttore nella richiesta DHCP.

Frammento di dhcpd.conf

# Specificare le opzioni richieste opzione opzione-66 codice 66 = testo; class "panasonic" { match if sottostringa (opzione identificatore-classe-venditore,0,9) = "Panasonic"; opzione opzione-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (opzione identificatore classe fornitore,0,36) = "Cisco Systems, Inc. Telefono IP CP-7906"; opzione opzione-66 "10.1.1.50/cisco/"; } class "grandstream" { match if sottostringa (opzione identificatore classe-venditore,0,11) = "Grandstream"; opzione opzione-66 "10.1.1.50/grandstream/"; } class "dlink" { match if (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "c8:d3:a3:8d") o (binary-to-ascii (16,8,":",sottostringa(hardware,1,4)) = "90:94:e4:72"); opzione opzione-66 "10.1.1.50/dlink/"; } class "yealink" { match if sottostringa (opzione identificatore classe-venditore,0,7) = "Yealink"; opzione opzione-66 "10.1.1.50/yealink/"; }

I telefoni dovevano essere esclusi con la forza dal pool generale. Altrimenti non volevano andare nella loro "piscina per bambini".
Esempio di impostazioni della sottorete

sottorete 10.1.1.0 maschera di rete 255.255.255.0 { opzione router 10.1.1.1; pool { nega i membri di "cisco"; negare i membri di "Panasonic"; negare i membri di "dlink"; intervallo 10.1.1.230 10.1.1.240; } pool { consenti membri di "cisco"; intervallo 10.1.1.65 10.1.1.69; } pool { consenti ai membri di "panasonic"; intervallo 10.1.1.60 10.1.1.64; } pool { consenti membri di "dlink"; intervallo 10.1.1.55 10.1.1.59; } }

Dopo aver riavviato tutti i servizi coinvolti, i telefoni hanno eseguito con sicurezza le impostazioni sul server tftp come avrebbero dovuto. Resta solo da metterli lì.

Cisco 7906

Questi dispositivi mi sono arrivati ​​nella confezione di fabbrica. Ho dovuto cambiarlo per fare amicizia con l'asterisco. Ma questa è una storia diversa. In un caso specifico, per configurare il dispositivo, secondo le istruzioni, ho creato il file SEPAABBCCDDEEFF.cnf.xml nella root del server tftp. Dove AABBCCDDEEFF è l'indirizzo MAC della macchina.

Informazioni sulla configurazione dei telefoni Cisco sono state scritte più di una volta, quindi lascerò semplicemente il file di lavoro con le impostazioni.
impostazioni per 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

Se stai per acquistare un telefono di questa serie, fai attenzione, la sintonizzazione automatica è supportata solo nei dispositivi 150S/F3. Sul dispositivo 150S / F2 che mi è caduto tra le mani, non ho trovato tale funzionalità.

Il file di configurazione può essere in formato xml o testo semplice. Per xml c'è un requisito: il tag deve trovarsi all'inizio della riga, altrimenti il ​​parser lo ignorerà e il valore del parametro corrispondente non cambierà.

Per configurare il telefono vengono utilizzati due file. f0D00580000.cfg per tutte le impostazioni del telefono e 00112233aabb.cfg (indirizzo MAC minuscolo) per le impostazioni individuali. Le impostazioni individuali hanno naturalmente la precedenza.

Il set completo di impostazioni ha più di mille righe, per non ingombrare l'articolo, descriverò il set minimo sufficiente di impostazioni.

Il nodo radice è obbligatorio VOIP_CONFIG_FILE e nodo nidificato versione. Le impostazioni verranno applicate solo se la versione del file è superiore alle impostazioni correnti nella macchina. Puoi conoscere questo valore tramite l'interfaccia .web del telefono nella sezione manutenzione (gestione del sistema). Per i telefoni con impostazioni di fabbrica in entrambi i casi è 2.0002. Inoltre, la versione del singolo file deve essere successiva alla versione del file condiviso.

Per prima cosa fornirò un file con una configurazione comune per tutti i telefoni. Memorizza infatti tutte le impostazioni, un singolo file sarà responsabile solo del numero di telefono e della scritta sullo schermo.

I due blocchi sottostanti impostano il fuso orario e i parametri di sincronizzazione dell'ora, la porta iniziale per RTP e abilitano il bridge di rete tra i connettori WAN e LAN del dispositivo.

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

In realtà i nomi dei parametri di configurazione sono sufficientemente "parlanti" per non descriverli nel dettaglio.
SIP per una linea

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

Impostazioni del telecomando

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

Impostazioni del telefono

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

Tutte le altre impostazioni rimarranno "predefinite". Ora qualsiasi telefono Dlink connesso alla rete accetterà immediatamente una serie di parametri comuni a tutti. Per impostare parametri individuali per il dispositivo, è necessario un file separato. Deve solo specificare le impostazioni necessarie per un singolo abbonato.
impostazioni dell'abbonato

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

Questi dispositivi ricevono le impostazioni in modo leggermente diverso. La configurazione viene memorizzata in file di testo. La dimensione massima di un file di configurazione è 120 KB. Indipendentemente dal numero di file, la loro dimensione totale non deve superare i 120 KB.
Il file di configurazione è composto da un insieme di righe soggette alle seguenti condizioni:

  • La prima riga è sempre la riga di commento, che comprende la seguente sequenza di caratteri (44 byte):
    # File in formato standard del telefono SIP Panasonic #
    Rappresentazione esadecimale della sequenza data:
    23 20 50F 61E 6 61 73 6 6 69 63 20 53 49F 50E 20 50 68 6 6 65E 20 53 74 61 6 64 61F 72 64D 20 46 6 72 6 61 C 74 20 46
    Per evitare modifiche accidentali della sequenza di caratteri impostata, si consiglia di avviare il file di configurazione con la riga:
    # File in formato standard del telefono SIP Panasonic # NON CAMBIARE QUESTA RIGA!
  • I file di configurazione devono terminare con una riga vuota.
  • Ogni riga deve terminare con " ".
  • La lunghezza massima di una stringa è 537 byte, compresa la sequenza " "
  • Le seguenti righe vengono ignorate:
    • stringhe che superano il limite di 537 byte;
    • righe vuote;
    • righe di commento che iniziano con "#";
  • Ogni stringa di parametro è scritta nella forma XXX="yyy" (XXX: nome del parametro, yyy: il suo valore). Il valore deve essere racchiuso tra virgolette doppie.
  • Non è consentito dividere la stringa del parametro su più righe. Ciò comporterà un errore nell'elaborazione del file di configurazione e, di conseguenza, un errore di inizializzazione.
  • I valori di alcuni parametri devono essere specificati separatamente per ciascuna riga. Il parametro con il suffisso "_1" nel nome è il parametro per la riga 1; "_2" è per la linea 2, ecc.
  • La lunghezza massima del nome del parametro è di 32 caratteri.
  • La lunghezza massima del valore del parametro è 500 caratteri, escluse le virgolette doppie.
  • Nella stringa non sono consentiti spazi a meno che il valore non includa uno spazio.
  • Alcuni valori dei parametri possono essere specificati come "vuoti" per impostare il parametro su un valore vuoto.
  • I parametri sono specificati senza un ordine particolare.
  • Se lo stesso parametro viene specificato più di una volta nel file di configurazione, viene applicato il valore specificato per primo.

Una serie così seria di requisiti per il file di configurazione, francamente, mi ha sconvolto. A mio avviso, l'implementazione dell'interazione con il server di controllo nei telefoni Panasonic è estremamente scomoda. In questo parametro, il telefono è significativamente inferiore al resto.
Quando la macchina viene accesa per la prima volta (o dopo un ripristino delle impostazioni di fabbrica), tenta di caricare un cosiddetto file del prodotto (in questo caso, KX-UT123RU.cfg), che dovrebbe contenere percorsi ad altri file di configurazione.
Scheda prodotto# File in formato standard del telefono SIP Panasonic # NON CAMBIARE QUESTA RIGA!

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"

Il telefono visualizzerà quindi un messaggio indicante che il provisioning è riuscito e attenderà il riavvio. E dopo il riavvio, inizierà a elaborare i file di configurazione che gli sono stati assegnati.

Si consiglia di specificare le impostazioni generali per tutti i telefoni nel file master.cfg. Come nel caso di Dlink, specificherò solo alcuni parametri. I nomi degli altri parametri e i loro valori possono essere trovati nella documentazione sul sito web del produttore.
master.cfg################################################# ##########
#Impostazioni di sistema#
################################################# ##########
## Impostazioni dell'account di accesso
ADMIN_ID="amministratore"
ADMIN_PASS="ADMIN_PWD"
USER_ID="utente"
USER_PASS="USER_PWD"

## Impostazioni dell'ora del sistema
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=""

## Impostazioni del registro di sistema
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"

## Impostazioni di provisioning
OPTION66_ENABLE="Y"
OPTION66_REBOOT="N"
PROVISION_ENABLE="S"
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"

################################################# ##########
# impostazioni di rete #
################################################# ##########
## Impostazioni IP
CONNESSIONE_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

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

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

## Impostazioni dell'applicazione 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=""

Tradizionalmente, solo le impostazioni dell'abbonato rimangono nel file di configurazione individuale del dispositivo.
aabbccddeeff.cfgDISPLAY_NAME_1="Utente n. 168"

TELEFONO_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="Abilitato"
PROFILE_ENABLE_1="Abilitato"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"

Grandstream GXP-1400

I parametri di questi telefoni sono memorizzati in un unico file xml chiamato cfg{mac}.xml. Oppure in testo semplice con il nome cfg{mac}. Questo telefono richiede solo un file di configurazione individuale, quindi ottimizzare le impostazioni spostandole in un file comune non funzionerà. Un'altra caratteristica della configurazione di Grandstream è la denominazione dei parametri. Tutti sono numerati e designati come P###. Per esempio:

P1650 - responsabile dell'interfaccia web per la gestione del telefono (0 - HTTPS, 1 - HTTP)
P47 - Indirizzo del server SIP per la connessione.

Se la configurazione è memorizzata in un file di testo, i parametri non richiedono alcun raggruppamento e sono disponibili in qualsiasi ordine. Le righe che iniziano con # vengono trattate come commenti.

Se le impostazioni sono presentate in formato xml, devono essere annidate nel nodo , che a sua volta deve essere incorporato . Tutti i parametri vengono scritti come tag corrispondenti con il valore del parametro all'interno.
Esempio di impostazione

1.0 8 1 1 SIP_PWD Utente n. 271 1 271 270 109 ADMIN_PWD UTENTE_PWD en 270 35/grandestream 109 TZc-35 36 109 http://36/provisioning/grandstream trenta

Yealink T19 e T21

I dispositivi di questi modelli supportano file di configurazione individuali per i dispositivi e file comuni per i modelli. Nel mio caso, ho dovuto inserire i parametri generali rispettivamente nei file y000000000031.cfg e y000000000034.cfg. I singoli file di configurazione vengono denominati in base all'indirizzo MAC: 00112233aabb.cfg.

Le impostazioni per yealink sono archiviate in formato testo. Tra i requisiti obbligatori, solo la presenza nella prima riga della versione del file, nel formato #!version:1.0.0.1.

Tutti i parametri sono scritti come parametro = valore. I commenti devono iniziare con il carattere "#". I nomi dei parametri e i loro valori si trovano nella documentazione sul sito web del produttore.
Impostazioni generali#!versione:1.0.0.1
#Configura il tipo di porta WAN; 0-DHCP (predefinito), 1-PPPoE, 2-Indirizzo IP statico;
rete.porta_internet.tipo = 0
#Configura il tipo di porta del PC; 0 router, 1 bridge (predefinito);
rete.bridge_mode = 1
#Configurare il tipo di accesso del web server; 0-Disabilitato, 1-HTTP e HTTPS (predefinito), 2-Solo HTTP, Solo 3-HTTPS;
rete.tipo_server_web = 3
#Configura la porta RTP locale massima. Varia da 0 a 65535, il valore predefinito è 11800.
rete.porta.max_rtpport = 10100
#Configura la porta RTP locale minima. Varia da 0 a 65535, il valore predefinito è 11780.
rete.porta.min_rtpport = 10000
security.nome_utente.admin = root
sicurezza.utente_password = root:ADMIN_PWD
security.nome_utente.utente = utente
security.utente_password = utente:USER_PWD
#Specificare la lingua web, i valori validi sono: inglese, cinese_S, turco, portoghese, spagnolo, italiano, francese, russo, tedesco e ceco.
lang.wui = russo
#Specificare la lingua LCD, i valori validi sono: inglese (predefinito), cinese_S, cinese_T, tedesco, francese, turco, italiano, polacco, spagnolo e portoghese.
lang.gui = russo
#Configura il fuso orario e il nome del fuso orario. Il fuso orario varia da -11 a +12, il valore predefinito è +8.
#Il nome del fuso orario predefinito è Cina (Pechino).
#Fare riferimento alla Guida per l'utente dei telefoni IP Yealink per ulteriori fusi orari disponibili e nomi di fusi orari.
ora_locale.fuso_orario = +11
local_time.time_zone_name = Vladivostok
#Configurare il nome di dominio o l'indirizzo IP del server NTP. Il valore predefinito è cn.pool.ntp.org.
ora_locale.ntp_server1 = 10.1.1.4
#Configura la modalità logo dello schermo LCD; 0-Disabilitato (predefinito), 1-Logo di sistema, 2-Logo personalizzato;
telefono_impostazione.lcd_logo.mode = 1
#Configurare l'URL di accesso e il nome visualizzato della rubrica remota. X varia da 1 a 5.
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Rubrica
features.remote_phonebook.flash_time = 3600

impostazioni individuali#!versione:1.0.0.1
#Abilita o disabilita l'account1, 0-Disabilitato (predefinito), 1-Abilitato;
account.1.abilita = 1
#Configurare l'etichetta visualizzata sullo schermo LCD per l'account1.
account.1.label = telefono di prova
#Configura il nome visualizzato dell'account1.
account.1.display_name = Utente998
#Configura nome utente e password per l'autenticazione del registro.
account.1.nome_auth = 998
account.1.password = 998
#Configura il nome utente del registro.
account.1.nome_utente = 998
#Configurare l'indirizzo del server SIP.
account.1.sip_server_host = 10.1.1.50
#Specificare la porta per il server SIP. Il valore predefinito è 5060.
account.1.sip_server_port = 5060

Di conseguenza, grazie alla meravigliosa funzione di auto-provisioning prevista nei telefoni di cui ho parlato, non ci sono stati problemi nel connettere i nuovi dispositivi alla rete. Tutto si è ridotto a scoprire l'indirizzo MAC del telefono e a generare un file di configurazione da un modello.

Spero che tu abbia letto fino alla fine e che tu abbia tratto beneficio da ciò che hai letto.

Grazie per la vostra attenzione.

Fonte: habr.com

Aggiungi un commento