diff --git a/plugins/other/asterisk-multigraph-munin-plugin b/plugins/asterisk/asterisk-multigraph-munin-plugin similarity index 100% rename from plugins/other/asterisk-multigraph-munin-plugin rename to plugins/asterisk/asterisk-multigraph-munin-plugin diff --git a/plugins/asterisk/asterisk_14_fax_ffa/TEMPLATE b/plugins/asterisk/asterisk_14_fax_ffa/TEMPLATE new file mode 100755 index 00000000..5034fc9f --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/TEMPLATE @@ -0,0 +1,65 @@ +#!/usr/bin/perl + + use Carp; + use strict; + use Asterisk::AMI; + + my $ret = undef; + if ( ! eval "require Asterisk::AMI;" ) { + $ret = "Asterisk::AMI not found"; + }; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Cancelled Faxes (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Cancelled Faxes\n"; + print "graph_category asterisk\n"; + print "t38_cancelled.draw AREA\n"; + print "t38_cancelled.label Cancelled T.38 Faxes\n"; + print "g711_cancelled.draw AREA\n"; + print "g711_cancelled.label Cancelled G.711 Faxes\n"; + exit ( 0 ); + }; + + #my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + #my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + #my $username = $ENV{ 'username' }; + #my $secret = $ENV{ 'secret' }; + + my $username = 'manager'; + my $host = '192.168.1.70'; + my $port = '5038'; + my $secret = 'insecure'; + my $timeout = '5'; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_cancelled.value $faxstats{'Digium T.38'}{'Canceled'}\n"; + print "g711_cancelled.value $faxstats{'Digium G.711'}{'Canceled'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_cancelled b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_cancelled new file mode 100755 index 00000000..3258d261 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_cancelled @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Cancelled Faxes\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Cancelled Faxes\n"; + print "graph_category asterisk\n"; + print "cancelled.draw AREA\n"; + print "cancelled.label Cancelled Faxes\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $cancelled = $faxstats{'Digium G.711'}{'Canceled'}; + print "cancelled.value $cancelled\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_current_sessions b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_current_sessions new file mode 100755 index 00000000..72de6193 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_current_sessions @@ -0,0 +1,129 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Current Sessions\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Current Sessions\n"; + print "graph_category asterisk\n"; + print "sessions.draw AREA\n"; + print "sessions.label Current Sessions\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $sessions = $faxstats{'FAX Statistics'}{'Current Sessions'}; + print "sessions.value $sessions\n"; + + exit( 0 ); + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_failed_completed b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_failed_completed new file mode 100755 index 00000000..1a443cef --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_failed_completed @@ -0,0 +1,134 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Failed and Completed Faxes\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Failed and Completed Faxes\n"; + print "graph_category asterisk\n"; + print "failed.draw AREA\n"; + print "failed.label Failed faxes\n"; + print "completed.draw AREA\n"; + print "completed.label Completed faxes\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $failed = $faxstats{'FAX Statistics'}{'Failed FAXes'}; + my $completed = $faxstats{'FAX Statistics'}{'Completed FAXes'}; + print "failed.value $failed\n"; + print "completed.value $completed\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_iofail b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_iofail new file mode 100755 index 00000000..83ad26bf --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_iofail @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - IO Fail\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of IO Failures\n"; + print "graph_category asterisk\n"; + print "iofail.draw AREA\n"; + print "iofail.label IO Failures\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $iofail = $faxstats{'Digium G.711'}{'IO Fail'}; + print "iofail.value $iofail\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_iopartial b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_iopartial new file mode 100755 index 00000000..64adca01 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_iopartial @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - IO Partial\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of IO Partials\n"; + print "graph_category asterisk\n"; + print "iopartial.draw AREA\n"; + print "iopartial.label IO Partial\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $iopartial = $faxstats{'Digium G.711'}{'IO Partial'}; + print "iopartial.value $iopartial\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_licensed_channels b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_licensed_channels new file mode 100755 index 00000000..49673565 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_licensed_channels @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Licensed Channels\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Licensed Channels\n"; + print "graph_category asterisk\n"; + print "channels.draw AREA\n"; + print "channels.label Licensed Channels\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $channels = $faxstats{'Digium G.711'}{'Licensed Channels'}; + print "channels.value $channels\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_max_concurrent b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_max_concurrent new file mode 100755 index 00000000..247e28a1 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_max_concurrent @@ -0,0 +1,129 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Max Concurrent Sessions\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Max Concurrent Sessions\n"; + print "graph_category asterisk\n"; + print "maxsessions.draw AREA\n"; + print "maxsessions.label Sessions\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $maxsessions = $faxstats{'Digium G.711'}{'Max Concurrent'}; + print "maxsessions.value $maxsessions\n"; + + exit( 0 ); + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_negotiations_failed b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_negotiations_failed new file mode 100755 index 00000000..ca7757ff --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_negotiations_failed @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Negotiations Failed\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Negotiations Failed\n"; + print "graph_category asterisk\n"; + print "failed.draw AREA\n"; + print "failed.label Negotiations Failed\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $failed = $faxstats{'Digium G.711'}{'Negotiation Failed'}; + print "failed.value $failed\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_nofax b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_nofax new file mode 100755 index 00000000..645199b8 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_nofax @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - No Fax\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of No Faxes\n"; + print "graph_category asterisk\n"; + print "nofax.draw AREA\n"; + print "nofax.label Number of No Faxes\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $nofax = $faxstats{'Digium G.711'}{'No FAX'}; + print "nofax.value $nofax\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_partial b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_partial new file mode 100755 index 00000000..faa7bab1 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_partial @@ -0,0 +1,131 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Partial Faxes\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Partial Faxes\n"; + print "graph_category asterisk\n"; + print "partial.draw AREA\n"; + print "partial.label Partial Faxes\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $partial = $faxstats{'Digium G.711'}{'Partial'}; + print "partial.value $partial\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_protocol_error b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_protocol_error new file mode 100755 index 00000000..a18f8bf0 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_protocol_error @@ -0,0 +1,131 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Protocol Error\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Protocol Errors\n"; + print "graph_category asterisk\n"; + print "proterror.draw AREA\n"; + print "proterror.label Protocol Errors\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $proterror = $faxstats{'Digium G.711'}{'Protocol Error'}; + print "proterror.value $proterror\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_success b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_success new file mode 100755 index 00000000..b10476ab --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_success @@ -0,0 +1,129 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Successful Tx\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Successful Tx's\n"; + print "graph_category asterisk\n"; + print "success.draw AREA\n"; + print "success.label successful tx\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $success = $faxstats{'Digium G.711'}{'Success'}; + print "success.value $success\n"; + + exit( 0 ); + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_switched2t38 b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_switched2t38 new file mode 100755 index 00000000..46f310d8 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_switched2t38 @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Switched to T.38\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Switches to T.38\n"; + print "graph_category asterisk\n"; + print "switched.draw AREA\n"; + print "switched.label Switches to T.38\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $switched = $faxstats{'Digium G.711'}{'Switched to T.38'}; + print "switched.value $switched\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_train_failure b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_train_failure new file mode 100755 index 00000000..bddfd350 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_train_failure @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Train Failure\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Train Failures\n"; + print "graph_category asterisk\n"; + print "failure.draw AREA\n"; + print "failure.label Train Failures\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $failure = $faxstats{'Digium G.711'}{'Train Failure'}; + print "failure.value $failure\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_txrx_attempts b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_txrx_attempts new file mode 100755 index 00000000..2bd6ddf2 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/asterisk_fax_txrx_attempts @@ -0,0 +1,134 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.4.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Tx/Rx Attempts\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Tx and Rx Attempts\n"; + print "graph_category asterisk\n"; + print "transmit.draw AREA\n"; + print "transmit.label Tx Attempts\n"; + print "receive.draw AREA\n"; + print "receive.label Rx Attempts\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $txstats = $faxstats{'FAX Statistics'}{'Transmit Attempts'}; + my $rxstats = $faxstats{'FAX Statistics'}{'Receive Attempts'}; + print "transmit.value $txstats\n"; + print "receive.value $rxstats\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/can-install.pl b/plugins/asterisk/asterisk_14_fax_ffa/can-install.pl new file mode 100755 index 00000000..fb22b853 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/can-install.pl @@ -0,0 +1,41 @@ +#!/usr/bin/perl + +# +# can-install.pl - Can we install this set of Munin plugins? +# + + use Carp; + use strict; + + # Step(1) - Is Asterisk installed? + my $system; + my $asterisk = `$system which asterisk`; + chomp( $asterisk ); + print "no - Cannot find program 'asterisk' \n" if !$asterisk; + exit( 0 ) if !$asterisk; + + # Step(2) - Are we running the correct version of Asterisk? + my $command = 'core show version'; + my $string = `$asterisk -rx \"$command\"`; + my @string = split( / /, "$string" ); + my $version = $string[ 1 ]; + my @vals = split( '\.', "$version" ); + my $short_version = $vals[ 0 ] . '.' . $vals[ 1 ]; + print "no - Running wrong version of Asterisk. Need 1.4\n" if $short_version ne '1.4'; + exit( 0 ) if $short_version ne '1.4'; + + # Are the Digium FFA modules installed? + my $command = 'module show like res_fax_digium.so'; + my $string = `$asterisk -rx \"$command\"`; + my @string = split( /\n/, "$string" ); + my @vals = split( / /, $string[ 2 ] ); + my $module = $vals[ 0 ]; + print "no - Digium FFA module not installed" if ! $module; + exit( 0 ) if ! $module; + + # Step(4) - Is Asterisk::AMI installed? + eval "use Asterisk::AMI"; + print "PERL module Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + print "yes\n"; diff --git a/plugins/asterisk/asterisk_14_fax_ffa/fax_show_stats.txt b/plugins/asterisk/asterisk_14_fax_ffa/fax_show_stats.txt new file mode 100644 index 00000000..a85a9ffe --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/fax_show_stats.txt @@ -0,0 +1,49 @@ + +######################################################################## +# For Asterisk 1.4 and FFA + +faxstats{FAX Statistics}{Transmit Attempts} = 0 +faxstats{FAX Statistics}{Receive Attempts} = 0 +faxstats{FAX Statistics}{Current Sessions} = 0 +faxstats{FAX Statistics}{Failed FAXes} = 0 +faxstats{FAX Statistics}{Completed FAXes} = 0 +faxstats{Digium G.711}{IO Partial} = 0 +faxstats{Digium G.711}{Switched to T.38} = 0 +faxstats{Digium G.711}{Negotiation Failed} = 0 +faxstats{Digium G.711}{Partial} = 0 +faxstats{Digium G.711}{No FAX} = 0 +faxstats{Digium G.711}{Protocol Error} = 0 +faxstats{Digium G.711}{Canceled} = 0 +faxstats{Digium G.711}{Train Failure} = 0 +faxstats{Digium G.711}{Licensed Channels} = 1 +faxstats{Digium G.711}{Max Concurrent} = 0 +faxstats{Digium G.711}{IO Fail} = 0 +faxstats{Digium G.711}{Success} = 0 + +pbx-75*CLI> fax show stats + +FAX Statistics: +--------------- + +Current Sessions : 0 +Transmit Attempts : 0 +Receive Attempts : 0 +Completed FAXes : 0 +Failed FAXes : 0 + +Digium G.711 +Licensed Channels : 1 +Max Concurrent : 0 +Success : 0 +Switched to T.38 : 0 +Canceled : 0 +No FAX : 0 +Partial : 0 +Negotiation Failed : 0 +Train Failure : 0 +Protocol Error : 0 +IO Partial : 0 +IO Fail : 0 + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/fax_test b/plugins/asterisk/asterisk_14_fax_ffa/fax_test new file mode 100755 index 00000000..b67c9b05 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/fax_test @@ -0,0 +1,42 @@ +#!/usr/bin/perl + + use Carp; + use strict; + use Asterisk::AMI; + do './get_fax_stats.pl'; + + my $ret = undef; + if ( ! eval "require Asterisk::AMI;" ) { + $ret = "Asterisk::AMI not found"; + }; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk active fax channels\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel channels\n"; + print "graph_category asterisk\n"; + print "channels.draw AREA\n"; + print "channels.label channels\n"; + exit 0; + }; + + #my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + #my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + #my $username = $ENV{ 'username' }; + #my $secret = $ENV{ 'secret' }; + + our $username = 'manager'; + our $host = '127.0.0.1'; + our $port = '5038'; + our $secret = 'insecure'; + our $timeout = '5'; + + my %faxstats = get_fax_stats(); + + my $channels = $faxstats{'Digium G.711'}{'Licensed Channels'}; + print "channels.value $channels\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_14_fax_ffa/get_fax_stats.pl b/plugins/asterisk/asterisk_14_fax_ffa/get_fax_stats.pl new file mode 100755 index 00000000..cbfa36c4 --- /dev/null +++ b/plugins/asterisk/asterisk_14_fax_ffa/get_fax_stats.pl @@ -0,0 +1,35 @@ + + + + sub get_fax_stats { + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $amiparams{ timeout } }); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my @array = @$arrayref; + my $null = qq{}; + my ( %faxstats, $section); + foreach my $line ( @array ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + #$faxstats{ "$key" } = $value if ( $value ne $null ); + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + return( %faxstats ); + + }; + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_cancelled b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_cancelled new file mode 100755 index 00000000..61dbac09 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_cancelled @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Cancelled Faxes (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Cancelled Faxes\n"; + print "graph_category asterisk\n"; + print "t38_cancelled.draw AREA\n"; + print "t38_cancelled.label Cancelled T.38 Faxes\n"; + print "g711_cancelled.draw AREA\n"; + print "g711_cancelled.label Cancelled G.711 Faxes\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_cancelled.value $faxstats{'Digium T.38'}{'Canceled'}\n"; + print "g711_cancelled.value $faxstats{'Digium G.711'}{'Canceled'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_channels b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_channels new file mode 100755 index 00000000..8f02a5e3 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_channels @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Licensed Channels\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel channels\n"; + print "graph_category asterisk\n"; + print "channels.draw AREA\n"; + print "channels.label channels\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $channels = $faxstats{'T.38'}{'Licensed Channels'}; + print "channels.value $channels\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_current_sessions b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_current_sessions new file mode 100755 index 00000000..329c4061 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_current_sessions @@ -0,0 +1,129 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Current Sessions\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Current Sessions\n"; + print "graph_category asterisk\n"; + print "sessions.draw AREA\n"; + print "sessions.label Current Sessions\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $sessions = $faxstats{'FAX Statistics'}{'Current Sessions'}; + print "sessions.value $sessions\n"; + + exit( 0 ); + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_failed_completed b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_failed_completed new file mode 100755 index 00000000..af579e65 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_failed_completed @@ -0,0 +1,134 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Failed and Completed Faxes\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Failed and Completed Faxes\n"; + print "graph_category asterisk\n"; + print "failed.draw AREA\n"; + print "failed.label Failed faxes\n"; + print "completed.draw AREA\n"; + print "completed.label Completed faxes\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $failed = $faxstats{'FAX Statistics'}{'Failed FAXes'}; + my $completed = $faxstats{'FAX Statistics'}{'Completed FAXes'}; + print "failed.value $failed\n"; + print "completed.value $completed\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_iofail b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_iofail new file mode 100755 index 00000000..3655f6f8 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_iofail @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - IO Failures (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of IO Failures\n"; + print "graph_category asterisk\n"; + print "t38_iofail.draw AREA\n"; + print "t38_iofail.label T.38 IO Failures\n"; + print "g711_iofail.draw AREA\n"; + print "g711_iofail.label G.711 IO Failures\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_iofail.value $faxstats{'Digium T.38'}{'IO Fail'}\n"; + print "g711_iofail.value $faxstats{'Digium G.711'}{'IO Fail'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_iopartial b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_iopartial new file mode 100755 index 00000000..6d8c28aa --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_iopartial @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - IO Partial (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Number of IO Partials\n"; + print "graph_category asterisk\n"; + print "t38_iopartial.draw AREA\n"; + print "t38_iopartial.label Partial T.38 Faxes\n"; + print "g711_iopartial.draw AREA\n"; + print "g711_iopartial.label Partial G.711 Faxes\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_iopartial.value $faxstats{'Digium T.38'}{'IO Partial'}\n"; + print "g711_iopartial.value $faxstats{'Digium G.711'}{'IO Partial'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_licensed_channels b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_licensed_channels new file mode 100755 index 00000000..66f91c05 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_licensed_channels @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Licensed Channels (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Licensed Channels\n"; + print "graph_category asterisk\n"; + print "t38_channels.draw AREA\n"; + print "t38_channels.label T.38 Licensed Channels\n"; + print "g711_channels.draw AREA\n"; + print "g711_channels.label G.711 Licensed Channels\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_channels.value $faxstats{'Digium T.38'}{'Licensed Channels'}\n"; + print "g711_channels.value $faxstats{'Digium G.711'}{'Licensed Channels'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_max_concurrent b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_max_concurrent new file mode 100755 index 00000000..e5311af1 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_max_concurrent @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Max Concurrent Sessions (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Max Concurrent Sessions\n"; + print "graph_category asterisk\n"; + print "t38_maxsessions.draw AREA\n"; + print "t38_maxsessions.label Max Concurrent T.38 Sessions\n"; + print "g711_maxsessions.draw AREA\n"; + print "g711_maxsessions.label Max Concurrent G.711 Sessions\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_maxsessions.value $faxstats{'Digium T.38'}{'Max Concurrent'}\n"; + print "g711_maxsessions.value $faxstats{'Digium G.711'}{'Max Concurrent'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_negotiations_failed b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_negotiations_failed new file mode 100755 index 00000000..57c24233 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_negotiations_failed @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Negotiations Failed (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Negotiations Failed\n"; + print "graph_category asterisk\n"; + print "t38_failed.draw AREA\n"; + print "t38_failed.label T.38 Negotiations Failed\n"; + print "g711_failed.draw AREA\n"; + print "g711_failed.label G.711 Negotiations Failed\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_failed.value $faxstats{'Digium T.38'}{'Negotiation Failed'}\n"; + print "g711_failed.value $faxstats{'Digium G.711'}{'Negotiation Failed'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_nofax b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_nofax new file mode 100755 index 00000000..8b6485a8 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_nofax @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - No Faxes (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of No Faxes\n"; + print "graph_category asterisk\n"; + print "t38_nofax.draw AREA\n"; + print "t38_nofax.label No T.38 Faxes\n"; + print "g711_nofax.draw AREA\n"; + print "g711_nofax.label No G.711 Faxes\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_nofax.value $faxstats{'Digium T.38'}{'No FAX'}\n"; + print "g711_nofax.value $faxstats{'Digium G.711'}{'No FAX'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_partial b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_partial new file mode 100755 index 00000000..e573f071 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_partial @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Partial Faxes (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Partial Faxes\n"; + print "graph_category asterisk\n"; + print "t38_partial.draw AREA\n"; + print "t38_partial.label Partial T.38 Faxes\n"; + print "g711_partial.draw AREA\n"; + print "g711_partial.label Partial G.711 Faxes\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_partial.value $faxstats{'Digium T.38'}{'Partial'}\n"; + print "g711_partial.value $faxstats{'Digium G.711'}{'Partial'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_protocol_error b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_protocol_error new file mode 100755 index 00000000..3fa8a6af --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_protocol_error @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Protocol Errors (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Protocol Errors\n"; + print "graph_category asterisk\n"; + print "t38_proterror.draw AREA\n"; + print "t38_proterror.label T.38 Protocol Errors\n"; + print "g711_proterror.draw AREA\n"; + print "g711_proterror.label G.711 Protocol Errors\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_proterror.value $faxstats{'Digium T.38'}{'Protocol Error'}\n"; + print "g711_proterror.value $faxstats{'Digium G.711'}{'Protocol Error'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_success b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_success new file mode 100755 index 00000000..9d1dfd13 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_success @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Successful Faxes (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Successful Faxes\n"; + print "graph_category asterisk\n"; + print "t38_success.draw AREA\n"; + print "t38_success.label Successful T.38 Faxes\n"; + print "g711_success.draw AREA\n"; + print "g711_success.label Successful G.711 Faxes\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_success.value $faxstats{'Digium T.38'}{'Success'}\n"; + print "g711_success.value $faxstats{'Digium G.711'}{'Success'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_switched2t38 b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_switched2t38 new file mode 100755 index 00000000..f67baaaf --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_switched2t38 @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Switched to T.38\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Switches to T.38\n"; + print "graph_category asterisk\n"; + print "switched.draw AREA\n"; + print "switched.label Switched to T.38\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $switched = $faxstats{'Digium G.711'}{'Switched to T.38'}; + print "switched.value $switched\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_train_failure b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_train_failure new file mode 100755 index 00000000..8ff83de0 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_train_failure @@ -0,0 +1,140 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Train Failures (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Train Failures\n"; + print "graph_category asterisk\n"; + print "t38_failure.draw AREA\n"; + print "t38_failure.label T.38 Train Failures\n"; + print "g711_failure.draw AREA\n"; + print "g711_failure.label G.711 Train Failures\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + foreach my $section ( keys %faxstats ) { + for my $key ( keys %{ $faxstats{ $section } } ) { + print "faxstats{$section}{$key} = $faxstats{$section}{$key}\n"; + }; + }; + + + + print "t38_failure.value $faxstats{'Digium T.38'}{'Train Failure'}\n"; + print "g711_failure.value $faxstats{'Digium G.711'}{'Train Failure'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_txrx_attempts b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_txrx_attempts new file mode 100755 index 00000000..b8229ac8 --- /dev/null +++ b/plugins/asterisk/asterisk_16_fax_ffa/asterisk_fax_txrx_attempts @@ -0,0 +1,134 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.6.* and Digiums Fax For Asterisk (FFA) modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Tx/Rx Attempts\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Tx and Rx Attempts\n"; + print "graph_category asterisk\n"; + print "transmit.draw AREA\n"; + print "transmit.label Tx Attempts\n"; + print "receive.draw AREA\n"; + print "receive.label Rx Attempts\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $txstats = $faxstats{'FAX Statistics'}{'Transmit Attempts'}; + my $rxstats = $faxstats{'FAX Statistics'}{'Receive Attempts'}; + print "transmit.value $txstats\n"; + print "receive.value $rxstats\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_call_dropped b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_call_dropped new file mode 100755 index 00000000..c6ba3fd8 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_call_dropped @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Dropped Calls (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Dropped Calls\n"; + print "graph_category asterisk\n"; + print "t38_dropped.draw AREA\n"; + print "t38_dropped.label T.38 Dropped Calls\n"; + print "g711_dropped.draw AREA\n"; + print "g711_dropped.label G.711 Dropped Calls\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_dropped.value $faxstats{'Spandsp T.38'}{'Call Dropped'}\n"; + print "g711_dropped.value $faxstats{'Spandsp G.711'}{'Call Dropped'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_current_sessions b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_current_sessions new file mode 100755 index 00000000..4b35be54 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_current_sessions @@ -0,0 +1,129 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Current Sessions\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Current Sessions\n"; + print "graph_category asterisk\n"; + print "sessions.draw AREA\n"; + print "sessions.label Current Sessions\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $sessions = $faxstats{'FAX Statistics'}{'Current Sessions'}; + print "sessions.value $sessions\n"; + + exit( 0 ); + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_failed_completed b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_failed_completed new file mode 100755 index 00000000..671146c5 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_failed_completed @@ -0,0 +1,134 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Failed and Completed Faxes\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Failed and Completed Faxes\n"; + print "graph_category asterisk\n"; + print "failed.draw AREA\n"; + print "failed.label Failed faxes\n"; + print "completed.draw AREA\n"; + print "completed.label Completed faxes\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $failed = $faxstats{'FAX Statistics'}{'Failed FAXes'}; + my $completed = $faxstats{'FAX Statistics'}{'Completed FAXes'}; + print "failed.value $failed\n"; + print "completed.value $completed\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_file_error b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_file_error new file mode 100755 index 00000000..f5d5431d --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_file_error @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - File Errors (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of File Errors\n"; + print "graph_category asterisk\n"; + print "t38_file_error.draw AREA\n"; + print "t38_file_error.label T.38 File Errors\n"; + print "g711_file_error.draw AREA\n"; + print "g711_file_error.label G.711 File Errors\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_file_error.value $faxstats{'Spandsp T.38'}{'File Error'}\n"; + print "g711_file_error.value $faxstats{'Spandsp G.711'}{'File Error'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_memory_error b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_memory_error new file mode 100755 index 00000000..5786dad1 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_memory_error @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Memory Errors (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Memory Errors\n"; + print "graph_category asterisk\n"; + print "t38_errors.draw AREA\n"; + print "t38_errors.label T.38 Memory Errors\n"; + print "g711_errors.draw AREA\n"; + print "g711_errors.label G.711 Memory Errors\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_errors.value $faxstats{'Spandsp T.38'}{'Memory Error'}\n"; + print "g711_errors.value $faxstats{'Spandsp G.711'}{'Memory Error'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_negotiations_failed b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_negotiations_failed new file mode 100755 index 00000000..f50d2922 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_negotiations_failed @@ -0,0 +1,133 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Negotiations Failed (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Negotiations Failed\n"; + print "graph_category asterisk\n"; + print "t38_failed.draw AREA\n"; + print "t38_failed.label T.38 Negotiations Failed\n"; + print "g711_failed.draw AREA\n"; + print "g711_failed.label G.711 Negotiations Failed\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + # Some idiot who wrote the SpanDSP code spelled "Negotiation" wrong. + print "t38_failed.value $faxstats{'Spandsp T.38'}{'Negotation Failed'}\n"; + print "g711_failed.value $faxstats{'Spandsp G.711'}{'Negotation Failed'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_nofax b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_nofax new file mode 100755 index 00000000..21d8a942 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_nofax @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - No Faxes (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of No Faxes\n"; + print "graph_category asterisk\n"; + print "t38_nofax.draw AREA\n"; + print "t38_nofax.label No T.38 Faxes\n"; + print "g711_nofax.draw AREA\n"; + print "g711_nofax.label No G.711 Faxes\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_nofax.value $faxstats{'Spandsp T.38'}{'No FAX'}\n"; + print "g711_nofax.value $faxstats{'Spandsp G.711'}{'No FAX'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_protocol_error b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_protocol_error new file mode 100755 index 00000000..fe065bf8 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_protocol_error @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Protocol Errors (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Protocol Errors\n"; + print "graph_category asterisk\n"; + print "t38_proterror.draw AREA\n"; + print "t38_proterror.label T.38 Protocol Errors\n"; + print "g711_proterror.draw AREA\n"; + print "g711_proterror.label G.711 Protocol Errors\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_proterror.value $faxstats{'Spandsp T.38'}{'Protocol Error'}\n"; + print "g711_proterror.value $faxstats{'Spandsp G.711'}{'Protocol Error'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_retries_exceeded b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_retries_exceeded new file mode 100755 index 00000000..dfb0d64c --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_retries_exceeded @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Retries Exceeded (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Retries Exceeded\n"; + print "graph_category asterisk\n"; + print "t38_retries.draw AREA\n"; + print "t38_retries.label T.38 Retries Exceeded\n"; + print "g711_retries.draw AREA\n"; + print "g711_retries.label G.711 Retries Exceeded\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_retries.value $faxstats{'Spandsp T.38'}{'Retries Exceeded'}\n"; + print "g711_retries.value $faxstats{'Spandsp G.711'}{'Retries Exceeded'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_rxtx_protocol_error b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_rxtx_protocol_error new file mode 100755 index 00000000..3efed790 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_rxtx_protocol_error @@ -0,0 +1,138 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Rx and Tx Protocol Errors (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Protocol Errors\n"; + print "graph_category asterisk\n"; + print "t38_rx_proterror.draw AREA\n"; + print "t38_rx_proterror.label T.38 Rx Protocol Errors\n"; + print "t38_tx_proterror.draw AREA\n"; + print "t38_tx_proterror.label T.38 Tx Protocol Errors\n"; + print "g711_rx_proterror.draw AREA\n"; + print "g711_rx_proterror.label G.711 Rx Protocol Errors\n"; + print "g711_tx_proterror.draw AREA\n"; + print "g711_tx_proterror.label G.711 Tx Protocol Errors\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_rx_proterror.value $faxstats{'Spandsp T.38'}{'RX Protocol Error'}\n"; + print "t38_tx_proterror.value $faxstats{'Spandsp T.38'}{'TX Protocol Error'}\n"; + print "g711_rx_proterror.value $faxstats{'Spandsp G.711'}{'RX Protocol Error'}\n"; + print "g711_tx_proterror.value $faxstats{'Spandsp G.711'}{'TX Protocol Error'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_success b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_success new file mode 100755 index 00000000..677d0d72 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_success @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Successful Faxes (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Successful Faxes\n"; + print "graph_category asterisk\n"; + print "t38_success.draw AREA\n"; + print "t38_success.label Successful T.38 Faxes\n"; + print "g711_success.draw AREA\n"; + print "g711_success.label Successful G.711 Faxes\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_success.value $faxstats{'Spandsp T.38'}{'Success'}\n"; + print "g711_success.value $faxstats{'Spandsp G.711'}{'Success'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_switched2t38 b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_switched2t38 new file mode 100755 index 00000000..8b029859 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_switched2t38 @@ -0,0 +1,130 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Switched to T.38\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Switches to T.38\n"; + print "graph_category asterisk\n"; + print "switched.draw AREA\n"; + print "switched.label Switched to T.38\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $switched = $faxstats{'Spandsp G.711'}{'Switched to T.38'}; + print "switched.value $switched\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_train_failure b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_train_failure new file mode 100755 index 00000000..b0852d68 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_train_failure @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Train Failures (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Train Failures\n"; + print "graph_category asterisk\n"; + print "t38_failure.draw AREA\n"; + print "t38_failure.label T.38 Train Failures\n"; + print "g711_failure.draw AREA\n"; + print "g711_failure.label G.711 Train Failures\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_failure.value $faxstats{'Spandsp T.38'}{'Train Failure'}\n"; + print "g711_failure.value $faxstats{'Spandsp G.711'}{'Train Failure'}\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_txrx_attempts b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_txrx_attempts new file mode 100755 index 00000000..7f61b968 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_txrx_attempts @@ -0,0 +1,134 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Tx/Rx Attempts\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Tx and Rx Attempts\n"; + print "graph_category asterisk\n"; + print "transmit.draw AREA\n"; + print "transmit.label Tx Attempts\n"; + print "receive.draw AREA\n"; + print "receive.label Rx Attempts\n"; + exit 0; + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + my $txstats = $faxstats{'FAX Statistics'}{'Transmit Attempts'}; + my $rxstats = $faxstats{'FAX Statistics'}{'Receive Attempts'}; + print "transmit.value $txstats\n"; + print "receive.value $rxstats\n"; + + exit( 0 ); + + + diff --git a/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_unknown_error b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_unknown_error new file mode 100755 index 00000000..10b40354 --- /dev/null +++ b/plugins/asterisk/asterisk_18_fax_spandsp/asterisk_fax_unknown_error @@ -0,0 +1,132 @@ +#!/usr/bin/perl + +=head1 NAME + +asterisk_fax_* - Plugin to monitor Asterisk fax parameters. + +=head1 SUPPORTED VERSION + +This plugin supports Asterisk 1.8.* and the SpanDSP fax modules. + +=head1 CONFIGURATION + +The following configuration parameters are used by this plugin + + [asterisk*] + env.host - hostname to connect to. Defaults to localhost. + env.port - port number to connect to. Defaults to 5038. + env.username - username used for authentication. No default value. + env.secret - secret used for authentication. No default value. + env.timeout - AMI timeout value in seconds. Defaults to 5. + +The "username" and "secret" parameters are mandatory, and have no +defaults. + +=head1 DEFAULT CONFIGURATION + + [asterisk*] + env.username manager + env.secret insecure + env.host 127.0.0.1 + env.port 5038 + env.timeout 5 + +=head1 REQUIRED PERL MODULES + +This plugin requires the Asterisk::AMI module and its dependencies. +Its dependencies can be found here: +http://deps.cpantesters.org/?module=Asterisk::AMI;perl=latest + + +=head1 AUTHOR + +Copyright (C) 2011 Frank DiGennaro + +=head1 LICENSE + +Gnu GPLv2 + +=begin comment + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 dated June, 1991. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +USA. + +If you improve this script please send your version to my email +address with the copyright notice upgrade with your name. + +=end comment + +=head1 MAGIC MARKERS + + #%# family=contrib + +=cut + + use Carp; + use strict; + use Asterisk::AMI; + + eval "use Asterisk::AMI"; + print "Asterisk::AMI not found. Exiting...\n" if $@; + exit( 0 ) if $@; + + if ( $ARGV[ 0 ] and $ARGV[ 0 ] eq "config" ) { + print "graph_title Asterisk Fax - Unknown Errors (T.38 and G.711)\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel Number of Unknown Errors\n"; + print "graph_category asterisk\n"; + print "t38_errors.draw AREA\n"; + print "t38_errors.label T.38 Unknown Errors\n"; + print "g711_errors.draw AREA\n"; + print "g711_errors.label G.711 Unknown Errors\n"; + exit ( 0 ); + }; + + my $host = exists $ENV{ 'host' } ? $ENV{ 'host' } : "127.0.0.1"; + my $port = exists $ENV{ 'port' } ? $ENV{ 'port' } : "5038"; + my $timeout = exists $ENV{ 'timeout' } ? $ENV{ 'timeout' } : "5"; + my $username = $ENV{ 'username' }; + my $secret = $ENV{ 'secret' }; + + my $astman = Asterisk::AMI->new(PeerAddr => "$host", + PeerPort => "$port", + Username => "$username", + Secret => "$secret" + ); + + croak "Unable to connect to asterisk" unless ( $astman ); + my $actionid = $astman->send_action({ Action => 'Command', + Command => 'fax show stats', + $timeout}); + my $response = $astman->get_response( $actionid ); + my $arrayref = $response->{CMD}; + my $null = qq{}; + my ( %faxstats, $section ); + foreach my $line ( @$arrayref ) { + next if ( ( ! $line ) || ( $line =~ /-----------/ ) ); + my ( $key, $value ) = split( ':', $line ); + $section = $key if ( $value eq $null ); + $key =~ s/\s+$//g; + $value =~ s/^\s+//g; + $faxstats{ "$section" }{ "$key" } = $value if ( $value ne $null ); + }; + $astman->disconnect; + + print "t38_errors.value $faxstats{'Spandsp T.38'}{'Unknown Error'}\n"; + print "g711_errors.value $faxstats{'Spandsp G.711'}{'Unknown Error'}\n"; + + exit( 0 ); + + + diff --git a/plugins/other/asterisk-fax b/plugins/other/asterisk-fax deleted file mode 100755 index 35ddb87e..00000000 Binary files a/plugins/other/asterisk-fax and /dev/null differ