VoIP Zoo – Voorzieningen

Toegang

Op een dag keurde het management een experiment goed om IP-telefonie in ons kantoor te introduceren. Omdat ik maar weinig ervaring op dit gebied had, wekte de taak grote belangstelling bij mij en ik stortte mij op het bestuderen van verschillende aspecten van de kwestie. Aan het einde van de duik besloot ik de kennis die ik had opgedaan te delen in de hoop dat het voor iemand nuttig zou zijn. Dus…

Initiële gegevens

Asterisk werd geselecteerd en ingezet als IP PBX. Het telefoonpark bestaat uit Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 en Dlink DPH-150S(E)/F3, Yealink T19 en T21 apparaten. Deze variatie komt voort uit het feit dat er in het experiment voor is gekozen om van alles een beetje te proberen om zo een oordeel te vormen over de prijs/kwaliteit/gemaksverhouding.

Taak

Vereenvoudig en verenig het proces van het instellen van nieuwe apparaten zoveel mogelijk. Alle telefoons moeten tijdgesynchroniseerd zijn, een telefoonboek van de server geladen hebben en toegang bieden tot instellingen voor de beheerder.

De oplossing voor dit probleem is eenvoudig: implementeer automatische configuratie van telefoons, de zogenaamde. Bevoorrading. Eigenlijk zal mijn implementatie van deze prachtige functie worden besproken.

Tftpd,dhcpd configureren

Om instellingen naar telefoons te distribueren, heb ik gekozen voor tftp als universele optie, ondersteund door alle platforms, eenvoudig te configureren en te beheren.

Er was geen specifieke configuratie vereist voor tftp. Ik heb standaard tftpd geïnstalleerd en alle benodigde bestanden in de hoofdmap geplaatst.
Ik heb de instellingenbestanden in mappen geplaatst in overeenstemming met de telefoonfabrikant. Het is waar dat het Cisco-apparaat nooit in de map terechtkwam, dus moest ik het in de root opslaan.

Om de telefoons naar de locatie van de tftp-server te verwijzen, heb ik optie-66 gebruikt. Bovendien verdeelde hij ze per fabrikant in afzonderlijke klassen. Elke klas kreeg een eigen adressegment en een individuele map voor configuratiebestanden. Apparaten van D-link moesten overigens worden berekend op basis van MAC-adressen, omdat deze in het DHCP-verzoek geen informatie over de fabrikant verstrekken.

Fragment van dhcpd.conf

# Specificeer de gewenste opties optie optie-66 code 66 = tekst; class "panasonic" {match if substring (optie vendor-class-identifier,0,9) = "Panasonic"; optie optie-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (optie vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP Phone CP-7906"; optie optie-66 "10.1.1.50/cisco/"; } class "grandstream" {match if substring (optie vendor-class-identifier,0,11) = "Grandstream"; optie optie-66 "10.1.1.50/grandstream/"; } class "dlink" {match if (binair-naar-ascii (16,8,:,substring(hardware,1,4)) = "c8:d3:a3:8d") of (binair-naar-ascii (16,8,:,substring(hardware,1,4)) = "90:94:e4:72"); optie optie-66 "10.1.1.50/dlink/"; } class "yealink" { match if substring (optie leverancier-class-identifier,0,7) = "Yealink"; optie optie-66 "10.1.1.50/yealink/"; }

Telefoons moesten met geweld worden uitgesloten van de algemene pool. Anders wilden ze niet naar hun “peuterbadje”.
Voorbeeld van subnetinstellingen

subnet 10.1.1.0 netmasker 255.255.255.0 { optie routers 10.1.1.1; pool {leden van "cisco" weigeren; leden van "panasonic" weigeren; leden van "dlink" weigeren; bereik 10.1.1.230 10.1.1.240; } pool { sta leden toe van "cisco"; bereik 10.1.1.65 10.1.1.69; } pool { sta leden toe van "panasonic"; bereik 10.1.1.60 10.1.1.64; } pool { sta leden van "dlink" toe; bereik 10.1.1.55 10.1.1.59; } }

Nadat alle betrokken services opnieuw waren opgestart, gingen de telefoons vol vertrouwen naar de toegewezen tftp-server voor instellingen. Het enige dat overblijft is om ze daar te plaatsen.

cisco 7906

Ik heb deze apparaten ontvangen in de originele verpakking. Ik moest het veranderen om vrienden te maken met asterisk. Maar dat is een ander verhaal. In een specifiek geval heb ik, om het apparaat volgens de instructies te configureren, het bestand SEPAABBCCDDEEFF.cnf.xml in de root van de tftp-server gemaakt. Waar AABBCCDDEEFF het MAC-adres van het apparaat is.

Er is al meer dan eens geschreven over het instellen van telefoons van Cisco, dus ik laat gewoon een werkend bestand achter met de instellingen.
Instellingen voor 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

Als u op het punt staat een telefoon uit deze serie aan te schaffen, wees dan voorzichtig: automatisch afstemmen wordt alleen ondersteund op 150S/F3-apparaten. Op het 150S/F2-apparaat dat ik in handen kreeg, vond ik een dergelijke functionaliteit niet.

Het configuratiebestand kan de indeling XML of platte tekst hebben. Er is één vereiste voor xml: de tag moet aan het begin van de regel staan, anders negeert de parser deze en verandert de waarde van de overeenkomstige parameter niet.

Er worden twee bestanden gebruikt om de telefoon te configureren. f0D00580000.cfg - voor het opslaan van instellingen voor alle telefoons en 00112233aabb.cfg (MAC-adres in kleine letters) voor individuele instellingen. Individuele instellingen hebben uiteraard een hogere prioriteit.

De volledige set instellingen bevat meer dan duizend regels. Om het artikel niet rommelig te maken, zal ik de minimaal voldoende set instellingen beschrijven.

Het hoofdknooppunt is vereist VOIP_CONFIG_FILE en het knooppunt dat daarin is genest versie. De instellingen worden alleen toegepast als de bestandsversie hoger is dan de huidige instellingen op het apparaat. U kunt deze waarde achterhalen via de webinterface van de telefoon in het onderhoudsgedeelte (systeembeheer). Bij telefoons met fabrieksinstellingen is dit in beide gevallen 2.0002. Bovendien moet de individuele bestandsversie groter zijn dan de gedeelde bestandsversie.

Eerst zal ik een bestand aanleveren met een gemeenschappelijke configuratie voor alle telefoons. In feite slaat het alle instellingen op; het individuele bestand is alleen verantwoordelijk voor het telefoonnummer en de inscriptie op het scherm.

In de twee onderstaande blokken worden de tijdzone- en tijdsynchronisatieparameters ingesteld, wordt de initiële poort voor RTP en de netwerkbrug tussen de WAN- en LAN-connectoren van het apparaat ingeschakeld.

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>

De werkelijke namen van de configuratieparameters zijn voldoende beschrijvend om te voorkomen dat ze in detail worden beschreven.
SIP voor één lijn

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

Instellingen voor afstandsbediening

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

Telefoon instellingen

<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 overige instellingen blijven “standaard”. Nu accepteert elke Dlink-telefoon die op het netwerk is aangesloten onmiddellijk een gemeenschappelijke set parameters voor iedereen. Om individuele parameters voor het apparaat in te stellen, is een apart bestand nodig. Daarin hoeft u alleen de noodzakelijke instellingen voor een individuele abonnee op te geven.
abonnee-instellingen

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

Deze apparaten ontvangen instellingen volgens een iets ander schema. De configuratie wordt opgeslagen in tekstbestanden. De maximale grootte van het configuratiebestand is 120 KB. Ongeacht het aantal bestanden mag de totale grootte ervan niet groter zijn dan 120 KB.
Het configuratiebestand bestaat uit een reeks regels, waarvoor de volgende voorwaarden gelden:

  • De eerste regel is altijd een commentaarregel, inclusief de volgende reeks tekens (44 bytes):
    # Panasonic SIP-telefoon standaardformaatbestand #
    Hexadecimale weergave van deze reeks:
    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
    Om onbedoelde wijzigingen in de vastgestelde reeks tekens te voorkomen, wordt aanbevolen om het configuratiebestand te starten met de regel:
    # Panasonic SIP-telefoon standaardformaatbestand # WIJZIG DEZE REGEL NIET!
  • Configuratiebestanden moeten eindigen met een lege regel.
  • Elke regel moet eindigen met de reeks " ".
  • De maximale stringlengte is 537 bytes, inclusief de reeks " "
  • De volgende regels worden genegeerd:
    • lijnen die de limiet van 537 bytes overschrijden;
    • lege regels;
    • commentaarregels die beginnen met "#";
  • De tekenreeks voor elke parameter wordt geschreven in de vorm XXX=“yyy” (XXX: parameternaam, yyy: de waarde ervan). De waarde moet tussen dubbele aanhalingstekens staan.
  • Het splitsen van een parameterregel in meerdere regels is niet toegestaan. Dit zal resulteren in een fout bij het verwerken van het configuratiebestand en als gevolg daarvan in een initialisatiefout.
  • De waarden van sommige parameters moeten voor elke regel afzonderlijk worden opgegeven. De parameter met het achtervoegsel "_1" in de naam is de parameter voor regel 1; "_2" – voor regel 2, enz.
  • De maximale lengte van de parameternaam is 32 tekens.
  • De maximale lengte van de parameterwaarde is 500 tekens, exclusief dubbele aanhalingstekens.
  • Er zijn geen spaties toegestaan ​​in de tekenreeks, tenzij de waarde een spatie bevat.
  • Sommige parameterwaarden kunnen als “leeg” worden opgegeven om de parameter op een lege waarde in te stellen.
  • De parameters worden in willekeurige volgorde gespecificeerd.
  • Als dezelfde parameter meerdere keren in een configuratiebestand wordt opgegeven, wordt de eerst opgegeven waarde toegepast.

Zo'n serieuze reeks vereisten voor het configuratiebestand maakte me eerlijk gezegd van streek. Naar mijn mening is de implementatie van interactie met de controleserver op Panasonic-telefoons buitengewoon lastig. In deze parameter is de telefoon aanzienlijk inferieur aan andere.
Wanneer u het apparaat voor de eerste keer inschakelt (of nadat u het hebt teruggezet naar de fabrieksinstellingen), probeert het het zogenaamde productbestand te laden (in dit geval is dat KX-UT123RU.cfg), dat de paden naar het resterende configuratiebestanden.
Productbestand# Panasonic SIP-telefoon standaardformaatbestand # WIJZIG DEZE REGEL NIET!

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"

Hierna geeft de telefoon een bericht weer over de succesvolle voltooiing van de voorbereiding en wacht totdat deze opnieuw wordt opgestart. En na het opnieuw opstarten begint het met het verwerken van de configuratiebestanden die eraan zijn toegewezen.

Het wordt aanbevolen om algemene instellingen voor alle telefoons op te geven in het bestand master.cfg. Net als bij Dlink zal ik slechts enkele parameters specificeren. De namen van de overige parameters en hun waarden zijn te vinden in de documentatie op de website van de fabrikant.
master.cfg################################################## ##########
#Systeem instellingen#
################################################## ##########
## Login-accountinstellingen
ADMIN_ID="beheerder"
ADMIN_PASS="ADMIN_PWD"
USER_ID="gebruiker"
USER_PASS="USER_PWD"

## Systeemtijdinstellingen
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-instellingen
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"

## Voorzieningeninstellingen
OPTION66_ENABLE="J"
OPTION66_REBOOT="N"
PROVISION_ENABLE="J"
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"

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

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

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

## XML-applicatie-instellingen
XML_HTTPD_PORT="6666"
XMLAPP_ENABLE="J"
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=""

Traditioneel blijven alleen de instellingen van de abonnee in het individuele apparaatconfiguratiebestand staan.
aabccddeeff.cfgDISPLAY_NAME_1="Gebruiker #168"

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

Grandstream GXP-1400

De parameters van deze telefoons worden opgeslagen in één XML-bestand met de naam cfg{mac}.xml. Of in platte tekst met de naam cfg{mac}. Deze telefoon vraagt ​​alleen om een ​​individueel configuratiebestand, dus het optimaliseren van de instellingen door ze naar een gemeenschappelijk bestand te verplaatsen zal niet werken. Een ander kenmerk van het instellen van Grandstreams is de naamgeving van parameters. Ze zijn allemaal genummerd en aangeduid als P###. Bijvoorbeeld:

P1650 – verantwoordelijk voor de webinterface voor het beheer van de telefoon (0 – HTTPS, 1 – HTTP)
P47 – SIP-serveradres voor verbinding.

Als de configuratie in een tekstbestand is opgeslagen, behoeven de parameters geen groepering en staan ​​ze in willekeurige volgorde. Regels die beginnen met # worden behandeld als commentaar.

Als de instellingen in xml-formaat worden weergegeven, moeten ze in een knooppunt worden genest , die op zijn beurt moeten worden ingebed . Alle parameters zijn geschreven in de vorm van overeenkomstige tags met de parameterwaarde erin.
Voorbeeld instellen

1.0 8 1 1 SIP_PWD Gebruiker # 271 1 271 270 109 ADMIN_PWD GEBRUIKER_PWD Ru 270 35/grote stroom 109 TZc-35 36 109 http://36/provisioning/grandstream dertig

Yealink T19 en T21

Apparaten van deze modellen ondersteunen individuele configuratiebestanden voor apparaten en algemene configuratiebestanden voor modellen. In mijn geval moest ik de algemene parameters respectievelijk in de bestanden y000000000031.cfg en y000000000034.cfg plaatsen. Individuele configuratiebestanden krijgen een naam op basis van het MAC-adres: 00112233aabb.cfg.

Instellingen voor jaarlinks worden opgeslagen in tekstformaat. De enige verplichte vereisten zijn de aanwezigheid van de bestandsversie op de eerste regel, in het formaat #!version:1.0.0.1.

Alle parameters worden geschreven in de vorm parameter = waarde. Opmerkingen moeten beginnen met een teken "#". De namen van de parameters en hun waarden zijn te vinden in de documentatie op de website van de fabrikant.
Algemene instellingen#!versie:1.0.0.1
#Configureer het WAN-poorttype; 0-DHCP (standaard), 1-PPPoE, 2-statisch IP-adres;
netwerk.internet_poort.type = 0
#Configureer het pc-poorttype; 0-router, 1-brug (standaard);
netwerk.bridge_mode = 1
#Configureer het toegangstype van de webserver; 0-uitgeschakeld, 1-HTTP en HTTPS (standaard), alleen 2-HTTP, alleen 3-HTTPS;
netwerk.web_server_type = 3
#Configureer de maximale lokale RTP-poort. Dit varieert van 0 tot 65535, de standaardwaarde is 11800.
netwerk.poort.max_rtpport = 10100
#Configureer de minimale lokale RTP-poort. Dit varieert van 0 tot 65535, de standaardwaarde is 11780.
netwerk.poort.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = gebruiker
security.user_password = gebruiker:USER_PWD
#Specificeer de webtaal, de geldige waarden zijn: Engels, Chinees_S, Turks, Portugees, Spaans, Italiaans, Frans, Russisch, Duits en Tsjechisch.
lang.wui = Russisch
#Specificeer de LCD-taal, de geldige waarden zijn: Engels (standaard), Chinese_S, Chinese_T, Duits, Frans, Turks, Italiaans, Pools, Spaans en Portugees.
lang.gui = Russisch
#Configureer de tijdzone en tijdzonenaam. De tijdzone varieert van -11 tot +12, de standaardwaarde is +8.
#De standaardtijdzonenaam is China (Beijing).
#Raadpleeg de gebruikershandleiding van Yealink IP-telefoons voor meer beschikbare tijdzones en tijdzonenamen.
lokale_tijd.tijdzone = +11
local_time.time_zone_name = Vladivostok
#Configureer de domeinnaam of het IP-adres van de NTP-server. De standaardwaarde is cn.pool.ntp.org.
lokale_tijd.ntp_server1 = 10.1.1.4
#Configureer de logomodus van het LCD-scherm; 0-Uitgeschakeld (standaard), 1-Systeemlogo, 2-Aangepast logo;
phone_setting.lcd_logo.mode = 1
#Configureer de toegangs-URL en weergavenaam van het externe telefoonboek. X varieert van 1 tot 5.
extern_telefoonboek.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Telefoonboek
features.remote_phonebook.flash_time = 3600

individuele instellingen#!versie:1.0.0.1
#Account in- of uitschakelen1, 0-Uitgeschakeld (standaard), 1-Ingeschakeld;
account.1.inschakelen = 1
#Configureer het label dat op het LCD-scherm wordt weergegeven voor account1.
account.1.label = Testtelefoon
#Configureer de weergavenaam van account1.
account.1.display_name = Gebruiker 998
#Configureer de gebruikersnaam en het wachtwoord voor registerauthenticatie.
account.1.auth_name = 998
account.1.wachtwoord = 998
#Configureer de geregistreerde gebruikersnaam.
account.1.gebruikersnaam = 998
#Configureer het SIP-serveradres.
account.1.sip_server_host = 10.1.1.50
#Specificeer de poort voor de SIP-server. De standaardwaarde is 5060.
account.1.sip_server_poort = 5060

Als gevolg hiervan waren er, dankzij de geweldige automatische provisioning-functie van de telefoons die ik noemde, geen problemen met het verbinden van nieuwe apparaten met het netwerk. Het kwam allemaal neer op het achterhalen van het MAC-adres van de telefoon en het genereren van een configuratiebestand met behulp van een sjabloon.

Ik hoop dat je tot het einde hebt gelezen en hebt geprofiteerd van wat je hebt gelezen.

Dank u voor uw aandacht.

Bron: www.habr.com

Voeg een reactie