Sonata - SIP muab server

Kuv tsis paub dab tsi los piv kev npaj nrog. Tej zaum nrog miv? Nws zoo li ua tau yam tsis muaj nws, tab sis nrog nws nws zoo dua me ntsis. Tshwj xeeb yog tias nws ua haujlwm))

Formulation ntawm qhov teeb meem:

  1. Kuv xav teeb tsa SIP xov tooj sai, yooj yim, thiab nyab xeeb. Thaum txhim kho lub xov tooj, thiab ntau dua li thaum rov teeb tsa nws.
  2. Ntau tus neeg muag khoom muaj lawv tus kheej config formats, lawv tus kheej cov khoom siv rau kev tsim configs, thiab lawv tus kheej txoj kev tiv thaiv configs. Thiab kuv yeej tsis xav nrog txhua tus.
  3. Ntau qhov kev daws teeb meem, a) yog tsom rau ib tus neeg muag khoom lossis ib lub xov tooj, b) yog qhov nyuaj heev los siv, ntau cov ntawv sau, tsis muaj, brrr ...

Hais txog lub ntsiab lus 3, kuv yuav hais tias muaj cov kev pabcuam zoo heev rau FreePBX, rau FusionPBX, rau Kazoo, qhov twg templates rau xov tooj los ntawm ntau tus neeg muag khoom yog muaj rau pej xeem. Muaj cov kev daws teeb meem kev lag luam uas koj tuaj yeem teeb tsa kev ua haujlwm ntawm cov xov tooj los ntawm cov tuam txhab sib txawv hauv kev muab module, piv txwv li, Yeastar PBX.

HabrΓ© tseem muaj cov zaub mov txawv ntawm yuav ua li cas teeb tsa cov khoom siv los ntawm ntau tus neeg muag khoom: sij hawm, ob. Tab sis raws li lawv hais, txhua lub tshuab muaj qhov tsis zoo. Yog li peb yuav ua peb tus kheej lub tsheb kauj vab.

koj tus kheej format

Raws li lawv hais hauv xkcd, yog tias koj tsis xav nrog 14 hom ntawv - tuaj nrog 15th. Yog li ntawd, peb siv qhov chaw dav dav rau txhua lub xov tooj thiab ua peb tus kheej json config hom.

Ib yam li no:

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

Yog li, hauv txhua lub xov tooj koj yuav tsum teeb tsa lub sijhawm hauv zos thiab SIP kab. Txhua yam yooj yim ntawm no. Koj tuaj yeem pom ntau yam piv txwv no.

koj tus kheej server muab

Nyob rau hauv cov chaw tsim tshuaj paus phau ntawv muaj feem ntau yog ib tug taw tes uas nws hais tias: coj ib tug csv, sau koj tus ID nkag mus-password-mac-chaw nyob, tsim cov ntaub ntawv siv peb cov ntawv proprietary, muab tso rau hauv lub Apache web server thiab txhua yam yuav zoo.

Cov kab lus tom ntej ntawm phau ntawv qhia feem ntau qhia koj tias koj tuaj yeem encrypt cov ntaub ntawv config generated.

Tab sis cov no yog tag nrho cov classics. Txoj hauv kev niaj hnub no nrog smoothies thiab Twitter hais tias koj yuav tsum ua kom npaj lub vev xaib server uas yuav tsis muaj zog li Apache, tab sis tsuas yog ua ib qho me me xwb. Tsim thiab xa configs siv qhov txuas.

Cia peb nres ntawm no thiab nco ntsoov tias yuav luag txhua lub xov tooj SIP tam sim no tuaj yeem tau txais kev teeb tsa ntawm http / https, yog li peb tsis xav txog lwm yam kev siv (ftp, tftp, ftps). Tom qab ntawd, txhua lub xov tooj paub nws tus kheej MAC chaw nyob. Yog li ntawd, peb yuav ua ob qhov txuas: ib tus kheej - raws li tus yuam sij ntaus ntawv, qhov thib ob dav dav, uas ua haujlwm siv kev sib txuas ntawm ib qho token thiab MAC chaw nyob.

Tsis tas li ntawd, kuv yuav tsis nyob ntawm xoom-config, i.e. teeb tsa lub xov tooj ntawm kos, i.e. koj ntsaws nws rau hauv lub network thiab nws pib ua haujlwm. Tsis yog, hauv kuv qhov xwm txheej, koj ntsaws nws rau hauv lub network, ua qhov kev teeb tsa ua ntej (teeb nws kom tau txais kev teeb tsa los ntawm kev muab server), thiab tom qab ntawd haus pina colada thiab rov teeb tsa lub xov tooj raws li xav tau los ntawm kev muab. Distributing Option 66 yog lub luag haujlwm ntawm DHCP server.

Los ntawm txoj kev, Kuv nkees tag nrho ntawm kev hais tias "kev npaj", yog li lo lus tau luv luv rau "muab", thov tsis txhob ncaws kuv.

Thiab ib qho ntxiv: peb qhov chaw muab kev pabcuam tsis muaj UI, piv txwv li. neeg siv interface. Tej zaum, rau tam sim no, tab sis tsis paub meej, vim ... Kuv tsis xav tau. Tab sis muaj API rau txuag / rho tawm cov chaw, tau txais cov npe ntawm cov neeg muag khoom txhawb nqa, qauv, txhua yam tau piav qhia raws li cov canons ntawm swagger specification.

Vim li cas API thiab tsis yog UI? Vim Kuv twb muaj kuv tus kheej xov tooj, ces kuv muaj ib qhov chaw ntawm cov ntaub ntawv pov thawj, qhov twg kuv tsuas yog yuav tsum tau coj cov ntaub ntawv no, compile lub tsim nyog json thiab luam tawm nyob rau hauv lub provisioning server. Thiab cov neeg rau zaub mov muab, raws li cov cai teev tseg hauv json cov ntaub ntawv, yuav muab cov cuab yeej xav tau nws qhov teeb tsa lossis yuav tsis muab yog tias lub cuab yeej tsis raug lossis tsis ua raws li cov txheej txheem kuj tau teev tseg hauv json no.

Sonata - SIP muab server

Qhov no yog li cas qhov kev pabcuam microservice tau tshwm sim. Hu Sonata, qhov chaws code muaj nyob rau ntawm GitHub, kuj muaj npaj docker duab, docker siv piv txwv no.

Cov yam ntxwv tseem ceeb:

  • nyob rau hauv txhua rooj plaub, txwv kev nkag mus rau config los ntawm lub sijhawm, los ntawm lub neej ntawd 10 feeb. Yog tias koj xav ua kom lub config muaj dua, rov luam tawm qhov teeb tsa dua.

  • ib hom ntawv rau txhua tus neeg muag khoom, txhua qhov kev hloov kho raug tshem tawm hauv sonata, koj xa cov qauv json, teeb tsa cov khoom siv muaj.

  • tag nrho cov configs muab rau cov khoom siv tau nkag, txhua qhov teeb meem tuaj yeem pom hauv lub cav thiab pom qhov yuam kev

  • Nws muaj peev xwm siv ib qho kev sib txuas nrog lub token; txhua lub xov tooj tau txais nws tus kheej config los ntawm kev qhia qhov chaw nyob mac. Los yog tus kheej txuas ntawm tus yuam sij.

  • APIs rau kev tswj hwm (kev tswj hwm) thiab kev muab cov kev teeb tsa rau cov xov tooj (kev npaj) muab faib los ntawm cov chaw nres nkoj

  • Kev sim. Nws yog ib qho tseem ceeb heev rau kuv los kho cov hom ntawv config thiab npog tag nrho cov xwm txheej li niaj zaus ntawm kev tawm config nrog cov kev xeem. Yog li ntawd qhov no txhua yam ua haujlwm kom meej.

Txais:

Txog tam sim no, encryption tsis siv nyob rau hauv txhua txoj kev hauv Sonata. Cov. koj tuaj yeem pib siv https los ntawm kev tso nginx rau pem hauv ntej ntawm sonata piv txwv. Tab sis cov tswv yim tseem tsis tau siv. Vim li cas? Qhov project tseem hluas, nws tau pib nws thawj puas khoom siv. Thiab, ntawm chav kawm, kuv sau cov tswv yim thiab tawm tswv yim. Tsis tas li ntawd, txhawm rau ua kom txhua yam muaj kev nyab xeeb, yog li ntawd cov kev teeb tsa tsis tuaj yeem hnov ​​​​qab hauv lub network, nws yog qhov tsim nyog cuam tshuam nrog cov yuam sij encryption, tls thiab hedgehog nrog lawv, tab sis qhov no yuav txuas ntxiv mus.

Tsis muaj UI. Tej zaum qhov no yog qhov tsis zoo rau cov neeg siv kawg, tab sis rau tus thawj tswj hwm, lub tshuab hluav taws xob console tseem ceeb dua li daim ntawv thov puv. Muaj cov phiaj xwm los tsim cov khoom siv hluav taws xob, tab sis kuv tsis paub meej tias nws xav tau?

Qhov tshwm sim yog dab tsi?

Lub vev xaib me me thiab yooj yim rau kev muab ntau lub xov tooj qauv nrog API rau kev tswj hwm.

Ib zaug ntxiv, qhov no yuav tsum ua haujlwm li cas?

  1. Txhim kho sonata.
  2. Peb tsim ib tug json config thiab luam tawm nws nyob rau hauv sonata.
  3. Tom qab ntawd peb tau txais qhov txuas txuas los ntawm sonata.
  4. Tom qab ntawd peb qhia qhov txuas no hauv xov tooj.
  5. Lub cuab yeej yog loading lub config

Tsuas muaj ob kauj ruam hauv kev ua haujlwm tom ntej:

  1. Peb tsim ib tug json config thiab luam tawm nws nyob rau hauv sonata
  2. Lub cuab yeej yog loading lub config

Cov xov tooj twg yuav raug txhawb nqa?

Cov neeg muag khoom Grandstream, Fanvil, Yealink. Cov configs nyob rau hauv tus neeg muag khoom yog ntau dua los yog tsawg tib yam, tab sis tej zaum yuav txawv nyob ntawm seb lub firmware - nws yuav tsum tau mus kuaj ntxiv.

Koj tuaj yeem tsim cov cai li cas?

Los ntawm lub sijhawm. Koj tuaj yeem qhia lub sijhawm kom txog thaum lub teeb tsa yuav muaj.
Los ntawm mac address. Thaum xa cov config ntawm lub cuab yeej txuas tus kheej, qhov chaw nyob mac kuj tseem raug kuaj xyuas.
Los ntawm ip. Los ntawm IP chaw nyob los ntawm qhov chaw thov.

Yuav koom nrog Sonata li cas?

Ntawm API, ua http thov. API yuav muaj nyob rau hauv koj lub installation. Vim API txhawb nqa qhov tshwj xeeb swagger, koj tuaj yeem siv kev siv online rau kev xeem thov rau API.

OK, zoo heev. Cov khoom txias, yuav ua li cas sim nws?

Txoj kev yooj yim tshaj plaws yog xa cov duab docker raws li qhov chaw cia khoom sonata-cov qauv. Lub repository muaj cov lus qhia installation.

Yuav ua li cas yog kuv paub node.js?

Yog tias koj muaj kev paub siv JavaScript, ces koj yuav pom sai sai seb txhua yam ua haujlwm ntawm no.

Puas yuav muaj kev txhim kho Sonata?

Kuv ib nrab ua tiav kuv lub hom phiaj. Kev txhim kho ntxiv yog qhov teeb meem ntawm kuv txoj haujlwm ntawm lub ntsiab lus ntawm kev teeb tsa lub xov tooj automation. Kuj tseem muaj lub sijhawm los nthuav cov configs los teeb tsa lub xov tooj khawm, ntxiv qhov chaw nyob hauv phau ntawv, tej zaum lwm yam, sau rau hauv cov lus.

Cov ntsiab lus thiab kev lees paub

Kuv yuav zoo siab uas muaj tswv yim / tawm tsam / tawm tswv yim thiab cov lus nug, vim ... Tej zaum nws yuav zoo yog tias nws piav ib yam dab tsi incomprehensibly.

Kuv kuj qhia kuv ua tsaug rau txhua tus npoj yaig uas tau pab, qhia, sim, thiab muab / pub xov tooj rau kev xeem. Qhov tseeb tiag, ntau tus neeg uas kuv tau tham hauv kev ua haujlwm tau koom nrog hauv qhov project kom sib txawv, AsterConf'e, hauv kev sib tham thiab emails. Ua tsaug rau cov tswv yim thiab kev xav.

Tau qhov twg los: www.hab.com

Ntxiv ib saib