Úvod
Raz raz je vedenie schválilo experiment na zavedenie IP telefónie v našej spoločnosti. Keďže moje skúsenosti v tejto oblasti boli minimálne, úloha vo mne vyvolala obrovský záujem a ponoril som sa do štúdia rôznych aspektov problematiky. Po ukončení štúdia som sa rozhodol zdieľať nadobudnuté vedomosti — v nádeji, že niekomu prídu vhod. Takže…
Vstupné dáta
Ako IP-ATC bol vybraný a nasadený Asterisk. Park telefónov pozostáva z prístrojov Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 a Dlink DPH-150S(E)/F3, Yealink T19 a T21. Takýto rozptyl je spôsobený tým, že v rámci experimentu sme sa rozhodli vyskúšať každú značku len trochu, aby sme si vytvorili vlastný názor na pomer cena/kvalita/útulnosť.
Úloha
Maximálne zjednodušiť a unifikovať proces nastavenia nových prístrojov. Všetky telefóny musia byť synchronizované podľa času, mať telefonický zoznam, ktorý sa načíta z servera a poskytovať prístup k nastaveniam pre administrátora.
Riešenie tejto úlohy je jednoduché — realizovať automatické nastavenie telefónov, t. j. Provisioning. O mojej realizácii tejto prekrásnej funkcie sa bude hovoriť.
Nastavenie tftpd, dhcpd
Na zdieľanie nastavení telefónov som si vybral tftp ako univerzálnu variantu, podporovanú všetkými platformami, jednoduchú na nastavenie a spravovanie.
Špecifické nastavenie pre tftp nebolo potrebné. Nainštaloval som štandardný tftpd a umiestnil všetky potrebné súbory do jeho koreňového adresára.
Súbory s nastaveniami som umiestnil do priečinkov podľa výrobcu telefónu. Pravdupovediac, prístroj od Cisco sa do svojej zložky ani nedostal, musel byť uložený v koreňovom adresári.
Aby som telefónom určil miesto tftp servera, využil som option-66. Okrem toho som ich rozdelil do samostatných tried podľa výrobcu. Každá trieda dostala svoj vlastný segment adries a individuálny priečinok pre konfiguračné súbory. Mimochodom, prístroje od D-link sa museli počítať podľa MAC adries, pretože informácie o výrobcovi v dhcp požiadavke neposkytujú.
Fragment dhcpd.conf
# Указываем необходимые опции
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/";
}
Telefóny bolo potrebné nútene vylúčiť z celkového fondu. Inak sa ani trochu nechceli presunúť do svojho 'žabieho rybníka'.
Príklad nastavení podsiete
subnet 10.1.1.0 netmask 255.255.255.0 {
option routers 10.1.1.1;
pool {
deny members of "cisco";
deny members of "panasonic";
deny members of "dlink";
range 10.1.1.230 10.1.1.240;
}
pool {
allow members of "cisco";
range 10.1.1.65 10.1.1.69;
}
pool {
allow members of "panasonic";
range 10.1.1.60 10.1.1.64;
}
pool {
allow members of "dlink";
range 10.1.1.55 10.1.1.59;
}
}
Po reštarte všetkých zapojených služieb telefóny bezpečne smerovali za nastaveniami na určený tftp-server. Ostávalo ich už len tam umiestniť.
Cisco 7906
Tieto zariadenia som dostal v továrenskom balení. Musel som ich preflashovať, aby sa pripojili k asterisku. Ale to je iný príbeh. V tomto prípade som podľa pokynov vytvoril v koreňovom adresári tftp-servera súbor SEPAABBCCDDEEFF.cnf.xml. Kde AABBCCDDEEFF je MAC adresa zariadenia.
O nastavení telefónov od Cisco už bolo napísané niekoľkokrát, preto jednoducho zanechám pracovný súbor so nastaveniami.
Nastavenia pre cisco
true
SIP
root
ADMIN_PWD
D-M-Y
Stredný pacifický čas
10.1.1.4
Unicast
10.1.1.50
2000
5060
5061
10.1.1.50
Deaktivovať
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
User #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
Slovenský_Slovenská_Republika
sk_SK
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
Ak sa chystáte zakúpiť telefón tejto série, dbajte na to, že automatická konfigurácia je podporovaná iba v prístrojoch 150S/F3. V prístroji 150S/F2, ktorý sa dostal do mojich rúk, som túto funkciu nenašiel.
Konfiguračný súbor môže byť v formáte xml alebo v bežnom texte. Pre xml platí jedno požiadavka: tag musí byť na začiatku riadka, inak ho parser ignoruje a hodnota príslušného parametra sa nezmení.
Na nastavenie telefónu sa používajú dva súbory. f0D00580000.cfg — na uchovávanie nastavení všetkých telefónov a 00112233aabb.cfg (MAC adresa v malých písmenách) na individuálne nastavenia. Individuálne nastavenia majú samozrejme vyššiu prioritu.
Celkový súbor nastavení obsahuje viac ako tisíc riadkov, aby som nezaplnil článok, opíšem minimálny potrebný súbor nastavení.
Povinné sú korenový uzol VOIP_CONFIG_FILE a vnorený do neho uzol version. Nastavenia budú použité iba v prípade, že verzia súboru bude vyššia ako aktuálne nastavenia v prístroji. Túto hodnotu je možné získať cez .webové rozhranie telefónu v sekcii údržba (systémové riadenie). Pre telefóny s predvoľbovými nastaveniami je v oboch prípadoch hodnota 2.0002. Okrem toho verzia individuálneho súboru musí byť vyššia ako verzia spoločného súboru.
Najprv uvádzam súbor so spoločnou konfiguráciou pre všetky telefóny. V podstate uchováva všetky nastavenia, individuálny súbor bude zodpovedať iba za telefónne číslo a nápis na obrazovke.
V dvoch blokoch, uvedených nižšie, sú nastavené parametre časového pásma a synchronizácie času, počatočný port pre RTP a zapína sa sieťový most medzi WAN a LAN konektormi prístroja.
Fragment č. 1
DHCP 2 1 1 0 VOIP 10000 200 10.1.1.4 1 0 60 12 1500 1 1
Názvy parametrov konfigurácie sú dostatočne „hovoriace“, aby ich nebolo potrebné podrobne opisovať.
SIP pre jeden riadok
5060 SIP1 10.1.1.50 5060 3600 1 10.1.1.50 1 0 G711A,G711U,G722
Nastavenia diaľkového ovládania
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
Nastavenia telefónu
123 0 112 Company 5 1 30 0 1 0,,1 0 0 1 XML-PBook1 Phonebook http://10.1.1.50/provisioning/dlink-phonebook.xml : 0 0 friend,home,work,business,classmate,colleague
Všetky ostatné nastavenia zostanú „predvolené“. Teraz akýkoľvek telefón Dlink pripojený k sieti okamžite prijme spoločný súbor parametrov. Na nastavenie individuálnych parametrov pre prístroj je potrebný samostatný súbor. V ňom je potrebné uviesť iba potrebné nastavenia pre jednotlivého účastníka.
nastavenia účastníka
2.0006 SIP1 Používateľ č. 117 117 5060 117 SIP_PWD 3600 1 5060 117 SIP_PWD
Panasonic UT-KX123B
Tieto prístroje získavajú nastavenia iným spôsobom. Konfigurácia je uložená v textových súboroch. Maximálna veľkosť konfiguračného súboru je 120 KB. Bez ohľadu na počet súborov nesmie ich celková veľkosť presiahnuť 120 KB.
Konfiguračný súbor pozostáva z množiny riadkov, na ktoré sa vzťahujú nižšie uvedené podmienky:
- Prvým riadkom je vždy komentár, ktorý obsahuje nasledujúcu sekvenciu znakov (44 bajtov):
# Panasonic SIP Phone Standard Format File #
Hexadecimálne zobrazenie tejto sekvencie:
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
Na prevenciu náhodnej zmeny nastavených znakov sa odporúča začať konfiguračný súbor riadkom:
# Panasonic SIP Phone Standard Format File # DO NOT CHANGE THIS LINE! - Konfiguračné súbory musia končiť prázdnym riadkom.
- Každý riadok musí končiť sekvenciou "".
- Maximálna dĺžka riadku je 537 bajtov, vrátane sekvencie "".
- Nasledujúce riadky sa ignorujú:
- riadky presahujúce limit 537 bajtov;
- prázdne riadky;
- riadky komentárov začiatočné znakom "#";
- Riadok každého parametra je zapísaný vo forme XXX="yyy" (XXX: názov parametra, yyy: jeho hodnota). Hodnota musí byť uzavretá v úvodzovkách.
- Rozdelenie riadku parametrov na niekoľko riadkov nie je povolené. To spôsobí chybu pri spracovaní konfiguračného súboru a výsledok — zlyhanie inicializácie.
- Hodnoty niektorých parametrov je potrebné uviesť samostatne pre každý riadok. Parameter s príponou "_1" v názve je parametrom pre riadok 1; "_2" — pre riadok 2 a pod.
- Maximálna dĺžka názvu parametra je 32 znakov.
- Maximálna dĺžka hodnoty parametra je 500 znakov s výnimkou znakov úvodzoviek.
- Medzery v riadku nie sú povolené, okrem prípadov, keď hodnota obsahuje znak medzery.
- Hodnoty niektorých parametrov je možné uvádzať ako „prázdne“, aby sa nastavila prázdna hodnota parametra.
- Parametre sa uvádzajú bez určeného poradia.
- Ak je rovnaký parameter uvedený v konfiguračnom súbore viackrát, použije sa hodnota uvedená ako prvá.
Takýto vážny súbor požiadaviek na konfiguračný súbor ma úprimne sklamal. Podľa môjho názoru je realizácia interakcie s serverom ovládaním telefónov Panasonic mimoriadne nepohodlná. Z tohto hľadiska telefón výrazne zaostáva za ostatnými.
Pri prvom zapnutí zariadenia (alebo po obnovení na továrenské nastavenia) sa pokúša načítať takzvaný súbor produktu (v tomto prípade je to KX-UT123RU.cfg), v ktorom by mali byť uvedené cesty k ostatným konfiguračným súborom.
Súbor produktu# Panasonic SIP Phone Standard Format File # DO NOT CHANGE THIS LINE!
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“
Potom telefón na obrazovke zobrazí správu o úspešnom dokončení prípravy a bude čakať, kým ho nezresetujú. A po reštarte začne spracovávať požadované konfiguračné súbory.
V súbore master.cfg sa odporúča uvádzať všeobecné nastavenia pre všetky telefóny. Rovnako ako v prípade Dlinku, uvediem len niektoré parametre. Názvy ostatných parametrov a ich hodnoty možno nájsť v dokumentácii na stránke výrobcu.
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_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“
############################################################
# 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=""
V individuálnom konfiguračnom súbore zariadenia, ako vždy, zostávajú iba nastavenia predplatiteľa.
aabbccddeeff.cfgDISPLAY_NAME_1=„Používateľ #168“
PHONE_NUMBER_1=„168“
SIP_URI_1=„168“
LINE_ENABLE_1=„Povolené“
PROFILE_ENABLE_1=„Povolené“
SIP_AUTHID_1=„168“
SIP_PASS_1=„SIP_PWD“
Grandstream GXP-1400
Parametre týchto telefónov sú uložené v jednom xml súbore s názvom cfg{mac}.xml, alebo v bežnom textovom súbore s názvom cfg{mac}. Tento telefón žiada iba individuálny konfiguračný súbor, takže optimalizovať nastavenia presunutím ich do spoločného súboru sa nepodarí. Ďalšou zvláštnosťou nastavenia Grandstreamov je pomenovanie parametrov. Všetky sú číslované a označujú sa ako P###. Napríklad:
P1650 – zodpovedá za webové rozhranie na správu telefónu (0 – HTTPS, 1 – HTTP)
P47 – adresa SIP servera na pripojenie.
Ak sú nastavenia uložené v textovom súbore, parametre nevyžadujú žiadnu skupinovú organizáciu a idú v akomkoľvek poradí. Riadky začínajúce s # sa považujú za komentáre.
V prípade, že sú nastavenia prezentované vo formáte xml, musia byť vložené do uzla , ktorý musí byť zase vložený do . Všetky parametre sú zapisované vo forme zodpovedajúcich tagov s hodnotou parametra vo vnútri.
Príklad nastavenia
1
109
109
109
SIP_PWD
Používateľ# 109
10.1.1.50
2
10.1.1.50
0
ADMIN_PWD
USER_PWD
sk
0
10.1.1.50/grandstream
1
TZc-11
10.1.1.4
1
http://10.1.1.50/provisioning/grandstream
30
Yealink T19 a T21
Tieto modely zariadení podporujú individuálne konfiguračné súbory pre zariadenia a spoločné pre modely. V mojom prípade som musel umiestniť spoločné parametre do súborov y000000000031.cfg a y000000000034.cfg. Individuálne konfiguračné súbory sú pomenované podľa MAC adresy: 00112233aabb.cfg.
Nastavenia pre yealink sú uložené v textovom formáte. Z povinných požiadaviek je iba prítomnosť verzie súboru v prvej línii vo formáte #!version:1.0.0.1.
Všetky parametre sú zapísané vo forme parameter = hodnota. Poznámky musia začínať symbolom "#". Názvy parametrov a ich hodnoty nájdete v dokumentácii na stránke výrobcu.
spoločné nastavenia#!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 = Slovenčina
#Specify the LCD language, the valid values are: English (default), Chinese_S, Chinese_T, German, French, Turkish, Italian, Polish, Spanish and Portuguese.
lang.gui = Slovenčina
#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 = Telefónny zoznam
features.remote_phonebook.flash_time = 3600
individuálne nastavenia#!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 telefón
#Configure the display name of account1.
account.1.display_name = Používateľ 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
Nakoniec, vďaka skvelej funkcii auto-provision, ktorú majú uvedené telefóny, neboli žiadne problémy s pripojením nových zariadení do siete. Všetko sa zameralo na zistenie MAC adresy telefónu a generovanie konfiguračného súboru podľa šablóny.
Dúfam, že ste dočítali až do konca a vyťažili z prečítaného užitočné informácie.
Ďakujem za pozornosť.
Zdroj: habr.com
