Ma nafx ma' xiex se nqabbel il-proviżjonament. Forsi ma qattus? Jidher possibbli mingħajrha, iżda magħha huwa ftit aħjar. Speċjalment jekk taħdem))
Formulazzjoni tal-problema:
- Irrid inwaqqaf telefowns SIP malajr, faċilment u mingħajr periklu. Meta tinstalla telefon, u aktar u aktar meta tikkonfigurah mill-ġdid.
- Ħafna bejjiegħa għandhom il-formati tal-konfigurazzjoni tagħhom stess, l-utilitajiet tagħhom stess biex jiġġeneraw il-konfigurazzjonijiet, u l-modi tagħhom kif jipproteġu l-konfigurazzjonijiet. U ma tantx irrid nittratta ma 'kulħadd.
- Ħafna soluzzjonijiet ta' forniment, a) huma ffukati fuq bejjiegħ wieħed jew sistema waħda tat-telefon, b) huma pjuttost ingombranti biex jiġu implimentati, ħafna skripts, parametri, brrr...
Rigward il-punt 3, se nagħmel kumment li hemm sistemi eċċellenti ta' forniment
На Хабре также полно рецептов как настроить аппараты различных вендоров:
format tiegħek stess
Kif jgħidu f'xkcd, jekk ma tridx tittratta 14-il format -
Xi ħaġa bħal din:
{
"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"
}
]
}
Għalhekk, fi kwalunkwe telefon għandek bżonn tikkonfigura l-ħin lokali u l-linji SIP. Kollox huwa sempliċi hawn. Tista 'tara aktar eżempji
il-provvista tas-server tiegħek stess
Fil-manwali tal-manifattur normalment ikun hemm punt fejn jgħid: ħu csv, ikteb l-indirizz tal-login-password-mac-address tiegħek, iġġenera l-fajls bl-użu tal-iskript proprjetarju tagħna, poġġihom taħt is-server tal-web Apache u kollox ikun tajjeb.
Il-paragrafu li jmiss tal-manwal normalment jgħidlek li tista 'wkoll tikkripta l-fajl tal-konfigurazzjoni ġġenerat.
Iżda dawn huma kollha klassiċi. L-approċċ modern bi smoothies u Twitter jgħid li għandek bżonn tagħmel web server lest li mhux se jkun b'saħħtu daqs Apache, iżda se jagħmel biss ħaġa waħda żgħira. Iġġenera u ibgħat konfigurazzjonijiet billi tuża link.
Ejja nieqfu hawn u ftakar li kważi t-telefowns SIP kollha issa jistgħu jirċievu konfigurazzjonijiet permezz ta’ http/https, għalhekk mhux qed nikkunsidraw implimentazzjonijiet oħra (ftp, tftp, ftps). Imbagħad, kull telefon jaf l-indirizz MAC tiegħu stess. Għalhekk, se nagħmlu żewġ links: wieħed personali - ibbażat fuq iċ-ċavetta tal-apparat, it-tieni ġenerali, li jaħdem bl-użu ta 'kombinazzjoni ta' token komuni u indirizz MAC.
Ukoll, mhux se nitkellem fuq zero-config, i.e. it-twaqqif tat-telefon mill-bidu, i.e. daħħaltha fin-netwerk u bdiet taħdem. Le, fix-xenarju tiegħi, inti plaggha fin-netwerk, tagħmel is-setup preliminari (issettjaha biex tirċievi l-konfigurazzjoni mis-server tal-forniment), u mbagħad tixrob pina colada u tikkonfigura mill-ġdid it-telefon kif meħtieġ permezz tal-forniment. Id-distribuzzjoni tal-Għażla 66 hija r-responsabbiltà tas-server DHCP.
Mill-mod, jien kompletament għajjien li ngħid "provvista", għalhekk il-kelma tqassar għal "provvista", jekk jogħġbok taqbadx lili.
U ħaġa oħra: is-server tal-provvista tagħna m'għandux UI, i.e. interface tal-utent. Forsi, għalissa, imma mhux ċert, għax... M'għandix bżonnha. Iżda hemm API għall-iffrankar/tħassir ta 'settings, jkollna lista ta' bejjiegħa appoġġjati, mudelli, kollox huwa deskritt skond il-kanoni ta 'l-ispeċifikazzjoni swagger.
Għaliex API u mhux UI? Għax Diġà għandi s-sistema tat-telefon tiegħi stess, allura għandi sors ta 'kredenzjali, fejn għandi bżonn biss nieħu din id-dejta, niġbor il-json meħtieġ u nippubblikaha fuq is-server tal-forniment. U s-server tal-forniment, skont ir-regoli speċifikati fil-fajl json, se jagħti lill-apparat meħtieġ il-konfigurazzjoni tiegħu jew mhux se jagħtih jekk l-apparat ma jkunx korrett jew ma jissodisfax il-kriterji speċifikati wkoll f'dan il-json.
Hekk irriżulta l-mikroservizz tal-forniment. Imsejjaħ
Karatteristiċi ewlenin:
-
fi kwalunkwe każ, aċċess limitat għall-konfigurazzjoni mill-ħin, awtomatikament 10 minuti. Jekk trid terġa' tagħmel il-konfigurazzjoni disponibbli, erġa' ppubblika l-konfigurazzjoni.
-
format wieħed għall-bejjiegħa kollha, l-aġġustamenti kollha jitneħħew fis-sonata, tibgħat json standardizzat, tikkonfigura kwalunkwe tagħmir disponibbli.
-
Il-konfigurazzjonijiet kollha maħruġa lill-apparati huma illoggjati, iż-żoni problematiċi kollha jistgħu jidhru fir-reġistru u l-iżbalji jistgħu jidhru
-
Huwa possibbli li tuża rabta komuni waħda b'token; kull telefon jirċievi l-konfigurazzjoni tiegħu stess billi jispeċifika l-indirizz mac. Jew rabta personali permezz taċ-ċavetta.
-
APIs għall-ġestjoni (ġestjoni) u l-forniment ta' konfigurazzjonijiet għat-telefowns (provvista) huma maqsuma bil-portijiet
-
Testijiet. Kien importanti ħafna għalija li nirranġa l-format tal-konfigurazzjoni maħruġa u nkopri s-sitwazzjonijiet kollha tas-soltu ta 'ħruġ ta' konfigurazzjoni bit-testijiet. Sabiex dan kollu jaħdem b'mod ċar.
Cons:
S'issa, il-kriptaġġ ma jintuża bl-ebda mod fi ħdan Sonata. Dawk. ovvjament tista' tibda tuża https billi tpoġġi nginx quddiem is-sonata pereżempju. Iżda metodi proprjetarji għadhom ma ntużawx. Għaliex? Il-proġett għadu żagħżugħ, nieda l-ewwel mitt apparat tiegħu. U, ovvjament, niġbor ideat u feedback. Barra minn hekk, sabiex tagħmel kollox sikur, sabiex il-konfigurazzjonijiet ma jkunux jistgħu jiġu mxammra fuq in-netwerk, probabbilment ta 'min jolqot b'ċwievet ta' encryption, tls u l-qanfud magħhom, iżda din se tkun kontinwazzjoni.
Nuqqas ta' UI. Forsi dan huwa żvantaġġ sinifikanti għall-utent aħħari, iżda għal amministratur tas-sistema, utilità tal-console hija aktar importanti minn applikazzjoni sħiħa. Kien hemm pjanijiet biex issir utilità tal-console, imma m'inix ċert jekk huwiex meħtieġ?
Ir-riżultat?
Web server żgħir u sempliċi għall-forniment ta' diversi mudelli tat-telefon b'API għall-ġestjoni.
Għal darb'oħra, dan kif suppost jaħdem?
- Installazzjoni ta 'sonata.
- Aħna noħolqu konfigurazzjoni json u nippubblikawha f'sonata.
- Imbagħad nirċievu link tal-provvista minn sonata.
- Imbagħad nindikaw din il-link fit-telefon.
- L-apparat qed jgħabbi l-konfigurazzjoni
Hemm biss żewġ passi fl-operazzjoni sussegwenti:
- Aħna noħolqu konfigurazzjoni json u nippubblikawha f'sonata
- L-apparat qed jgħabbi l-konfigurazzjoni
Liema telefowns se jiġu promossi?
Bejjiegħa Grandstream, Fanvil, Yealink. Il-konfigurazzjonijiet fi ħdan il-bejjiegħ huma bejn wieħed u ieħor l-istess, iżda jistgħu jvarjaw skont il-firmware - jista 'jkun meħtieġ li tittestja addizzjonalment.
X'regoli tista' tistabbilixxi?
Biż-żmien. Tista' tispeċifika ż-żmien sa meta l-konfigurazzjoni tkun disponibbli.
Permezz tal-indirizz mac. Meta tissottometti l-konfigurazzjoni permezz tal-link personali tal-apparat, l-indirizz mac jiġi ċċekkjat ukoll.
Permezz ip. Permezz tal-indirizz IP minn fejn saret it-talba.
Как взаимодействовать c sonata?
Permezz tal-API, tagħmel talbiet http. L-API se tkun disponibbli fl-installazzjoni tiegħek. Għax L-API tappoġġja l-ispeċifikazzjoni swagger, tista 'tuża
OK, kbir. Jittieħed jibred, kif dwar tipprova dan?
L-eħfef mod huwa li tuża immaġni docker ibbażata fuq repożitorju
X'jiġri jekk naf node.js?
Jekk għandek esperjenza bl-użu tal-JavaScript, allura malajr issib kif kollox jaħdem hawn.
Se jkun hemm żvilupp Sonata?
Lħaqt parzjalment l-għanijiet tiegħi. Żvilupp ulterjuri huwa kwistjoni tal-kompiti tiegħi dwar is-suġġett ta 'awtomatizzazzjoni tas-setup tat-telefon. Hemm ukoll opportunità biex tespandi l-konfigurazzjonijiet biex tikkonfigura l-buttuni tat-telefon, iżżid il-provvista tal-ktieb tal-indirizzi, forsi xi ħaġa oħra, ikteb fil-kummenti.
Sommarju u rikonoxximenti
Inkun kuntent li jkolli suġġerimenti/oġġezzjonijiet/kummenti u mistoqsijiet kostruttivi, għax... Jista 'jkun li huwa ddeskriva xi ħaġa inkomprensibbli.
Nesprimi wkoll il-gratitudni tiegħi lill-kollegi tiegħi kollha li għenu, taw pariri, ittestjaw, u pprovdew/taw telefowns għat-testijiet. Fir-realtà, ħafna nies li kkomunikajt magħhom fuq ix-xogħol huma involuti fil-proġett fi gradi differenti,
Sors: www.habr.com