Sonata - ihe nkesa na-enye SIP

Amaghị m ihe m ga-atụnyere ndokwa. Ma eleghị anya, ya na pusi? O yiri ka ọ ga-ekwe omume na-enweghị ya, mana ya na ọ ka mma karịa. Karịsịa ma ọ bụrụ na ọ na-arụ ọrụ))

Nhazi nke nsogbu:

  1. Achọrọ m ịtọlite ​​ekwentị SIP ngwa ngwa, dị mfe na n'enweghị nsogbu. Mgbe ị na-etinye ekwentị, na ọbụna karịa mgbe ị na-ahazi ya.
  2. Ọtụtụ ndị na-ere ahịa nwere usoro nhazi nke ha, akụrụngwa nke ha maka imepụta nhazi, yana ụzọ nke ha si echebe nhazi. Achọghịkwa m ka m na-emeso onye ọ bụla.
  3. Ọtụtụ ihe ngwọta na-enye, a) na-elekwasị anya na otu onye na-ere ahịa ma ọ bụ otu usoro ekwentị, b) dị nnọọ mfe iji mejuputa, ọtụtụ scripts, parameters, brrr ...

N'ihe gbasara isi 3, m ga-ekwu na e nwere usoro inye ihe dị mma maka FreePBX, maka FusionPBX, maka Kazoo, ebe ndebiri ekwentị sitere na ndị na-ere ahịa dị iche iche dị n'ihu ọha. Enwere ngwọta azụmahịa ebe ị nwekwara ike hazie ọrụ ekwentị sitere na ndị nrụpụta dị iche iche na modul inye, dịka ọmụmaatụ, Yeastar PBX.

Habré juputara na ntụzịaka maka otu esi edobe ngwaọrụ sitere na ndị na-ere ahịa dị iche iche: ugboro, два. Mana dị ka ha na-ekwu, sistemụ niile nwere ntụpọ na-egbu egbu. Yabụ na anyị ga-eme igwe kwụ otu ebe.

usoro nke gị

Dị ka ha na-ekwu na xkcd, ọ bụrụ na ịchọghị ịmekọrịta usoro 14 - bia na 15th. Ya mere, anyị na-eji ntọala izugbe maka ekwentị ọ bụla ma mee usoro nhazi json nke anyị.

Ihe dị ka nke a:

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

Yabụ, na ekwentị ọ bụla ịkwesịrị ịhazi oge mpaghara na ahịrị SIP. Ihe niile dị mfe ebe a. Ị nwere ike ịhụ ihe atụ ndị ọzọ ebe a.

ihe nkesa nke gị

N'ime akwụkwọ ntuziaka onye nrụpụta, a na-enwekarị ebe ọ na-ekwu: were csv, detuo adreesị nbanye gị-paswọọdụ-mac, mepụta faịlụ site na iji edemede nke anyị, tinye ha n'okpuru sava weebụ Apache na ihe niile ga-adị mma.

Paragraf na-esote nke akwụkwọ ntuziaka na-agwakarị gị na ị nwekwara ike izochi faịlụ nhazi emepụtara.

Ma ndị a niile bụ oge ochie. Usoro ọgbara ọhụrụ na smoothies na Twitter na-ekwu na ịkwesịrị ịme sava weebụ dị njikere nke na-agaghị adị ike dị ka Apache, mana ọ ga-eme naanị otu obere ihe. Mepụta na zipu nhazi site na iji njikọ.

Ka anyị kwụsị ebe a ma cheta na ihe fọrọ nke nta ka ọ bụrụ ekwentị SIP niile nwere ike ịnweta nhazi site na http/https, yabụ anyị anaghị atụle mmejuputa iwu ndị ọzọ (ftp, tftp, ftps). Mgbe ahụ, ekwentị ọ bụla maara adreesị MAC nke ya. Ya mere, anyị ga-eme ka njikọ abụọ: otu onye - dabere na ngwaọrụ igodo, nke abụọ n'ozuzu, nke na-arụ ọrụ na-eji a Nchikota a nkịtị token na a MAC adreesị.

Ọzọkwa, agaghị m ebi na zero-config, i.e. ịtọlite ​​ekwentị site na mmalite, ya bụ. ị tinye ya na netwọk wee malite ịrụ ọrụ. Mba, n'ọnọdụ m, ị na-agbanye ya na netwọkụ ahụ, mee nhazi nke mbụ (dobe ya ka ọ nweta nhazi site na ihe nkesa na-enye), wee ṅụọ pina colada ma megharịa ekwentị dị ka ọ dị mkpa site na ndokwa. Nkesa Nhọrọ 66 bụ ọrụ nke sava DHCP.

Site n'ụzọ, ike gwụrụ m nke ukwuu n'ịsị "nkwado", ya mere e debere okwu ahụ ka ọ bụrụ "nkwado", biko egbula m.

Na otu ihe ọzọ: ihe nkesa na-enye anyị enweghị UI, ya bụ. interface onye ọrụ. Ikekwe, maka ugbu a, mana ejighị n'aka, n'ihi na ... Achọghị m ya. Ma enwere API maka ịchekwa / ihichapụ ntọala, nweta ndepụta nke ndị na-ere ahịa na-akwado, ụdị, a na-akọwa ihe niile dịka canons nke nkọwa swagger si dị.

Gịnị kpatara API na ọ bụghị UI? N'ihi na Enweela m usoro ekwentị nke m, mgbe ahụ enwere m isi iyi nke nzere, ebe m kwesịrị iwere data a, chịkọta json dị mkpa wee bipụta ya na ihe nkesa na-enye. Na ihe nkesa na-enye, dịka iwu akọwapụtara na faịlụ json, ga-enye ngwaọrụ achọrọ nhazi ya ma ọ bụ ọ gaghị enye ya ma ọ bụrụ na ngwaọrụ ahụ ezighi ezi ma ọ bụ na-emezughị usoro akọwapụtara na json a.

Sonata - ihe nkesa na-enye SIP

Nke a bụ ka microservice na-enye ọrụ siri pụta. Akpọrọ sonata, koodu iyi dị na GitHub, e nwekwara oyiyi docker dị njikere, ihe atụ ojiji docker ebe a.

Atụmatụ ndị bụ isi:

  • n'ọnọdụ ọ bụla, ohere nwere oke na nhazi site na oge, na ndabara nkeji iri. Ọ bụrụ na ịchọrọ ime ka nhazi ahụ dị ọzọ, bipụtaghachi nhazi ahụ ọzọ.

  • otu usoro maka ndị na-ere ahịa niile, a na-ewepụ mgbanwe niile na sonata, ị na-eziga json ahaziri ahazi, hazie akụrụngwa ọ bụla dị.

  • A na-edebanye aha nhazi niile enyere na ngwaọrụ, enwere ike ịlele mpaghara nsogbu niile na ndekọ na enwere ike ịhụ njehie

  • Ọ ga-ekwe omume iji otu njikọ nke nwere akara; ekwentị ọ bụla na-enweta nhazi nke ya site na ịkọwa adreesị mac. Ma ọ bụ njikọ nkeonwe site na igodo.

  • Eji ọdụ ụgbọ mmiri kewara API maka njikwa (njikwa) yana inye nhazi na ekwentị (inye)

  • Nnwale. Ọ dị ezigbo mkpa ka m dozie usoro nhazi nke enyere ma kpuchie ọnọdụ niile nke ịnye nhazi na ule. Ka ihe niile na-arụ ọrụ nke ọma.

Cons:

Ka ọ dị ugbu a, anaghị eji ezoro ezo n'ụzọ ọ bụla n'ime Sonata. Ndị ahụ. Ị nwere ike ịmalite iji https site na itinye nginx n'ihu sonata dịka ọmụmaatụ. Mana ejibeghị ụzọ ndị nwe ya. Gịnị kpatara? Ihe oru ngo a ka na-eto eto, o ewepụtala ngwaọrụ narị mbụ ya. Na, n'ezie, m na-anakọta echiche na nzaghachi. Ọzọkwa, iji mee ka ihe niile dị nchebe, nke mere na enweghị ike ịmegharị ihe nhazi ahụ na netwọk ahụ, ọ ga-abụ na ọ bara uru na-enye nsogbu na igodo nzuzo, tls na hedgehog na ha, ma nke a ga-abụ ihe na-aga n'ihu.

Enweghị UI. Ikekwe nke a bụ nnukwu mwepu maka onye ọrụ njedebe, mana maka onye na-ahụ maka sistemụ, akụrụngwa njikwa dị mkpa karịa ngwa zuru oke. Enwere atụmatụ ịme ihe njikwa njikwa, mana ejighi m n'aka ma ọ dị mkpa?

Nso ke utịt?

Sava webụ dị obere ma dị mfe maka ịnye ọtụtụ ụdị ekwentị nwere API maka njikwa.

Ọzọkwa, olee otú nke a kwesịrị isi na-arụ ọrụ?

  1. Ịwụnye sonata.
  2. Anyị na-emepụta json config wee bipụta ya na sonata.
  3. Mgbe ahụ, anyị na-enweta njikọ nkwado site na sonata.
  4. Mgbe ahụ, anyị na-egosi njikọ a na ekwentị.
  5. Ngwaọrụ na-ebunye nhazi ahụ

Enwere naanị nzọụkwụ abụọ n'ọrụ na-esote:

  1. Anyị na-emepụta json config wee bipụta ya na sonata
  2. Ngwaọrụ na-ebunye nhazi ahụ

Kedu ekwentị a ga-akwalite?

Ndị na-ere ahịa Grandstream, Fanvil, Yealink. Nhazi dị n'ime onye na-ere ahịa bụ otu ma ọ bụ na-erughị otu, mana nwere ike ịdị iche dabere na firmware - ọ nwere ike ịdị mkpa ịnwale ọzọ.

Kedu iwu ị nwere ike ịtọ?

Site na oge. Ị nwere ike ịkọwa oge ruo mgbe nhazi ahụ ga-adị.
Site na adreesị Mac. Mgbe ị na-enye nhazi ahụ site na njikọ nke ngwaọrụ ahụ, a ga-enyocha adreesị mac.
Site na ip. Site na adreesị IP site na ebe a rịọrọ arịrịọ ahụ.

Kedu otu esi emekọrịta sonata?

Site na API, na-arịọ arịrịọ http. API ga-adị na ntinye gị. N'ihi na API na-akwado nkọwapụta swagger, ị nwere ike iji ọrụ ịntanetị maka arịrịọ ule API.

OK, ọmarịcha. Ihe dị mma, kedu maka ịnwale ya?

Ụzọ kachasị mfe bụ ibunye onyonyo docker dabere na ebe nchekwa sonata-sample. Ebe nchekwa ahụ nwere ntuziaka nwụnye.

Gịnị ma ọ bụrụ na m maara node.js?

Ọ bụrụ na ị nwere ahụmịhe iji Javascript, mgbe ahụ ị ga-achọpụta ngwa ngwa ka ihe niile si arụ ọrụ ebe a.

A ga-enwe mmepe Sonata?

Emezuru m ebumnobi m n'otu akụkụ. Mmepe ọzọ bụ okwu nke ọrụ m na isiokwu nhazi ekwentị akpaaka. Enwekwara ohere iji gbasaa configs iji hazie bọtịnụ ekwentị, tinye akwụkwọ ntinye akwụkwọ adreesị, ikekwe ihe ọzọ, dee na nkwupụta.

Nchịkọta na nkwenye

Ọ ga-atọ m ụtọ ịnweta aro na-ewuli elu / mkpesa / okwu na ajụjụ, n'ihi na ... O nwere ike ịbụ na o kọwara ihe n’ụzọ a na-apụghị ịghọta aghọta.

A na m ekwupụtakwa ekele m nye ndị ọrụ ibe m ndị nyere aka, dụọ ọdụ, nwalee, ma nyekwa/nye ekwentị maka ule. N'ezie, ọtụtụ ndị mụ na ha kparịtara ụka na-arụ ọrụ na-etinye aka na ọrụ ahụ ruo ogo dị iche iche, AsterConfe, na nkata na ozi-e. Daalụ maka echiche na echiche.

isi: www.habr.com

Tinye a comment