VoIP zoo — Provisioning

Hyrje

Njëherë, udhëheqja miratoi një eksperiment për implementimin e telefonisë IP në zyrën tonë. Duke qenë se përvoja ime në këtë fushë ishte minimale, detyra zgjoi një interes të madh në mua dhe unë fillova të hulumtoj aspekte të ndryshme të çështjes. Pasi përfundova këtë hulumtim, vendosa të ndaj njohuritë e fituara - me shpresën se ato do t'u shërbejnë dikujt. Pra...

Të dhënat burimore

Si IP-PBX, u zgjodh dhe u implementua Asterisk. Parku i telefonave përbëhet nga aparatë Cisco 7906g, Panasonic UT-KX123B, Grandstream GXP1400 dhe Dlink DPH-150S(E)/F3, Yealink T19 dhe T21. Ky shumëllojshmëri është e arsyeshme, sepse në kuadër të eksperimentit u mor vendimi për të provuar nga pak nga çdo gjë, për të krijuar mendimin tim mbi raportin çmim/cilësi/komfort.

Detyra

Të maksimalizohet thjeshtësia dhe unifikimi i procesit të konfigurimit të aparateve të rinj. Të gjithë telefonat duhet të jenë të sinkronizuar me kohën, të kenë një libër telefonik, të ngarkohet nga сервера dhe të ofrojë akses në konfigurime për administratorin.

Zgjidhja e kësaj çështjeje është e thjeshtë - të realizohet konfigurimi automatik i telefonave, e njohur si Provisioning. Në thelb, do flasim për implementimin tim të këtij funksioni të shkëlqyer.

Konfigurimi i tftpd, dhcpd

Për shpërndarjen e konfigurimeve për telefonat, zgjodha tftp si një variant universale, i mbështetur nga të gjitha platformat, i lehtë për t'u konfiguruar dhe menaxhuar.

Nuk ishte nevoja për konfigurime specifike për tftp. Instalova tftpd standard dhe vendosa të gjitha skedaret e nevojshme në direktorinë e tij kryesore.
Skedarët me konfigurimet i vendosa në katalogë sipas prodhuesit të telefonit. Megjithatë, aparati nga Cisco nuk arriti të hyjë në dosjen e tij, kështu që duhej ta ruaja në rrënjë.

Për të treguar telefonave vendndodhjen e serverit tftp, përdora option-66. Për më tepër, i ndava ata në klasa të veçanta sipas prodhuesit. Çdo klasë mori një segment të veçantë adresash dhe një dosje individuale për skedat e konfigurimit. Për shërbimin, telefonat nga D-link duhej të incizoheshin sipas adresave MAC, pasi informacioni rreth prodhuesit në kërkesën dhcp nuk i ofron.

Fragmenti 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/";
        }

Telefonat duhej të përjashtoheshin me forcë nga pool-i i përgjithshëm. Ndryshe, ata nuk donin të shkonin në 'pishinën' e tyre.
Shembulli i konfigurimeve të nënrrjetit

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

Pasi pas ribrikimin e të gjitha shërbimeve të përfshira, telefonat me siguri i dërguan konfigurimet në serverin e tyre tftp të caktuar. Tani mbetet vetëm t'i vendosim atje.

Cisco 7906

Këto pajisje më erdhën në paketimin e fabrikës. Më duhet të ripozoj për t'i bërë bashkë me asterisk'in. Por kjo është një histori tjetër. Në këtë rast, për konfigurimin e pajisjes, sipas udhëzimeve, krijova në rrënjën e serverit tftp skedarin SEPAABBCCDDEEFF.cnf.xml. Ku AABBCCDDEEFF është adresa MAC e pajisjes.

Për konfigurimin e telefonave Cisco është shkruar tashmë disa herë, prandaj do të lë vetëm skedarin e punës me konfigurimet.
Konfigurimet për cisco

true
 SIP
 root
 ADMIN_PWD

 
 D-M-Y
 Zona e Koha Standard e Paqësor të Qendrës
     
         
             10.1.1.4
              Unicast
          
     
 

   
 10.1.1.50
 
 2000
 5060
 5061
 
 10.1.1.50
   
 

 Çaktivizo


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
 Telefon Cisco
 2
 false
 15000
10
 true
 false
 16384
 32766

 
 9
 10.1.1.50
 5060
  2 
 3
 false
 3
 
 4
 5
 
 true
 true
 false
 true
 

 Përdoruesi #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

 Shqip_Shqipëri
 sq_AL
 
 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

Nëse po planifikoni të blini një telefon të kësaj serie, kini parasysh se vetëautomatikimi mbështetet vetëm në pajisjet 150S/F3. Në pajisjen 150S/F2, që më ra në dorë, nuk e gjeta këtë funksionalitet.

Skedari i konfigurimit mund të jetë në format xml ose si tekst të zakonshëm. Për xml ka një kërkesë: etiketat duhet të jenë në fillim të linjës, përndryshe parseri do t'i injorojë ato dhe vlera përkatëse nuk do të ndryshojë.

Për konfigurimin e telefonit përdoren dy skedarë. f0D00580000.cfg — për ruajtjen e konfigurimeve të të gjithë telefona dhe 00112233aabb.cfg (adresa MAC në shkronja të vogla) për konfigurimet individuale. Konfigurimet individuale, natyrisht, kanë prioritet më të madh.

Grupi i plotë i konfigurimeve ka më shumë se një mijë rreshta, për të mos e mbingarkuar artikullin, do të përshkruaj një grup minimalisht të mjaftueshëm konfigurimesh.

Të detyrueshme janë nodi rrënjë VOIP_CONFIG_FILE dhe nodi i thelluar version. Konfigurimet do të aplikohen vetëm nëse versioni i skedarit është më i lartë se ai i konfigurimeve aktuale në pajisje. Mund ta kuptoni këtë vlerë përmes ndërfaqes .web të telefonit në seksionin e mirëmbajtjes (menaxhimi i sistemit). Për telefonat me konfigurime të fabrikës në të dyja rastet, kjo është 2.0002. Për më tepër, versioni i skedarit individual duhet të jetë më i madh se versioni i skedarit të përgjithshëm.

E para që do të jap është skedari me konfigurimin e përgjithshëm për të gjithë telefonat. Në thelb, ai ruan të gjitha konfigurimet, skedari individual do të përgjigjet vetëm për numrin e telefonit dhe mbishkrimin në ekran.

Në dy bloket e mësipërme, vendosen parametrat e zonës kohore dhe sinkronizimit të kohës, porta fillestare për RTP dhe aktivizohet ura rrjetësore midis porteve WAN dhe LAN të pajisjes.

Fragmenti #1

DHCP
2
1
1
0
VOIP
10000
200
10.1.1.4
1


0
60
12
1500


1
1

Emri i parametrave të konfigurimit është mjaft "shpjegues", sa që nuk ka nevojë për përshkrim të detajuar.
SIP për një linjë

5060


SIP1
10.1.1.50
5060
3600
1
10.1.1.50
1
0
G711A,G711U,G722

Cilësimet e menaxhimit të largët

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

Cilësimet e telefonit

123
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

Të gjitha cilësimet e tjera do të mbeten "në parazgjedhje". Tani çdo telefon Dlink i lidhur në rrjet, do të pranojë menjëherë një set të përbashkët parametrash. Për të vendosur parametra individualë për pajisjen, nevojitet një skedar i veçantë. Në të duhet thjesht të shënohen cilësimet e nevojshme për çdo abonent të veçantë.
cilësimet e abonentit

2.0006



SIP1
Përdoruesi #117
117
5060
117
SIP_PWD
3600
1
5060
117
SIP_PWD

Panasonic UT-KX123B

Këto pajisje marrin konfigurimet në një mënyrë pak ndryshe. Konfigurimi ruhet në skedarë tekstualë. Madhësia maksimale e skedarit të konfigurimit është 120 KB. Pavarësisht nga numri i skedarëve, madhësia totale e tyre nuk duhet të kalojë 120 KB.
Skedari i konfigurimit përbëhet nga një grup rreshtash, të cilëve u zbatohen kushtet e mëposhtme:

  • Rreshti i parë gjithmonë është një rresht komenti, duke përfshirë këtë sekuencë simbolesh (44 byte):
    # Panasonic SIP Phone Standard Format File #
    Përfaqësimi hexadeshimal i kësaj sekuence:
    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
    Për të parandaluar ndryshimin e rastësishëm të sekuencës së vendosur, rekomandohet të filloni skedarin e konfigurimit me rreshtin:
    # Panasonic SIP Phone Standard Format File # DO NOT CHANGE THIS LINE!
  • Skedarët e konfigurimit duhet të përfundojnë me një rresht të zbrazët.
  • Çdo rresht duhet të përfundojë me sekuencën "".
  • Madhësia maksimale e rreshtit është 537 byte, duke përfshirë sekuencën "".
  • Rreshtat në vazhdim injorohen:
    • rreshtat që kalojnë kufizimin prej 537 byte;
    • rreshtat e zbrazët;
    • rreshtat e komenteve, që fillojnë me simbolin "#";
  • Rreshti i çdo parametri shkruhet në formën XXX="yyy" (XXX: emri i parametrin, yyy: vlere e tij). Vlera duhet të jetë e rrethuar me thonjëza të dyfishta.
  • Shkëputja e rreshtit të parametrave në disa rreshta nuk lejohet. Kjo do të sjellë një gabim në përpunimin e skedarit të konfigurimit dhe si pasojë — një dështim në inçializim.
  • Vlerat e disa parametrave duhet të gjithë spesifikohen ndaras për secilën linjë. Parametri me sufiks "_1" në emër është një parametr për linjën 1; "_2" — për linjën 2 dhe kështu me radhë.
  • Madhësia maksimale e emrit të parametrave është 32 karaktere.
  • Madhësia maksimale e vlerës së parametrave është 500 karaktere përveç thonjëzave të dyfishta.
  • Hapësirat në rresht nuk lejohen përveç rasteve kur vlera përfshin simbolin e hapësirës.
  • Vlerat e disa parametrave mund të caktohen "të zbrazëta" për të vendosur vlerën e zbrazët të parametrave.
  • Parametrat caktohen pa një rend të caktuar.
  • Nëse një të njëjtë parametr përsëritet në skedarin e konfigurimit më shumë se një herë, ajo do të marrë vlerën që është vendosur e para.

Një grup kaq i rëndësishëm kërkesash për skedarin e konfigurimit më ka trishtuar, për të qenë të sinqertë. Sipas mendimit tim, realizimi i ndërveprimit me сервером menaxhimin e telefonave Panasonic është bërë jashtëzakonisht i pakëndshëm. Nga ky këndvështrim, telefoni ndjeshëm përballet me të tjerët.
Kur ndizni për herë të parë pajisjen (ose pas rikthimit në parametrat e fabrikës), ajo përpiqet të ngarkojë një skedar të ashtuquajtur produkti (në këtë rast KX-UT123RU.cfg), në të cilin duhet të përmbahen rrugët drejt skedarëve të tjerë të konfigurimit.
Skedari i produktit# 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"

Pas kësaj, telefoni do të shfaqë një mesazh mbi përfundimin e suksesshëm të përgatitjes dhe do të presë për rimbajtjen e tij. Pas rimbajtjes, ai do të fillojë të përpunojë skedarët e nevojshëm të konfigurimit.

Në skedarin master.cfg rekomandohet që të caktohen cilësimet e përgjithshme për të gjithë telefonat. Ashtu siç bëj me Dlink, do të përmend vetëm disa parametra. Emrat e parametrave të tjerë dhe vlerat e tyre mund të gjenden në dokumentacionin në faqen e prodhuesit.
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="10.1.1.50/provisioning/panasonic-phonebook.xml»
XMLAPP_LDAP_USERID=""
XMLAPP_LDAP_USERPASS=""

Në skemën për konfigurimin individual të pajisjes, sipas traditës, mbeten vetëm cilësimet e abonentit.
aabbccddeeff.cfgDISPLAY_NAME_1=«Përdoruesi #168»

PHONE_NUMBER_1=«168»
SIP_URI_1=«168»
LINE_ENABLE_1=«Aktivizuar»
PROFILE_ENABLE_1=«Aktivizuar»
SIP_AUTHID_1=«168»
SIP_PASS_1=«SIP_PWD»

Grandstream GXP-1400

Parametrat e këtyre telefonave ruhen në një xml-file me emrin cfg{mac}.xml. Ose në një skedë tekstuale me emrin cfg{mac}. Ky telefon kërkon vetëm skemën individuale të konfigurimit, kështu që optimizimi i cilësimeve duke i nxjerrë ato në një skedë të zakonshme nuk do të funksionojë. Një karakteristikë tjetër e konfigurimit të Grandstream-it është emërtimi i parametrave. Të gjithë janë të numëruar dhe shënohen si P###. Për shembull:

P1650 – përgjigjet për ndërfaqen e uebit për menaxhimin e telefonit (0 – HTTPS, 1 – HTTP)
P47 – adresa e serverit SIP për lidhje.

Nëse konfigurimi ruhet në një skedë tekstuale, parametrat nuk kërkojnë kurrfarë grupimi dhe shkojnë në çdo rend. Rreshtat që fillojnë me # konsiderohen si komente.

Në rastin kur cilësimet paraqiten në formatin xml, ato duhet të jenë të ngulitura në nyjën , e cila nga ana e saj duhet të jetë e ngulitur në . Të gjithë parametrat regjistrohen si etiketa përkatëse me vlerën e parametrave brenda.
Shembulli i konfigurimit

1
    109
    109
    109
    SIP_PWD
    Përdoruesi# 109
        10.1.1.50
        2
   10.1.1.50
   0
   ADMIN_PWD
   USER_PWD
   ru
        0
        10.1.1.50/grandstream
   1 
   TZc-11
   10.1.1.4
        1
        http://10.1.1.50/provisioning/grandstream
        30

Yealink T19 dhe T21

Pajisjet e këtyre modeleve mbështesin skedarë individualë konfigurimi për pajisje dhe të përbashkët për modelet. Në rastin tim, më duhej të vendosja parametrat e përbashkët në skedarët y000000000031.cfg dhe y000000000034.cfg përkatësisht. Skedarët individualë të konfigurimit emërtohen në përputhje me adresën MAC: 00112233aabb.cfg.

Caktimet për yealink ruhen në formatin tekstual. Nga kërkesat e detyrueshme është vetëm prania në rreshtin e parë të versionit të skedarit, në formatin #!version:1.0.0.1.

Të gjithë parametrat regjistrohen në formën parametër = vlerë. Komentet duhet të fillojnë me simbolet "#". Emrat e parametrave dhe vlerat e tyre mund të gjenden në dokumentacionin në faqen e prodhuesit.
caktimet e përbashkëta#!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 = Albanian
#Specify the LCD language, the valid values are: English (default), Chinese_S, Chinese_T, German, French, Turkish, Italian, Polish, Spanish and Portuguese.
lang.gui = Albanian
#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 = 10.1.1.50/provisioning/yealink-phonebook.xml
remote_phonebook.data.1.name = Telefonlista
features.remote_phonebook.flash_time = 3600

caktimet individuale#!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 = Telefon testi
#Configure the display name of account1.
account.1.display_name = Përdoruesi 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

Në përfundim, për shkak të funksionit të shkëlqyer auto-provision, të parashikuar në telefonat që përmenda, nuk kishte asnjë problem me lidhjen e pajisjeve të reja në rrjet. E gjitha përfundoi me përcaktimin e adresës MAC të telefonit dhe gjenerimin e skedarit të konfigurimit sipas modelit.

Shpresoj se keni arritur deri në fund dhe keni nxjerrë dobi nga ajo që keni lexuar.

Faleminderit për vëmendjen.

Burimi: habr.com

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster