VoIP Zoo – Bereitstellung

Eintrag

Eines Tages genehmigte die Geschäftsleitung ein Experiment zur Einführung von IP-Telefonie in unserem Büro. Da meine Erfahrung auf diesem Gebiet dürftig war, weckte die Aufgabe bei mir großes Interesse und ich vertiefte mich in die Auseinandersetzung mit verschiedenen Aspekten des Themas. Am Ende des Tauchgangs beschloss ich, das erworbene Wissen weiterzugeben, in der Hoffnung, dass es jemandem von Nutzen sein würde. Also…

Ausgangsdaten

Asterisk wurde als IP-PBX ausgewählt und eingesetzt. Die Telefonflotte besteht aus Cisco 7906g-, Panasonic UT-KX123B-, Grandstream GXP1400- und Dlink DPH-150S(E)/F3-, Yealink T19- und T21-Geräten. Diese Abweichung ist auf die Tatsache zurückzuführen, dass im Rahmen des Experiments beschlossen wurde, von allem etwas auszuprobieren, um sich eine Meinung über das Preis-Leistungs-Komfort-Verhältnis zu bilden.

Aufgabe

Vereinfachen und vereinheitlichen Sie den Prozess der Einrichtung neuer Geräte so weit wie möglich. Alle Telefone müssen zeitsynchronisiert sein, über ein vom Server geladenes Telefonbuch verfügen und dem Administrator Zugriff auf Einstellungen ermöglichen.

Die Lösung für dieses Problem ist einfach: Implementieren Sie die automatische Konfiguration von Telefonen, die sogenannte. Bereitstellung. Eigentlich wird meine Implementierung dieser wunderbaren Funktion besprochen.

Konfigurieren von tftpd, dhcpd

Um Einstellungen an Telefone zu verteilen, habe ich TFTP als universelle Option gewählt, die von allen Plattformen unterstützt wird und einfach zu konfigurieren und zu verwalten ist.

Für TFTP war keine spezielle Konfiguration erforderlich. Ich habe den Standard-tftpd installiert und alle erforderlichen Dateien im Stammverzeichnis abgelegt.
Ich habe die Einstellungsdateien in Verzeichnissen abgelegt, die dem Telefonhersteller entsprechen. Stimmt, das Cisco-Gerät landete nie in seinem Ordner, also musste ich es im Stammverzeichnis speichern.

Um die Telefone auf den Standort des TFTP-Servers zu verweisen, habe ich Option-66 verwendet. Darüber hinaus teilte er sie nach Herstellern in separate Klassen ein. Jede Klasse erhielt ein eigenes Adresssegment und einen individuellen Ordner für Konfigurationsdateien. Geräte von D-Link mussten übrigens über MAC-Adressen berechnet werden, da diese in der DHCP-Anfrage keine Angaben zum Hersteller machen.

Fragmentieren Sie dhcpd.conf

# Geben Sie die erforderlichen Optionen an option option-66 code 66 = text; class „panasonic“ { match if substring (option seller-class-identifier,0,9) = „Panasonic“; Option option-66 „10.1.1.50/panasonic/“; } class „cisco“ { match if substring (option seller-class-identifier,0,36) = „Cisco Systems, Inc. IP Phone CP-7906“; Option option-66 „10.1.1.50/cisco/“; } class „grandstream“ { match if substring (option seller-class-identifier,0,11) = „Grandstream“; option option-66 „10.1.1.50/grandstream/“; } class „dlink“ { match if (binary-to-ascii (16,8,:“,substring(hardware,1,4)) = „c8:d3:a3:8d“) oder (binary-to-ascii (16,8,::,substring(hardware,1,4)) = "90:94:e4:72"); Option Option-66 „10.1.1.50/dlink/“; } class „yealink“ { match if substring (option seller-class-identifier,0,7) = „Yealink“; option option-66 „10.1.1.50/yealink/“; }

Telefone mussten zwangsweise aus dem allgemeinen Pool ausgeschlossen werden. Ansonsten wollten sie nicht in ihr „Planschbecken“ gehen.
Beispiel für Subnetzeinstellungen

Subnetz 10.1.1.0 Netzmaske 255.255.255.0 { Option Router 10.1.1.1; pool { Mitglieder von „cisco“ verweigern; Mitglieder von „Panasonic“ ablehnen; Mitglieder von „dlink“ ablehnen; Bereich 10.1.1.230 10.1.1.240; } pool { Mitglieder von „cisco“ zulassen; Bereich 10.1.1.65 10.1.1.69; } pool { Mitglieder von „panasonic“ zulassen; Bereich 10.1.1.60 10.1.1.64; } pool { Mitglieder von „dlink“ zulassen; Bereich 10.1.1.55 10.1.1.59; } }

Nach dem Neustart aller beteiligten Dienste gingen die Telefone sicher zu ihrem zugewiesenen TFTP-Server, um Einstellungen vorzunehmen. Es bleibt nur noch, sie dort zu platzieren.

Cisco 7906

Ich habe diese Geräte in der Originalverpackung erhalten. Ich musste es ändern, um mich mit Asterisk anzufreunden. Aber das ist eine andere Geschichte. In einem konkreten Fall habe ich zur Konfiguration des Geräts gemäß den Anweisungen die Datei SEPAABBCCDDEEFF.cnf.xml im Stammverzeichnis des TFTP-Servers erstellt. Dabei ist AABBCCDDEEFF die MAC-Adresse des Geräts.

Über die Einrichtung von Telefonen von Cisco wurde bereits mehrfach geschrieben, daher hinterlasse ich einfach eine Arbeitsdatei mit den Einstellungen.
Einstellungen für 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

Wenn Sie gerade dabei sind, ein Telefon dieser Serie zu kaufen, seien Sie vorsichtig, die automatische Abstimmung wird nur in 150S/F3-Geräten unterstützt. Auf dem 150S/F2-Gerät, das ich in die Hände bekam, konnte ich eine solche Funktionalität nicht finden.

Die Konfigurationsdatei kann im XML- oder Nur-Text-Format vorliegen. Für XML gibt es eine Anforderung: Das Tag muss am Anfang der Zeile stehen, sonst ignoriert der Parser es und der Wert des entsprechenden Parameters ändert sich nicht.

Zur Konfiguration des Telefons werden zwei Dateien verwendet. f0D00580000.cfg – zum Speichern von Einstellungen für alle Telefone und 00112233aabb.cfg (MAC-Adresse in Kleinbuchstaben) für individuelle Einstellungen. Individuelle Einstellungen haben natürlich höhere Priorität.

Der vollständige Einstellungssatz umfasst mehr als tausend Zeilen. Um den Artikel nicht zu überladen, beschreibe ich den minimal ausreichenden Einstellungssatz.

Der Wurzelknoten ist erforderlich VOIP_CONFIG_FILE und der darin verschachtelte Knoten Version. Die Einstellungen werden nur angewendet, wenn die Dateiversion höher ist als die aktuellen Einstellungen im Gerät. Sie können diesen Wert über die Weboberfläche des Telefons im Wartungsbereich (Systemverwaltung) ermitteln. Bei Telefonen mit Werkseinstellungen ist es in beiden Fällen 2.0002. Darüber hinaus muss die individuelle Dateiversion größer sein als die freigegebene Dateiversion.

Zuerst werde ich eine Datei mit einer gemeinsamen Konfiguration für alle Telefone bereitstellen. Tatsächlich speichert es alle Einstellungen; die einzelne Datei ist nur für die Telefonnummer und die Beschriftung auf dem Bildschirm verantwortlich.

In den beiden folgenden Blöcken werden die Zeitzonen- und Zeitsynchronisationsparameter eingestellt, der anfängliche Port für RTP und die Netzwerkbrücke zwischen den WAN- und LAN-Anschlüssen des Geräts aktiviert.

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

Die tatsächlichen Namen der Konfigurationsparameter sind ausreichend beschreibend, sodass eine detaillierte Beschreibung vermieden werden kann.
SIP für eine Leitung

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

Fernbedienungseinstellungen

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

Telefoneinstellungen

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

Alle anderen Einstellungen bleiben „Standard“. Jetzt akzeptiert jedes mit dem Netzwerk verbundene Dlink-Telefon sofort einen für alle gemeinsamen Parametersatz. Um individuelle Parameter für das Gerät einzustellen, ist eine separate Datei erforderlich. Darin müssen Sie lediglich die notwendigen Einstellungen für einen einzelnen Teilnehmer festlegen.
Abonnenteneinstellungen

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

Diese Geräte erhalten Einstellungen nach einem etwas anderen Schema. Die Konfiguration wird in Textdateien gespeichert. Die maximale Größe der Konfigurationsdatei beträgt 120 KB. Unabhängig von der Anzahl der Dateien sollte deren Gesamtgröße 120 KB nicht überschreiten.
Die Konfigurationsdatei besteht aus einer Reihe von Zeilen, die den folgenden Bedingungen unterliegen:

  • Die erste Zeile ist immer eine Kommentarzeile, die folgende Zeichenfolge (44 Byte) enthält:
    # Panasonic SIP-Telefon-Standardformatdatei #
    Hexadezimale Darstellung dieser Sequenz:
    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
    Um versehentliche Änderungen der festgelegten Zeichenfolge zu verhindern, wird empfohlen, die Konfigurationsdatei mit der Zeile zu beginnen:
    # Panasonic SIP-Telefon-Standardformatdatei # DIESE ZEILE NICHT ÄNDERN!
  • Konfigurationsdateien müssen mit einer Leerzeile enden.
  • Jede Zeile muss mit der Sequenz „ ".
  • Die maximale Stringlänge beträgt 537 Byte, einschließlich der Sequenz „ "
  • Die folgenden Zeilen werden ignoriert:
    • Zeilen, die die 537-Byte-Grenze überschreiten;
    • leere Zeilen;
    • Kommentarzeilen beginnend mit „#“;
  • Die Zeichenfolge für jeden Parameter wird in der Form XXX=“yyy“ geschrieben (XXX: Parametername, yyy: sein Wert). Der Wert muss in doppelte Anführungszeichen gesetzt werden.
  • Das Aufteilen einer Parameterzeile in mehrere Zeilen ist nicht zulässig. Dies führt zu einem Fehler bei der Verarbeitung der Konfigurationsdatei und infolgedessen zu einem Initialisierungsfehler.
  • Die Werte einiger Parameter müssen für jede Zeile separat angegeben werden. Der Parameter mit dem Suffix „_1“ im Namen ist der Parameter für Zeile 1; „_2“ – für Zeile 2 usw.
  • Die maximale Länge des Parameternamens beträgt 32 Zeichen.
  • Die maximale Länge des Parameterwerts beträgt 500 Zeichen, ausgenommen doppelte Anführungszeichen.
  • In der Zeichenfolge sind keine Leerzeichen zulässig, es sei denn, der Wert enthält ein Leerzeichen.
  • Einige Parameterwerte können als „leer“ angegeben werden, um den Parameter auf einen leeren Wert zu setzen.
  • Die Parameter werden in keiner bestimmten Reihenfolge angegeben.
  • Wenn derselbe Parameter mehr als einmal in einer Konfigurationsdatei angegeben wird, wird der zuerst angegebene Wert angewendet.

Ehrlich gesagt haben mich solch schwerwiegende Anforderungen an die Konfigurationsdatei verärgert. Meiner Meinung nach ist die Implementierung der Interaktion mit dem Steuerungsserver auf Panasonic-Telefonen äußerst umständlich. In diesem Parameter ist das Telefon anderen deutlich unterlegen.
Wenn Sie das Gerät zum ersten Mal einschalten (oder nachdem Sie es auf die Werkseinstellungen zurückgesetzt haben), versucht es, die sogenannte Produktdatei (in diesem Fall KX-UT123RU.cfg) zu laden, die die Pfade zum enthalten sollte verbleibende Konfigurationsdateien.
Produktdatei# Panasonic SIP-Telefon-Standardformatdatei # DIESE ZEILE NICHT ÄNDERN!

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"

Danach zeigt das Telefon eine Meldung über den erfolgreichen Abschluss der Vorbereitung an und wartet, bis es neu gestartet wird. Und nach dem Neustart beginnt es mit der Verarbeitung der ihm zugewiesenen Konfigurationsdateien.

Es wird empfohlen, allgemeine Einstellungen für alle Telefone in der Datei master.cfg anzugeben. Wie bei Dlink werde ich nur einige Parameter angeben. Die Namen der übrigen Parameter und deren Werte finden Sie in der Dokumentation auf der Website des Herstellers.
master.cfg################################################ ##########
#Systemeinstellungen#
################################################ ##########
## Login-Kontoeinstellungen
ADMIN_ID="admin"
ADMIN_PASS="ADMIN_PWD"
USER_ID="Benutzer"
USER_PASS="USER_PWD"

## Systemzeiteinstellungen
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-Einstellungen
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"

## Bereitstellungseinstellungen
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"

################################################ ##########
#Netzwerkeinstellungen#
################################################ ##########
## IP-Einstellungen
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="J"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## DNS-Einstellungen
DNS_QRY_PRLL="J"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""

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

## XML-Anwendungseinstellungen
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=""

Traditionell verbleiben nur die Einstellungen des Abonnenten in der individuellen Gerätekonfigurationsdatei.
aabbccddeeff.cfgDISPLAY_NAME_1="Benutzer #168"

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

Grandstream GXP-1400

Die Parameter dieser Telefone werden in einer XML-Datei mit dem Namen cfg{mac}.xml gespeichert. Oder im Klartext mit dem Namen cfg{mac}. Dieses Telefon fordert nur eine individuelle Konfigurationsdatei an, sodass die Optimierung der Einstellungen durch Verschieben in eine gemeinsame Datei nicht funktioniert. Ein weiteres Merkmal beim Einrichten von Grandstreams ist die Benennung von Parametern. Sie sind alle nummeriert und mit P### gekennzeichnet. Zum Beispiel:

P1650 – verantwortlich für die Webschnittstelle zur Verwaltung des Telefons (0 – HTTPS, 1 – HTTP)
P47 – SIP-Serveradresse für die Verbindung.

Wenn die Konfiguration in einer Textdatei gespeichert ist, benötigen die Parameter keine Gruppierung und sind in beliebiger Reihenfolge. Zeilen, die mit # beginnen, werden als Kommentare behandelt.

Wenn die Einstellungen im XML-Format dargestellt werden, müssen sie in einem Knoten verschachtelt sein , in die wiederum geschachtelt werden muss . Alle Parameter werden in Form entsprechender Tags mit dem darin enthaltenen Parameterwert geschrieben.
Einstellungsbeispiel

1.0 8 1 1 SIP_PWD Benutzernummer 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/Grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream dreißig

Yealink T19 und T21

Geräte dieser Modelle unterstützen individuelle Konfigurationsdateien für Geräte und gemeinsame Konfigurationsdateien für Modelle. In meinem Fall musste ich die allgemeinen Parameter in den Dateien y000000000031.cfg bzw. y000000000034.cfg platzieren. Einzelne Konfigurationsdateien werden entsprechend der MAC-Adresse benannt: 00112233aabb.cfg.

Einstellungen für Yealinks werden im Textformat gespeichert. Die einzigen zwingenden Anforderungen sind das Vorhandensein der Dateiversion in der ersten Zeile im Format #!version:1.0.0.1.

Alle Parameter werden in der Form Parameter = Wert geschrieben. Kommentare müssen mit einem „#“-Zeichen beginnen. Die Namen der Parameter und deren Werte finden Sie in der Dokumentation auf der Website des Herstellers.
Allgemeine Einstellungen#!version:1.0.0.1
#Konfigurieren Sie den WAN-Porttyp; 0-DHCP (Standard), 1-PPPoE, 2-Statische IP-Adresse;
network.internet_port.type = 0
#Konfigurieren Sie den PC-Porttyp; 0-Router, 1-Bridge (Standard);
network.bridge_mode = 1
#Konfigurieren Sie den Zugriffstyp des Webservers. 0-Deaktiviert, 1-HTTP und HTTPS (Standard), 2-HTTP Nur, 3-HTTPS Nur;
network.web_server_type = 3
#Konfigurieren Sie den maximalen lokalen RTP-Port. Er reicht von 0 bis 65535, der Standardwert ist 11800.
network.port.max_rtpport = 10100
#Konfigurieren Sie den minimalen lokalen RTP-Port. Er reicht von 0 bis 65535, der Standardwert ist 11780.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = Benutzer
security.user_password = user:USER_PWD
#Geben Sie die Websprache an. Die gültigen Werte sind: Englisch, Chinesisch_S, Türkisch, Portugiesisch, Spanisch, Italienisch, Französisch, Russisch, Deutsch und Tschechisch.
lang.wui = Russisch
#Geben Sie die LCD-Sprache an. Die gültigen Werte sind: Englisch (Standard), Chinese_S, Chinese_T, Deutsch, Französisch, Türkisch, Italienisch, Polnisch, Spanisch und Portugiesisch.
lang.gui = Russisch
#Konfigurieren Sie die Zeitzone und den Zeitzonennamen. Die Zeitzone reicht von -11 bis +12, der Standardwert ist +8.
#Der Standardname der Zeitzone ist China (Peking).
#Weitere verfügbare Zeitzonen und Zeitzonennamen finden Sie im Benutzerhandbuch für Yealink IP-Telefone.
local_time.time_zone = +11
local_time.time_zone_name = Wladiwostok
#Konfigurieren Sie den Domänennamen oder die IP-Adresse des NTP-Servers. Der Standardwert ist cn.pool.ntp.org.
local_time.ntp_server1 = 10.1.1.4
#Konfigurieren Sie den Logo-Modus des LCD-Bildschirms; 0 – Deaktiviert (Standard), 1 – Systemlogo, 2 – Benutzerdefiniertes Logo;
phone_setting.lcd_logo.mode = 1
#Konfigurieren Sie die Zugriffs-URL und den Anzeigenamen des Remote-Telefonbuchs. X reicht von 1 bis 5.
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Telefonbuch
Features.remote_phonebook.flash_time = 3600

individuelle Einstellungen#!version:1.0.0.1
#Konto aktivieren oder deaktivieren1, 0-Deaktiviert (Standard), 1-Aktiviert;
account.1.enable = 1
#Konfigurieren Sie die auf dem LCD-Bildschirm angezeigte Bezeichnung für Konto1.
account.1.label = Telefon testen
#Konfigurieren Sie den Anzeigenamen von Konto1.
account.1.display_name = Benutzer 998
#Konfigurieren Sie den Benutzernamen und das Passwort für die Registerauthentifizierung.
account.1.auth_name = 998
account.1.password = 998
#Konfigurieren Sie den registrierten Benutzernamen.
account.1.user_name = 998
#Konfigurieren Sie die SIP-Serveradresse.
account.1.sip_server_host = 10.1.1.50
#Geben Sie den Port für den SIP-Server an. Der Standardwert ist 5060.
account.1.sip_server_port = 5060

Dank der wunderbaren Auto-Provisioning-Funktion der genannten Telefone gab es daher keine Probleme, neue Geräte an das Netzwerk anzuschließen. Es ging darum, die MAC-Adresse des Telefons herauszufinden und mithilfe einer Vorlage eine Konfigurationsdatei zu erstellen.

Ich hoffe, dass Sie bis zum Ende gelesen haben und von dem, was Sie gelesen haben, profitiert haben.

Vielen Dank für Ihre Aufmerksamkeit.

Source: habr.com

Kommentar hinzufügen