Sonata - SIP kupa server

Handizivi kuti chii chekufananidza nekupa. Pamwe nekatsi? Zvinoita sezvingabvira pasina, asi nazvo zviri nani zvishoma. Kunyanya kana ichishanda))

Kugadziriswa kwedambudziko:

  1. Ndinoda kuseta mafoni eSIP nekukurumidza, zviri nyore, uye zvakachengeteka. Pakuisa foni, uye zvakanyanya kana uchiigadzirisa zvakare.
  2. Vatengesi vazhinji vane mafomu avo ekugadzirisa, avo ekushandisa ekugadzira magadzirirwo, uye nzira dzavo dzekuchengetedza configs. Uye ini handidi chaizvo kubata nemunhu wese.
  3. Mazhinji ekugadzirisa mhinduro, a) akatarisana nemutengesi mumwechete kana imwe nharembozha, b) inonetsa kuita, akawanda manyoro, ma paramita, brrr...

Nezve poindi 3, ini ndichaita chirevo chekuti kune akanakisa ekupa masisitimu yeFreePBX, yeFusionPBX, zveKazoo, uko matemplate emafoni kubva kune vakasiyana vatengesi anowanikwa pachena. Kune zvigadziriso zvekutengesa uko iwe unogona zvakare kugadzirisa kushanda kwemafoni kubva kune vakasiyana vagadziri mune yekugovera module, semuenzaniso, Yeastar PBX.

HabrΓ© zvakare izere nemaresiphi ekuti ungamisa sei zvishandiso kubva kune vakasiyana vatengesi: nguva, Π΄Π²Π°. Asi sezvavanotaura, masisitimu ese ane chikanganiso chinouraya. Saka tichagadzira bhasikoro redu.

fomati yako

Sezvavanotaura mu xkcd, kana iwe usingade kubata nemafomati gumi nemana - kuuya ne15. Naizvozvo, isu tinoshandisa zvakajairwa zvigadziriso kune chero foni uye kugadzira yedu json config fomati.

Chinhu chakadai:

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

Saka, mune chero foni iwe unofanirwa kugadzirisa nguva yemuno uye SIP mitsara. Zvose zviri nyore pano. Unogona kuona mimwe mienzaniso pano.

yako wega server kupa

Muzvinyorwa zvemugadziri pane kazhinji painoti: tora csv, nyora pasi yako yekuisa-password-mac-kero, gadzira mafaera uchishandisa yedu proprietary script, isa pasi peApache web server uye zvese zvichanaka.

Iyo inotevera ndima yebhuku rinowanzo kukuudza kuti iwe unogona zvakare encrypt iyo yakagadzirwa config file.

Asi aya ese makirasi. Nzira yemazuva ano ine smoothies uye Twitter inotaura kuti unoda kugadzira web server yakagadzirira iyo isingazove yakasimba seApache, asi ichaita chinhu chiduku chimwe chete. Gadzira uye tumira zvigadziriso uchishandisa chinongedzo.

Ngatimirei pano uye tiyeuke kuti anenge ese mafoni eSIP anogona kugamuchira configs kuburikidza ne http/https, saka isu hatisi kufunga nezve mamwe mashandisirwo (ftp, tftp, ftps). Zvadaro, foni imwe neimwe inoziva kero yayo yeMAC. Naizvozvo, isu tichaita maviri links: mumwe munhu - zvichibva pane mudziyo kiyi, wechipiri mukuru, iyo inoshanda uchishandisa musanganiswa wechiratidzo chakajairika uye kero yeMAC.

Zvakare, ini handisi kuzogara pa zero-config, i.e. kumisikidza foni kubva pakutanga, i.e. wakaipinza munetwork ikatanga kushanda. Kwete, mune yangu mamiriro, iwe unoiisa mukati metiweki, ita yekutanga kuseta (imise kuti ugamuchire gadziriso kubva kune yekugovera server), wobva wanwa pina colada uye gadzirisa zvakare foni sezvinodiwa kuburikidza nekupa. Kugovera Option 66 ibasa reDHCP server.

Nenzira, ndaneta zvachose kutaura "kupa", saka shoko rakapfupiswa kuti "kupa", ndapota usandikanda.

Uye chimwezve chinhu: server yedu yekugovera haina UI, i.e. mushandisi interface. Zvichida, ikozvino, asi kwete chokwadi, nokuti ... handichada. Asi pane API yekuchengetedza / kudzima marongero, kuwana runyorwa rwevatengesi vanotsigirwa, mamodheru, zvese zvinotsanangurwa zvinoenderana nemakanoni eiyo swagger yakatarwa.

Sei API uye kwete UI? Nokuti Ini ndatova neyangu nharembozha, saka ini ndine tsime rezvitupa, kwandinongoda kutora iyi data, kuunganidza inodiwa json uye kuishambadza pane yekugovera server. Uye sevha yekugovera, maererano nemitemo inotsanangurwa mujson faira, ichapa chigadziro chinodiwa chigadziro chayo kana kuti hachizochipa kana chigadzirwa chacho chisina kunaka kana chisingazadziki maitiro akataurwawo mune iyi json.

Sonata - SIP kupa server

Aya ndiwo maitiro ekupa microservice yakaitika. Kudanwa sonata, iyo kodhi kodhi inowanikwa paGitHub, pane zvakare yakagadzirira docker mufananidzo, muenzaniso wekushandisa docker pano.

Zvinhu zvakakosha:

  • chero zvazvingaitika, kuwana kushomeka kweiyo config nenguva, nekukasira maminitsi gumi. Kana iwe uchida kuita kuti iyo config iwanikwe zvakare, buditsa gadziriso zvakare.

  • imwe fomati yevatengesi vese, zvigadziriso zvese zvinobviswa mu sonata, unotumira yakajairwa json, gadzira chero midziyo iripo.

  • ese magadzirirwo akapihwa kumidziyo akaiswa, ese ane dambudziko nzvimbo anogona kutariswa mulogi uye zvikanganiso zvinogona kuoneka

  • Zvinogoneka kushandisa imwe yakajairika chinongedzo nechiratidzo; foni yega yega inogamuchira yayo pachayo nekutsanangura iyo mac kero. Kana chinongedzo chako pachako kuburikidza nekiyi.

  • APIs ekutungamira (manejimendi) uye kupihwa kwezvigadziriso kumafoni (kupa) zvakakamurwa nezviteshi.

  • Miedzo. Zvaive zvakakosha kwandiri kuti ndigadzirise chimiro cheiyo yakapihwa config uye kuvhara ese akajairwa mamiriro ekuburitsa config nemiedzo. Saka kuti izvi zvese zvishande zvakajeka.

Cons:

Parizvino, encryption haishandiswe munzira ipi neipi mukati meSonata. Avo. unogona kutanga kushandisa https nekuisa nginx pamberi pe sonata semuenzaniso. Asi nzira dzevaridzi hadzisati dzashandiswa. Sei? Iyo purojekiti ichiri diki, yakatanga zana zana rekutanga michina. Uye, hongu, ini ndinounganidza mazano uye mhinduro. Uyezve, kuitira kuti zvinhu zvose zvive zvakachengeteka, kuitira kuti magadzirirwo arege kunyungudutswa panetiweki, zvingangove zvakakodzera kunetswa nekiyi encryption, tls uye hedgehog navo, asi ichi chichava kuenderera mberi.

Kushaikwa kweUI. Zvichida ichi chinhu chakakosha chinokanganisa kumushandisi wekupedzisira, asi kune system administrator, console utility inonyanya kukosha pane yakazara-yakazara application. Paive nehurongwa hwekuita console utility, asi handina chokwadi kana ichidikanwa?

Chii mumagumo?

Iyo diki uye yakapusa sevha yewebhu yekupa akati wandei mafoni modhi ine API yekutarisira.

Zvakare, izvi zvinofanirwa kushanda sei?

  1. Kuisa sonata.
  2. Isu tinogadzira json config uye tinoiburitsa mu sonata.
  3. Ipapo tinogashira chinongedzo chekupa kubva kusonata.
  4. Zvadaro tinoratidza iyi link murunhare.
  5. Chishandiso chiri kurodha config

Pane matanho maviri chete mukushanda kunotevera:

  1. Isu tinogadzira json config uye tinoiburitsa mu sonata
  2. Chishandiso chiri kurodha config

Ndeapi mafoni achasimudzirwa?

Vatengesi Grandstream, Fanvil, Yealink. Izvo zvigadziriso mukati memutengesi zvakanyanya kana zvishoma zvakafanana, asi zvinogona kusiyana zvichienderana neiyo firmware - zvingave zvakakosha kuti uedze zvakare.

Ndeipi mitemo yaungaisa?

Nenguva. Iwe unogona kutsanangura nguva kusvika iyo config ichave iripo.
Ne mac kero. Paunenge uchitumira iyo gadziriso kuburikidza neyemudziyo chinongedzo, iyo mac kero inotariswa zvakare.
By ip. Ne IP kero kubva pakaitirwa chikumbiro.

Nzira yekudyidzana sei naSonata?

Via API, kuita http zvikumbiro. Iyo API ichave iripo mukuiswa kwako. Nokuti Iyo API inotsigira iyo swagger yakatarwa, yaunogona kushandisa online utility kune zvikumbiro zvekuyedza kuAPI.

OK, zvakanaka. Zvinhu zvakanaka, ko kuzozviedza?

Nzira iri nyore ndeyekuisa docker mufananidzo wakavakirwa pane repository sonata-sample. Iyo repository ine mirairo yekuisa.

Ko kana ndikaziva node.js?

Kana uine ruzivo rwekushandisa JavaScript, ipapo iwe uchakurumidza kuona kuti zvese zvinoshanda sei pano.

Pachava nebudiriro yeSonata here?

Ndakaita zvishoma zvinangwa zvangu. Kumwe kusimudzira inyaya yemabasa angu pamusoro peiyo otomatiki yekuseta foni. Panewo mukana wekuwedzera magadzirirwo ekugadzirisa mabhatani efoni, kuwedzera kugovera bhuku rekero, zvichida chimwe chinhu, nyora mumashoko.

Pfupiso uye kubvuma

Ndichafara kuva nemazano anovaka/zvirambidzo/macomments nemibvunzo, nekuti... Zvingangodaro kuti akatsanangura chimwe chinhu chisinganzwisisike.

Ndinotaurawo kutenda kwangu kune vese vandinoshanda navo vakabatsira, vakaraira, vakaedza, uye vakapa / kupa mafoni ebvunzo. Muchokwadi, vanhu vazhinji vandakataura navo kubasa vanobatanidzwa mupurojekiti nenzira dzakasiyana, AsterConf'e, mune chats uye maemail. Ndatenda nemazano nepfungwa.

Source: www.habr.com

Voeg