VoIP Zoo – Provisioning

Entry

En dag godkände ledningen ett experiment för att introducera IP-telefoni på vårt kontor. Eftersom min erfarenhet inom detta område var knapphändig väckte uppgiften stort intresse hos mig och jag kastade mig in i att studera olika aspekter av frågan. I slutet av dyket bestämde jag mig för att dela med mig av den kunskap jag hade skaffat mig i hopp om att den skulle vara användbar för någon. Så…

Rå data

Asterisk valdes ut och distribuerades som en IP-växel. Telefonflottan består av Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 och Dlink DPH-150S(E)/F3, Yealink T19 och T21 enheter. Denna variation beror på att man som en del av experimentet bestämde sig för att prova lite av varje för att bilda sig en uppfattning om förhållandet pris/kvalitet/bekvämlighet.

Uppgift

Förenkla och förena processen med att installera nya enheter så mycket som möjligt. Alla telefoner måste vara tidssynkroniserade, ha en telefonbok laddad från servern och ge åtkomst till inställningar för administratören.

Lösningen på detta problem är enkel - implementera automatisk konfiguration av telefoner, den så kallade. Provisionering. Egentligen kommer min implementering av denna underbara funktion att diskuteras.

Konfigurerar tftpd,dhcpd

För att distribuera inställningar till telefoner valde jag tftp som ett universellt alternativ, som stöds av alla plattformar, lätt att konfigurera och hantera.

Ingen specifik konfiguration krävdes för tftp. Jag installerade standard tftpd och placerade alla nödvändiga filer i dess rotkatalog.
Jag placerade inställningsfilerna i kataloger i enlighet med telefontillverkaren. Det är sant att Cisco-enheten aldrig gick in i sin mapp, så jag var tvungen att lagra den i roten.

För att peka telefonerna till platsen för tftp-servern använde jag option-66. Dessutom delade han in dem i separata klasser efter tillverkare. Varje klass fick sitt eget adresssegment och en individuell mapp för konfigurationsfiler. Förresten, enheter från D-link måste beräknas av MAC-adresser, eftersom de inte ger information om tillverkaren i dhcp-förfrågan.

Fragment dhcpd.conf

# Ange önskade alternativ alternativ option-66 kod 66 = text; class "panasonic" { match if substring (option vendor-class-identifier,0,9) = "Panasonic"; option option-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (option vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP-telefon CP-7906"; option option-66 "10.1.1.50/cisco/"; } class "grandstream" { match if substring (option vendor-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") eller (binary-to-ascii (16,8,":",substring(hårdvara,1,4)) = "90:94:e4:72"); option option-66 "10.1.1.50/dlink/"; } class "yealink" { match if substring (option vendor-class-identifier,0,7) = "Yealink"; option option-66 "10.1.1.50/yealink/"; }

Telefoner måste med tvång uteslutas från den allmänna poolen. Annars ville de inte gå till sin "paddlingsbassäng".
Exempel på subnätinställningar

subnet 10.1.1.0 nätmask 255.255.255.0 { option routers 10.1.1.1; pool { neka medlemmar av "cisco"; neka medlemmar av "panasonic"; neka medlemmar av "dlink"; intervall 10.1.1.230 10.1.1.240; } pool { tillåt medlemmar av "cisco"; intervall 10.1.1.65 10.1.1.69; } pool { tillåt medlemmar av "panasonic"; intervall 10.1.1.60 10.1.1.64; } pool { tillåt medlemmar av "dlink"; intervall 10.1.1.55 10.1.1.59; } }

Efter att ha startat om alla inblandade tjänster gick telefonerna med tillförsikt till sin tilldelade tftp-server för inställningar. Allt som återstår är att placera dem där.

cisco 7906

Jag fick dessa enheter i originalförpackningen. Jag var tvungen att ändra den för att bli vän med asterisk. Men det är en annan historia. I ett specifikt fall, för att konfigurera enheten, enligt instruktionerna, skapade jag filen SEPAABBCCDDEEFF.cnf.xml i roten på tftp-servern. Där AABBCCDDEEFF är enhetens MAC-adress.

Det har redan skrivits mer än en gång om att ställa in telefoner från Cisco, så jag lämnar bara en fungerande fil med inställningarna.
Inställningar 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

Om du precis ska köpa en telefon i den här serien, var försiktig, automatisk justering stöds endast i 150S/F3-enheter. På 150S/F2-enheten som kom i mina händer hittade jag inte sådan funktionalitet.

Konfigurationsfilen kan vara i xml- eller vanlig textformat. Det finns ett krav för xml: taggen måste vara i början av raden, annars ignorerar parsern den och värdet på motsvarande parameter ändras inte.

Två filer används för att konfigurera telefonen. f0D00580000.cfg - för att lagra inställningar för alla telefoner och 00112233aabb.cfg (MAC-adress i gemener) för individuella inställningar. Individuella inställningar har naturligtvis högre prioritet.

Den fullständiga uppsättningen av inställningar innehåller mer än tusen rader, för att inte röra upp artikeln kommer jag att beskriva den minsta tillräckliga uppsättningen av inställningar.

Rotnoden krävs VOIP_CONFIG_FILE och noden kapslad i den version. Inställningarna kommer endast att tillämpas om filversionen är högre än de aktuella inställningarna i enheten. Du kan ta reda på detta värde via telefonens webbgränssnitt i underhållsdelen (systemhantering). För telefoner med fabriksinställningar är det i båda fallen 2.0002. Dessutom måste den enskilda filversionen vara större än den delade filversionen.

Först kommer jag att tillhandahålla en fil med en gemensam konfiguration för alla telefoner. Faktum är att den lagrar alla inställningar, den enskilda filen kommer bara att ansvara för telefonnumret och inskriptionen på skärmen.

I de två blocken nedan ställs parametrarna för tidszon och tidssynkronisering, den initiala porten för RTP och nätverksbryggan mellan enhetens WAN- och LAN-kontakter är aktiverade.

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 faktiska namnen på konfigurationsparametrarna är tillräckligt beskrivande för att undvika att beskriva dem i detalj.
SIP för en rad

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

Fjärrkontrollinställningar

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

Telefon inställningar

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

Alla andra inställningar förblir "standard". Nu kommer alla Dlink-telefoner som är anslutna till nätverket omedelbart att acceptera en gemensam uppsättning parametrar för alla. För att ställa in individuella parametrar för enheten behövs en separat fil. I den behöver du bara ange nödvändiga inställningar för en enskild abonnent.
abonnentinställningar

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

Dessa enheter får inställningar enligt ett lite annorlunda schema. Konfigurationen lagras i textfiler. Den maximala konfigurationsfilstorleken är 120 KB. Oavsett antalet filer bör deras totala storlek inte överstiga 120 KB.
Konfigurationsfilen består av en uppsättning rader som är föremål för följande villkor:

  • Den första raden är alltid en kommentarsrad, inklusive följande teckensekvens (44 byte):
    # Panasonic SIP-telefon Standardformat fil #
    Hexadecimal representation av denna sekvens:
    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 6 72 6 61 74 20 46 69 6 65 20 C 23 XNUMX XNUMX
    För att förhindra oavsiktliga ändringar av den etablerade sekvensen av tecken, rekommenderas att starta konfigurationsfilen med raden:
    # Panasonic SIP Phone Standardformat Fil # ÄNDRA INTE DENNA RAD!
  • Konfigurationsfiler måste sluta med en tom rad.
  • Varje rad måste sluta med sekvensen " ".
  • Den maximala stränglängden är 537 byte, inklusive sekvensen " "
  • Följande rader ignoreras:
    • rader som överskrider gränsen på 537 byte;
    • tomma rader;
    • kommentarsrader som börjar med "#";
  • Strängen för varje parameter skrivs i formen XXX="ååå" (XXX: parameternamn, ååå: dess värde). Värdet måste stå inom dubbla citattecken.
  • Det är inte tillåtet att dela upp en parameterrad i flera rader. Detta kommer att resultera i ett fel vid bearbetning av konfigurationsfilen och, som ett resultat, initieringsfel.
  • Värdena för vissa parametrar måste anges separat för varje rad. Parametern med suffixet "_1" i namnet är parametern för rad 1; "_2"—för rad 2 osv.
  • Den maximala längden på parameternamnet är 32 tecken.
  • Maximal längd på parametervärdet är 500 tecken exklusive dubbla citattecken.
  • Inga blanksteg är tillåtna i strängen om inte värdet innehåller ett mellanslag.
  • Vissa parametervärden kan anges som "tom" för att ställa in parametern till ett tomt värde.
  • Parametrarna anges i ingen speciell ordning.
  • Om samma parameter anges mer än en gång i en konfigurationsfil, tillämpas det värde som anges först.

En sådan allvarlig uppsättning krav för konfigurationsfilen, uppriktigt sagt, upprörde mig. Enligt min mening är implementeringen av interaktion med kontrollservern på Panasonic-telefoner extremt obekväm. I den här parametern är telefonen betydligt sämre än andra.
När du slår på enheten för första gången (eller efter att ha återställt den till fabriksinställningarna) försöker den ladda den så kallade produktfilen (i det här fallet är det KX-UT123RU.cfg), som ska innehålla sökvägarna till återstående konfigurationsfiler.
Produktfil# Panasonic SIP Phone Standardformat Fil # ÄNDRA INTE DENNA RAD!

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"

Efter detta kommer telefonen att visa ett meddelande om framgångsrikt slutförande av förberedelserna och väntar tills den startas om. Och efter omstarten kommer den att börja bearbeta konfigurationsfilerna som tilldelats den.

Det rekommenderas att ange allmänna inställningar för alla telefoner i filen master.cfg. Precis som med Dlink kommer jag bara att ange några parametrar. Namnen på de återstående parametrarna och deras värden finns i dokumentationen på tillverkarens webbplats.
master.cfg############################################### ##########
#Systeminställningar#
############################################### ##########
## Logga in kontoinställningar
ADMIN_ID="admin"
ADMIN_PASS="ADMIN_PWD"
USER_ID="användare"
USER_PASS="USER_PWD"

## Systemtidsinställningar
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-inställningar
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"

## Provisioneringsinställningar
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"

############################################### ##########
#Nätverksinställningar#
############################################### ##########
## IP-inställningar
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## DNS-inställningar
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""

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

## XML-programinställningar
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=""

Traditionellt finns bara abonnentens inställningar kvar i den individuella enhetens konfigurationsfil.
aabbccddeeff.cfgDISPLAY_NAME_1="Användare #168"

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

Grandstream GXP-1400

Parametrarna för dessa telefoner lagras i en xml-fil med namnet cfg{mac}.xml. Eller i vanlig text med namnet cfg{mac}. Den här telefonen begär bara en individuell konfigurationsfil, så att optimera inställningarna genom att flytta dem till en gemensam fil fungerar inte. En annan funktion för att ställa in Grandstreams är namngivningen av parametrar. De är alla numrerade och betecknade som P###. Till exempel:

P1650 – ansvarig för webbgränssnittet för att hantera telefonen (0 – HTTPS, 1 – HTTP)
P47 – SIP-serveradress för anslutning.

Om konfigurationen lagras i en textfil kräver parametrarna ingen gruppering och är i valfri ordning. Rader som börjar med # behandlas som kommentarer.

Om inställningarna presenteras i xml-format måste de kapslas i en nod , som i sin tur måste kapslas in . Alla parametrar skrivs i form av motsvarande taggar med parametervärdet inuti.
Ett exempel

1.0 8 1 1 SIP_PWD Användare # 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream trettio

Yealink T19 och T21

Enheter av dessa modeller stöder individuella konfigurationsfiler för enheter och vanliga för modeller. I mitt fall var jag tvungen att placera de allmänna parametrarna i filerna y000000000031.cfg respektive y000000000034.cfg. Individuella konfigurationsfiler namnges enligt MAC-adressen: 00112233aabb.cfg.

Inställningar för yealinks lagras i textformat. De enda obligatoriska kraven är närvaron av filversionen på första raden, i formatet #!version:1.0.0.1.

Alla parametrar skrivs i formen parameter = värde. Kommentarer måste börja med tecknet "#". Namnen på parametrarna och deras värden finns i dokumentationen på tillverkarens webbplats.
Allmänna Inställningar#!version:1.0.0.1
#Konfigurera WAN-porttypen; 0-DHCP (standard), 1-PPPoE, 2-Statisk IP-adress;
network.internet_port.type = 0
#Konfigurera PC-porttypen; 0-router, 1-brygga (standard);
network.bridge_mode = 1
#Konfigurera åtkomsttypen för webbservern; 0-Disabled, 1-HTTP & HTTPS(standard), 2-HTTP Only, 3-HTTPS Only;
network.web_server_type = 3
#Konfigurera den maximala lokala RTP-porten. Det sträcker sig från 0 till 65535, standardvärdet är 11800.
network.port.max_rtpport = 10100
#Konfigurera minsta lokala RTP-port. Det sträcker sig från 0 till 65535, standardvärdet är 11780.
network.port.min_rtpport = 10000 XNUMX
security.user_name.admin = rot
security.user_password = root:ADMIN_PWD
security.user_name.user = användare
security.user_password = användare:USER_PWD
#Ange webbspråket, de giltiga värdena är: engelska, kinesiska_S, turkiska, portugisiska, spanska, italienska, franska, ryska, tyska och tjeckiska.
lang.wui = ryska
#Ange LCD-språket, de giltiga värdena är: engelska (standard), kinesiska_S, kinesiska_T, tyska, franska, turkiska, italienska, polska, spanska och portugisiska.
lang.gui = ryska
#Konfigurera tidszonen och tidszonens namn. Tidszonen sträcker sig från -11 till +12, standardvärdet är +8.
#Standardnamnet för tidszonen är Kina (Peking).
#Se användarhandboken för Yealink IP-telefoner för fler tillgängliga tidszoner och tidszonnamn.
lokal_tid.tidszon = +11
local_time.time_zone_name = Vladivostok
#Konfigurera domännamnet eller IP-adressen för NTP-servern. Standardvärdet är cn.pool.ntp.org.
local_time.ntp_server1 = 10.1.1.4
#Konfigurera logotypläget för LCD-skärmen; 0-Inaktiverad (standard), 1-Systemlogotyp, 2-Anpassad logotyp;
phone_setting.lcd_logo.mode = 1
#Konfigurera åtkomstadressen och visningsnamnet för fjärrtelefonboken. X sträcker sig från 1 till 5.
remote_phonebook.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Telefonbok
features.remote_phonebook.flash_time = 3600

individuella inställningar#!version:1.0.0.1
#Aktivera eller inaktivera konto1, 0-Inaktiverad (standard), 1-Aktiverad;
account.1.enable = 1
#Konfigurera etiketten som visas på LCD-skärmen för konto1.
account.1.label = Testtelefon
#Konfigurera visningsnamnet för konto1.
account.1.display_name = Användare 998
#Konfigurera användarnamn och lösenord för registerautentisering.
account.1.auth_name = 998
konto.1.lösenord = 998
#Konfigurera registeranvändarnamnet.
account.1.user_name = 998
#Konfigurera SIP-serveradressen.
account.1.sip_server_host = 10.1.1.50
#Ange porten för SIP-servern. Standardvärdet är 5060.
account.1.sip_server_port = 5060

Som ett resultat, tack vare den underbara auto-provision-funktionen som finns i telefonerna jag nämnde, var det inga problem att ansluta nya enheter till nätverket. Det hela handlade om att ta reda på telefonens MAC-adress och skapa en konfigurationsfil med hjälp av en mall.

Jag hoppas att du läst till slutet och haft nytta av det du läst.

Tack för er uppmärksamhet.

Källa: will.com

Lägg en kommentar