Sonata - SIP pwovizyon sèvè

Mwen pa konnen ki sa yo konpare pwovizyon ak. Petèt ak yon chat? Li sanble posib san li, men avèk li li yon ti kras pi bon. Espesyalman si li travay))

Fòmasyon pwoblèm nan:

  1. Mwen vle mete telefòn SIP rapid, fasil, ak san danje. Lè w ap enstale yon telefòn, e plis toujou lè w ap rekonfigire li.
  2. Anpil machann gen pwòp fòma konfigirasyon yo, pwòp sèvis piblik yo pou jenere konfigirasyon, ak pwòp fason yo pwoteje konfigirasyon yo. Apre sa, mwen pa reyèlman vle fè fas ak tout moun.
  3. Anpil solisyon pwovizyon, a) yo konsantre sou yon sèl machann oswa yon sèl sistèm telefòn, b) yo byen ankonbran pou aplike, yon anpil nan scripts, paramèt, brrr...

Konsernan pwen 3, mon ava fer en komanter ki i annan en sistenm provizyon ekselan pou FreePBX, pou FusionPBX, pou Kazoo, kote modèl pou telefòn ki soti nan divès machann yo disponib piblikman. Gen solisyon komèsyal kote ou ka tou konfigirasyon operasyon an nan telefòn ki soti nan diferan manifaktirè nan modil la pwovizyon, pou egzanp, Yeastar PBX.

Habré tou plen ak resèt sou kòman yo mete aparèy soti nan divès machann: tan, два. Men, jan yo di, tout sistèm yo gen yon defo fatal. Se konsa, nou pral fè pwòp bisiklèt nou an.

fòma ou a

Kòm yo di nan xkcd, si ou pa vle fè fas ak 14 fòma - vini ak 15 la. Se poutèt sa, nou itilize paramèt jeneral pou nenpòt telefòn epi fè pwòp fòma json konfigirasyon nou an.

Yon bagay tankou sa a:

{
   "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"
      }
   ]
}

Se konsa, nan nenpòt telefòn ou bezwen konfigirasyon lè lokal yo ak liy SIP. Tout bagay se senp isit la. Ou ka wè plis egzanp isit la.

pwovizyon sèvè pwòp ou a

Nan manyèl manifakti a anjeneral gen yon pwen kote li di: pran yon csv, ekri adrès login-password-mac-adrès ou a, jenere fichye lè l sèvi avèk script propriétaires nou an, mete yo anba sèvè wèb Apache la ak tout bagay pral anfòm.

Paragraf kap vini an nan manyèl la anjeneral di ou ke ou ka tou ankripte dosye a konfigirasyon pwodwi.

Men, sa yo se tout klasik. Apwòch modèn ak fwete ak Twitter di ke ou bezwen fè yon sèvè entènèt pare ki pa pral osi pwisan ke Apache, men li pral sèlman fè yon ti bagay. Jenere epi voye konfigirasyon lè l sèvi avèk yon lyen.

Ann sispann isit la epi sonje ke prèske tout telefòn SIP kounye a ka resevwa konfigirasyon atravè http/https, kidonk nou pa konsidere lòt aplikasyon (ftp, tftp, ftps). Lè sa a, chak telefòn konnen adrès MAC pwòp li yo. Se poutèt sa, nou pral fè de lyen: yon sèl pèsonèl - ki baze sou kle nan aparèy, dezyèm jeneral la, ki travay lè l sèvi avèk yon konbinezon de yon siy komen ak yon adrès MAC.

Epitou, mwen pa pral rete sou zewo-config, i.e. mete kanpe telefòn nan nan grafouyen, i.e. ou ploge li nan rezo a epi li te kòmanse travay. Non, nan senaryo mwen an, ou ploge li nan rezo a, fè konfigirasyon an preliminè (mete li moute yo resevwa konfigirasyon an nan men sèvè pwovizyon an), ak Lè sa a, bwè pina colada ak rkonfigure telefòn nan jan sa nesesè nan pwovizyon an. Distribisyon Opsyon 66 se responsablite sèvè DHCP la.

By wout la, mwen konplètman fatige di "provisioning", kidonk mo a te pi kout nan "pwovizyon", tanpri pa choute m '.

Ak yon lòt bagay ankò: sèvè pwovizyon nou an pa gen yon UI, i.e. koòdone itilizatè. Petèt, pou kounye a, men pa sèten, paske... Mwen pa bezwen li. Men, gen yon API pou sove / efase anviwònman, jwenn yon lis machann sipòte, modèl, tout bagay yo dekri dapre kanon yo nan spesifikasyon nan swagger.

Poukisa API epi pa UI? Paske Mwen deja gen pwòp sistèm telefòn mwen, Lè sa a, mwen gen yon sous kalifikasyon, kote mwen jis bezwen pran done sa yo, konpile json ki nesesè yo epi pibliye li sou sèvè pwovizyon an. Ak sèvè pwovizyon an, dapre règ yo espesifye nan dosye json la, pral bay aparèy ki nesesè yo konfigirasyon li yo oswa li pa pral ba li si aparèy la pa kòrèk oswa pa satisfè kritè yo espesifye nan json sa a.

Sonata - SIP pwovizyon sèvè

Sa a se ki jan mikwosèvis pwovizyon an te tounen soti. Rele sonat, kòd sous la disponib sou GitHub, gen tou pare docker imaj, egzanp itilizasyon docker isit la.

Karakteristik kle:

  • an nenpòt ka, aksè limite nan konfigirasyon an pa tan, pa default 10 minit. Si ou vle fè konfigirasyon an disponib ankò, repibli konfigirasyon an ankò.

  • yon sèl fòma pou tout fournisseurs, tout ajisteman yo retire nan sonata, ou voye estanda json, konfigirasyon nenpòt ekipman ki disponib.

  • tout konfigirasyon yo bay aparèy yo konekte, tout zòn pwoblèm yo ka wè nan boutèy la epi yo ka wè erè yo.

  • Li posib pou itilize yon lyen komen ak yon siy; chak telefòn resevwa konfigirasyon pwòp li yo lè yo espesifye adrès Mac la. Oswa yon lyen pèsonèl atravè kle.

  • APIs pou jesyon (jesyon) ak pwovizyon nan konfigirasyon nan telefòn (pwovizyon) yo divize pa pò

  • Tès yo. Li te trè enpòtan pou m 'ranje fòma a nan konfigirasyon an bay epi kouvri tout sitiyasyon yo abityèl nan founi dokiman yo yon konfigirasyon ak tès yo. Se konsa, ke tout bagay sa a travay byen klè.

Kont:

Jiskaprezan, chifreman pa itilize nan okenn fason nan Sonata. Moun sa yo. Ou ka nan kou kòmanse itilize https pa mete nginx devan sonata pou egzanp. Men, metòd propriétaires poko te itilize. Poukisa? Pwojè a toujou jèn, li te lanse premye san aparèy li yo. Epi, nan kou, mwen kolekte lide ak fidbak. Pli lwen, yo nan lòd yo fè tout bagay an sekirite, se konsa ke konfigirasyon yo pa ka sniffed sou rezo a, li se pwobableman vo trakase ak kle chifreman, tls ak e la ak yo, men sa a pral yon kontinyasyon.

Mank UI. Petèt sa a se yon dezavantaj enpòtan pou itilizatè final la, men pou yon administratè sistèm, yon sèvis piblik konsole pi enpòtan pase yon aplikasyon konplè. Te gen plan pou fè yon sèvis piblik konsole, men mwen pa sèten si li nesesè?

Rezilta a?

Yon ti sèvè entènèt ki senp pou pwovizyon plizyè modèl telefòn ak yon API pou jesyon.

Yon fwa ankò, ki jan sa a sipoze travay?

  1. Enstale sonata.
  2. Nou kreye yon konfigirasyon json epi pibliye li nan sonata.
  3. Lè sa a, nou resevwa yon lyen pwovizyon nan Sonata.
  4. Lè sa a, nou endike lyen sa a nan telefòn nan.
  5. Aparèy la ap chaje konfigirasyon an

Gen sèlman de etap nan operasyon ki vin apre:

  1. Nou kreye yon konfigirasyon json epi pibliye li nan sonata
  2. Aparèy la ap chaje konfigirasyon an

Ki telefòn yo pral ankouraje?

Vandè Grandstream, Fanvil, Yealink. Konfigirasyon yo nan vandè a se plis oswa mwens menm bagay la tou, men yo ka diferan depann sou firmwèr la - li ka nesesè yo teste anplis.

Ki règ ou ka mete?

Pa lè. Ou ka presize tan jiskaske konfigirasyon an ap disponib.
Pa adrès mac. Lè w ap soumèt konfigirasyon an atravè lyen pèsonèl aparèy la, adrès mac a pral tcheke tou.
Pa ip. Pa adrès IP kote yo te fè demann lan.

Ki jan yo kominike avèk sonata?

Via API, fè demann http. API a ap disponib nan enstalasyon w la. Paske API a sipòte spesifikasyon swagger la, ou ka itilize sèvis piblik sou entènèt pou demann tès nan API a.

OK, gwo. Cool bagay, ki jan sou eseye li?

Fason ki pi fasil la se deplwaye yon imaj docker ki baze sou yon depo sonat-echantiyon. Repozitwa a gen enstriksyon enstalasyon.

E si mwen konnen node.js?

Si ou gen eksperyans lè l sèvi avèk JavaScript, Lè sa a, ou pral byen vit konnen ki jan tout bagay ap travay isit la.

Èske pral gen yon devlopman Sonata?

Mwen pasyèlman reyalize objektif mwen yo. Plis devlopman se yon kesyon de travay mwen sou sijè a nan otomatize konfigirasyon telefòn. Genyen tou yon opòtinite yo elaji konfigirasyon yo nan konfigirasyon bouton telefòn, ajoute pwovizyon liv adrès, e petèt yon lòt bagay, ekri nan kòmantè yo.

Rezime ak rekonesans

Mwen pral kontan gen sijesyon konstriktif / objeksyon / kòmantè ak kesyon, paske... Li kapab byen ke li te dekri yon bagay enkonpreyansib.

Mwen eksprime rekonesans mwen tou pou tout kòlèg mwen yo ki te ede, konseye, teste, ak bay/fè bay telefòn pou tès yo. An reyalite, anpil moun ak ki moun mwen te kominike nan travay yo patisipe nan pwojè a nan diferan degre, AsterConf'e, nan chat ak imèl. Mèsi pou lide ak panse yo.

Sous: www.habr.com

Add nouvo kòmantè