VoIP Zoo - Provizo

eniro

Iun tagon, administrado aprobis eksperimenton por enkonduki IP-telefonion en nia oficejo. Ĉar mia sperto en ĉi tiu kampo estis malabunda, la tasko vekis en mi grandan intereson kaj mi plonĝis en studado de diversaj aspektoj de la afero. Je la fino de la plonĝo, mi decidis kunhavigi la sciojn, kiujn mi akiris, kun la espero, ke ĝi estos utila al iu. Do…

Fontaj datumoj

Asterisko estis elektita kaj deplojita kiel IP PBX. La telefona aro konsistas el Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 kaj Dlink DPH-150S(E)/F3, Yealink T19 kaj T21-aparatoj. Ĉi tiu variado ŝuldiĝas al tio, ke kadre de la eksperimento, oni decidis provi iom de ĉio por formi opinion pri la proporcio prezo/kvalito/komodo.

Objektivo

Simpligu kaj unuigu la procezon de agordo de novaj aparatoj kiel eble plej multe. Ĉiuj telefonoj devas esti temposinkronigitaj, havi telefonlibron ŝarĝita de la servilo kaj havigi aliron al agordoj por la administranto.

La solvo al ĉi tiu problemo estas simpla - efektivigi aŭtomatan agordon de telefonoj, la tn. Provizo. Efektive, mia efektivigo de ĉi tiu mirinda funkcio estos diskutita.

Agordante tftpd,dhcpd

Por distribui agordojn al telefonoj, mi elektis tftp kiel universalan opcion, subtenata de ĉiuj platformoj, facile agordi kaj administri.

Neniu specifa agordo estis postulata por tftp. Mi instalis norman tftpd kaj metis ĉiujn necesajn dosierojn en ĝian radikan dosierujon.
Mi metis la agordajn dosierojn en dosierujojn laŭ la fabrikanto de la telefono. Vere, la Cisco-aparato neniam eniris sian dosierujon, do mi devis konservi ĝin en ĝia radiko.

Por montri la telefonojn al la loko de la tftp-servilo, mi uzis opcion-66. Krome, li dividis ilin en apartajn klasojn de fabrikanto. Ĉiu klaso ricevis sian propran adressegmenton kaj individuan dosierujon por agordaj dosieroj. Cetere, aparatoj de D-link devis esti kalkulitaj per MAC-adresoj, ĉar ili ne provizas informojn pri la fabrikanto en la dhcp-peto.

Fragmento dhcpd.conf

# Specifu la postulatajn opciojn opcion opcio-66 kodo 66 = teksto; class "panasonic" { match if substring (option vendor-class-identifier,0,9) = "Panasonic"; opcio opcio-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (option vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP-Telefono CP-7906"; opcio opcio-66 "10.1.1.50/cisco/"; } class "grandstream" { match if substring (option vendor-class-identifier,0,11) = "Grandstream"; opcio opcio-66 "10.1.1.50/grandstream/"; } klaso "dlink" { match if (binara-al-ascii (16,8,":",substring (aparataro,1,4)) = "c8:d3:a3:8d") aŭ (binara-al-ascii (16,8,":",substring(aparataro,1,4)) = "90:94:e4:72"); opcio opcio-66 "10.1.1.50/dlink/"; } class "yealink" { match if substring (option vendor-class-identifier,0,7) = "Jesligo"; opcio opcio-66 "10.1.1.50/yealink/"; }

Telefonoj devis esti perforte ekskluditaj de la ĝenerala naĝejo. Alie, ili ne volis iri al sia "naĝejo".
Ekzemplo de subretaj agordoj

subreto 10.1.1.0 retmasko 255.255.255.0 { opcia enkursigiloj 10.1.1.1; pool { nei membrojn de "cisco"; nei membrojn de "panasonic"; nei membrojn de "dlink"; gamo 10.1.1.230 10.1.1.240; } pool { permesi membrojn de "cisco"; gamo 10.1.1.65 10.1.1.69; } pool { permesi membrojn de "panasonic"; gamo 10.1.1.60 10.1.1.64; } pool { permesi membrojn de "dlink"; gamo 10.1.1.55 10.1.1.59; }}

Post rekomenco de ĉiuj implikitaj servoj, la telefonoj memfide iris al sia asignita tftp-servilo por agordoj. Restas nur meti ilin tie.

Cisco 7906

Mi ricevis ĉi tiujn aparatojn en ilia originala pakaĵo. Mi devis ŝanĝi ĝin por amikiĝi kun asterisko. Sed tio estas alia historio. En specifa kazo, por agordi la aparaton, laŭ la instrukcioj, mi kreis la dosieron SEPAABBCCDDEEFF.cnf.xml en la radiko de la tftp-servilo. Kie AABBCCDDEEFF estas la MAC-adreso de la aparato.

Ĝi jam estis skribita pli ol unufoje pri agordo de telefonoj de Cisco, do mi nur lasos funkciantan dosieron kun la agordoj.
Agordoj por 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 vi ĵus aĉetos telefonon en ĉi tiu serio, atentu, aŭtomata agordo estas subtenata nur en aparatoj 150S/F3. Sur la aparato 150S/F2, kiu venis en miajn manojn, mi ne trovis tian funkcion.

La agorda dosiero povas esti en xml aŭ klarteksta formato. Estas unu postulo por xml: la etikedo devas esti ĉe la komenco de la linio, alie la analizilo ignoros ĝin kaj la valoro de la responda parametro ne ŝanĝiĝos.

Du dosieroj estas uzataj por agordi la telefonon. f0D00580000.cfg - por konservi agordojn por ĉiuj telefonoj kaj 00112233aabb.cfg (MAC-adreso en minusklo) por individuaj agordoj. Individuaj agordoj nature havas pli altan prioritaton.

La plena aro da agordoj enhavas pli ol mil liniojn, por ne malordigi la artikolon, mi priskribos la minimuman sufiĉan aron da agordoj.

La radika nodo estas postulata VOIP_CONFIG_FILE kaj la nodo nestis ene de ĝi versio. La agordoj estos aplikataj nur se la dosierversio estas pli alta ol la nunaj agordoj en la aparato. Vi povas ekscii ĉi tiun valoron per la retinterfaco de la telefono en la sekcio pri bontenado (sistema administrado). Por telefonoj kun fabrikaj agordoj, en ambaŭ kazoj ĝi estas 2.0002. Krome, la individua dosierversio devas esti pli granda ol la komuna dosierversio.

Unue mi provizos dosieron kun komuna agordo por ĉiuj telefonoj. Fakte, ĝi konservas ĉiujn agordojn; la individua dosiero nur respondecos pri la telefonnumero kaj la surskribo sur la ekrano.

En la du blokoj malsupre, la horzono kaj tempo-sinkronigaj parametroj estas fiksitaj, la komenca haveno por RTP kaj la reto-ponto inter la WAN kaj LAN-konektiloj de la aparato estas ebligita.

Fragmento n-ro 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>

La realaj nomoj de la agordaj parametroj estas sufiĉe priskribaj por eviti detale priskribi ilin.
SIP por unu linio

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

Agordoj de Teleregado

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

Telefonaj agordoj

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

Ĉiuj aliaj agordoj restos "defaŭltaj". Nun iu ajn Dlink-telefono konektita al la reto tuj akceptos komunan aron de parametroj por ĉiuj. Por agordi individuajn parametrojn por la aparato, necesas aparta dosiero. En ĝi vi nur bezonas specifi la necesajn agordojn por individua abonanto.
agordoj de abonantoj

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

Ĉi tiuj aparatoj ricevas agordojn laŭ iomete malsama skemo. La agordo estas konservita en tekstaj dosieroj. La maksimuma agorda dosiergrandeco estas 120 KB. Sendepende de la nombro da dosieroj, ilia totala grandeco ne devus superi 120 KB.
La agorda dosiero konsistas el aro da linioj, kiuj estas submetitaj al la sekvaj kondiĉoj:

  • La unua linio ĉiam estas komenta linio, inkluzive de la sekva sinsekvo de signoj (44 bajtoj):
    # Panasonic SIP Telefono Norma Formata Dosiero #
    Deksesuma reprezentado de tiu sekvenco:
    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 72D 6D C 61 74 20
    Por malhelpi hazardajn ŝanĝojn al la establita sinsekvo de signoj, oni rekomendas komenci la agordan dosieron per la linio:
    # Panasonic SIP Phone Standard Format File # NE ŜANĜU ĈI ĈI LINIO!
  • Agordaj dosieroj devas finiĝi per malplena linio.
  • Ĉiu linio devas finiĝi per la sekvenco " ".
  • La maksimuma korda longo estas 537 bajtoj, inkluzive de la sekvenco " "
  • La sekvaj linioj estas ignoritaj:
    • linioj superantaj la 537 bajtan limon;
    • malplenaj linioj;
    • komentlinioj komencante per "#";
  • La ĉeno por ĉiu parametro estas skribita en la formo XXX=“yyy” (XXX: parametronomo, yyy: ĝia valoro). La valoro devas esti enfermita inter citiloj.
  • Dividi parametron linion en plurajn liniojn ne estas permesita. Ĉi tio rezultigos eraron pri prilaborado de la agorda dosiero kaj, kiel rezulto, inicialigo fiasko.
  • La valoroj de iuj parametroj devas esti specifitaj aparte por ĉiu linio. La parametro kun la sufikso "_1" en la nomo estas la parametro por linio 1; "_2"—por linio 2, ktp.
  • La maksimuma longo de la parametronomo estas 32 signoj.
  • La maksimuma longo de la parametrovaloro estas 500 signoj escepte de citiloj.
  • Neniuj spacoj estas permesitaj en la ĉeno krom se la valoro inkluzivas spacan signon.
  • Iuj parametraj valoroj povas esti specifitaj kiel "malplena" por agordi la parametron al malplena valoro.
  • La parametroj estas specifitaj en neniu aparta ordo.
  • Se la sama parametro estas specifita pli ol unufoje en agorda dosiero, la valoro specifita unue estas aplikata.

Tia serioza aro de postuloj por la agorda dosiero, sincere parolante, ĝenis min. Laŭ mi, la efektivigo de interago kun la kontrolservilo ĉe Panasonic-telefonoj estas ege maloportuna. En ĉi tiu parametro, la telefono estas signife pli malalta ol aliaj.
Kiam vi ŝaltas la aparaton por la unua fojo (aŭ post restarigi ĝin al la fabrikaj agordoj), ĝi provas ŝargi la tiel nomatan produktodosieron (en ĉi tiu kazo ĝi estas KX-UT123RU.cfg), kiu devus enhavi la vojojn al la ceteraj agordaj dosieroj.
Produkta Dosiero# Panasonic SIP Phone Standard Format File # NE ŜANĜU ĈI ĈI LINIO!

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"

Post ĉi tio, la telefono montros mesaĝon pri la sukcesa kompletigo de preparado kaj atendos ĝis ĝi estos rekomencita. Kaj post la rekomenco, ĝi komencos prilabori la agordajn dosierojn asignitajn al ĝi.

Oni rekomendas specifi ĝeneralajn agordojn por ĉiuj telefonoj en la dosiero master.cfg. Kiel ĉe Dlink, mi nur precizigos kelkajn parametrojn. La nomoj de la ceteraj parametroj kaj iliaj valoroj troveblas en la dokumentado en la retejo de la fabrikanto.
majstro.cfg################################################### ##########
#SystemSettings#
################################################### ##########
## Ensalutu Kontajn Agordojn
ADMIN_ID = "administranto"
ADMIN_PASS="ADMIN_PWD"
USER_ID="uzanto"
USER_PASS="USER_PWD"

## Sistema Tempo-Agordoj
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=""

## Agordoj de Syslog
SYSLOG_ADDR="10.1.1.50"
SYSLOG_PORT="514"
SYSLOG_EVENT_SIP="6"
SYSLOG_EVENT_CFG="6"
SYSLOG_EVENT_VOIP = "6"
SYSLOG_EVENT_TEL="6"

## Provizaj Agordoj
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"

################################################### ##########
#Retaj agordoj#
################################################### ##########
## IP-agordoj
CONNECTION_TYPE = "1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

## DNS-agordoj
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""

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

## Agordoj de XML-Apliko
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=""

Tradicie, nur la agordoj de la abonanto restas en la individua agorda dosiero.
aabbccddeeff.cfgDISPLAY_NAME_1="Uzanto #168"

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

Grandstream GXP-1400

La parametroj de ĉi tiuj telefonoj estas konservitaj en unu xml-dosiero nomita cfg{mac}.xml. Aŭ en simpla teksto kun la nomo cfg{mac}. Ĉi tiu telefono nur petas individuan agordan dosieron, do optimumigi la agordojn movante ilin al komuna dosiero ne funkcios. Alia trajto de agordo de Grandstreams estas la nomado de parametroj. Ili ĉiuj estas numeritaj kaj indikitaj kiel P###. Ekzemple:

P1650 - respondeca por la retinterfaco por administrado de la telefono (0 - HTTPS, 1 - HTTP)
P47 - SIP-servila adreso por konekto.

Se la agordo estas konservita en tekstdosiero, la parametroj ne postulas ajnan grupigon kaj estas en ajna ordo. Linioj komencantaj per # estas traktataj kiel komentoj.

Se la agordoj estas prezentitaj en xml-formato, ili devas esti enigitaj en nodo , kiu siavice devas esti enigita . Ĉiuj parametroj estas skribitaj en la formo de respondaj etikedoj kun la parametrovaloro ene.
Agordi ekzemplo

1.0 8 1 1 SIP_PWD Uzanto numero 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandfluo 109 TZc-35 36 109 http://36/provisioning/grandstream tridek

Yealink T19 kaj T21

Aparatoj de ĉi tiuj modeloj subtenas individuajn agordajn dosierojn por aparatoj kaj oftajn por modeloj. En mia kazo, mi devis meti la ĝeneralajn parametrojn en la dosierojn y000000000031.cfg kaj y000000000034.cfg, respektive. Individuaj agordaj dosieroj estas nomitaj laŭ la MAC-adreso: 00112233aabb.cfg.

Agordoj por yealinks estas konservitaj en tekstformato. La nuraj devigaj postuloj estas la ĉeesto de la dosierversio en la unua linio, en la formato #!version:1.0.0.1.

Ĉiuj parametroj estas skribitaj en la formo parametro = valoro. Komentoj devas komenciĝi per "#" signo. La nomoj de la parametroj kaj iliaj valoroj troveblas en la dokumentado en la retejo de la fabrikanto.
Ĝeneralaj Agordoj#!versio:1.0.0.1
#Agordu la WAN-pordan tipon; 0-DHCP (defaŭlta), 1-PPPoE, 2-Statika IP-Adreso;
reto.interreta_porto.tipo = 0
#Agordu la PC-pordan tipon; 0-Enkursigilo, 1-Ponto (defaŭlte);
reto.ponta_reĝimo = 1
#Agordu la alirspecon de la retservilo; 0-Malŝaltita, 1-HTTP & HTTPS (defaŭlte), 2-HTTP Nur, 3-HTTPS Nur;
reto.web_server_type = 3
#Agordu la maksimuman lokan RTP-pordon. Ĝi varias de 0 ĝis 65535, la defaŭlta valoro estas 11800.
network.port.max_rtpport = 10100
#Agordu la minimuman lokan RTP-pordon. Ĝi varias de 0 ĝis 65535, la defaŭlta valoro estas 11780.
network.port.min_rtpport = 10000
security.user_name.admin = radiko
security.user_password = radiko:ADMIN_PWD
security.user_name.user = uzanto
security.user_password = uzanto:USER_PWD
#Specigu la retan lingvon, la validaj valoroj estas: angla, ĉina_S, turka, portugala, hispana, itala, franca, rusa, germana kaj ĉeĥa.
lang.wui = Russian
#Specigu la LCD-lingvon, la validaj valoroj estas: angla (defaŭlte), ĉina_S, ĉina_T, germana, franca, turka, itala, pola, hispana kaj portugala.
lang.gui = Russian
#Agordu la horzonon kaj la nomon de la horzono. La horzono varias de -11 ĝis +12, la defaŭlta valoro estas +8.
#La defaŭlta horzonnomo estas Ĉinio (Pekino).
#Refer to Yealink IP Phones User Guide por pli disponeblaj horzonoj kaj horzonnomoj.
loka_tempo.horzono = +11
local_time.time_zone_name = Vladivostok
#Agordu la domajnan nomon aŭ la IP-adreson de la NTP-servilo. La defaŭlta valoro estas cn.pool.ntp.org.
loka_tempo.ntp_server1 = 10.1.1.4
#Agordu la logoreĝimon de la LCD-ekrano; 0-Malŝaltita (defaŭlte), 1-Sistema emblemo, 2-Persona emblemo;
phone_setting.lcd_logo.mode = 1
#Agordu la alirURL kaj afiŝan nomon de la fora telefonlibro. X varias de 1 ĝis 5.
fora_telefonlibro.data.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Telefonlibro
features.remote_phonebook.flash_time = 3600

individuaj agordoj#!versio:1.0.0.1
#Ebligi aŭ malŝalti la konton1, 0-Malŝaltita (defaŭlte), 1-Ebligita;
konto.1.ebligi = 1
#Agordu la etikedon montritan sur la LCD-ekrano por konto1.
account.1.label = Testa telefono
#Agordu la montran nomon de konto1.
account.1.display_name = Uzanto 998
#Agordu la uzantnomon kaj pasvorton por registri aŭtentikigon.
konto.1.aŭth_name = 998
konto.1.pasvorto = 998
#Agordu la registran uzantnomon.
konto.1.uzantnomo = 998
#Agordu la adreson de SIP-servilo.
konto.1.sip_server_host = 10.1.1.50
#Specificu la havenon por la SIP-servilo. La defaŭlta valoro estas 5060.
konto.1.sip_server_port = 5060

Rezulte, dank'al la mirinda funkcio de aŭtomata provizado provizita en la telefonoj, kiujn mi menciis, ne estis problemoj por konekti novajn aparatojn al la reto. Ĉio estis eltrovi la MAC-adreson de la telefono kaj generi agordan dosieron per ŝablono.

Mi esperas, ke vi legis ĝis la fino kaj profitis el tio, kion vi legis.

Dankon pro via atento.

fonto: www.habr.com

Aldoni komenton