Sonata - olupin ipese SIP

Emi ko mọ kini lati ṣe afiwe ipese pẹlu. Boya pẹlu ologbo kan? O dabi pe o ṣee ṣe laisi rẹ, ṣugbọn pẹlu rẹ o dara diẹ. Paapa ti o ba ṣiṣẹ))

Ilana ti iṣoro naa:

  1. Mo fẹ lati ṣeto awọn foonu SIP ni kiakia, ni irọrun, ati lailewu. Nigbati o ba nfi foonu sori ẹrọ, ati paapaa diẹ sii nigba atunto rẹ.
  2. Ọpọlọpọ awọn olutaja ni awọn ọna kika atunto tiwọn, awọn ohun elo tiwọn fun ṣiṣẹda awọn atunto, ati awọn ọna tiwọn ti aabo awọn atunto. Ati pe Emi ko fẹ gaan lati ṣe pẹlu gbogbo eniyan.
  3. Ọpọlọpọ awọn solusan ipese, a) ti dojukọ lori olutaja kan tabi eto tẹlifoonu kan, b) jẹ ohun ti o nira pupọ lati ṣe, ọpọlọpọ awọn iwe afọwọkọ, awọn paramita, brrr…

Nipa aaye 3, Emi yoo ṣe asọye pe awọn eto ipese ti o dara julọ wa fun FreePBX, fun FusionPBX, fun Kazoo, nibiti awọn awoṣe fun awọn foonu lati oriṣiriṣi awọn olutaja wa ni gbangba. Awọn ipinnu iṣowo wa nibiti o tun le tunto iṣẹ ti awọn foonu lati ọdọ awọn olupese oriṣiriṣi ni module ipese, fun apẹẹrẹ, Yeastar PBX.

Habré tun kun fun awọn ilana lori bi o ṣe le ṣeto awọn ẹrọ lati ọdọ awọn olutaja lọpọlọpọ: igba, meji. Ṣugbọn bi wọn ṣe sọ, gbogbo awọn eto ni abawọn apaniyan. Nitorinaa a yoo ṣe keke tiwa.

ti ara rẹ kika

Gẹgẹbi wọn ti sọ ni xkcd, ti o ko ba fẹ lati ṣe pẹlu awọn ọna kika 14 - wá soke pẹlu awọn 15th. Nitorinaa, a lo awọn eto gbogbogbo fun foonu eyikeyi ati ṣe ọna kika json tiwa.

Nkankan bi eleyi:

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

Nitorinaa, ninu foonu eyikeyi o nilo lati tunto akoko agbegbe ati awọn laini SIP. Ohun gbogbo ni o rọrun nibi. O le wo awọn apẹẹrẹ diẹ sii nibi.

ipese olupin ti ara rẹ

Ninu awọn itọnisọna olupese nigbagbogbo aaye kan wa nibiti o ti sọ pe: mu csv, kọ iwọle-iwọle-password-mac-adirẹsi rẹ, ṣe ina awọn faili ni lilo iwe afọwọkọ ohun-ini wa, fi wọn si labẹ olupin wẹẹbu Apache ati pe ohun gbogbo yoo dara.

Paragira ti o tẹle ti itọnisọna nigbagbogbo sọ fun ọ pe o tun le encrypt faili atunto ti ipilẹṣẹ.

Ṣugbọn awọn wọnyi ni gbogbo awọn Alailẹgbẹ. Ọna ode oni pẹlu awọn smoothies ati Twitter sọ pe o nilo lati ṣe olupin wẹẹbu ti o ṣetan ti kii yoo ni agbara bi Apache, ṣugbọn yoo ṣe ohun kekere kan nikan. Ṣe ina ati firanṣẹ awọn atunto nipa lilo ọna asopọ kan.

Jẹ ki a da duro nibi ki o ranti pe o fẹrẹ to gbogbo awọn foonu SIP le gba awọn atunto nipasẹ http/https, nitorinaa a ko gbero awọn imuṣẹ miiran (ftp, tftp, ftps). Lẹhinna, foonu kọọkan mọ adiresi MAC tirẹ. Nitorina, a yoo ṣe awọn ọna asopọ meji: ọkan ti ara ẹni - ti o da lori bọtini ẹrọ, gbogbogbo keji, eyiti o ṣiṣẹ ni lilo apapo ti ami-ami ti o wọpọ ati adiresi MAC.

Bakannaa, Emi kii yoo gbe lori odo-konfigi, i.e. eto foonu lati ibere, i.e. o so o sinu netiwọki o si bẹrẹ si ṣiṣẹ. Rara, ninu oju iṣẹlẹ mi, o ṣafọ sinu nẹtiwọọki, ṣe iṣeto alakoko (ṣeto lati gba atunto lati olupin ipese), ati lẹhinna mu pina colada ati tunto foonu naa bi o ṣe nilo nipasẹ ipese. Aṣayan pinpin 66 jẹ ojuṣe olupin DHCP.

Nipa ọna, Mo ti rẹ mi patapata ti sisọ “ipese”, nitorinaa a ti kuru ọrọ naa si “ipese”, jọwọ maṣe tapa mi.

Ati ohun kan diẹ sii: olupin ipese wa ko ni UI, i.e. ni wiwo olumulo. Boya, fun bayi, ṣugbọn ko daju, nitori ... Nko nilo re. Ṣugbọn API kan wa fun fifipamọ / piparẹ awọn eto, gbigba atokọ ti awọn olutaja atilẹyin, awọn awoṣe, ohun gbogbo ni a ṣe apejuwe ni ibamu si awọn canons ti sipesifikesonu swagger.

Kini idi ti API kii ṣe UI? Nitori Mo ti ni eto tẹlifoonu ti ara mi, lẹhinna Mo ni orisun ti awọn iwe-ẹri, nibiti Mo kan nilo lati mu data yii, ṣajọ json pataki ati gbejade lori olupin ipese. Ati olupin ipese, ni ibamu si awọn ofin ti a pato ninu faili json, yoo fun ẹrọ ti a beere ni atunto tabi kii yoo fun ni ti ẹrọ naa ko ba pe tabi ko ni ibamu pẹlu awọn ibeere ti o tun pato ninu json yii.

Sonata - olupin ipese SIP

Eyi ni bii iṣẹ microservice ti n pese jade. Ti a npe ni sonata, koodu orisun wa lori GitHub, tun wa setan docker image, docker lilo apẹẹrẹ nibi.

Awọn ẹya pataki:

  • ni eyikeyi nla, lopin wiwọle si konfigi nipa akoko, nipa aiyipada 10 iṣẹju. Ti o ba fẹ jẹ ki atunto wa lẹẹkansi, tun atunto atunto lẹẹkansii.

  • ọna kika kan fun gbogbo awọn olutaja, gbogbo awọn atunṣe ti yọkuro ni sonata, o firanṣẹ json ti o ni iwọn, tunto eyikeyi ohun elo to wa.

  • gbogbo awọn atunto ti a fun si awọn ẹrọ ti wa ni ibuwolu wọle, gbogbo awọn agbegbe iṣoro ni a le wo ni log ati awọn aṣiṣe le rii

  • O ṣee ṣe lati lo ọna asopọ ti o wọpọ pẹlu ami-ami kan; foonu kọọkan gba atunto tirẹ nipa sisọ adirẹsi mac naa. Tabi ọna asopọ ti ara ẹni nipasẹ bọtini.

  • Awọn API fun iṣakoso (isakoso) ati ipese awọn atunto si awọn foonu (ipese) ti pin nipasẹ awọn ebute oko oju omi

  • Idanwo. O ṣe pataki pupọ fun mi lati ṣatunṣe ọna kika ti atunto ti o funni ati bo gbogbo awọn ipo deede ti ipinfunni atunto kan pẹlu awọn idanwo. Ki gbogbo eyi ṣiṣẹ kedere.

Konsi:

Nitorinaa, fifi ẹnọ kọ nkan ko lo ni ọna eyikeyi laarin Sonata. Awon. O le dajudaju bẹrẹ lilo https nipa fifi nginx si iwaju sonata fun apẹẹrẹ. Ṣugbọn awọn ọna ohun-ini ko tii lo. Kí nìdí? Ise agbese na tun jẹ ọdọ, o ti ṣe ifilọlẹ awọn ẹrọ ọgọrun akọkọ rẹ. Ati pe, dajudaju, Mo gba awọn imọran ati awọn esi. Siwaju sii, lati le jẹ ki ohun gbogbo ni aabo, ki awọn atunto ko le jẹ sniffed lori nẹtiwọọki, o ṣee ṣe tọsi wahala pẹlu awọn bọtini fifi ẹnọ kọ nkan, tls ati hedgehog pẹlu wọn, ṣugbọn eyi yoo jẹ itesiwaju.

Aini ti UI. Boya eyi jẹ aila-nfani pataki fun olumulo ipari, ṣugbọn fun oluṣakoso eto, ohun elo console ṣe pataki ju ohun elo kikun lọ. Awọn ero wa lati ṣe ohun elo console, ṣugbọn Emi ko ni idaniloju boya o nilo?

Kini ila isalẹ?

Olupin wẹẹbu kekere ati rọrun fun ipese awọn awoṣe foonu pupọ pẹlu API fun iṣakoso.

Lẹẹkansi, bawo ni eyi ṣe yẹ lati ṣiṣẹ?

  1. Fifi sonata.
  2. A ṣẹda atunto json ati gbejade ni sonata.
  3. Lẹhinna a gba ọna asopọ ipese lati sonata.
  4. Lẹhinna a tọka ọna asopọ yii ninu tẹlifoonu.
  5. Awọn ẹrọ ti wa ni ikojọpọ konfigi

Awọn igbesẹ meji nikan lo wa ni iṣẹ atẹle:

  1. A ṣẹda atunto json ati gbejade ni sonata
  2. Awọn ẹrọ ti wa ni ikojọpọ konfigi

Awọn foonu wo ni yoo ṣe igbega?

olùtajà Grandstream, Fanvil, Yealink. Awọn atunto laarin olutaja jẹ diẹ sii tabi kere si kanna, ṣugbọn o le yatọ si da lori famuwia - o le jẹ pataki lati ṣe idanwo ni afikun.

Awọn ofin wo ni o le ṣeto?

Nipa akoko. O le pato akoko titi eyi ti atunto yoo wa.
Nipa mac adirẹsi. Nigbati o ba nfi atunto silẹ nipasẹ ọna asopọ ti ara ẹni ti ẹrọ, adirẹsi mac yoo tun ṣayẹwo.
Nipa ip. Nipa adiresi IP lati ibi ti o ti ṣe ibeere naa.

Bawo ni lati ṣe ajọṣepọ pẹlu Sonata?

Nipasẹ API, ṣiṣe awọn ibeere http. API yoo wa ninu fifi sori rẹ. Nitori API ṣe atilẹyin sipesifikesonu swagger, o le lo online IwUlO fun awọn ibeere idanwo si API.

O dara, nla. Nkan ti o tutu, bawo ni nipa igbiyanju rẹ?

Ọna to rọọrun ni lati ran aworan docker kan ti o da lori ibi ipamọ kan sonata-ayẹwo. Ibi ipamọ naa ni awọn ilana fifi sori ẹrọ.

Kini ti MO ba mọ node.js?

Ti o ba ni iriri lilo JavaScript, lẹhinna o yoo yara ro ero bi ohun gbogbo ṣe n ṣiṣẹ nibi.

Njẹ idagbasoke Sonata yoo wa?

Mo ṣaṣeyọri awọn ibi-afẹde mi ni apakan. Ilọsiwaju siwaju jẹ ọrọ ti awọn iṣẹ-ṣiṣe mi lori koko ti adaṣe adaṣe foonu. Anfani tun wa lati faagun awọn atunto lati tunto awọn bọtini foonu, ṣafikun ipese iwe adirẹsi, boya nkan miiran, kọ ninu awọn asọye.

Lakotan ati acknowledgments

Inu mi yoo dun lati ni awọn didaba / atako / awọn asọye ati awọn ibeere, nitori… Ó lè jẹ́ pé ó ṣàpèjúwe ohun kan lọ́nà tí kò lóye.

Mo tun fi idupẹ mi han si gbogbo awọn ẹlẹgbẹ mi ti o ṣe iranlọwọ, gbanimọran, idanwo, ati pese/fifun awọn foonu fun awọn idanwo. Ni otitọ, ọpọlọpọ eniyan ti Mo ba sọrọ ni iṣẹ ni o ni ipa ninu iṣẹ akanṣe si awọn iwọn oriṣiriṣi, AsterConf'e, ni awọn iwiregbe ati awọn apamọ. O ṣeun fun awọn ero ati awọn ero.

orisun: www.habr.com

Fi ọrọìwòye kun