Files
librenms-librenms/includes/polling/applications/freeswitch.inc.php

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

46 lines
1.5 KiB
PHP
Raw Normal View History

Freeswitch support (#4203) * Added support for freeswitch via unix_agent * Fixed display of graphs on apps overview * Removed tab indents * Fixed not sending port_descr_type (#4188) * Removed / Updated version info to just be LibreNMS (#4193) * Remove requirement for ['enable_printers'] (#4192) * ricoh devices returning garbage as toner level (#4180) * ricoh devices returning garbage as toner level * ricoh toner extra check * more ricoh rules * Fix remote rrdtool_check_rrd_exists() calls (#4196) It was comparing with the full name when rrdcached only printed out the relative name. Thanks mikmak on irc for lots of troubleshooting. * check for no motd line (#4200) Fixes #4199 * Only push the toc down, not the content the toc is on top when the header switches to two lines, so we only need to push that down. * IRC bot - detect lost communication Force reconnect if no data received from server for config['irc_conn_timeout'] seconds (that may happen when network/VPN goes down - in such case IRC bot won't get immediately notification that connection was lost, at least till it tries to send anything). * Update irc.php * Update irc.php * Update irc.php * Update irc.php * fix ifName randomly defined, breaking influxdb updates (#4202) * IRC bot - allow to disable ssl check In PHP 5.6.x stream wrappers verify peer certificates and host names by default when using SSL. That fix allows to turn off that verification with config option $config['irc_disable_ssl_check'] = true; It is useful when you want to use self generated certificate for your own IRC server. * Update irc.php * More more docs (#4197) * Updated docs + some small code changes * Added validating code doc for developers * Doc updates * Updates and improvements * Add ntpd to the list of agentapps (#4194) * Fix deprecated constructors This small change should't prevent easy updates to libraries and fixes the lint check on php7 * Don't allow php7 failures anymore * Fix defunct process issues: create Proc class (#4210) * Proc class Encapsulate processes in a class, when they go out of scope, we can use the __destruct() process to make sure the process terminates. * Fix rrdtool_last checks failing * Don't close rrdtool in rrd_graph Try to start rrdtool process if they haven't been started yet Remove some extra debug output * phpdocs added several cleanups should still be functioning the same Only open one rrdtool process for graph.php * include common.php in definitions.inc.php (#4198) definitions.inc.php makes a call to dbFetchRow, which uses c_echo() It is safe to include common.php here as it only has function definitions. * Use pre-commit.php in for travis-ci tests (#4212)
2016-08-26 12:08:48 +01:00
<?php
use LibreNMS\RRD\RrdDefinition;
Freeswitch support (#4203) * Added support for freeswitch via unix_agent * Fixed display of graphs on apps overview * Removed tab indents * Fixed not sending port_descr_type (#4188) * Removed / Updated version info to just be LibreNMS (#4193) * Remove requirement for ['enable_printers'] (#4192) * ricoh devices returning garbage as toner level (#4180) * ricoh devices returning garbage as toner level * ricoh toner extra check * more ricoh rules * Fix remote rrdtool_check_rrd_exists() calls (#4196) It was comparing with the full name when rrdcached only printed out the relative name. Thanks mikmak on irc for lots of troubleshooting. * check for no motd line (#4200) Fixes #4199 * Only push the toc down, not the content the toc is on top when the header switches to two lines, so we only need to push that down. * IRC bot - detect lost communication Force reconnect if no data received from server for config['irc_conn_timeout'] seconds (that may happen when network/VPN goes down - in such case IRC bot won't get immediately notification that connection was lost, at least till it tries to send anything). * Update irc.php * Update irc.php * Update irc.php * Update irc.php * fix ifName randomly defined, breaking influxdb updates (#4202) * IRC bot - allow to disable ssl check In PHP 5.6.x stream wrappers verify peer certificates and host names by default when using SSL. That fix allows to turn off that verification with config option $config['irc_disable_ssl_check'] = true; It is useful when you want to use self generated certificate for your own IRC server. * Update irc.php * More more docs (#4197) * Updated docs + some small code changes * Added validating code doc for developers * Doc updates * Updates and improvements * Add ntpd to the list of agentapps (#4194) * Fix deprecated constructors This small change should't prevent easy updates to libraries and fixes the lint check on php7 * Don't allow php7 failures anymore * Fix defunct process issues: create Proc class (#4210) * Proc class Encapsulate processes in a class, when they go out of scope, we can use the __destruct() process to make sure the process terminates. * Fix rrdtool_last checks failing * Don't close rrdtool in rrd_graph Try to start rrdtool process if they haven't been started yet Remove some extra debug output * phpdocs added several cleanups should still be functioning the same Only open one rrdtool process for graph.php * include common.php in definitions.inc.php (#4198) definitions.inc.php makes a call to dbFetchRow, which uses c_echo() It is safe to include common.php here as it only has function definitions. * Use pre-commit.php in for travis-ci tests (#4212)
2016-08-26 12:08:48 +01:00
$name = 'freeswitch';
Freeswitch support (#4203) * Added support for freeswitch via unix_agent * Fixed display of graphs on apps overview * Removed tab indents * Fixed not sending port_descr_type (#4188) * Removed / Updated version info to just be LibreNMS (#4193) * Remove requirement for ['enable_printers'] (#4192) * ricoh devices returning garbage as toner level (#4180) * ricoh devices returning garbage as toner level * ricoh toner extra check * more ricoh rules * Fix remote rrdtool_check_rrd_exists() calls (#4196) It was comparing with the full name when rrdcached only printed out the relative name. Thanks mikmak on irc for lots of troubleshooting. * check for no motd line (#4200) Fixes #4199 * Only push the toc down, not the content the toc is on top when the header switches to two lines, so we only need to push that down. * IRC bot - detect lost communication Force reconnect if no data received from server for config['irc_conn_timeout'] seconds (that may happen when network/VPN goes down - in such case IRC bot won't get immediately notification that connection was lost, at least till it tries to send anything). * Update irc.php * Update irc.php * Update irc.php * Update irc.php * fix ifName randomly defined, breaking influxdb updates (#4202) * IRC bot - allow to disable ssl check In PHP 5.6.x stream wrappers verify peer certificates and host names by default when using SSL. That fix allows to turn off that verification with config option $config['irc_disable_ssl_check'] = true; It is useful when you want to use self generated certificate for your own IRC server. * Update irc.php * More more docs (#4197) * Updated docs + some small code changes * Added validating code doc for developers * Doc updates * Updates and improvements * Add ntpd to the list of agentapps (#4194) * Fix deprecated constructors This small change should't prevent easy updates to libraries and fixes the lint check on php7 * Don't allow php7 failures anymore * Fix defunct process issues: create Proc class (#4210) * Proc class Encapsulate processes in a class, when they go out of scope, we can use the __destruct() process to make sure the process terminates. * Fix rrdtool_last checks failing * Don't close rrdtool in rrd_graph Try to start rrdtool process if they haven't been started yet Remove some extra debug output * phpdocs added several cleanups should still be functioning the same Only open one rrdtool process for graph.php * include common.php in definitions.inc.php (#4198) definitions.inc.php makes a call to dbFetchRow, which uses c_echo() It is safe to include common.php here as it only has function definitions. * Use pre-commit.php in for travis-ci tests (#4212)
2016-08-26 12:08:48 +01:00
if (! empty($agent_data[$name])) {
$rawdata = $agent_data[$name];
} else {
$options = '-Oqv';
$oid = '.1.3.6.1.4.1.8072.1.3.2.4.1.2.10.102.114.101.101.115.119.105.116.99.104';
$rawdata = snmp_walk($device, $oid, $options);
$rawdata = str_replace("<<<freeswitch>>>\n", '', $rawdata);
Freeswitch support (#4203) * Added support for freeswitch via unix_agent * Fixed display of graphs on apps overview * Removed tab indents * Fixed not sending port_descr_type (#4188) * Removed / Updated version info to just be LibreNMS (#4193) * Remove requirement for ['enable_printers'] (#4192) * ricoh devices returning garbage as toner level (#4180) * ricoh devices returning garbage as toner level * ricoh toner extra check * more ricoh rules * Fix remote rrdtool_check_rrd_exists() calls (#4196) It was comparing with the full name when rrdcached only printed out the relative name. Thanks mikmak on irc for lots of troubleshooting. * check for no motd line (#4200) Fixes #4199 * Only push the toc down, not the content the toc is on top when the header switches to two lines, so we only need to push that down. * IRC bot - detect lost communication Force reconnect if no data received from server for config['irc_conn_timeout'] seconds (that may happen when network/VPN goes down - in such case IRC bot won't get immediately notification that connection was lost, at least till it tries to send anything). * Update irc.php * Update irc.php * Update irc.php * Update irc.php * fix ifName randomly defined, breaking influxdb updates (#4202) * IRC bot - allow to disable ssl check In PHP 5.6.x stream wrappers verify peer certificates and host names by default when using SSL. That fix allows to turn off that verification with config option $config['irc_disable_ssl_check'] = true; It is useful when you want to use self generated certificate for your own IRC server. * Update irc.php * More more docs (#4197) * Updated docs + some small code changes * Added validating code doc for developers * Doc updates * Updates and improvements * Add ntpd to the list of agentapps (#4194) * Fix deprecated constructors This small change should't prevent easy updates to libraries and fixes the lint check on php7 * Don't allow php7 failures anymore * Fix defunct process issues: create Proc class (#4210) * Proc class Encapsulate processes in a class, when they go out of scope, we can use the __destruct() process to make sure the process terminates. * Fix rrdtool_last checks failing * Don't close rrdtool in rrd_graph Try to start rrdtool process if they haven't been started yet Remove some extra debug output * phpdocs added several cleanups should still be functioning the same Only open one rrdtool process for graph.php * include common.php in definitions.inc.php (#4198) definitions.inc.php makes a call to dbFetchRow, which uses c_echo() It is safe to include common.php here as it only has function definitions. * Use pre-commit.php in for travis-ci tests (#4212)
2016-08-26 12:08:48 +01:00
}
// Format Data
$lines = explode("\n", $rawdata);
Freeswitch support (#4203) * Added support for freeswitch via unix_agent * Fixed display of graphs on apps overview * Removed tab indents * Fixed not sending port_descr_type (#4188) * Removed / Updated version info to just be LibreNMS (#4193) * Remove requirement for ['enable_printers'] (#4192) * ricoh devices returning garbage as toner level (#4180) * ricoh devices returning garbage as toner level * ricoh toner extra check * more ricoh rules * Fix remote rrdtool_check_rrd_exists() calls (#4196) It was comparing with the full name when rrdcached only printed out the relative name. Thanks mikmak on irc for lots of troubleshooting. * check for no motd line (#4200) Fixes #4199 * Only push the toc down, not the content the toc is on top when the header switches to two lines, so we only need to push that down. * IRC bot - detect lost communication Force reconnect if no data received from server for config['irc_conn_timeout'] seconds (that may happen when network/VPN goes down - in such case IRC bot won't get immediately notification that connection was lost, at least till it tries to send anything). * Update irc.php * Update irc.php * Update irc.php * Update irc.php * fix ifName randomly defined, breaking influxdb updates (#4202) * IRC bot - allow to disable ssl check In PHP 5.6.x stream wrappers verify peer certificates and host names by default when using SSL. That fix allows to turn off that verification with config option $config['irc_disable_ssl_check'] = true; It is useful when you want to use self generated certificate for your own IRC server. * Update irc.php * More more docs (#4197) * Updated docs + some small code changes * Added validating code doc for developers * Doc updates * Updates and improvements * Add ntpd to the list of agentapps (#4194) * Fix deprecated constructors This small change should't prevent easy updates to libraries and fixes the lint check on php7 * Don't allow php7 failures anymore * Fix defunct process issues: create Proc class (#4210) * Proc class Encapsulate processes in a class, when they go out of scope, we can use the __destruct() process to make sure the process terminates. * Fix rrdtool_last checks failing * Don't close rrdtool in rrd_graph Try to start rrdtool process if they haven't been started yet Remove some extra debug output * phpdocs added several cleanups should still be functioning the same Only open one rrdtool process for graph.php * include common.php in definitions.inc.php (#4198) definitions.inc.php makes a call to dbFetchRow, which uses c_echo() It is safe to include common.php here as it only has function definitions. * Use pre-commit.php in for travis-ci tests (#4212)
2016-08-26 12:08:48 +01:00
$freeswitch = [];
foreach ($lines as $line) {
[$var,$value] = explode('=', $line);
$freeswitch[$var] = $value;
Freeswitch support (#4203) * Added support for freeswitch via unix_agent * Fixed display of graphs on apps overview * Removed tab indents * Fixed not sending port_descr_type (#4188) * Removed / Updated version info to just be LibreNMS (#4193) * Remove requirement for ['enable_printers'] (#4192) * ricoh devices returning garbage as toner level (#4180) * ricoh devices returning garbage as toner level * ricoh toner extra check * more ricoh rules * Fix remote rrdtool_check_rrd_exists() calls (#4196) It was comparing with the full name when rrdcached only printed out the relative name. Thanks mikmak on irc for lots of troubleshooting. * check for no motd line (#4200) Fixes #4199 * Only push the toc down, not the content the toc is on top when the header switches to two lines, so we only need to push that down. * IRC bot - detect lost communication Force reconnect if no data received from server for config['irc_conn_timeout'] seconds (that may happen when network/VPN goes down - in such case IRC bot won't get immediately notification that connection was lost, at least till it tries to send anything). * Update irc.php * Update irc.php * Update irc.php * Update irc.php * fix ifName randomly defined, breaking influxdb updates (#4202) * IRC bot - allow to disable ssl check In PHP 5.6.x stream wrappers verify peer certificates and host names by default when using SSL. That fix allows to turn off that verification with config option $config['irc_disable_ssl_check'] = true; It is useful when you want to use self generated certificate for your own IRC server. * Update irc.php * More more docs (#4197) * Updated docs + some small code changes * Added validating code doc for developers * Doc updates * Updates and improvements * Add ntpd to the list of agentapps (#4194) * Fix deprecated constructors This small change should't prevent easy updates to libraries and fixes the lint check on php7 * Don't allow php7 failures anymore * Fix defunct process issues: create Proc class (#4210) * Proc class Encapsulate processes in a class, when they go out of scope, we can use the __destruct() process to make sure the process terminates. * Fix rrdtool_last checks failing * Don't close rrdtool in rrd_graph Try to start rrdtool process if they haven't been started yet Remove some extra debug output * phpdocs added several cleanups should still be functioning the same Only open one rrdtool process for graph.php * include common.php in definitions.inc.php (#4198) definitions.inc.php makes a call to dbFetchRow, which uses c_echo() It is safe to include common.php here as it only has function definitions. * Use pre-commit.php in for travis-ci tests (#4212)
2016-08-26 12:08:48 +01:00
}
// Freeswitch stats
add the ability for storing app data to prevent spamming of the event log via via component usage (#14087) * initial work on add the ability to save/fetch app data * update to use get_app_data for ZFS * update the poller for the new app_data stuff * ZFS now logs changes to pools * add schema update for app_data stuff * small formatting fix * add a missing \ * now adds a column * sql-schema is no longer used, so remove the file that was added here * misc cleanups * rename the method in database/migrations/2022_07_03_1947_add_app_data.php * hopefully fix the migration bit * add the column to misc/db_schema.yaml * more misc small DB fixes * update the test as the json column uses collat of utf8mb4_bin * revert the last change and try manually setting it to what is expected * remove a extra ; * update suricata as well * correct the instance -> instances in one location to prevent the old instance list from being stomped * remove a extra ; * update fail2ban to use it as well * remove two unused functions as suricata and fail2ban no longer use components * style cleanup * postgres poller updated to use it * update html side of the postgres bits * chronyd now uses app data bits now as well * portactivity now uses it as well * style fix * sort the returned arrays from app_data * correct log message for port activity * collocation change * try re-ordering it * add in the new data column to the tests * remove a extra , * hmm... ->collate('utf8mb4_unicode_ci') is not usable as apparently collate does not exist * change the column type from json to longtext * mv chronyd stuff while I sort out the rest of the tests... damn thing is always buggy * hmm... fix a missing line then likely move stuff back * style fix * add fillable * add the expexcted data for fail2ban json * escape a " I missed * add data for portactivity * add suricata app data * add app data to zfs legacy test * put the moved tests back into place and update zfs-v1 test * add app data for chronyd test * add app data for fail2ban legacy test * update zfs v1 app data * add some notes on application dev work * add Developing/Application-Notes.md to mkdocs.yml * add data column to it * added various suggestions from bennet-esyoil * convert from isset to sizeof * type fix * fully remove the old save app data function and move it into a helper function... the other still needs cleaned up prior to removal * update docs * get_app_data is fully removed now as well * a few style fixes * add $casts * update chronyd test * attempt to fix the data * more doc cleanup and try changing the cast * style fix * revert the changes to the chronyd test * apply a few of murrant's suggestions * document working with ->data as json and non-josn * remove two no-longer used in this PR exceptions * ->data now operates transparently * style fix * update data tests * fix json * test fix * update the app notes to reflect how app data now works * app test fix * app data fix for linux_lsi * json fix * minor doc cleanup * remove duplicate querty and use json_decode instead * style fix * modelize the app poller * use a anon func instead of foreach * test update * style cleanup * style cleanup * another test cleanup * more test cleanup * reverse the test changes and add in some more glue code * revert one of the test changes * another small test fix * Make things use models Left some array access, but those will still work just fine. * missed chronyd and portactivity * rename poll to avoid make it any confusion * Remove extra save and fix timestamp * save any changes made to app->data * nope, that was not it * What are magic methods and how do they work? * fix two typos * update linux_lsi test * change quote type Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-07-22 16:01:55 -05:00
$rrd_name = ['app', $name, 'stats', $app->app_id];
$rrd_def = RrdDefinition::make()
->addDataset('calls', 'GAUGE', 0, 10000)
->addDataset('channels', 'GAUGE', 0, 10000)
->addDataset('peak', 'GAUGE', 0, 10000)
->addDataset('in_failed', 'COUNTER', 0, 4294967295)
->addDataset('in_okay', 'COUNTER', 0, 4294967295)
->addDataset('out_failed', 'COUNTER', 0, 4294967295)
->addDataset('out_okay', 'COUNTER', 0, 4294967295);
$fields = [
'calls' => $freeswitch['Calls'],
'channels' => $freeswitch['Channels'],
'peak' => $freeswitch['Peak'],
'in_failed' => $freeswitch['InFailed'],
'in_okay' => $freeswitch['InTotal'] - $freeswitch['InFailed'],
'out_failed' => $freeswitch['OutFailed'],
'out_okay' => $freeswitch['OutTotal'] - $freeswitch['OutFailed'],
];
Freeswitch support (#4203) * Added support for freeswitch via unix_agent * Fixed display of graphs on apps overview * Removed tab indents * Fixed not sending port_descr_type (#4188) * Removed / Updated version info to just be LibreNMS (#4193) * Remove requirement for ['enable_printers'] (#4192) * ricoh devices returning garbage as toner level (#4180) * ricoh devices returning garbage as toner level * ricoh toner extra check * more ricoh rules * Fix remote rrdtool_check_rrd_exists() calls (#4196) It was comparing with the full name when rrdcached only printed out the relative name. Thanks mikmak on irc for lots of troubleshooting. * check for no motd line (#4200) Fixes #4199 * Only push the toc down, not the content the toc is on top when the header switches to two lines, so we only need to push that down. * IRC bot - detect lost communication Force reconnect if no data received from server for config['irc_conn_timeout'] seconds (that may happen when network/VPN goes down - in such case IRC bot won't get immediately notification that connection was lost, at least till it tries to send anything). * Update irc.php * Update irc.php * Update irc.php * Update irc.php * fix ifName randomly defined, breaking influxdb updates (#4202) * IRC bot - allow to disable ssl check In PHP 5.6.x stream wrappers verify peer certificates and host names by default when using SSL. That fix allows to turn off that verification with config option $config['irc_disable_ssl_check'] = true; It is useful when you want to use self generated certificate for your own IRC server. * Update irc.php * More more docs (#4197) * Updated docs + some small code changes * Added validating code doc for developers * Doc updates * Updates and improvements * Add ntpd to the list of agentapps (#4194) * Fix deprecated constructors This small change should't prevent easy updates to libraries and fixes the lint check on php7 * Don't allow php7 failures anymore * Fix defunct process issues: create Proc class (#4210) * Proc class Encapsulate processes in a class, when they go out of scope, we can use the __destruct() process to make sure the process terminates. * Fix rrdtool_last checks failing * Don't close rrdtool in rrd_graph Try to start rrdtool process if they haven't been started yet Remove some extra debug output * phpdocs added several cleanups should still be functioning the same Only open one rrdtool process for graph.php * include common.php in definitions.inc.php (#4198) definitions.inc.php makes a call to dbFetchRow, which uses c_echo() It is safe to include common.php here as it only has function definitions. * Use pre-commit.php in for travis-ci tests (#4212)
2016-08-26 12:08:48 +01:00
$tags = compact('name', 'app_id', 'rrd_name', 'rrd_def');
data_update($device, 'app', $tags, $fields);
update_application($app, $rawdata, $fields);
unset($lines, $freeswitch, $rrd_name, $rrd_def, $fields, $tags);