Как ΠΏΠΎΠ΄Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Zabbix с Asterisk Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ»

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Β«Zabbix β€” Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ€ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹Β» я рассказал ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сСссию Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΅Π΅ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ макрос хоста. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Zabbix с Asterisk Π±Π΅Π· Π²Π½Π΅ΡˆΠ½ΠΈΡ… скриптов ΠΈ ПО.

ИдСя Β«ΠΏΠΎΠ΄Ρ€ΡƒΠΆΠΈΡ‚ΡŒΒ» эти Π΄Π²Π΅ систСмы Ρ€ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π΄Π°Π²Π½ΠΎ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π±Π΅Π· установки Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ софта ΠΈ скриптов. БыстроС Π³ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π΄Π°Π²Π°Π»ΠΎ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, всС сводилось ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΊΠΈΠ½ΡŒΡ‚Π΅ скрипты (Π½Π° ΠΏΡ‹Ρ…Π΅, башС, ΠΏΠΈΡ‚ΠΎΠ½Π΅ ΠΈ Ρ‚.Β ΠΏ.) Π½Π° сСрвСр, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π°ΠΌ ΡΡ‡Π°ΡΡ‚ΡŒΠ΅. МнС ΠΆΠ΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ» β€” Π±Π΅Π· Π²Π½Π΅ΡˆΠ½ΠΈΡ… скриптов ΠΈ установки Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ софта Π½Π° сСрвСр с ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ ΠΈ АВБ.

ΠŸΡ€ΠΎΠ²ΠΎΠ·ΠΈΠ»ΡΡ я с этим Π² суммС 4 Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… дня, Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ стоил Ρ‚ΠΎΠ³ΠΎ. Π Π°Π±ΠΎΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· интСрфСйс AMI, Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹, Π° Π³Π»Π°Π²Π½ΠΎΠ΅, Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ АВБ ΠΈ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ настройки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΈΠ½ΡƒΡ‚ 15.

Π’ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ заббикс 4.4, ΠΎΠΊΠΎΠ»ΠΎ 100 ΡˆΡ‚ΡƒΠΊ АстСрисков 13 вСрсии. КакиС-Ρ‚ΠΎ АВБ ΠΈΠ΄ΡƒΡ‚ с Π²Π΅Π± интСрфСйсом FreePBX, ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ с Π³ΠΎΠ»ΠΎΠΉ консолью, ΠΊΡƒΡ‡Π΅ΠΉ хитростСй ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· АВБ

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ основной ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΏΠΈΡ€Π°Ρ… ΠΈ сип рСгистрациях. Для этого Π² АВБ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ интСрфСйсы AGI, AMI, ARI ΠΈ SSH консоль. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎ понятным ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ рассматривал.

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΠ· сСбя ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ эти Π°Π³ΠΈ, Π°ΠΌΠΈ, ари….

  • AGI β€” использованиС скриптов Π² Π΄ΠΈΠ°Π»ΠΏΠ»Π°Π½Π΅. Π’ основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для управлСния Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ.
  • AMI β€” ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ€Ρ‚ 5038 ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Telnet. Нам ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚!
  • ARI β€” соврСмСнно, ΠΌΠΎΠ΄Π½ΠΎ, JSONΠ½ΠΎ. Много возмоТностСй, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π² понятном Π²ΠΈΠ΄Π΅ для Zabbix, Π½ΠΎ для мСня Π½Π΅Ρ‚ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ: нСльзя ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сип Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ. Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ минус, для ΠΏΠΈΡ€ΠΎΠ² Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° состояния online/offline, хотя состояний большС ΠΈ ΠΈΡ… ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ диагностикС.
  • SSH β€” ΠΌΠΎΠΆΠ΅Ρ‚ всС, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π΅ Π΄Π°ΡŽΡ‚ ΠΈΠ·-Π·Π° «сообраТСний бСзопасности». БообраТСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ, Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… Π½Π΅ Π±ΡƒΠ΄Ρƒ.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡ€ΠΈ всСх своих нСдостатках ARI Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ 90% всСх потрСбностСй ΠΏΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ.

Zabbix ΠΈ Telnet β€” ΠΌΠΎΠ΅ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅

AMI знаю Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π² своС врСмя Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π» отслСТиваниС ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π² Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°Ρ… с Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ офисам, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π²ΠΎΠ½ΠΊΠ°ΠΌΠΈ ΠΈ Ρ‚.ΠΏ. Π‘ Telnet Ρ‚ΠΎΠΆΠ΅ всС ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ ясно: ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, шли ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Ρ‡ΠΈΡ‚Π°ΠΉ ΠΎΡ‚Π²Π΅Ρ‚. Π§Ρ‚ΠΎ я ΠΈ сдСлал, Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ мСня Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π».

Telnet Ρƒ заббикса Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π² консолС Linux, ΠΎΠ½ Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простой ΠΈ Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° Π»ΠΎΠ³ΠΈΠ½/ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. Если Π»ΠΎΠ³ΠΈΠΊΠ° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ другая, ΠΈ Π½Π΅Ρ‚ запроса ΠΏΠ°Ρ€Ρ‹ Π»ΠΎΠ³ΠΈΠ½/ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Π²Ρ‹Π»Π΅Ρ‚Π°Π΅Ρ‚ ошибка. ПослС Ρ‚Ρ‰Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π΅Π· ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ исходники модуля Telnet.

Π― понял, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ запроса Π»ΠΎΠ³ΠΈΠ½Π° с ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ, дальшС Π½Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡΡŒ. Π Π°Π΄ΠΈ интСрСса, Π²Ρ‹ΠΊΠΈΠ½ΡƒΠ» ΠΈΠ· ΠΊΠΎΠ΄Π° всС, Ρ‡Ρ‚ΠΎ касаСтся Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, пСрСсобрал всС. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚! Но ΠΏΠΎΠ΄ трСбования Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚. ИдСм Π΄Π°Π»ΡŒΡˆΠ΅β€¦

ВозвращаСмся ΠΊ поиску

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°Π» Π΅Ρ‰Π΅ Ρ€Π°Π· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ ARI, ΠΏΡ€ΠΎΠ²Π΅Π» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ тСсты β€” Π½Π΅Ρ‚ Ρ‚ΡƒΡ‚ сип рСгистраций. ΠŸΠΈΡ€Ρ‹ Π΅ΡΡ‚ΡŒ, Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρ‹ Π΅ΡΡ‚ΡŒ, Π±Ρ€ΠΈΠ΄ΠΆΠΈ Π΅ΡΡ‚ΡŒ, рСгистраций Π½Π΅Ρ‚. Π’ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄Π°ΠΆΠ΅ задумался, Ρ‚Π°ΠΊ Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹ Π½Π°ΠΌ сип рСгистрации?

По Π·Π°Π±Π°Π²Π½ΠΎΠΌΡƒ ΡΡ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π², Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈΠ»Π΅Ρ‚Π°Π΅Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ запрос ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ исходящих Π·Π²ΠΎΠ½ΠΊΠΎΠ². ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° Π² подвисании сип рСгистрации ΠΈ Ρ€Π΅ΡˆΠ°Π»Π°ΡΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ модуля.

asterisk -rx "sip reload"

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΏΠΎ Π²Π΅Π±Ρƒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ AMI: это Π±Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΎ всС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΏΠΎΠ΄ΡƒΠΌΠ°Π» я. ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽ ΠΊΠΎΠΏΠ°Ρ‚ΡŒ Π² этом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΠΈ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ пСрвая строка поиска Π²Π΅Π΄Π΅Ρ‚ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Asterisk, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ для ΠΌΠΎΠΈΡ… Π·Π°Π΄Π°Ρ‡ Π΅ΡΡ‚ΡŒ опция webenabled Π² Ρ„Π°ΠΉΠ»Π΅ /etc/asterisk/manager.conf, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ YES, Π² сСкции [general]

ПослС этого, Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π²Π΅Π± запрос Π²ΠΈΠ΄Π° http://ats:8089/mxml?action=SIPshowregistry ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΈ использовании интСрфСйса FreePBX, Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π± нСльзя Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· консоль, внося ΠΏΡ€Π°Π²ΠΊΠΈ Π² Ρ„Π°ΠΉΠ» manager.conf. FreePBX Π½Π΅ стираСт Π΅Π΅ ΠΏΡ€ΠΈ измСнСниях ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±.

Бколько Ρ€Π°Π±ΠΎΡ‚Π°Π» с Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° интСграциями Asterisk, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΈΠ΄Π΅Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π΄Π΅-Ρ‚ΠΎ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»Π°ΡΡŒ эта функция. МСня ΡƒΠ΄ΠΈΠ²ΠΈΠ»ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ описываСт этот ΠΌΠ΅Ρ‚ΠΎΠ΄ взаимодСйствия с АВБ. Π”Π°ΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π· ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅: практичСски Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚ ΠΈΠ»ΠΈ использовалось для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡.

WEB AMI β€” Ρ‡Ρ‚ΠΎ Π·Π° Π·Π²Π΅Ρ€ΡŒ?

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ webenabled Π² Ρ„Π°ΠΉΠ» manager.conf ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π»ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ АВБкой Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±. ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, доступныС Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ AMI, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ Π² Π²Π΅Π±Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ события ΠΎΡ‚ АВБ Ρ‡Π΅Ρ€Π΅Π· сокСт. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ консольного AMI. ПослС Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ, ΠΊ АВБ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ адрСсам:

https://ats:8089/manager β€” Π²Π΅Π± страница с простым интСрфСйсом, для тСстов ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ запросов. ВсС ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ HTML Π²ΠΈΠ΄. Для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚.
https://ats:8089/rawman β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкстовый Π²Ρ‹Π²ΠΎΠ΄, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ AMI
https://ats:8089/mxml β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкстовый Π²Ρ‹Π²ΠΎΠ΄, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XML. Нам ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚!

Как ΠΏΠΎΠ΄Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Zabbix с Asterisk «ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ»

Π’ΡƒΡ‚ я Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»: Β«Π’ΠΎΡ‚ ΠΎΠ½ΠΎ – Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅! БСйчас всС Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎ! Изи-ΠΏΠΈΠ·ΠΈ Π»Π΅ΠΌΠΎΠ½ сквизи», Π½ΠΎ Ρ€Π°Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ° Ρ€Π°Π½ΠΎ. Для получСния Π½ΡƒΠΆΠ½ΠΎΠΉ Π½Π°ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ достаточно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GET запрос с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ дСйствиСм action, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ xml со списком всСх рСгистраций ΠΈ ΠΈΡ… состояниСм. Π­Ρ‚ΠΎ всС Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Π½ΠΎ Π½ΡƒΠΆΠ½Π° авторизация с Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ΠΌ сСссии ΠΈΠ· cookie. Когда Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΡˆΡŒ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π΅ΡˆΡŒΡΡ ΠΎΠ± этом процСссС.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΌΡ‹ обращаСмся Π½Π° адрСс http://ats:8089/mxml?action=login&username=zabbix&secret=zabbix, Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π°ΠΌ сСрвСр присылаСт ΠΊΡƒΠΊΡƒ с сСссиСй Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ выглядит HTTP запрос:

https://ats:8089/mxml?action=login&username=zabbix&secret=zabbix

Host: ats:8089
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1

ΠžΡ‚Π²Π΅Ρ‚:

GET: HTTP/1.1 200 OK
Server: Asterisk/13.29.2
Date: Thu, 18 Jun 2020 17:41:19 GMT
Cache-Control: no-cache, no-store
Content-type: text/xml
Set-Cookie: mansession_id="6f5de42c"; Version=1; Max-Age=600
Pragma: SuppressEvents
Content-Length: 146

<ajax-response>
<response type="object" id="unknown">
<generic response="Success" message="Authentication accepted"/>
</response>
</ajax-response>

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ mansession_id="6f5de42c", Ρ‚.Π΅. сама ΠΊΡƒΠΊΠ° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.
ΠšΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½ΡƒΠΆΠ½ΠΎ лишь ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° Β«Authentication acceptedΒ». Π”Π°Π»ΡŒΡˆΠ΅, ΠΏΡ€ΠΈ всСх обращСниях ΠΊ сСрвСру АВБ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² запрос ΠΊΡƒΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

https://ats:8089/mxml?action=SIPpeers

Host: ats:8089
Connection: close
Cookie: mansession_id="6f5de42c"

Как ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΡƒΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… запросах Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚ΡƒΡ‚: Β«Zabbix β€” Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ€ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹Β»

Для создания элСмСнтов отслСТивания Π² заббиксС Π±ΡƒΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

Авто ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅

Для Π°Π²Ρ‚ΠΎ обнаруТСния рСгистраций ΠΈ отслСТивания состояний ΠΏΠΈΡ€ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ адрСсу: https://ats:8089/mxml?action=SIPshowregistry ΠΈΠ»ΠΈ https://ats:8089/mxml?action=SIPpeers

Π’ ΠΎΡ‚Π²Π΅Ρ‚ АВБ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π°ΠΌ XML ΠΎΡ‚Π²Π΅Ρ‚:

<ajax-response>
<response type="object" id="unknown">
<generic response="Success" eventlist="start" message="Registrations will follow"/>
</response>
...
<response type="object" id="unknown">
<generic event="RegistryEntry" host="login.mtt.ru" port="5060" username="111111" domain="login.mtt.ru" domainport="5060" refresh="105" state="Registered" registrationtime="1592502142"/>
</response>
<response type="object" id="unknown">
<generic event="RegistryEntry" host="voip.uiscom.ru" port="5060" username="222222" domain="voip.uiscom.ru" domainport="5060" refresh="105" state="Registered" registrationtime="1592502142"/>
</response>
<response type="object" id="unknown">
<generic event="RegistryEntry" host="voip.uiscom.ru" port="5060" username="333333" domain="voip.uiscom.ru" domainport="5060" refresh="105" state="Registered" registrationtime="1592502142"/>
</response>
...
</ajax-response>

Π’ ΠΎΡ‚Π²Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ мусора, ΠΏΠΎ этому Π² прСпроцСссингС ΠΌΡ‹ Π΅Π³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅ΠΌ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ XPath: //response/generic[@host]
Π”Π°Π»ΡŒΡˆΠ΅ начинаСтся самоС интСрСсноС. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ динамичСски ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ элСмСнты, Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π²Π΅Ρ‚ Π±Ρ‹Π» Π² JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. XML ΠΏΡ€ΠΈ Π°Π²Ρ‚ΠΎ обнаруТСниях Π½Π΅ поддСрТиваСтся.

Для прСобразования XML Π² JSON ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с Π°Π²Ρ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ, для Ρ‡Π΅Π³ΠΎ я сдСлал скрипт Π½Π° JS

Как ΠΏΠΎΠ΄Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Zabbix с Asterisk «ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ»

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ АВБ всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±Ρ€Π°ΠΌΠ»ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, Π° послС примСнСния шаблона //response/generic[@host] ΠΎΠ½ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅.

Для создания элСмСнтов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· XML ΠΎΡ‚Π²Π΅Ρ‚Π° ( Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ JSON )​.

Как ΠΏΠΎΠ΄Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Zabbix с Asterisk «ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ»

SIP Registry

Для сип рСгистраций ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: username, host, port. МСня устраивало Π½Π°Π·Π²Π°Π½ΠΈΠ΅ элСмСнта [email protected]:5060, ситуаций ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΏΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… я Π½Π΅ нашСл.

Π“Π»Π°Π²Π½Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ всСх рСгистрациях, Asterisk β€” AMI SIPshowregistry. Π Π°Π· Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ ΠΎΠ½ обращаСтся GET запросом ΠΊ https://ats:8089/mxml?action=SIPshowregistry, послС Ρ‡Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ XML ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ всСм зависимым элСмСнтам для Π°Π½Π°Π»ΠΈΠ·Π°. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ рСгистрации создаю зависимыми ΠΎΡ‚ Π½Π΅Π³ΠΎ. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ρ‚.Β ΠΊ. Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π° ΠΎΠ΄ΠΈΠ½ запрос, Π° Π½Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Π£ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ сущСствСнный минус β€” Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° процСссор.

ΠŸΡ€ΠΈ тСстировании Π΄ΠΎ 100 зависимых элСмСнтов, Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Π½ΠΎ ΠΏΡ€ΠΈ 1700 элСмСнтов, это Π΄Π°Π²Π°Π»ΠΎ Π·Π°ΠΌΠ΅Ρ‚Π½ΡƒΡŽ 15 ΡΠ΅ΠΊΡƒΠ½Π΄Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° процСссор. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ это Π²Π²ΠΈΠ΄Ρƒ, Ссли Ρƒ вас большоС количСство зависимых элСмСнтов.

Как Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для «размазывания» Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ»ΠΈ установки Ρ€Π°Π·Π½ΠΎΠΉ частоты опроса элСмСнта, ΠΌΠΎΠΆΠ½ΠΎ вынСсти Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ я Π½Π΅ Ρ…Ρ€Π°Π½ΡŽ Π² Π³Π»Π°Π²Π½ΠΎΠΌ элСмСнтС. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅ Π²ΠΈΠΆΡƒ Π² этом нСобходимости, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ссли ΠΎΡ‚Π²Π΅Ρ‚ большС 64К, Ρ‚ΠΎ заббикс Π΅Π³ΠΎ ΠΎΠ±Ρ€Π΅Π·Π°Π΅Ρ‚.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для зависимого элСмСнта Ρƒ нас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ»Π½Ρ‹ΠΉ XML ΠΎΡ‚Π²Π΅Ρ‚, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π² прСпроцСссингС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта. Π§Π΅Ρ€Π΅Π· XPath это дСлаСтся Ρ‚Π°ΠΊ:
string(//response/generic[@event=Β«RegistryEntryΒ»][@username="{#SIP_REGISTRY_USERNAME}"][@host="{#SIP_REGISTRY_HOST}"][@port="{#SIP_REGISTRY_PORT}"]/@state)
Для статусов рСгистраций Π½Π΅ стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ тСкстовыС статусы, Π° ΠΏΠ΅Ρ€Π΅Π²Π΅Π» ΠΈΡ… Π² числовой Π²ΠΈΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript:

switch(value) {
  case 'Registered':
    return 1;
  case 'Unregistered':
    return 0;
  default:
    return -1;
}

SIP Peers

По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с сип рСгистрациями, Π΅ΡΡ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΉ элСмСнт Asterisk β€” AMI SIPshowregistry, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ зависимыС.

Π—Π΄Π΅ΡΡŒ создаСтся Π΄Π²Π° зависимых элСмСнта:

  • Бтатус ΠΏΠΈΡ€Π° Π² тСкстовом Π²ΠΈΠ΄Π΅
  • ВрСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° устройства β€” Ссли статус ОК, Ρ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ врСмя ΠΎΡ‚Π²Π΅Ρ‚Π° устройства, ΠΈΠ½Π°Ρ‡Π΅ Β«-1Β»

Π‘Π°ΠΌ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ элСмСнта ΡƒΠΆΠ΅ Ρ‡ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ XPath:

string(//response/generic[@objectname="{#SIP_PEER_OBEJECTNAME}"]/@status)

Для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта использовал JavaScript, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° ΠΎΡ‚ статуса ΠΏΠΈΡ€Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ хранятся ΠΎΠ½ΠΈ вмСстС:

if(value.substring(0,2) == 'OK'){
	return value.match(/(d+)/gm);
}
else {
	return -1;
}

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

РСшСниС Β«ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТным ΠΈ Π½Π΅ сразу понятным. ВозрастаСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ систСмами

ВсСм приятной ΠΈ Π»Π΅Π³ΠΊΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ! Π¨Π°Π±Π»ΠΎΠ½ ΠΈ инструкция ΠΏΠΎ настройкС Π½Π° GitHub.

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