I-Sonata - iseva yokuhlinzeka nge-SIP

Angazi ukuthi ngingaqhathanisa nani ukunikezwa. Mhlawumbe nekati? Kubonakala kungenakwenzeka ngaphandle kwayo, kodwa ngayo kungcono kancane. Ikakhulukazi uma kusebenza))

Ukwakhiwa kwenkinga:

  1. Ngifuna ukusetha amafoni e-SIP ngokushesha, kalula, nangokuphephile. Lapho ufaka ifoni, futhi ngisho nangaphezulu uma uyimisa kabusha.
  2. Abathengisi abaningi banamafomethi abo okumisa, izinsiza zabo zokukhiqiza izilungiselelo, nezindlela zabo zokuvikela izilungiselelo. Futhi angifuni ngempela ukubhekana nawo wonke umuntu.
  3. Izixazululo eziningi zokuhlinzeka, a) zigxile kumthengisi oyedwa noma ohlelweni olulodwa lwezingcingo, b) kunzima kakhulu ukuzisebenzisa, imibhalo eminingi, imingcele, brrr...

Mayelana nephuzu lesi-3, ngizophawula ukuthi kunezinhlelo ezinhle kakhulu zokuhlinzeka ye-FreePBX, ye-FusionPBX, ngoba Kazoo, lapho izifanekiso zamafoni ezivela kubathengisi abahlukahlukene zitholakala esidlangalaleni. Kunezixazululo zezentengiselwano lapho ungakwazi futhi ukulungisa ukusebenza kwamafoni avela kubakhiqizi abahlukene kumojula yokuhlinzeka, isibonelo, i-Yeastar PBX.

I-HabrΓ© nayo igcwele izindlela zokupheka zokuthi ungasetha kanjani amadivayisi avela kubathengisi abahlukahlukene: izikhathi, Π΄Π²Π°. Kodwa njengoba besho, zonke izinhlelo zinephutha elibulalayo. Ngakho sizozenzela ibhayisikili lethu.

ifomethi yakho

Njengoba besho ku-xkcd, uma ungafuni ukubhekana namafomethi ayi-14 - ufike nge-15. Ngakho-ke, sisebenzisa izilungiselelo ezijwayelekile kunoma iyiphi ifoni futhi senze ifomethi yethu ye-json config.

Okufana nalokhu:

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

Ngakho, kunoma iyiphi ifoni udinga ukumisa isikhathi sendawo kanye nemigqa ye-SIP. Konke kulula lapha. Ungabona izibonelo ezengeziwe lapha.

ukunikezwa kwakho kweseva

Ezincwadini zomkhiqizi kuvame ukuba nephuzu lapho lithi khona: thatha i-csv, bhala phansi igama-password-mac-address yakho, khiqiza amafayela usebenzisa iskripthi sethu sobunikazi, uwabeke ngaphansi kweseva yewebhu ye-Apache futhi konke kuzolunga.

Isigaba esilandelayo semanuwali sivame ukukutshela ukuthi ungakwazi futhi ukubethela ifayela le-config elikhiqiziwe.

Kodwa zonke lezi zingama-classics. Indlela yesimanje nge-smoothies ne-Twitter ithi udinga ukwenza iseva yewebhu esenziwe ngomumo engeke ibe namandla njenge-Apache, kodwa izokwenza into eyodwa encane kuphela. Khiqiza futhi uthumele okulungiselelwe usebenzisa isixhumanisi.

Ake sime lapha futhi sikhumbule ukuthi cishe wonke amafoni e-SIP manje angathola ukulungiselelwa nge-http/https, ngakho-ke asicabangi okunye ukusetshenziswa (ftp, tftp, ftps). Bese, ifoni ngayinye yazi ikheli layo le-MAC. Ngakho-ke, sizokwenza izixhumanisi ezimbili: umuntu oyedwa - ngokusekelwe kukhiye wedivayisi, owesibili jikelele, osebenza usebenzisa inhlanganisela yethokheni evamile kanye nekheli le-MAC.

Futhi, ngeke ngihlale ku-zero-config, i.e. ukusetha ifoni kusukela ekuqaleni, i.e. uyixhume kunethiwekhi futhi yaqala ukusebenza. Cha, esimweni sami, uyixhume kunethiwekhi, wenze ukusetha kokuqala (ukuyisethe ukuze uthole ukucushwa okuvela kuseva yokuhlinzeka), bese uphuza i-pina colada bese ulungisa kabusha ifoni njengoba kudingeka ngokuhlinzekwa. Inketho 66 yokusabalalisa isibopho seseva ye-DHCP.

Ngendlela, ngikhathele ngokuphelele ukuthi "ukunikezwa", ngakho igama lifushaniswe ngokuthi "ukunikezwa", ngicela ungangikhahleli.

Futhi enye into: iseva yethu yokuhlinzeka ayinayo i-UI, i.e. interface yomsebenzisi. Mhlawumbe, okwamanje, kodwa angiqiniseki, ngoba... Angiyidingi. Kodwa kukhona i-API yokugcina / yokususa izilungiselelo, ukuthola uhlu lwabathengisi abasekelwayo, amamodeli, yonke into ichazwa ngokuvumelana nama-canon we-specification ye-swagger.

Kungani i-API hhayi i-UI? Ngoba Sengivele nginesistimu yami yocingo, khona-ke nginomthombo wokuqinisekisa, lapho ngidinga nje ukuthatha le datha, ngihlanganise i-json edingekayo futhi ngiyishicilele kuseva yokuhlinzeka. Futhi iseva yokuhlinzeka, ngokwemithetho ecaciswe kufayela le-json, izonikeza idivayisi edingekayo ukulungiselelwa kwayo noma cha uma idivayisi ingalungile noma ingahlangabezani nemibandela eshiwo kule json.

I-Sonata - iseva yokuhlinzeka nge-SIP

Yavela kanjena i-microservice yokuhlinzeka. Ibiziwe i-sonata, ikhodi yomthombo iyatholakala ku-GitHub, kukhona futhi isithombe se-docker esilungile, isibonelo sokusebenzisa i-docker lapha.

Izici ezibalulekile:

  • kunoma yikuphi, ukufinyelela okulinganiselwe kokucushwa ngesikhathi, ngokuzenzakalelayo imizuzu eyi-10. Uma ufuna ukwenza ukulungiselelwa kutholakale futhi, shicilela kabusha ukulungiselelwa futhi.

  • ifomethi eyodwa yabo bonke abathengisi, zonke izinguquko ziyasuswa ku-sonata, uthumela i-json ejwayelekile, ulungise noma yimiphi imishini etholakalayo.

  • konke okulungiselelwe okukhishelwe kumadivayisi kungeniwe, zonke izindawo zezinkinga zingabukwa kulogi futhi amaphutha angabonakala

  • Kungenzeka ukusebenzisa isixhumanisi esisodwa esivamile esinethokheni; ifoni ngayinye ithola ukulungiselelwa kwayo ngokucacisa ikheli le-mac. Noma isixhumanisi somuntu siqu ngokhiye.

  • Ama-API okuphatha (ukuphatha) kanye nokuhlinzekwa kwezilungiselelo kumafoni (ukunikeza) ahlukaniswa ngamachweba

  • Izivivinyo. Bekubaluleke kakhulu kimina ukulungisa ifomethi ye-config ekhishiwe futhi ngimboze zonke izimo ezijwayelekile zokukhipha i-config ngokuhlolwa. Ukuze konke lokhu kusebenze ngokucacile.

Umthengi:

Kuze kube manje, ukubethela akusetshenzisiwe nganoma iyiphi indlela ngaphakathi kwe-Sonata. Labo. ungaqala ukusebenzisa i-https ngokubeka i-nginx phambi kwe-sonata ngokwesibonelo. Kodwa izindlela zobunikazi azikasetshenziswa. Kungani? Le phrojekthi isencane, yethule imishini yayo eyikhulu yokuqala. Futhi, kunjalo, ngiqoqa imibono nempendulo. Ngaphezu kwalokho, ukuze wenze yonke into ivikeleke, ukuze ama-configs angakwazi ukuhogela kunethiwekhi, cishe kufanelekile ukuzihlupha ngokhiye bokubethela, ama-tls kanye ne-hedgehog nabo, kodwa lokhu kuzoba ukuqhubeka.

Ukushoda kwe-UI. Mhlawumbe lokhu kuyingozi enkulu kumsebenzisi wokugcina, kodwa kumphathi wesistimu, insiza ye-console ibaluleke kakhulu kunohlelo lokusebenza olugcwele. Bekunezinhlelo zokwenza insiza ye-console, kodwa angiqiniseki ukuthi iyadingeka?

Yini ekugcineni?

Iseva yewebhu encane nelula yokuhlinzeka ngamamodeli efoni ambalwa nge-API yokuphatha.

Nakulokhu, kufanele kusebenze kanjani lokhu?

  1. Ifaka i-sonata.
  2. Sakha i-json config futhi siyishicilela ku-sonata.
  3. Bese sithola isixhumanisi sokuhlinzeka esivela ku-sonata.
  4. Bese sikhomba lesi sixhumanisi ocingweni.
  5. Idivayisi ilayisha ukulungiselelwa

Kunezinyathelo ezimbili kuphela ekusebenzeni okulandelayo:

  1. Sakha i-json config futhi siyishicilela ku-sonata
  2. Idivayisi ilayisha ukulungiselelwa

Imaphi amafoni azophromothwa?

Abathengisi Grandstream, Fanvil, Yealink. Ukulungiselelwa ngaphakathi komthengisi kufana kakhulu noma kuncane, kodwa kungase kuhluke kuye ngokuthi i-firmware - kungase kudingeke ukuhlola ngokungeziwe.

Imiphi imithetho ongayimisa?

Ngokuhamba kwesikhathi. Ungacacisa isikhathi kuze kube yilapho ukulungiselelwa kuzotholakala khona.
Ngekheli le-mac. Lapho uthumela okulungiselelwe ngesixhumanisi somuntu siqu sedivayisi, ikheli le-mac nalo lizobhekwa.
Ibhalwe ngu-ip. Ngekheli le-IP lapho isicelo senziwe khona.

Indlela yokuxhumana ne-sonata?

Nge-API, ukwenza izicelo ze-http. I-API izotholakala ekufakeni kwakho. Ngoba I-API isekela ukucaciswa kwe-swagger, ongayisebenzisa uhlelo lokusebenza lwe-inthanethi ngezicelo zokuhlola ku-API.

KULUNGILE, kuhle. Izinto ezinhle, ungazama kanjani?

Indlela elula ukufaka isithombe sedokhu esisekelwe endaweni yokugcina isampula ye-sonata. Inqolobane iqukethe imiyalelo yokufaka.

Kuthiwani uma ngazi i-node.js?

Uma unolwazi lokusebenzisa i-JavaScript, uzobona ngokushesha ukuthi yonke into isebenza kanjani lapha.

Ingabe kuzoba nentuthuko ye-Sonata?

Ngifinyelele imigomo yami ngokwengxenye. Ukuthuthukiswa okwengeziwe kuyindaba yemisebenzi yami esihlokweni sokuzenzakalela ukusethwa kwefoni. Kukhona nethuba lokwandisa izilungiselelo zokumisa izinkinobho zocingo, engeza ukunikezwa kwencwadi yamakheli, mhlawumbe enye into, bhala kumazwana.

Isifinyezo kanye nokubonga

Ngingajabula ukuba neziphakamiso ezakhayo/okuphikisayo/ukuphawula nemibuzo, ngoba... Kungenzeka ukuthi uchaze okuthile ngendlela engaqondakali.

Ngiphinde ngidlulise ukubonga kubo bonke ozakwethu abangisizile, bangeluleka, bahlola, futhi banikeza/banikela amafoni ukuze ahlolwe. Eqinisweni, abantu abaningi engixhumane nabo emsebenzini bahileleke kulo msebenzi ngamazinga ahlukene, I-AsterConf'e, ezingxoxweni nama-imeyili. Siyabonga ngemibono nemicabango.

Source: www.habr.com

Engeza amazwana