#!/usr/bin/php <?php error_reporting(1); exec("sudo asterisk -rx 'sip show registry'", $tr_list); foreach($tr_list as $line) { $ar_line = null; $ar_line[] = trim(substr($line, 0, 40)); $ar_line[] = trim(substr($line, 47, 19)); $ar_line = array_diff($ar_line, array('')); $ar_line = array_combine(array(0,1), $ar_line); $trunks[] = $ar_line['1']; $ip = explode(":", $ar_line['0']); if (!in_array($ip['0'], $ips)) { $ips[] = $ip['0']; } } $trunks[0] = ''; $ips[0] = ''; $trunks = array_diff($trunks, array('')); $ips = array_diff($ips, array('')); function getJson($items, $name) { $first = 1; print "{\n"; print "\t\"data\":[\n\n"; foreach ($items as $item) { if (!$first) { print "\t,\n" ; $first = 0; } print "\t{\n"; print "\t\t\"{#$name}\":\"$item\"\n"; print "\t},\n"; } print "\n\t]\n"; print "}\n"; } if ($argv[1] == 'trunks') { getJson($trunks, "TRUNKNAME"); } elseif ($argv[1] == 'ips') { getJson($ips, "TRUNKIP"); } else { print "error"; }
#!/usr/bin/php <?php error_reporting(0); $find = "*".$argv[1]."*"; exec("sudo asterisk -rx 'sip show registry'", $tr_list); $filter = preg_grep($find, $tr_list); foreach($filter as $line) { if (preg_match("*Registered*", $line) & preg_match($find, $line)) { exit('1'); } else { exit('0'); } } exit('0')
UserParameter=asterisk.registry[*],/usr/scripts/reg_mon.php $1 UserParameter=asterisk.discovery[*], /usr/scripts/trunk_disc.php $1
zabbix_get -s -k asterisk.discovery[trunks]
{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...
trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]
:
{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...
. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .
, . , , .. Zabbix . , , . .
zabbix_get -s -k asterisk.discovery[trunks]
{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...
trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]
:
{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...
. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .
, . , , .. Zabbix . , , . .
zabbix_get -s -k asterisk.discovery[trunks]
{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...
trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]
:
{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...
. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .
, . , , .. Zabbix . , , . .
zabbix_get -s -k asterisk.discovery[trunks]
{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...
trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]
:
{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...
. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .
, . , , .. Zabbix . , , . .
zabbix_get -s -k asterisk.discovery[trunks]
{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...
trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]
:
{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...
. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .
, . , , .. Zabbix . , , . .
zabbix_get -s -k asterisk.discovery[trunks]
{ "data":[ { "{#TRUNKNAME}":"trunk1" }, { "{#TRUNKNAME}":"trunk2" }, { "{#TRUNKNAME}":"trunk3" }, { "{#TRUNKNAME}":"trunk4" }, { "{#TRUNKNAME}":"trunk5" }, { "{#TRUNKNAME}":"trunk5" }, ...
trunk1,trunk2 .. zabbix_get -s -k asterisk.discovery[ips]
:
{ "data":[ { "{#TRUNKIP}":"213.141.252.17" }, { "{#TRUNKIP}":"188.187.255.6" }, { "{#TRUNKIP}":"sip.pctel.ru" }, ...
. , zabbix_get -s -k asterisk.registry[trunk1] 1, 0. , . - Zabbix .
, . , , .. Zabbix . , , . .
Source: https://habr.com/ru/post/223365/
All Articles