VoIP Zoo – Omogućavanje

Ulazak

Jednog je dana uprava odobrila eksperiment uvođenja IP telefonije u naš ured. Budući da je moje iskustvo u ovoj oblasti bilo oskudno, zadatak je u meni izazvao veliko zanimanje i zaronio sam u proučavanje raznih aspekata problematike. Na kraju ronjenja odlučio sam podijeliti stečeno znanje u nadi da će nekome biti od koristi. Tako…

Početni podaci

Asterisk je odabran i postavljen kao IP PBX. Telefonsku flotu čine Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 i Dlink DPH-150S(E)/F3, Yealink T19 i T21 uređaji. Ova varijacija je posljedica činjenice da je u sklopu eksperimenta odlučeno isprobati pomalo od svega kako bi se stvorilo mišljenje o omjeru cijene/kvalitete/pogodnosti.

Zadatak

Pojednostavite i unificirajte proces postavljanja novih uređaja što je više moguće. Svi telefoni moraju biti vremenski sinkronizirani, imati telefonski imenik učitan sa servera i omogućiti pristup postavkama za administratora.

Rješenje ovog problema je jednostavno - implementirati automatsku konfiguraciju telefona, tzv. Opskrba. Zapravo, raspravljat ćemo o mojoj implementaciji ove prekrasne funkcije.

Konfiguriranje tftpd,dhcpd

Za distribuciju postavki na telefone, izabrao sam tftp kao univerzalnu opciju, podržanu na svim platformama, laku za konfiguraciju i upravljanje.

Za tftp nije bila potrebna posebna konfiguracija. Instalirao sam standardni tftpd i smjestio sve potrebne datoteke u njegov korijenski direktorij.
Datoteke s postavkama smjestio sam u direktorije u skladu s proizvođačem telefona. Istina, Cisco uređaj nikada nije išao u svoju mapu, pa sam ga morao pohraniti u korijen.

Kako bih usmjerio telefone na lokaciju tftp poslužitelja, koristio sam opciju-66. Osim toga, podijelio ih je u zasebne klase prema proizvođaču. Svaki razred je dobio svoj segment adrese i zasebnu mapu za konfiguracijske datoteke. Usput, uređaji iz D-linka morali su se izračunati prema MAC adresama, budući da ne daju podatke o proizvođaču u dhcp zahtjevu.

Fragment dhcpd.conf

# Navedite tražene opcije option option-66 code 66 = text; klasa "panasonic" { match if substring (option vendor-class-identifier,0,9) = "Panasonic"; opcija opcija-66 "10.1.1.50/panasonic/"; } class "cisco" { match if substring (option vendor-class-identifier,0,36) = "Cisco Systems, Inc. IP Phone CP-7906"; opcija opcija-66 "10.1.1.50/cisco/"; } class "grandstream" { match if substring (option vendor-class-identifier,0,11) = "Grandstream"; opcija opcija-66 "10.1.1.50/grandstream/"; } class "dlink" { match if (binary-to-ascii (16,8,":",substring(hardware,1,4)) = "c8:d3:a3:8d") or (binary-to-ascii (16,8,":",podniz(hardver,1,4)) = "90:94:e4:72"); opcija opcija-66 "10.1.1.50/dlink/"; } class "yealink" { match if substring (option vendor-class-identifier,0,7) = "Yealink"; opcija opcija-66 "10.1.1.50/yealink/"; }

Telefoni su morali biti nasilno isključeni iz općeg skupa. Inače, nisu htjeli ići u svoj “bazen za veslanje”.
Primjer postavki podmreže

podmreža 10.1.1.0 mrežna maska ​​255.255.255.0 { opcija usmjerivači 10.1.1.1; pool { zabrani članove "cisco"; odbiti članove "panasonica"; zabraniti članove "dlink"; raspon 10.1.1.230 10.1.1.240; } skup { dopusti članove "cisco"; raspon 10.1.1.65 10.1.1.69; } pool { dopusti članove "panasonica"; raspon 10.1.1.60 10.1.1.64; } bazen { dopusti članove "dlink"; raspon 10.1.1.55 10.1.1.59; }}

Nakon ponovnog pokretanja svih uključenih usluga, telefoni su samouvjereno otišli na svoj dodijeljeni tftp poslužitelj za postavke. Sve što preostaje je smjestiti ih tamo.

Cisco 7906

Ove uređaje sam dobio u originalnom pakiranju. Morao sam ga promijeniti da se sprijateljim sa zvjezdicom. Ali to je druga priča. U konkretnom slučaju, za konfiguraciju uređaja, prema uputama, kreirao sam datoteku SEPAABBCCDDEEFF.cnf.xml u korijenu tftp poslužitelja. Gdje je AABBCCDDEEFF MAC adresa uređaja.

Već je više puta napisano o postavljanju telefona iz Cisca, pa ću samo ostaviti radnu datoteku s postavkama.
Postavke za 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

Ako tek namjeravate kupiti telefon iz ove serije, budite oprezni, automatsko podešavanje je podržano samo u 150S/F3 uređajima. Na uređaju 150S/F2 koji mi je došao u ruke nisam našao takvu funkcionalnost.

Konfiguracijska datoteka može biti u formatu xml ili običnog teksta. Postoji jedan zahtjev za xml: oznaka mora biti na početku retka, inače će je parser zanemariti i vrijednost odgovarajućeg parametra se neće promijeniti.

Za konfiguraciju telefona koriste se dvije datoteke. f0D00580000.cfg - za spremanje postavki za sve telefone i 00112233aabb.cfg (MAC adresa malim slovima) za pojedinačne postavke. Individualne postavke prirodno imaju veći prioritet.

Puni skup postavki sadrži više od tisuću redaka, kako ne bih zatrpao članak, opisat ću minimalni dovoljan skup postavki.

Potreban je korijenski čvor VOIP_CONFIG_FILE i čvor ugniježđen unutar njega verzija. Postavke će se primijeniti samo ako je verzija datoteke viša od trenutnih postavki na uređaju. Ovu vrijednost možete saznati putem web sučelja telefona u odjeljku za održavanje (upravljanje sustavom). Za telefone s tvorničkim postavkama, u oba slučaja to je 2.0002. Osim toga, verzija pojedinačne datoteke mora biti veća od verzije zajedničke datoteke.

Prvo ću dati datoteku sa zajedničkom konfiguracijom za sve telefone. Zapravo, pohranjuje sve postavke; pojedinačna datoteka bit će odgovorna samo za telefonski broj i natpis na zaslonu.

U donja dva bloka postavljeni su parametri vremenske zone i sinkronizacije vremena, omogućen je početni port za RTP i mrežni most između WAN i LAN konektora uređaja.

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

Stvarni nazivi konfiguracijskih parametara dovoljno su opisni da se izbjegne njihovo detaljno opisivanje.
SIP za jednu liniju

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

Postavke daljinskog upravljača

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

Postavke telefona

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

Sve ostale postavke ostat će "zadane". Sada će svaki Dlink telefon spojen na mrežu odmah prihvatiti zajednički skup parametara za sve. Za postavljanje pojedinačnih parametara za uređaj potrebna je zasebna datoteka. U njemu samo trebate odrediti potrebne postavke za pojedinog pretplatnika.
postavke pretplatnika

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

Ovi uređaji primaju postavke prema malo drugačijoj shemi. Konfiguracija je pohranjena u tekstualnim datotekama. Maksimalna veličina konfiguracijske datoteke je 120 KB. Bez obzira na broj datoteka, njihova ukupna veličina ne smije biti veća od 120 KB.
Konfiguracijska datoteka sastoji se od skupa redaka koji podliježu sljedećim uvjetima:

  • Prvi redak je uvijek redak komentara, uključujući sljedeći niz znakova (44 bajta):
    # Datoteka standardnog formata za SIP telefon Panasonic #
    Heksadecimalni prikaz ovog niza:
    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
    Kako biste spriječili slučajne promjene utvrđenog niza znakova, preporuča se pokrenuti konfiguracijsku datoteku s linijom:
    # Datoteka standardnog formata za Panasonic SIP telefon # NE MIJENJAJTE OVAJ REDAK!
  • Konfiguracijske datoteke moraju završavati praznim redom.
  • Svaki red mora završiti nizom " ".
  • Maksimalna duljina niza je 537 bajtova, uključujući niz " "
  • Zanemaruju se sljedeći redovi:
    • linije koje prelaze ograničenje od 537 bajtova;
    • prazne linije;
    • retke komentara koji počinju s "#";
  • Niz za svaki parametar napisan je u obliku XXX=“yyy” (XXX: naziv parametra, yyy: njegova vrijednost). Vrijednost mora biti u dvostrukim navodnicima.
  • Dijeljenje retka parametra u nekoliko redaka nije dopušteno. To će rezultirati pogreškom u obradi konfiguracijske datoteke i, kao rezultat, neuspješnom inicijalizacijom.
  • Vrijednosti nekih parametara moraju biti navedene zasebno za svaki redak. Parametar sa sufiksom "_1" u nazivu je parametar za liniju 1; "_2"—za redak 2, itd.
  • Maksimalna duljina naziva parametra je 32 znaka.
  • Maksimalna duljina vrijednosti parametra je 500 znakova isključujući dvostruke navodnike.
  • U nizu nisu dopušteni razmaci osim ako vrijednost uključuje znak razmaka.
  • Neke vrijednosti parametara mogu se navesti kao "prazne" da bi se parametar postavio na praznu vrijednost.
  • Parametri su navedeni bez posebnog redoslijeda.
  • Ako je isti parametar naveden više puta u konfiguracijskoj datoteci, primjenjuje se vrijednost navedena prva.

Tako ozbiljan skup zahtjeva za konfiguracijsku datoteku, iskreno govoreći, uznemirio me. Po mom mišljenju, implementacija interakcije s kontrolnim poslužiteljem na telefonima Panasonic izuzetno je nezgodna. U ovom parametru telefon je znatno inferioran u odnosu na druge.
Kada prvi put uključite uređaj (ili nakon resetiranja na tvorničke postavke), on pokušava učitati takozvanu datoteku proizvoda (u ovom slučaju to je KX-UT123RU.cfg), koja bi trebala sadržavati staze do preostale konfiguracijske datoteke.
Datoteka proizvoda# Datoteka standardnog formata za Panasonic SIP telefon # NE MIJENJAJTE OVAJ REDAK!

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"

Nakon toga telefon će prikazati poruku o uspješnom završetku pripreme i čekati dok se ponovno ne pokrene. A nakon ponovnog pokretanja, počet će obrađivati ​​konfiguracijske datoteke koje su mu dodijeljene.

Preporuča se navesti opće postavke za sve telefone u datoteci master.cfg. Kao i kod Dlinka, navest ću samo neke parametre. Nazivi preostalih parametara i njihove vrijednosti mogu se pronaći u dokumentaciji na web stranici proizvođača.
master.cfg##################################################### ##########
#Postavke sustava#
##################################################### ##########
## Postavke računa za prijavu
ADMIN_ID="administrator"
ADMIN_PASS="ADMIN_PWD"
USER_ID="korisnik"
USER_PASS="USER_PWD"

## Postavke vremena sustava
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=""

## Postavke Syslog-a
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"

## Postavke opskrbe
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"

##################################################### ##########
#Mrežne postavke#
##################################################### ##########
## IP postavke
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Da"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""

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

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

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

Tradicionalno, samo postavke pretplatnika ostaju u konfiguracijskoj datoteci pojedinačnog uređaja.
aabbccddeeff.cfgDISPLAY_NAME_1="Korisnik #168"

PHONE_NUMBER_1="168"
SIP_URI_1="168"
LINE_ENABLE_1="Omogućeno"
PROFILE_ENABLE_1="Omogućeno"
SIP_AUTHID_1="168"
SIP_PASS_1="SIP_PWD"

Grandstream GXP-1400

Parametri ovih telefona pohranjeni su u jednoj xml datoteci pod nazivom cfg{mac}.xml. Ili u običnom tekstu s imenom cfg{mac}. Ovaj telefon zahtijeva samo pojedinačnu konfiguracijsku datoteku, tako da optimizacija postavki premještanjem u zajedničku datoteku neće raditi. Još jedna značajka postavljanja Grandstreams je imenovanje parametara. Svi su numerirani i označeni kao P###. Na primjer:

P1650 – odgovoran za web sučelje za upravljanje telefonom (0 – HTTPS, 1 – HTTP)
P47 – adresa SIP poslužitelja za povezivanje.

Ako je konfiguracija pohranjena u tekstualnoj datoteci, parametri ne zahtijevaju nikakvo grupiranje i raspoređeni su bilo kojim redoslijedom. Redovi koji počinju s # tretiraju se kao komentari.

Ako su postavke predstavljene u xml formatu, moraju biti ugniježđene u čvor , koji zauzvrat mora biti ugniježđen . Svi parametri su zapisani u obliku odgovarajućih oznaka unutar kojih se nalazi vrijednost parametra.
Postavljanje primjera

1.0 8 1 1 SIP_PWD Korisnik # 271 1 271 270 109 ADMIN_PWD USER_PWD ru 270 35/grandstream 109 TZc-35 36 109 http://36/provisioning/grandstream trideset

Yealink T19 i T21

Uređaji ovih modela podržavaju pojedinačne konfiguracijske datoteke za uređaje i zajedničke za modele. U mom slučaju, morao sam smjestiti opće parametre u datoteke y000000000031.cfg odnosno y000000000034.cfg. Pojedinačne konfiguracijske datoteke imenovane su prema MAC adresi: 00112233aabb.cfg.

Postavke za yealinks pohranjuju se u tekstualnom formatu. Jedini obavezni zahtjevi su prisutnost verzije datoteke u prvom retku, u formatu #!verzija:1.0.0.1.

Svi parametri su zapisani u obliku parametar = vrijednost. Komentari moraju započeti znakom "#". Nazivi parametara i njihove vrijednosti mogu se pronaći u dokumentaciji na web stranici proizvođača.
Opće postavke#!verzija:1.0.0.1
#Konfigurirajte vrstu WAN priključka; 0-DHCP (zadano), 1-PPPoE, 2-Statička IP adresa;
network.internet_port.type = 0
#Konfigurirajte tip PC porta; 0-usmjerivač, 1-most (zadano);
network.bridge_mode = 1
#Konfigurirajte vrstu pristupa web poslužitelju; 0-Onemogućeno, 1-HTTP & HTTPS (zadano), 2-Samo HTTP, 3-Samo HTTPS;
mreža.web_server_type = 3
#Konfigurirajte najveći lokalni RTP port. Raspon je od 0 do 65535, zadana vrijednost je 11800.
network.port.max_rtpport = 10100
#Konfigurirajte minimalni lokalni RTP port. Raspon je od 0 do 65535, zadana vrijednost je 11780.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = korisnik
sigurnost.korisnička_lozinka = korisnik:USER_PWD
#Odredite web jezik, važeće vrijednosti su: engleski, kineski_S, turski, portugalski, španjolski, talijanski, francuski, ruski, njemački i češki.
lang.wui = ruski
#Odredite LCD jezik, važeće vrijednosti su: engleski (zadano), kineski_S, kineski_T, njemački, francuski, turski, talijanski, poljski, španjolski i portugalski.
lang.gui = ruski
#Konfigurirajte vremensku zonu i naziv vremenske zone. Vremenska zona je u rasponu od -11 do +12, zadana vrijednost je +8.
#Zadani naziv vremenske zone je Kina (Peking).
#Pogledajte korisnički priručnik za Yealink IP telefone za više dostupnih vremenskih zona i naziva vremenskih zona.
lokalno_vrijeme.vremenska_zona = +11
lokalno_vrijeme.ime_vremenske_zone = Vladivostok
#Konfigurirajte naziv domene ili IP adresu NTP poslužitelja. Zadana vrijednost je cn.pool.ntp.org.
lokalno_vrijeme.ntp_server1 = 10.1.1.4
#Konfigurirajte način rada s logotipom LCD zaslona; 0-Onemogućeno (zadano), 1-Logotip sustava, 2-Prilagođeni logotip;
phone_setting.lcd_logo.mode = 1
#Konfigurirajte pristupni URL i ime za prikaz udaljenog imenika. X ima raspon od 1 do 5.
udaljeni_telefonski imenik.podaci.1.url = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Imenik
features.remote_phonebook.flash_time = 3600

pojedinačne postavke#!verzija:1.0.0.1
#Omogući ili onemogući račun1, 0-Onemogućeno (zadano), 1-Omogućeno;
account.1.enable = 1
#Konfigurirajte oznaku prikazanu na LCD zaslonu za account1.
account.1.label = Testni telefon
#Konfigurirajte ime za prikaz računa1.
account.1.display_name = Korisnik 998
#Konfigurirajte korisničko ime i lozinku za provjeru autentičnosti registra.
account.1.auth_name = 998
account.1.password = 998
#Konfigurirajte korisničko ime za registar.
account.1.user_name = 998
#Konfigurirajte adresu SIP poslužitelja.
account.1.sip_server_host = 10.1.1.50
#Odredite port za SIP poslužitelj. Zadana vrijednost je 5060.
account.1.sip_server_port = 5060

Kao rezultat toga, zahvaljujući izvrsnoj funkciji automatskog pružanja usluga u telefonima koje sam spomenuo, nije bilo problema s povezivanjem novih uređaja s mrežom. Sve se svelo na pronalaženje MAC adrese telefona i generiranje konfiguracijske datoteke pomoću predloška.

Nadam se da ste pročitali do kraja i da vam je dobro došlo ono što ste pročitali.

Hvala na pozornosti.

Izvor: www.habr.com

Dodajte komentar