Sonata - SIP yopereka seva

Sindikudziwa kuti ndingafananize zoperekera ndi chiyani. Mwina ndi mphaka? Zikuwoneka zotheka popanda izo, koma nazo ziri bwinoko pang'ono. Makamaka ngati ikugwira ntchito))

Kupanga vuto:

  1. Ndikufuna kukhazikitsa mafoni a SIP mwachangu, mosavuta, komanso mosamala. Pamene khazikitsa foni, ndipo makamaka pamene reconfiguring izo.
  2. Ogulitsa ambiri ali ndi mawonekedwe awoawo, zida zawo zopangira masinthidwe, ndi njira zawo zotetezera ma config. Ndipo sindikufuna kuchita ndi aliyense.
  3. Mayankho ambiri operekera, a) amayang'ana pa wogulitsa m'modzi kapena foni imodzi, b) ndizovuta kukhazikitsa, zolemba zambiri, magawo, brrr...

Ponena za mfundo 3, ndipereka ndemanga kuti pali machitidwe abwino kwambiri operekera kwa FreePBX, kwa FusionPBX, za Kazoo, kumene ma templates a mafoni ochokera kwa ogulitsa osiyanasiyana amapezeka poyera. Pali njira zamalonda zomwe mungathenso kukonza machitidwe a mafoni kuchokera kwa opanga osiyanasiyana mu gawo loperekera, mwachitsanzo, Yeastar PBX.

HabrΓ© ilinso ndi maphikidwe amomwe mungakhazikitsire zida kuchokera kwa ogulitsa osiyanasiyana: nthawi, Π΄Π²Π°. Koma monga akunena, machitidwe onse ali ndi vuto lalikulu. Ndiye tipanga njinga yathu.

mtundu wanu

Monga akunenera mu xkcd, ngati simukufuna kuthana ndi mawonekedwe 14 - bwera ndi 15. Chifukwa chake, timagwiritsa ntchito makonda wamba pafoni iliyonse ndikupanga json config mtundu wathu.

Chinachake chonga ichi:

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

Chifukwa chake, mufoni iliyonse muyenera kukonza nthawi yakumaloko ndi mizere ya SIP. Zonse ndi zophweka apa. Mutha kuwona zitsanzo zambiri apa.

kupereka kwanu kwa seva

M'mabuku opangira opanga nthawi zambiri pamakhala pomwe akuti: tengani csv, lembani adilesi yanu-achinsinsi-mac-adilesi, pangani mafayilo pogwiritsa ntchito zolemba zathu, ikani pansi pa seva ya Apache ndipo zonse zikhala bwino.

Ndime yotsatira ya bukhuli nthawi zambiri imakuuzani kuti mutha kubisanso fayilo yopangidwa.

Koma zonsezi ndi zapamwamba. Njira yamakono ndi smoothies ndi Twitter imanena kuti muyenera kupanga makina okonzeka okonzeka omwe sadzakhala amphamvu monga Apache, koma adzachita chinthu chimodzi chaching'ono. Pangani ndi kutumiza zosintha pogwiritsa ntchito ulalo.

Tiyeni tiyime apa ndikukumbukira kuti pafupifupi mafoni onse a SIP tsopano atha kulandira ma configs kudzera pa http/https, kotero sitikuganiziranso zokhazikitsa zina (ftp, tftp, ftps). Kenako, foni iliyonse imadziwa adilesi yake ya MAC. Choncho, tidzapanga maulalo awiri: munthu mmodzi - kutengera fungulo la chipangizo, lachiwiri, lomwe limagwira ntchito pogwiritsa ntchito chizindikiro wamba ndi adilesi ya MAC.

Komanso, sindikhala pa zero-config, i.e. kukhazikitsa foni kuyambira pachiyambi, i.e. munachilowetsa mu netiweki ndipo chinayamba kugwira ntchito. Ayi, muzochitika zanga, mumayiyika mu netiweki, pangani kukhazikitsidwa koyambirira (kukhazikitsani kuti mulandire kasinthidwe kuchokera pa seva yopereka), ndiyeno imwani pina colada ndikukonzanso foni momwe ikufunikira kudzera muzoperekazo. Kugawa Njira 66 ndi udindo wa seva ya DHCP.

Mwa njira, ndatopa kwambiri kunena kuti "zopereka", kotero mawuwo adafupikitsidwa kuti "kupereka", chonde musandigwetse.

Ndipo chinthu chinanso: seva yathu yoperekera ilibe UI, i.e. mawonekedwe ogwiritsa ntchito. Mwina, pakadali pano, koma osatsimikiza, chifukwa ... sindikuzifuna. Koma pali API yosungira / kuchotsa zoikamo, kupeza mndandanda wa ogulitsa othandizidwa, zitsanzo, chirichonse chikufotokozedwa molingana ndi ma canons a swagger specifications.

Chifukwa chiyani API osati UI? Chifukwa Ndili ndi kale telefoni yanga, ndiye ndili ndi gwero la zidziwitso, kumene ndikungofunika kutenga deta iyi, kusonkhanitsa json yofunikira ndikuyisindikiza pa seva yopereka. Ndipo seva yopereka, molingana ndi malamulo omwe afotokozedwa mu fayilo ya json, idzapatsa chipangizo chofunikila kuti chikhale chokonzekera kapena sichidzapereka ngati chipangizocho sichili cholondola kapena sichikugwirizana ndi zomwe zafotokozedwa mu json iyi.

Sonata - SIP yopereka seva

Umu ndi momwe kupereka kwa microservice kudakhalira. Wayitanitsidwa sonata, code source ikupezeka pa GitHub, palinso chithunzi cha docker chokonzeka, chitsanzo chogwiritsira ntchito docker apa.

Zofunikira zazikulu:

  • Mulimonsemo, mwayi wocheperako pakusintha ndi nthawi, mokhazikika mphindi 10. Ngati mukufuna kupanga config kukhalaponso, sindikizanso kasinthidwe kachiwiri.

  • mtundu umodzi wa ogulitsa onse, zosintha zonse zimachotsedwa mu sonata, mumatumiza json yokhazikika, sinthani zida zilizonse zomwe zilipo.

  • ma configs onse omwe amaperekedwa kuzida amalowetsedwa, madera onse ovuta amatha kuwonedwa mu chipika ndipo zolakwika zitha kuwoneka

  • Ndi zotheka kugwiritsa ntchito ulalo umodzi wamba ndi chizindikiro; foni iliyonse imalandira kasinthidwe kake pofotokoza adilesi ya Mac. Kapena ulalo wamunthu kudzera pa kiyi.

  • Ma API a kasamalidwe (kasamalidwe) ndikupereka ma configs ku mafoni (kupereka) amagawidwa ndi madoko

  • Mayesero. Zinali zofunika kwambiri kwa ine kukonza mawonekedwe a kasinthidwe operekedwa ndikuphimba zochitika zonse zanthawi zonse popereka config ndi mayeso. Kotero kuti zonsezi zimagwira ntchito momveka bwino.

Wotsatsa:

Pakadali pano, kubisa sikugwiritsidwe ntchito mwanjira iliyonse mkati mwa Sonata. Iwo. mutha kuyamba kugwiritsa ntchito https poyika nginx kutsogolo kwa sonata mwachitsanzo. Koma njira za eni ake sizinagwiritsidwebe ntchito. Chifukwa chiyani? Ntchitoyi ikadali yachichepere, idayambitsa zida zake zana zoyambilira. Ndipo, ndithudi, ndimasonkhanitsa malingaliro ndi ndemanga. Kupitilira apo, kuti zonse zikhale zotetezeka, kuti ma configs asamafunkhidwe pamaneti, ndikofunikira kuvutitsa makiyi achinsinsi, tls ndi hedgehog nawo, koma izi zikhala kupitiliza.

Kusowa UI. Mwina izi ndizovuta kwambiri kwa wogwiritsa ntchito, koma kwa woyang'anira dongosolo, chida chothandizira ndichofunika kwambiri kuposa kugwiritsa ntchito kwathunthu. Panali mapulani opangira chida chothandizira, koma sindikutsimikiza ngati pakufunika?

Cholinga chake ndi chiyani?

Seva yaying'ono komanso yosavuta yapaintaneti yopereka mitundu ingapo ya mafoni okhala ndi API yowongolera.

Apanso, kodi izi ziyenera kugwira ntchito bwanji?

  1. Kuyika sonata.
  2. Timapanga json config ndikuyisindikiza mu sonata.
  3. Kenako timalandila ulalo woperekedwa kuchokera ku sonata.
  4. Kenako tikuwonetsa ulalowu mufoni.
  5. Chipangizochi chikutsegula config

Pali njira ziwiri zokha zogwirira ntchito:

  1. Timapanga json config ndikuyisindikiza mu sonata
  2. Chipangizochi chikutsegula config

Ndi mafoni ati omwe adzakwezedwa?

Ogulitsa Grandstream, Fanvil, Yealink. Zosintha mkati mwa ogulitsa ndizofanana kapena zochepa, koma zimatha kusiyana kutengera firmware - zitha kukhala zofunikira kuyesanso.

Kodi mungakhazikitse malamulo otani?

Pofika nthawi. Mutha kufotokoza nthawi yomwe config idzakhalapo.
Pa mac adilesi. Mukatumiza kasinthidwe kudzera pa ulalo wamunthu wa chipangizocho, adilesi ya Mac idzayang'aniridwanso.
Pa ip. Ndi adilesi ya IP komwe pempholo linapangidwa.

Kodi mungagwirizane bwanji ndi sonata?

Kudzera pa API, kupanga zopempha za http. API ipezeka pakuyika kwanu. Chifukwa API imathandizira mawonekedwe a swagger, omwe mungagwiritse ntchito zothandiza pa intaneti zopempha zoyesa ku API.

Chabwino, chabwino. Zinthu zabwino, bwanji kuyesa?

Njira yosavuta ndikuyika chithunzi cha docker potengera posungira sonata - chitsanzo. Malowa ali ndi malangizo oyika.

Bwanji ngati ndidziwa node.js?

Ngati muli ndi chidziwitso chogwiritsa ntchito JavaScript, ndiye kuti mudzazindikira mwachangu momwe zonse zimagwirira ntchito pano.

Kodi padzakhala chitukuko cha Sonata?

Ndinakwaniritsa zolinga zanga pang'ono. Kukula kwina ndi nkhani ya ntchito zanga pamutu wakukhazikitsa mafoni. Palinso mwayi wowonjezera ma configs kuti mukhazikitse mabatani a foni, kuwonjezera makonzedwe a bukhu la adiresi, mwinamwake chinachake, lembani mu ndemanga.

Chidule ndi kuyamikira

Ndikhala wokondwa kukhala ndi malingaliro olimbikitsa / zotsutsa / ndemanga ndi mafunso, chifukwa ... N’kutheka kuti iye anafotokoza zinthu zosamvetsetseka.

Ndikuthokozanso anzanga onse omwe adandithandiza, kulangiza, kuyesa, ndi kupereka / kupereka mafoni kuti ayesedwe. Kunena zoona, anthu ambiri amene ndinalankhula nawo kuntchito amachita nawo ntchitoyi mosiyanasiyana. AsterConf'e, mumacheza ndi maimelo. Zikomo chifukwa chamalingaliro ndi malingaliro.

Source: www.habr.com

Kuwonjezera ndemanga