Sissejuhatus
Kord kord üldjuhul heaks kiitis katse IP telefonide kasutusele võtmiseks meie büroos. Kuna minu kogemus selles vallas oli minimaalne, äratas ülesanne minus tohutut huvi ja ma süvenesin erinevate aspektide uurimisse. Uurimise lõppedes otsustasin jagada oma teadmisi — lootuses, et need leiavad kellegi jaoks kasutust. Nii et...
Algandmed
IP-ATS-ina valiti ja paigaldati Asterisk. Telefonipark koosneb Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 ja Dlink DPH-150S(E)/F3, Yealink T19 ja T21 seadmetest. Selline varieeruvus tuleneb sellest, et eksperimentaalses etapis otsustati proovida veidi erinevat, et saada oma arvamus hinna/kvaliteedi/mugavuse suhte osas.
Ülesanne
Selle seadistamine maksimaalselt lihtsaks ja ühtlustatuks. Kõik telefonid peavad olema sünkroneeritud ajaga, omama aadressiraamatut, mis laaditakse alla serverilt ja pakkuma administraatorile seadistustele juurdepääsu.
Selle ülesande lahendamine on lihtne — rakendada telefonide automaatset seadistamist, nn Provisioning. Tegelikult on juttu just sellest, kuidas ma selle suurepärase funktsiooni ellu viisin.
tftpd, dhcpd seadistamine
Telefonide seadistuste jagamiseks valisin tftp kui universaalse variandi, mida toetavad kõik platvormid ning mis on lihtne seadistada ja haldada.
Spetsiaalset seadistust tftp jaoks ei olnud vajalik. Paigaldasin tavalise tftpd ja panin kõik vajalikud failid selle juurkatalooge.
Seadistuste failid paigutati tootja järgi kataloogidesse. Tõsi, Cisco seade ei pääsenud oma kausta, seega pidin hoidma selle juuris.
Telefonidele tftp-serveri asukoha määramiseks kasutasin option-66. Lisaks jagasin nad tootja järgi eraldi klassidesse. Iga klass sai oma aadressisegmendi ja individuaalse katalooge seadistustefailide jaoks. Muide, D-link seadmete puhul tuli tootjad MAC-aadresside põhjal välja selgitada, kuna nad ei edasta tootja teavet dhcp-päringus.
dhcpd.conf fragment
# Указываем необходимые опции
option option-66 code 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 Phone 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") or
(binary-to-ascii (16,8,":",substring(hardware,1,4)) = "90:94:e4:72");
option option-66 "10.1.1.50/dlink/";
}
class "yealink" {
match if substring (option vendor-class-identifier,0,7) = "Yealink";
option option-66 "10.1.1.50/yealink/";
}
Telefonid tuli sundida eraldama üldisest basseinist. Muud juhul ei tahtnud nad kuidagi oma «sipelgapesasse» minna.
Alamvõrgu seadistuste näidis
alams 10.1.1.0 netmask 255.255.255.0 {
valikud ruuterid 10.1.1.1;
bassein {
keela liikmed "cisco";
keela liikmed "panasonic";
keela liikmed "dlink";
vahemik 10.1.1.230 10.1.1.240;
}
bassein {
luba liikmed "cisco";
vahemik 10.1.1.65 10.1.1.69;
}
bassein {
luba liikmed "panasonic";
vahemik 10.1.1.60 10.1.1.64;
}
bassein {
luba liikmed "dlink";
vahemik 10.1.1.55 10.1.1.59;
}
}
Pärast kõigi seotud teenuste taaskäivitamist suundusid telefonid kindlalt seadistuste saamiseks ettenähtud tftp-serverisse. Jääb ainult neid sinna paigutada.
Cisco 7906
Need seadmed said mulle tehasepakendis. Pidin neid ümber programmeerima, et need asterisk’iga sobiksid. Aga see on eraldi lugu. Antud juhul seadistamiseks lõin vastavalt juhistele tftp-serveri juures faili SEPAABBCCDDEEFF.cnf.xml. Kus AABBCCDDEEFF on seadme MAC-aadress.
Cisco telefonide seadistamise kohta on juba korduvalt kirjutatud, seega jätn lihtsalt töötava seadistustefile.
Seaded cisco jaoks
true
SIP
root
ADMIN_PWD
D-M-Y
Keskmine Vaikne Aeg
10.1.1.4
Unicast
10.1.1.50
2000
5060
5061
10.1.1.50
Disable
120
true
x-cisco-serviceuri-cfwdall
x-cisco-serviceuri-pickup
x-cisco-serviceuri-opickup
x-cisco-serviceuri-gpickup
x-cisco-serviceuri-meetme
x-cisco-serviceuri-abbrdial
false
2
true
true
2
2
0
true
false
6
10
180
3600
5
120
120
5
500
4000
70
true
None
1
false
true
false
false
none
101
3
avt
3
false
false
Cisco Phone
2
false
15000
10
true
false
16384
32766
9
10.1.1.50
5060
2
3
false
3
4
5
true
true
false
true
Kasutaja #103
103
103
SIP_PWD
$num
5060
184
0
dialplan.xml
*0#
true
2
false
false
1
0
1
0
0
0
1
0
1,7
09:00
12:00
01:00
1
2
10.1.1.50
0
100
50
0
0
5
1
10.1.1.50
0
0
0
0
0
0
1
1
1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37
Estonian_Estonia
et_EE
utf-8
1
0
http://10.1.1.50/provisioning/cisco-services.xml
http://10.1.1.50/provisioning/cisco-services.xml
96
0
96
2
0
0
3804
<!-- 10.1.1.50 -->
false
1
D-Link DPH-150S/F3
Kui plaanite osta selle seeria telefoni, olge ettevaatlikud, automaatne seadistamine toetatakse ainult seadmetes 150S/F3. Seadmest 150S/F2, mis minule kätte sattus, sellist funktsionaalsust ei leidnud.
Konfiguratsioonifail võib olla kas xml-formaadis või tavalise tekstifailina. Xml-i jaoks on üks nõue: oluline silt peab olema rea alguses, vastasel juhul ignoreerib parser seda ja vastava parameetri väärtus ei muutu.
Telefoni seadistamiseks kasutatakse kahte faili. f0D00580000.cfg — kõigi telefonide seadistuste talletamiseks ja 00112233aabb.cfg (MAC-aadress väikestes tähtedes) individuaalsete seadistuste jaoks. Individuaalsed seadistused, nagu arvata võib, omavad suuremat prioriteeti.
Täielik seadistusloend sisaldab üle tuhande rea, et mitte artiklit ülerahvastada, kirjeldan minimaalset vajalikku seadistuste kogumit.
Kohustuslik on juurelement VOIP_CONFIG_FILE ja selle sisse sisestatult version. Seadistused rakenduvad ainult siis, kui faili versioon on kõrgem kui seadmes olevate seadistuste versioon. Selle väärtuse saab teada telefoni veebiliidese kaudu hooldusosakonnas (süsteemihaldus). Tehase seadistustega telefonide puhul on mõlemas olukorras see 2.0002. Lisaks peab individuaalsete failide versioon olema suurem üldfaili versioonist.
Käin esimesena välja failiga, mis sisaldab üldkonfiguratsiooni kõigi telefonide jaoks. Sisuliselt talletab see kõik seadistused, individuaalne fail vastutab vaid telefoninumbri ja ekraanil kuvatava teksti eest.
Allpool toodud kahes plokis seadistatakse ajatsooni ja aja sünkroonimise parameetrid, algne port RTP jaoks ja lülitatakse sisse võrgu sild WAN ja LAN portide vahel.
Fragment №1
DHCP 2 1 1 0 VOIP 10000 200 10.1.1.4 1 0 60 12 1500 1 1
Konfiguratsiooni parameetrite nimed on piisavalt „kõnelevaid“, et neid põhjalikult ei kirjeldataks.
SIP ühele reale
5060 SIP1 10.1.1.50 5060 3600 1 10.1.1.50 1 0 G711A,G711U,G722
Kaugjuhtimise seaded
23 80 0 443 1 0 Item1 10.1.1.152 10.1.1.160 Account1 admin ADMIN_PWD 10 Account2 guest GUEST_PWD 5
Telefoniseaded
123 0 112 Ettevõte 5 1 30 0 1 0,,1 0 0 1 XML-PBook1 Telefoniraamat http://10.1.1.50/provisioning/dlink-phonebook.xml : 0 0 sõber,kodu,töö,äri,kaaslane,kolleeg
Kõik muud seaded jäävad „vaikimisi“. Nüüd aktsepteerib iga Dlink telefon, mis on võrku ühendatud, kohe kõigile ühiste parameetrite kogumit. Individuaalsete seadete määramiseks seadme jaoks on vajalik eraldi fail. Sellest tuleb ainult märkida vajalikud seaded eraldi kasutaja jaoks.
kasutaja seaded
2.0006 SIP1 Kasutaja #117 117 5060 117 SIP_PWD 3600 1 5060 117 SIP_PWD
Panasonic UT-KX123B
Need seadmed saavad seadistused mõnevõrra teistsugusele skeemile. Konfiguratsioon salvestatakse tekstifailidesse. Konfiguratsioonifaili maksimaalne suurus on 120 KB. Ükskõik kui palju faile on, ei tohi nende kogusuurus ületada 120 KB.
Konfiguratsioonifail koosneb rida-realt, millele kehtivad allpool loetletud tingimused:
- Esimesena peab alati olema kommentaarirea, mis sisaldab järgmist sümbolite järjestust (44 baiti):
# Panasonic SIP Phone Standard Format File #
Selle järjestuse heksadesimaalne esitus:
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 6C 65 20 23
Kuidas vältida muude sümbolite juhuslikku muutmist, soovitatakse alustada konfiguratsioonifaili järgmise read:
# Panasonic SIP Phone Standard Format File # DO NOT CHANGE THIS LINE! - Konfiguratsioonifailid peavad lõppema tühja reaga.
- Iga rida peab lõppema järjestusega "".
- Rida maksimaalne pikkus on 537 baiti, sealhulgas järjestus "".
- Järgmised read jäetakse tähelepanuta:
- read, mis ületavad 537 baitide piiri;
- tühjad read;
- kommentaariread, mis algavad sümboliga "#";
- Iga parameetri rida salvestatakse vormis XXX="yyy" (XXX: parameetri nimi, yyy: selle väärtus). Väärtus peab olema ümbritsetud jutumärkides.
- Parameetri ridade jagamine mitmeks realiseks ei ole lubatud. See toob kaasa konfiguratsioonifaili töötlemise tõrke ja seeläbi ka initsialiseerimise tõrke.
- Mõne parameetri väärtused tuleb määrata eraldi iga liini jaoks. Parameeter, millel on nimeliseks sufiks "_1", on mõeldud liini 1 jaoks; "_2" – liini 2 jaoks jne.
- Parameetri nime maksimaalne pikkus on 32 sümbolit.
- Parameetri väärtuse maksimaalne pikkus on 500 sümbolit, välja arvatud jutumärgid.
- Rea ei tohi sisaldada tühikuid, välja arvatud juhul, kui väärtus sisaldab tühikut.
- Mõned parameetrid saavad olla "tühjad", et määrata parameetri tühi väärtus.
- Parameetreid määratakse ilma kindla järjekorrata.
- Kui sama parameetrit määratakse konfiguratsioonifailis rohkem kui üks kord, rakendatakse esimesena määratud väärtust.
Niivõrd tõsine nõudmiste kogum konfiguratsioonifailile oli mind täitsa kurvastanud. Minu arvates on Panasonicide kontrollimise teostamine äärmiselt ebamugav. Selle parameetri osas jääb telefon oma konkurentidele alla. serverilt Esmakordsel seadme sisselülitamisel (või pärast tehase vaikeväärtustele lähtestamist) üritab see laadida nii kutsutud toote faili (antud juhul on see KX-UT123RU.cfg), milles peaksid sisalduma teed muudele konfiguratsioonifailidele.
Toote fail
CFG_STANDARD_FILE_PATH="tftp://10.1.1.50/panasonic/{mac}.cfg"# Panasonic SIP Phone Standard Format File # DO NOT CHANGE THIS LINE!
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"
Pärast seda kuvab telefon ekraanil teate edukast ettevalmistamisest ning ootab, kuni seda ei taaskäivitata. Ta alustab pärast taaskäivitamist määratud konfiguratsioonifailide töötlemist.
Failis master.cfg on soovitatav määrata üldised seaded kõigi telefonide jaoks. Nagu Dlinki puhul, mainin ainult mõningaid parameetreid. Ülejäänud parameetrite nimetused ja nende väärtused leiate tootja dokumentatsioonist veebisaidilt.
master.cfg
master.cfg############################################################
# System Settings #
############################################################
## Login Account Settings
ADMIN_ID="admin"
ADMIN_PASS="ADMIN_PWD"
USER_ID="user"
USER_PASS="USER_PWD"
## System Time Settings
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 Settings
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"
## Provisioning Settings
OPTION66_ENABLE="Y"
OPTION66_REBOOT="N"
PROVISION_ENABLE="Y"
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"
Pärast seda kuvab telefon ekraanil teate edukast ettevalmistamisest ning ootab, kuni seda ei taaskäivitata. Ta alustab pärast taaskäivitamist määratud konfiguratsioonifailide töötlemist.
############################################################
# Network Settings #
############################################################
## IP Settings
CONNECTION_TYPE="1"
HOST_NAME="UT123"
DHCP_DNS_ENABLE="Y"
STATIC_IP_ADDRESS=""
STATIC_SUBNET=""
STATIC_GATEWAY=""
USER_DNS1_ADDR=""
USER_DNS2_ADDR=""
## DNS Settings
DNS_QRY_PRLL="Y"
DNS_PRIORITY="N"
DNS1_ADDR="10.1.1.1"
DNS2_ADDR=""
## HTTP Settings
HTTPD_PORTOPEN_AUTO="Y"
HTTP_VER="1"
HTTP_USER_AGENT="Panasonic_{MODEL}/{fwver} ({mac})"
HTTP_SSL_VERIFY="0"
CFG_ROOT_CERTIFICATE_PATH=""
## XML Application Settings
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="»
XMLAPP_LDAP_USERID=""
XMLAPP_LDAP_USERPASS=""
Seadme individuaalses konfiguratsioonifailis jäävad tavaliselt alles ainult tellija seaded.
aabbccddeeff.cfgDISPLAY_NAME_1=„Kasutaja #168“
PHONE_NUMBER_1=„168“
SIP_URI_1=„168“
LINE_ENABLE_1=„Lubatud“
PROFILE_ENABLE_1=„Lubatud“
SIP_AUTHID_1=„168“
SIP_PASS_1=„SIP_PWD“
Grandstream GXP-1400
Nende telefonide seaded salvestatakse ühte xml-faili nimega cfg{mac}.xml. Või tavalisest tekstifailist nimega cfg{mac}. See telefon küsib ainult individuaalset konfiguratsioonifaili, seetõttu ei ole seadeid võimalik optimeerida koosseisufaili väljatõstmist. Veel üks Grandstream'i seadistuse eripära on parameetrite nimetus. Kõik need on numbritega ja tähistatakse kui P###. Näiteks:
P1650 – vastutab veebiliidese eest telefoni haldamiseks (0 – HTTPS, 1 – HTTP)
P47 – SIP-serveri aadress ühendamiseks.
Kui konfiguratsioon on salvestatud tekstifailis, ei nõua parameetrid mingit grupeerimist ja need võivad olla igas järjekorras. Read, mis algavad #, peetakse kommentaarideks.
Kui seaded on esitatud xml-formaadis, peavad need olema sisestatud sõlme , mis omakorda peab olema sisestatud . Kõik parameetrid salvestatakse vastava sildi kujul, mille sees on parameetri väärtus.
Seadistuse näide
1
109
109
109
SIP_PWD
Kasutaja# 109
10.1.1.50
2
10.1.1.50
0
ADMIN_PWD
USER_PWD
et
0
10.1.1.50/grandstream
1
TZc-11
10.1.1.4
1
http://10.1.1.50/provisioning/grandstream
30
Yealink T19 ja T21
Nende mudelite seadmed toetavad individuaalseid seadistustsükleid seadmetele ja ühiseid mudeleid. Minu puhul pidin paigutama üldised parameetrid failidesse y000000000031.cfg ja y000000000034.cfg vastavalt. Individuaalsed seadistustsüklid nimetatakse MAC-aadressi järgi: 00112233aabb.cfg.
Yealinkide seadistused salvestatakse tekstivormingus. Kohustuslikud nõuded on ainult faili versioon esimese rea olemasolu, vormingus #!version:1.0.0.1.
Kõik parameetrid salvestatakse kujul parameeter = väärtus. Kommentaarid peavad algama sümboliga "#". Parameetrite nimed ja nende väärtused on leitavad tootja veebisaidilt.
üldised seadistused#!version:1.0.0.1
#Configure the WAN port type; 0-DHCP (default), 1-PPPoE, 2-Static IP Address;
network.internet_port.type = 0
#Configure the PC port type; 0-Router, 1-Bridge (default);
network.bridge_mode = 1
#Configure the access type of the web server; 0-Disabled, 1-HTTP & HTTPS(default), 2-HTTP Only, 3-HTTPS Only;
network.web_server_type = 3
#Configure the maximum local RTP port. It ranges from 0 to 65535, the default value is 11800.
network.port.max_rtpport = 10100
#Configure the minimum local RTP port. It ranges from 0 to 65535, the default value is 11780.
network.port.min_rtpport = 10000
security.user_name.admin = root
security.user_password = root:ADMIN_PWD
security.user_name.user = user
security.user_password = user:USER_PWD
#Specify the web language, the valid values are: English, Chinese_S, Turkish, Portuguese, Spanish, Italian, French, Russian, Deutsch and Czech.
lang.wui = Eesti
#Specify the LCD language, the valid values are: English (default), Chinese_S, Chinese_T, German, French, Turkish, Italian, Polish, Spanish and Portuguese.
lang.gui = Eesti
#Configure the time zone and time zone name. The time zone ranges from -11 to +12, the default value is +8.
#The default time zone name is China(Beijing).
#Refer to Yealink IP Phones User Guide for more available time zones and time zone names.
local_time.time_zone = +11
local_time.time_zone_name = Vladivostok
#Configure the domain name or the IP address of the NTP server. The default value is cn.pool.ntp.org.
local_time.ntp_server1 = 10.1.1.4
#Configure the logo mode of the LCD screen; 0-Disabled (default), 1-System logo, 2-Custom logo;
phone_setting.lcd_logo.mode = 1
#Configure the access URL and dispaly name of the remote phonebook. X ranges from 1 to 5.
remote_phonebook.data.1.url =
remote_phonebook.data.1.name = Telefoniraamat
features.remote_phonebook.flash_time = 3600
individuaalsed seadistused#!version:1.0.0.1
#Enable or disable the account1, 0-Disabled (default), 1-Enabled;
account.1.enable = 1
#Configure the label displayed on the LCD screen for account1.
account.1.label = Test telefon
#Configure the display name of account1.
account.1.display_name = Kasutaja 998
#Configure the username and password for register authentication.
account.1.auth_name = 998
account.1.password = 998
#Configure the register user name.
account.1.user_name = 998
#Configure the SIP server address.
account.1.sip_server_host = 10.1.1.50
#Specify the port for the SIP server. The default value is 5060.
account.1.sip_server_port = 5060
Kokkuvõttes, tänu suurepärasele auto-provision funktsioonile, mis on ette nähtud mainitud telefonides, ei tekkinud uussete seadmete võrku ühendamisel mingeid probleeme. Kõik piirdus telefonide MAC-aadressi väljaselgitamise ja seadistustsükli genereerimisega šablooni järgi.
Loodan, et lugesite lõpuni ja saite kõigest kasu.
Aitäh tähelepanu eest.
Allikas: habr.com
