Sonata - SIP hornikuntza zerbitzaria

Ez dakit hornidura zerekin alderatu. Agian katu batekin? Hori gabe posible dela dirudi, baina horrekin pixka bat hobea da. Batez ere funtzionatzen badu))

Arazoaren formulazioa:

  1. SIP telefonoak azkar, erraz eta seguru konfiguratu nahi ditut. Telefono bat instalatzerakoan, eta are gehiago birkonfiguratzerakoan.
  2. Saltzaile askok beren konfigurazio formatuak dituzte, konfigurazioak sortzeko beren utilitateak eta konfigurazioak babesteko moduak. Eta ez dut denekin tratatu nahi.
  3. Hornidura-soluzio asko, a) hornitzaile edo telefono-sistema batera bideratzen dira, b) inplementatzeko nahiko astunak dira, script, parametro, brrr... asko.

3. puntuari dagokionez, hornidura sistema bikainak daudelako iruzkin bat egingo dut FreePBXerako, FusionPBX-rako, Kazoorentzat, non hainbat saltzailetako telefonoentzako txantiloiak publikoki eskuragarri dauden. Konponbide komertzialak daude hornidura-moduluan fabrikatzaile ezberdinetako telefonoen funtzionamendua ere konfiguratu dezakezun, adibidez, Yeastar PBX.

HabrΓ© hainbat saltzailetako gailuak konfiguratzeko errezetaz beteta dago: denbora, Π΄Π²Π°. Baina esan bezala, sistema guztiek akats larria dute. Beraz, gure bizikleta egingo dugu.

zure formatua

Xkcd-n esaten den bezala, 14 formatuekin jorratu nahi ez baduzu - etorri 15ean. Hori dela eta, edozein telefonotarako ezarpen orokorrak erabiltzen ditugu eta gure json konfigurazio formatua egiten dugu.

Honelako zerbait:

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

Beraz, edozein telefonotan tokiko ordua eta SIP lineak konfiguratu behar dituzu. Hemen dena sinplea da. Adibide gehiago ikus ditzakezu Hemen.

zure zerbitzaria hornitzea

Fabrikatzailearen eskuliburuetan egon ohi da puntu bat non esaten duena: hartu csv bat, idatzi zure login-password-mac-helbidea, sortu fitxategiak gure jabedun script erabiliz, jarri Apache web zerbitzariaren azpian eta dena ondo egongo da.

Eskuliburuaren hurrengo paragrafoak normalean esaten dizu sortutako konfigurazio fitxategia ere enkriptatu dezakezula.

Baina hauek guztiak klasikoak dira. Irabiatuak eta Twitterren ikuspegi modernoak dio prest egindako web zerbitzari bat egin behar duzula, Apache bezain indartsua izango ez dena, baina gauza txiki bat bakarrik egingo duena. Sortu eta bidali konfigurazioak esteka erabiliz.

Geldi gaitezen hemen eta gogoratu SIP telefono ia guztiek gaur egun http/https bidez konfigurazioak jaso ditzaketela, beraz, ez ditugu kontuan hartzen beste inplementazio batzuk (ftp, tftp, ftps). Orduan, telefono bakoitzak bere MAC helbidea ezagutzen du. Hori dela eta, bi esteka egingo ditugu: bat pertsonala - gailuaren gakoan oinarritutakoa, bigarrena orokorra, token arrunt baten eta MAC helbide baten konbinazioa erabiliz funtzionatzen duena.

Gainera, ez naiz zero-config-en gainean geratuko, hau da. telefonoa hutsetik konfiguratzea, hau da. sarera konektatu zenuen eta lanean hasi zen. Ez, nire eszenatokian, sarera konektatzen duzu, aurretiazko konfigurazioa egiten duzu (hornikuntza-zerbitzariaren konfigurazioa jasotzeko konfiguratu), eta gero pina kolada edan eta telefonoa birkonfiguratu behar duzu hornikuntzaren bidez. 66 aukera banatzea DHCP zerbitzariaren ardura da.

Bide batez, guztiz nekatuta nago "hornikuntza" esateaz, beraz, hitza "hornidura" moduan laburtu zen, mesedez, ez nazazu ostikorik eman.

Eta gauza bat gehiago: gure hornikuntza zerbitzariak ez du UIrik, hau da. erabiltzailearen interfazea. Agian, oraingoz, baina ez ziur, zeren... Ez dut behar. Baina ezarpenak gordetzeko / ezabatzeko API bat dago, onartzen diren saltzaileen, ereduen zerrenda lortzeko, dena swagger zehaztapenaren kanonen arabera deskribatzen da.

Zergatik APIa eta ez UI? Zeren Dagoeneko badut nire telefono sistema, orduan kredentzial iturri bat daukat, non datu hauek hartu, beharrezko json-a konpilatu eta hornikuntza zerbitzarian argitaratu behar dudan. Eta hornikuntza zerbitzariak, json fitxategian zehaztutako arauen arabera, beharrezko gailuari bere konfigurazioa emango dio edo ez du emango gailua zuzena ez bada edo json honetan ere zehaztutako irizpideak betetzen ez baditu.

Sonata - SIP hornikuntza zerbitzaria

Honela atera zen horniketa mikrozerbitzua. Deitua sonata, iturburu kodea GitHub-en dago eskuragarri, baita ere prest docker irudia, docker erabilera adibidea Hemen.

Ezaugarri nagusiak:

  • nolanahi ere, konfiguraziorako sarbide mugatua denboraren arabera, lehenespenez 10 minutu. Konfigurazioa berriro erabilgarri jarri nahi baduzu, argitaratu berriro konfigurazioa.

  • formatu bat saltzaile guztientzat, doikuntza guztiak kentzen dira sonataz, json estandarizatua bidaltzen duzu, erabilgarri dagoen edozein ekipo konfiguratu.

  • Gailuei emandako konfigurazio guztiak erregistratuta daude, arazo-eremu guztiak erregistroan ikus daitezke eta akatsak ikus daitezke.

  • Token batekin esteka komun bat erabil daiteke; telefono bakoitzak bere konfigurazioa jasotzen du mac helbidea zehaztuta. Edo esteka pertsonal bat giltza bidez.

  • Kudeatzeko (kudeaketa) eta telefonoetarako konfigurazioak hornitzeko APIak (hornikuntza) portuen arabera banatzen dira

  • Probak. Niretzat oso garrantzitsua izan zen jaulkitako konfigurazioaren formatua konpontzea eta konfigurazio bat igortzeko ohiko egoera guztiak testekin estaltzea. Hori guztia argi eta garbi funtziona dezan.

Cons:

Orain arte, enkriptatzea ez da inola ere erabiltzen Sonata barruan. Horiek. https erabiltzen has zaitezke, noski, adibidez, nginx sonataren aurrean jarriz. Baina jabedun metodoak ez dira oraindik erabili. Zergatik? Proiektua oraindik gaztea da, bere lehen ehun gailu jarri ditu martxan. Eta, noski, ideiak eta iritziak biltzen ditut. Gainera, dena segurua izan dadin, konfigurazioak sarean usnatu ezin daitezen, ziurrenik merezi du enkriptazio-gakoekin, tls-ekin eta trikuarekin nahastea, baina hau jarraipena izango da.

UI falta. Beharbada, azken erabiltzailearentzako desabantaila nabarmena da, baina sistema-administratzaile batentzat, kontsola-erabilgarritasun bat osoko aplikazio bat baino garrantzitsuagoa da. Kontsola erabilgarritasun bat egiteko asmoa zegoen, baina ez nago ziur beharrezkoa den?

Emaitza?

Web zerbitzari txiki eta sinple bat hainbat telefono modelo hornitzeko kudeaketarako API batekin.

Berriro ere, nola funtzionatu behar du honek?

  1. Sonata instalatzea.
  2. Json konfigurazioa sortzen dugu eta sonata batean argitaratzen dugu.
  3. Ondoren, hornidura-esteka bat jasotzen dugu sonatatik.
  4. Ondoren, esteka hau telefonoan adierazten dugu.
  5. Gailua konfigurazioa kargatzen ari da

Bi urrats besterik ez daude ondorengo funtzionamenduan:

  1. Json konfigurazioa sortzen dugu eta sonata batean argitaratzen dugu
  2. Gailua konfigurazioa kargatzen ari da

Zein telefono sustatuko dira?

Saltzaileak Grandstream, Fanvil, Yealink. Saltzailearen barneko konfigurazioak gutxi gorabehera berdinak dira, baina firmwarearen arabera desberdinak izan daitezke; baliteke proba gehiago egitea beharrezkoa izatea.

Zein arau ezar ditzakezu?

Denboraren arabera. Konfigurazioa erabilgarri egongo den denbora zehaztu dezakezu.
Mac helbidearen arabera. Konfigurazioa gailuaren esteka pertsonalaren bidez bidaltzean, mac helbidea ere egiaztatuko da.
ip bidez. Eskaera egin den IP helbidearen arabera.

Nola jokatu sonatarekin?

API bidez, http eskaerak eginez. APIa erabilgarri egongo da zure instalazioan. Zeren APIak swagger zehaztapena onartzen du, erabil dezakezu lineako erabilgarritasuna APIra egindako proba-eskaeretarako.

Ados, bikaina. Gauza politak, zer moduz probatzea?

Modurik errazena biltegi batean oinarritutako docker irudi bat zabaltzea da sonata-lagin. Biltegiak instalazio-argibideak ditu.

Zer gertatzen da node.js ezagutzen badut?

JavaScript erabiltzen esperientzia baduzu, hemen dena nola funtzionatzen duen azkar ikusiko duzu.

Sonata garapenik izango al da?

Nere helburuak partzialki lortu ditut. Garapen gehiago telefonoaren konfigurazioa automatizatzeari buruzko nire zereginen kontua da. Telefonoaren botoiak konfiguratzeko konfigurazioak zabaltzeko aukera ere badago, helbide-liburuaren hornidura gehitzeko, agian beste zerbait, iruzkinetan idatzi.

Laburpena eta eskerrak

Pozik egongo naiz iradokizun/eragozpen/iruzkin eta galdera eraikitzaileak izateaz, zeren... Baliteke zerbait ulertezin deskribatzea.

Gainera, nire esker ona adierazten diet probak egiteko telefonoak lagundu, aholkatu, probatu eta eman/oparitu dituzten lankide guztiei. Egia esan, lanean komunikatuta egon naizen jende askok maila ezberdinetan parte hartzen du proiektuan, AsterConf'e, txatetan eta posta elektronikoetan. Eskerrik asko ideia eta pentsamenduengatik.

Iturria: www.habr.com

Gehitu iruzkin berria