Sonata β€” SIP provisioning server

НС знаю с Ρ‡Π΅ΠΌ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ provisioning. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ с ΠΊΠΎΡ‚ΠΎΠΌ? Π’Ρ€ΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ, Π½ΠΎ с Π½ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅. ОсобСнно, Ссли ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ))

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  1. Π₯ΠΎΡ‡Ρƒ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ SIP-Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ быстро, просто, бСзопасно. ΠŸΡ€ΠΈ установкС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ ΡƒΠΆ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.
  2. МногиС Π²Π΅Π½Π΄ΠΎΡ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ свои Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ², свои ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ², свои способы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ². А Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ хочСтся.
  3. МногиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ provisioning, Π°) ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π΅Π½Π΄ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΎΠ΄Π½Ρƒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΡƒΡŽ систСму, Π±) достаточно Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ, ΠΊΡƒΡ‡Π° скриптов, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π±Ρ€-Ρ€…

По ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 3 сдСлаю ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π° для FreePBX, для FusionPBX, для Kazoo, Π³Π΄Π΅ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС Π΅ΡΡ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ². Π•ΡΡ‚ΡŒ коммСрчСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π³Π΄Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, АВБ Yeastar.

На Π₯Π°Π±Ρ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠ² ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ²: Ρ€Π°Π·, Π΄Π²Π°. Но ΠΊΠ°ΠΊ говорится, Ρƒ всСх систСм Π΅ΡΡ‚ΡŒ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ нСдостаток. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сдСлаСм свой вСлосипСд.

свой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚

Как говорится Π² xkcd, Π½Π΅ Ρ…ΠΎΡ‡Π΅ΡˆΡŒ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ с 14 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ β€” ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°ΠΉ 15-ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠ±Ρ‰ΠΈΠ΅ настройки для любого Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ сдСлаСм свой json-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ:

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

Π’Π°ΠΊ Π²ΠΎΡ‚, Π² любом Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…Π΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ локальноС врСмя, sip-Π»ΠΈΠ½ΠΈΠΈ. Π’ΡƒΡ‚ всС просто. Π•Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь.

cΠ²ΠΎΠΉ сСрвСр ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π°

Π’ ΠΌΠ°Π½ΡƒΠ°Π»Π°Ρ… производитСля ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚, Π³Π΄Π΅ говорится: Π²ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅ csv, Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ‚Π°ΠΌ Π»ΠΎΠ³ΠΈΠ½-ΠΏΠ°Ρ€ΠΎΠ»ΡŒ-ΠΌΠ°ΠΊ-адрСс, нашим Ρ„ΠΈΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΌ скриптом сгСнСритС Ρ„Π°ΠΉΠ»ΠΈΠΊΠΈ, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ ΠΈΡ… ΠΏΠΎΠ΄ вСбсСрвСр Apache ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅ ΠΌΠ°Π½ΡƒΠ°Π»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рассказываСтся, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ сгСнСрированный Ρ„Π°ΠΉΠ»ΠΈΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°.

Но это всС классика. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ со смузи ΠΈ Ρ‚Π²ΠΈΡ‚Ρ‚Π΅Ρ€ΠΎΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ вСбсСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΊΠ°ΠΊ Apache, Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ малСнькоС Π΄Π΅Π»ΠΎ. Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ ΠΏΠΎ ссылкС.

Π’ΡƒΡ‚ остановимся ΠΈ вспомним, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ всС SIP-Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ сСйчас ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ ΠΏΠΎ http/https, поэтому ΠΈΠ½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ (ftp, tftp, ftps) ΠΌΡ‹ Π½Π΅ рассматриваСм. Π—Π°Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π·Π½Π°Π΅Ρ‚ свой ΠΌΠ°ΠΊ-адрСс. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ сдСлаСм Π΄Π²Π΅ ссылки: ΠΎΠ΄Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ β€” ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ устройства, вторая общая, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ связкС ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚ΠΎΠΊΠ΅Π½ ΠΈ ΠΌΠ°ΠΊ-адрСс.

Π’Π°ΠΊΠΆΠ΅ я Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° zero-config’Π΅, Ρ‚.Π΅. настройкС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° «Ρ нуля», Ρ‚.Π΅. Π²Ρ‹ Π²ΠΎΡ‚ΠΊΠ½ΡƒΠ»ΠΈ Π΅Π³ΠΎ Π² ΡΠ΅Ρ‚ΡŒ ΠΈ ΠΎΠ½ Ρ…ΠΎΠΏ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π». НСт, Π² ΠΌΠΎΠ΅ΠΌ сцСнарии, Π²Ρ‹ Π²ΠΎΡ‚ΠΊΠ½ΡƒΠ»ΠΈ Π² ΡΠ΅Ρ‚ΡŒ, сдСлали ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ настройку (настроили Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ ΠΎΡ‚ сСрвСра ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π°), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡŒΠ΅Ρ‚Π΅ ΠΏΠΈΠ½ΠΎΠΊΠΎΠ»Π°Π΄Ρƒ ΠΈ пСрСнастраиваСтС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½. Π Π°Π·Π΄Π°Π²Π°Ρ‚ΡŒ Option 66 β€” это Π·Π°Π±ΠΎΡ‚Π° DHCP-сСрвСра.

ΠšΡΡ‚Π°Ρ‚ΠΈ, совсСм замучился Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ «provisioning», поэтому слово ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ Π΄ΠΎ «ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½», Π½Π΅ ΠΏΠΈΠ½Π°ΠΉΡ‚Π΅, поТалуйста, Π½ΠΎΠ³Π°ΠΌΠΈ.

И Π΅Ρ‰Π΅: Ρƒ нашСго сСрвСра ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π° Π½Π΅Ρ‚ UI, Ρ‚.Π΅. ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠΊΠ°, Π½ΠΎ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‚.ΠΊ. ΠΌΠ½Π΅ Π½Π΅ трСбуСтся. Π—Π°Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ API для сохранСния/удалСния настроСк, получСния списка ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ², ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, всС описано ΠΏΠΎ ΠΊΠ°Π½ΠΎΠ½Π°ΠΌ swagger спСцификации.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ API, Π° Π½Π΅ UI? Π’.ΠΊ. Ρƒ мСня ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ своя тСлСфонная систСма, Ρ‚ΠΎ, Ρƒ мСня Π΅ΡΡ‚ΡŒ источник ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ ΠΌΠ½Π΅ достаточно Π²Π·ΡΡ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅, ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ json ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сСрвСрС ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π°. А ΡƒΠΆΠ΅ сСрвСр ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π° ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² json-Ρ„Π°ΠΉΠ»Π΅, выдаст Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ устройству Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ ΠΈΠ»ΠΈ Π½Π΅ выдаст, Ссли устройство Π½Π΅ Ρ‚ΠΎ, ΠΈΠ»ΠΈ Π½Π΅ соотвСтствуСт ΠΏΠΎ критСриям, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π² этом json’Π΅.

Sonata — SIP provisioning server

Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΎΡ‚ микросСрвис ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π° получился. НазываСтся sonata, исходный ΠΊΠΎΠ΄ доступСн Π½Π° Π³ΠΈΡ‚Ρ…Π°Π±Π΅, Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΊΠ΅Ρ€-ΠΎΠ±Ρ€Π°Π·, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Π΄ΠΎΠΊΠ΅Ρ€Π° здСсь.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΠΈΡˆΠΊΠΈ:

  • Π² любом случаС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³Ρƒ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 10 ΠΌΠΈΠ½ΡƒΡ‚. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ доступным β€” ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ вновь.

  • ΠΎΠ΄ΠΈΠ½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для всСх Π²Π΅Π½Π΄ΠΎΡ€ΠΎΠ², вся подстройка ΡƒΠ±Ρ€Π°Π½Π° Π² sonata, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΡˆΡŒ стандартизированный json, Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΡˆΡŒ любоС доступноС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅.

  • всС Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ устройствам Π»ΠΎΠ³ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, всС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ мСста ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π»ΠΎΠ³Π΅ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ошибки

  • Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ ссылки с token, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ свой ΠΊΠΎΠ½Ρ„ΠΈΠ³, ΡƒΠΊΠ°Π·Π°Π² mac-адрСс. Π›ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ссылку ΠΏΠΎ key.

  • API для управлСния (management) ΠΈ Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°ΠΌ (provisioning) Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎ ΠΏΠΎΡ€Ρ‚Π°ΠΌ

  • ВСсты. Для мСня ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° ΠΈ всС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ситуации Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ тСстами. Π§Ρ‚ΠΎΠ±Ρ‹ это всС Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.

ΠœΠΈΠ½ΡƒΡΡ‹:

Пока Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… sonata. Π’.Π΅. Π²Ρ‹, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ https, поставив ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, nginx, ΠΏΠ΅Ρ€Π΅Π΄ sonata. Но Π²ΠΎΡ‚ Ρ„ΠΈΡ€ΠΌΠ΅Π½Π½Ρ‹Π΅ способы ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅ Π½Π΅ задСйствованы. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π΅Ρ‰Π΅ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ, Π·Π°ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½ΠΈΠ» свою Π΅Π΄Π²Π° Π»ΠΈ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΡΠΎΡ‚Π½ΡŽ устройств. И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡΠΎΠ±ΠΈΡ€Π°ΡŽ ΠΈΠ΄Π΅ΠΈ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь. Π”Π°Π»Π΅Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС бСзопасно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ нСльзя Π±Ρ‹Π»ΠΎ ΠΏΠΎΡΠ½ΠΈΡ„Π°Ρ‚ΡŒ Π² сСти, вСроятно, стоит Π·Π°ΠΌΠΎΡ€ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, tls ΠΈ Π΅ΠΆΠ΅ с Π½ΠΈΠΌΠΈ, Π½ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅.

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ UI. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это сущСствСнный минус для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½ΠΎ для систСмного администратора скорСС Π²Π°ΠΆΠ½Π° консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ Π±Ρ‹Π»ΠΎ Π² ΠΏΠ»Π°Π½Π°Ρ…, Π½ΠΎ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½ Π½ΡƒΠΆΠ½Π° Π»ΠΈ ΠΎΠ½Π°?

Π§Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅?

НСбольшой ΠΈ простой Π²Π΅Π±-сСрвСр для ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² с API для управлСния.

Π•Ρ‰Π΅ Ρ€Π°Π·, ΠΊΠ°ΠΊ это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ?

  1. УстанавливаСм sonata.
  2. Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ json-ΠΊΠΎΠ½Ρ„ΠΈΠ³ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² sonata.
  3. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡ‚ sonata ссылку для ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½Π°.
  4. Π—Π°Ρ‚Π΅ΠΌ эту ссылку ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π² Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΌ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π΅.
  5. Аппарат затягиваСт ΠΊΠΎΠ½Ρ„ΠΈΠ³

Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ эксплуатации Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° шага:

  1. Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ json-ΠΊΠΎΠ½Ρ„ΠΈΠ³ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² sonata
  2. Аппарат затягиваСт ΠΊΠΎΠ½Ρ„ΠΈΠ³

КакиС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ провиТнятся?

Π’Π΅Π½Π΄ΠΎΡ€Ρ‹ Grandstream, Fanvil, Yealink. ΠšΠΎΠ½Ρ„ΠΈΠ³ΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π²Π΅Π½Π΄ΠΎΡ€Π° Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

КакиС ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ?

По Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ врСмя, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ Π±ΡƒΠ΄Π΅Ρ‚ доступным.
По mac-адрСсу. ΠŸΡ€ΠΈ ΠΎΡ‚Π΄Π°Ρ‡Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° ΠΏΠΎ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ссылкС устройства Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ mac-адрСс.
По ip. По ip-адрСсу, ΠΎΡ‚ΠΊΡƒΠ΄Π° сдСлан запрос.

Как Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ c sonata?

Π§Π΅Ρ€Π΅Π· API, дСлая http запросы. API Π±ΡƒΠ΄Π΅Ρ‚ доступно Π² вашСй инсталяции. Π’.ΠΊ. API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ swagger ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ online-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ для тСстовых запросов ΠΊ API.

Ок, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. Π’Π΅Ρ‰ΡŒ ΠΏΡ€ΠΈΠΊΠΎΠ»ΡŒΠ½Π°Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ?

ΠŸΡ€ΠΎΡ‰Π΅ всСго Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ docker-ΠΎΠ±Ρ€Π°Π· Π½Π° основС рСпозитория sonata-sample. Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π»Π΅ΠΆΠΈΡ‚ инструкция ΠΏΠΎ установкС.

А Ссли знаю node.js?

Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ использования JavaScript, Ρ‚ΠΎ Π²Ρ‹ быстро Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ΡΡŒ ΠΊΠ°ΠΊ всС здСсь устроСно.

Π‘ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ sonata?

Частично своих Ρ†Π΅Π»Π΅ΠΉ я достиг. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ β€” это вопрос ΠΌΠΎΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ настройки Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ². Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ для настройки ΠΊΠ½ΠΎΠΏΠΎΠΊ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΈΠΆΠ½ адрСсных ΠΊΠ½ΠΈΠΆΠ΅ΠΊ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅Ρ‰Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях.

РСзюмС ΠΈ благодарности

Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ конструктивным прСдлоТСниям/возраТСниям/коммСнтариям ΠΈ вопросам, Ρ‚.ΠΊ. Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ нСпонятно описал.

Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ всСм ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌ, ΠΊΡ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π», ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚ΠΈΡ€ΠΎΠ²Π°Π», тСстировал, прСдоставил/ΠΏΠΎΠ΄Π°Ρ€ΠΈΠ» Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ для тСстов. РСально, ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ причастно Π² Ρ€Π°Π·Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ мноТСство людСй, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ я общался ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅, Π½Π° AsterConf‘Π΅, Π² Ρ‡Π°Ρ‚Π°Ρ… ΠΈ Π΅ΠΌΠ΅ΠΉΠ»Π°Ρ…. Бпасибо Π·Π° ΠΈΠ΄Π΅ΠΈ ΠΈ мысли.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com