Es nezinu, ar ko salÄ«dzinÄt nodroÅ”inÄÅ”anu. VarbÅ«t ar kaÄ·i? Å Ä·iet, ka bez tÄ ir iespÄjams, bet ar to ir nedaudz labÄk. It Ä«paÅ”i, ja tas darbojas))
ProblÄmas formulÄjums:
- Es vÄlos Ätri, viegli un droÅ”i iestatÄ«t SIP tÄlruÅus. UzstÄdot tÄlruni, un vÄl jo vairÄk, pÄrkonfigurÄjot to.
- Daudziem piegÄdÄtÄjiem ir savi konfigurÄcijas formÄti, savi utilÄ«ti konfigurÄciju Ä£enerÄÅ”anai un savi konfigurÄciju aizsardzÄ«bas veidi. Un es nevÄlos ar visiem saskarties.
- Daudzi nodroÅ”inÄÅ”anas risinÄjumi, a) ir vÄrsti uz vienu piegÄdÄtÄju vai vienu tÄlruÅu sistÄmu, b) ir diezgan apgrÅ«tinoÅ”i ievieÅ”ami, daudz skriptu, parametru, brrr...
AttiecÄ«bÄ uz 3. punktu es komentÄÅ”u, ka ir lieliskas nodroÅ”inÄÅ”anas sistÄmas
HabrĆ© ir arÄ« pilns ar dažÄdu pÄrdevÄju ierÄ«Äu iestatÄ«Å”anas receptÄm:
savu formÄtu
KÄ saka xkcd, ja nevÄlaties nodarboties ar 14 formÄtiem -
Kaut kas tamlīdzīgs:
{
"key": "sdgjdeu9443908",
"token": "590sfdsf8u984",
"model": "gxp1620",
"vendor": "grandstream",
"mac": "001565113af8",
"timezone_offset": "GMT+03",
"ntp_server": "pool.ntp.org",
"status": true,
"accounts": [
{
"name": "ŠŠ¾Š±ŠøŠ»Š¾Š½",
"line": 1,
"sip_register": "sip.mobilonsip.ru",
"sip_name": "sip102",
"sip_user": "sip102",
"sip_password": "4321",
"sip_auth": "sip102"
}
]
}
TÄtad jebkurÄ tÄlrunÄ« ir jÄkonfigurÄ vietÄjais laiks un SIP lÄ«nijas. Å eit viss ir vienkÄrÅ”i. JÅ«s varat redzÄt vairÄk piemÄru
sava servera nodroÅ”inÄÅ”ana
RažotÄja rokasgrÄmatÄs parasti ir punkts, kur teikts: paÅemiet csv, pierakstiet savu login-password-mac-adresi, Ä£enerÄjiet failus, izmantojot mÅ«su patentÄto skriptu, ievietojiet tos Apache tÄ«mekļa serverÄ« un viss bÅ«s kÄrtÄ«bÄ.
RokasgrÄmatas nÄkamajÄ daÄ¼Ä parasti ir teikts, ka varat arÄ« Å”ifrÄt Ä£enerÄto konfigurÄcijas failu.
Bet tÄs visas ir klasikas. MÅ«sdienÄ«gÄ pieeja ar smÅ«tijiem un Twitter saka, ka jÄuztaisa gatavs web serveris, kas nebÅ«s tik jaudÄ«gs kÄ Apache, bet darÄ«s tikai vienu sÄ«kumu. Ä¢enerÄjiet un nosÅ«tiet konfigurÄcijas, izmantojot saiti.
ApstÄsimies Å”eit un atcerÄsimies, ka gandrÄ«z visi SIP tÄlruÅi tagad var saÅemt konfigurÄcijas, izmantojot http/https, tÄpÄc mÄs neapsveram citas ievieÅ”anas iespÄjas (ftp, tftp, ftps). Tad katrs tÄlrunis zina savu MAC adresi. TÄpÄc mÄs izveidosim divas saites: vienu personisku - pamatojoties uz ierÄ«ces atslÄgu, otru vispÄrÄ«go, kas darbojas, izmantojot kopÄ«ga marÄ·iera un MAC adreses kombinÄciju.
TÄpat nekavÄÅ”os pie zero-config, t.i. tÄlruÅa iestatÄ«Å”ana no nulles, t.i. jÅ«s to pievienojÄt tÄ«klam, un tas sÄka darboties. NÄ, pÄc mana scenÄrija jÅ«s pievienojat to tÄ«klam, veiciet sÄkotnÄjo iestatÄ«Å”anu (iestatiet to, lai saÅemtu konfigurÄciju no nodroÅ”inÄÅ”anas servera), pÄc tam dzeriet pina colada un pÄc vajadzÄ«bas pÄrkonfigurÄjat tÄlruni, izmantojot nodroÅ”inÄjumu. Par 66. izplatÄ«Å”anas iespÄju atbild DHCP serveris.
Starp citu, man ir pilnÄ«gi apnicis teikt ānodroÅ”inÄÅ”anaā, tÄpÄc vÄrds tika saÄ«sinÄts uz ānodroÅ”inÄjumsā, lÅ«dzu, nesperiet mani.
Un vÄl viena lieta: mÅ«su nodroÅ”inÄjuma serverim nav lietotÄja interfeisa, t.i. lietotÄja interfeiss. IespÄjams, pagaidÄm, bet neesmu pÄrliecinÄts, jo... Man tas nav vajadzÄ«gs. Bet ir API iestatÄ«jumu saglabÄÅ”anai/dzÄÅ”anai, atbalstÄ«to pÄrdevÄju, modeļu saraksta iegÅ«Å”anai, viss ir aprakstÄ«ts atbilstoÅ”i swagger specifikÄcijas kanoniem.
KÄpÄc API, nevis UI? Jo Man jau ir sava telefona sistÄma, tad man ir akreditÄcijas datu avots, kur vajag tikai Åemt Å”os datus, apkopot nepiecieÅ”amo json un publicÄt to nodroÅ”inÄjuma serverÄ«. Un nodroÅ”inÄjuma serveris saskaÅÄ ar noteikumiem, kas norÄdÄ«ti json failÄ, iedos vajadzÄ«gajai ierÄ«cei savu konfigurÄciju vai ne, ja ierÄ«ce nav pareiza vai neatbilst kritÄrijiem, kas arÄ« norÄdÄ«ti Å”ajÄ json.
TÄds sanÄca nodroÅ”inÄjuma mikropakalpojums. ZvanÄ«ja
GalvenÄs iezÄ«mes:
-
jebkurÄ gadÄ«jumÄ ierobežota piekļuve konfigurÄcijai pÄc laika, pÄc noklusÄjuma 10 minÅ«tes. Ja vÄlaties atkal padarÄ«t konfigurÄciju pieejamu, atkÄrtoti publicÄjiet konfigurÄciju.
-
viens formÄts visiem piegÄdÄtÄjiem, visi pielÄgojumi tiek noÅemti sonÄtÄ, jÅ«s nosÅ«tÄt standartizÄtu JSON, konfigurÄjat visu pieejamo aprÄ«kojumu.
-
tiek reÄ£istrÄtas visas ierÄ«cÄm izsniegtÄs konfigurÄcijas, žurnÄlÄ var apskatÄ«t visas problemÄtiskÄs vietas un redzÄt kļūdas
-
Ir iespÄjams izmantot vienu kopÄ«gu saiti ar marÄ·ieri; katrs tÄlrunis saÅem savu konfigurÄciju, norÄdot Mac adresi. Vai personÄ«ga saite caur atslÄgu.
-
API pÄrvaldÄ«bai (pÄrvaldÄ«bai) un tÄlruÅu konfigurÄciju nodroÅ”inÄÅ”anai (nodroÅ”inÄÅ”ana) ir sadalÄ«ti pa portiem
-
PÄrbaudes. Man bija ļoti svarÄ«gi salabot izdotÄs konfigurÄcijas formÄtu un ar testiem aptvert visas parastÄs konfigurÄcijas izdoÅ”anas situÄcijas. Lai tas viss darbotos skaidri.
MÄ«nusi:
PagaidÄm Sonata Å”ifrÄÅ”ana nekÄdÄ veidÄ netiek izmantota. Tie. jÅ«s, protams, varat sÄkt lietot https, piemÄram, ieliekot nginx pirms sonÄtes. Bet patentÄtas metodes vÄl nav izmantotas. KÄpÄc? Projekts joprojÄm ir jauns, tas ir laidis klajÄ savus pirmos simts ierÄ«Äu. Un, protams, es krÄju idejas un atsauksmes. TÄlÄk, lai viss bÅ«tu droÅ”i, lai tÄ«klÄ nevarÄtu noÅ”Åaukt konfigas, droÅ”i vien ir vÄrts pamocÄ«t ar Å”ifrÄÅ”anas atslÄgÄm, tls un ezÄ«ti ar tiem, bet tas bÅ«s turpinÄjums.
UI trÅ«kums. VarbÅ«t tas ir bÅ«tisks trÅ«kums gala lietotÄjam, bet sistÄmas administratoram konsoles utilÄ«ta ir svarÄ«gÄka par pilnvÄrtÄ«gu lietojumprogrammu. Bija plÄns izveidot konsoles utilÄ«tu, bet es neesmu pÄrliecinÄts, vai tas ir vajadzÄ«gs?
RezultÄts?
Mazs un vienkÄrÅ”s tÄ«mekļa serveris vairÄku tÄlruÅu modeļu nodroÅ”inÄÅ”anai ar API pÄrvaldÄ«bai.
VÄlreiz, kÄ tam vajadzÄtu darboties?
- SonÄtes uzstÄdÄ«Å”ana.
- MÄs izveidojam json konfigurÄciju un publicÄjam to sonÄtÄ.
- PÄc tam mÄs saÅemam nodroÅ”inÄjuma saiti no sonÄtes.
- Tad mÄs norÄdÄm Å”o saiti telefonÄ.
- IerÄ«ce ielÄdÄ konfigurÄciju
TurpmÄkajÄ darbÄ«bÄ ir tikai divi posmi:
- MÄs izveidojam json konfigurÄciju un publicÄjam to sonÄtÄ
- IerÄ«ce ielÄdÄ konfigurÄciju
Kuri tÄlruÅi tiks reklamÄti?
PÄrdevÄji Grandstream, Fanvil, Yealink. PÄrdevÄja konfigurÄcijas ir vairÄk vai mazÄk vienÄdas, taÄu var atŔķirties atkarÄ«bÄ no programmaparatÅ«ras ā iespÄjams, bÅ«s jÄveic papildu pÄrbaude.
KÄdus noteikumus jÅ«s varat noteikt?
PÄc laika. Varat norÄdÄ«t laiku, lÄ«dz kuram konfigurÄcija bÅ«s pieejama.
PÄc mac adreses. Iesniedzot konfigurÄciju, izmantojot ierÄ«ces personÄ«go saiti, tiks pÄrbaudÄ«ta arÄ« mac adrese.
PÄc ip. PÄc IP adreses, no kuras tika veikts pieprasÄ«jums.
KÄ mijiedarboties ar sonÄti?
Izmantojot API, veicot http pieprasÄ«jumus. API bÅ«s pieejams jÅ«su instalÄcijÄ. Jo API atbalsta swagger specifikÄciju, ko varat izmantot
Labi, lieliski. ForÅ”as lietas, kÄ bÅ«tu, ja pamÄÄ£inÄtu?
VienkÄrÅ”Äkais veids ir izvietot docker attÄlu, pamatojoties uz repozitoriju
Ko darīt, ja es zinu node.js?
Ja jums ir pieredze JavaScript lietoÅ”anÄ, jÅ«s Ätri sapratÄ«sit, kÄ Å”eit viss darbojas.
Vai bÅ«s sonÄtes izstrÄde?
Es daļÄji sasniedzu savus mÄrÄ·us. TÄlÄka attÄ«stÄ«ba ir manu uzdevumu jautÄjums par tÄlruÅa iestatÄ«Å”anas automatizÄÅ”anu. Ir arÄ« iespÄja paplaÅ”inÄt konfigurÄcijas, lai konfigurÄtu telefona pogas, pievienotu adreÅ”u grÄmatas nodroÅ”inÄjumu, varbÅ«t vÄl kaut ko, rakstiet komentÄros.
Kopsavilkums un atzinības
PriecÄÅ”os par konstruktÄ«viem priekÅ”likumiem/iebildumiem/komentÄriem un jautÄjumiem, jo... Var jau bÅ«t, ka viÅÅ” kaut ko nesaprotami aprakstÄ«ja.
Izsaku arÄ« pateicÄ«bu visiem saviem kolÄÄ£iem, kuri palÄ«dzÄja, konsultÄja, testÄja un sagÄdÄja/ziedoja telefonus testiem. PatiesÄ«bÄ daudzi cilvÄki, ar kuriem es sazinÄjos darbÄ, ir dažÄdÄ mÄrÄ iesaistÄ«ti projektÄ,
Avots: www.habr.com