Modifications entre les versions 3 et 21 (s'étendant sur 18 versions)
Version 3 à la date du 2006-09-21 21:37:23
Taille: 5861
Éditeur: MoussaNombre
Commentaire:
Version 21 à la date du 2008-02-21 22:09:46
Taille: 9047
Éditeur: localhost
Commentaire: converted to 1.6 markup
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was renamed from Asterisk\AsteriskStats
## page was renamed from AsteriskStats
Ligne 2: Ligne 4:
Outils d'analyse des logs d'Asterisk Site web : http://www.voip-info.org/wiki/index.php?page=Asterisk+CDR+Areski+GUI
Outils d'analyse des logs d'Asterisk Site web : http://areski.net/asterisk-stat-v2/about.php
## Celui ci-dessous n'est pas le site d'origine !
##
http://www.voip-info.org/wiki/index.php?page=Asterisk+CDR+Areski+GUI
Ligne 6: Ligne 11:
- s'assurer que les prérequis sont remplis  * s'assurer que les pré-requis sont remplis : Apache, MySQL et PHP4 (avec support MySQL et GD)
## * récupérer le logiciel : http://areski.net/asterisk-stat-v2/asterisk-stat-v2_0_1.tar.gz
 * effectuer les opérations suivantes dans MySQL :
 {{{
-- créer une base de donnée mysql pour y importer les logs
CREATE DATABASE asterisk;
-- créer un compte utilisateur/motdepasse dans mysql
GRANT ALL ON asterisk.* TO 'asterisk'@'localhost' IDENTIFIED BY 'mot-de-passe-asterisk';
GRANT SELECT ON asterisk.* TO 'asterisk-stat'@'localhost' IDENTIFIED BY 'mot-de-passe-asterisk-stat';
-- basculer dans cette nouvelle base
USE asterisk;
-- créer une table "cdr"
CREATE TABLE cdr (id INT not null AUTO_INCREMENT, calldate DATETIME not null, clid VARCHAR (80) not null, src VARCHAR (80) not null, dst VARCHAR (80) not null, userfield VARCHAR (80) not null, channel VARCHAR (80) not null, dstchannel VARCHAR (80) not null, lastapp VARCHAR (80) not null, lastdata VARCHAR (80) not null, duration INT not null, billsec INT not null, disposition VARCHAR (80) not null, amaflags VARCHAR (80) not null, accountcode VARCHAR (80) not null, PRIMARY KEY (id), INDEX(calldate), INDEX(dst), INDEX(accountcode));
}}}
--------
Ligne 8: Ligne 27:
- créer un compte utilisateur/motdepasse dans mysql  * charger ce source de asterisk-stat : [[attachment:asterisk-stats.tar.gz]] (version avec un début de francisation)
 * l'extraire, par exemple, dans `/var/www/asterisk-stats`
 * modifier le fichier `lib/defines.php` en précisant les paramètres suivants :
  * WEBROOT : `http://votre-serveur/asterisk-stats` (url de l'application)
  * FSROOT : `/var/www/asterisk-stats` (répertoire où se trouve asterisk-stats)
  * HOST : `localhost` (serveur MySQL)
  * PORT : `3306` (port MySQL)
  * USER : `asterisk-stat` (compte utilisateur pour accéder à la base de données)
  * PASS : `mot-de-passe-asterisk-stat` (mot de passe du compte)
  * DBNAME : `asterisk` (nom de la base de données)
  * DB_TYPE : `mysql` (type de base de données)
  * DB_TABLENAME : `cdr` (table créé)
Ligne 10: Ligne 40:
- créer une base de donnée mysql pour les y importer les logs  * ajouter un alias dans Apache pour l'URL de l'application : `Alias /asterisk-stats /var/www/asterisk-stats/`
Ligne 12: Ligne 42:
- créer une table "cdr" :  * importer les logs Asterisk (`/var/log/asterisk/cdr-csv/Master/csv`) en utilisant le script ci-dessous qu'on peut nommer `importcdr.php`. Pensez à ajuster les paramètres de connexion à la base de données.
 . ''Source : [[http://www.voip-info.org/wiki/view/Asterisk+CDR+csv+mysql+import]]''
Ligne 14: Ligne 45:
%% CREATE TABLE cdrtable (id INT not null AUTO_INCREMENT, calldate DATE not null, clid VARCHAR (80) not null, src VARCHAR (80) not null, dst VARCHAR (80) not null, userfield VARCHAR (80) not null, channel VARCHAR (80) not null, dstchannel VARCHAR (80) not null, lastapp VARCHAR (80) not null, lastdata VARCHAR (80) not null, duration INT not null, billsec INT not null, disposition VARCHAR (80) not null, amaflags VARCHAR (80) not null, accountcode VARCHAR (80) not null, PRIMARY KEY (id))
%%
NB: Notez qu'Asterisk est capable d'écrire directement les CDR dans une série de base de données (en natif dans PostgreSQL/TDS/ODBC/SQLite et avec asterisk-addons dans MySQL). Si vous utilisez déjà un pilote CDR base de données (cdr_*.conf) vous n'aurez besoin ni de cette importation des CDR CSV, ni du cron décrit ci-dessous.
Ligne 17: Ligne 47:
- télécharger et désarchiver la sourse de asterisk-stat, par exemple dans /var/www/asterisk-stats

- modifier le fichier lib/defines.php en précisant les paramètres

 . - WEBROOT : url de l'application (http://votre-serveur/asterisk-stats)
 . - FSROOT : répertoire où se trouve asterisk-stats (/var/www/asterisk-stats)
 . - HOST : localhost
 . - PORT : 5432
 . - USER : compte utilisateur pour accéder à la base de données
 . - PASS : mot de passe du compte
 . - DBNAME : nom de la base de données
 . - DB_TYPE : type de base de données (mysql)
 . - DB_TABLENAME : table créé (cdr)
- ajouter un alias dans Apache pour l'url de l'application (Alias /asterisk-stats /var/www/asterisk-stats/)

- importer les logs asterisk (/var/log/asterisk/cdr-csv/Master/csv) en utilisant le script ci-dessous qu'on peut nommer importcdr.php (ajuster les paramètres de connexion à la base de données). src : http://www.voip-info.org/wiki/view/Asterisk+CDR+csv+mysql+import

%%
{{{
Ligne 37: Ligne 50:
//*** process asterisk cdr file (Master.csv) insert usage // * values into a mysql database which is created for use // * with the Asterisk_addons cdr_addon_mysql.so // * The script will only insert NEW records so it is safe // * to run on the same log over-and-over such as in the // * case where logs have not been rotated. // * // * Author: John Lange ( john.lange@open-it.ca ) // * Date: May 4, 2005. Updated July 21, 2005 // * // * Here is what the script does: // * // * 1) Find the last log entry in the database cdr table. // * 2) scan the asterisk logs until the dates are larger than the last log entry (so we don't duplicate entries) // * 3) parse each row from the text log and insert it into the database. // * //*** process asterisk cdr file (Master.csv) insert usage
// * values into a mysql database which is created for use
// * with the Asterisk_addons cdr_addon_mysql.so
// * The script will only insert NEW records so it is safe
// * to run on the same log over-and-over such as in the
// * case where logs have not been rotated.
// *
// * Author: John Lange ( john.lange@open-it.ca )
// * Date: May 4, 2005. Updated July 21, 2005
// *
// * Here is what the script does:
// *
// * 1) Find the last log entry in the database cdr table.
// * 2) scan the asterisk logs until the dates are larger than the last log entry (so we don't duplicate entries)
// * 3) parse each row from the text log and insert it into the database.
// *
Ligne 39: Ligne 67:
$locale_db_host = 'localhost';  $locale_db_host = 'localhost';
Ligne 47: Ligne 75:
Ligne 48: Ligne 77:
    $logfile = $argv[1];
} else {
    print("Usage ".$argv[0]." <filename>\n");
    print("Where filename is the path to the Asterisk csv file to import (Master.csv)\n");
    print("This script is safe to run multiple times on a growing log file as it only imports records that are newer than the database\n");
    exit(0);
}
Ligne 49: Ligne 85:
 . $logfile = $argv[1];
} else {
// connect to db
$link = mysql_connect($locale_db_host, $locale_db_login, $locale_db_pass);
if (!$link) {
   die('Could not connect: ' . mysql_error());
   }
Ligne 52: Ligne 91:
 . print("Usage ".$argv[0]." <filename>\n"); print("Where filename is the path to the Asterisk csv file to import (Master.csv)\n"); print("This script is safe to run multiple times on a growing log file as it only imports records that are newer than the database\n"); exit(0);
} // connect to db $link = mysql_connect($locale_db_host, $locale_db_login, $locale_db_pass); if (!$link) {
//echo "Connected successfully\n";
mysql_select_db($locale_db_name, $link) or die("Could not select database $locale_db_name");
Ligne 55: Ligne 94:
 . die('Could not connect: ' . mysql_error()); }
//echo "Connected successfully\n"; mysql_select_db($locale_db_name, $link) or die("Could not select database $locale_db_name");
/** 1) Find the last log entry **/
// look in cdr table to see when the last entry was made.
// this establishes the starting point for the asterisk data.
$sql="SELECT UNIX_TIMESTAMP(calldate) as calldate".
    " FROM cdr".
    " ORDER BY calldate DESC".
    " LIMIT 1";
Ligne 58: Ligne 102:
/** 1) Find the last log entry **/ // look in cdr table to see when the last entry was made. // this establishes the starting point for the asterisk data. $sql="SELECT UNIX_TIMESTAMP(calldate) as calldate".

 . " FROM cdr". " ORDER BY calldate DESC". " LIMIT 1";
Ligne 62: Ligne 103:

. print("Invalid query: " . mysql_error()."\n"); print("SQL: $sql\n"); die();
} $result_array = mysql_fetch_array($result); //$lasttimestamp = date("Y-m-d H:i:s", $result_array['voip_stamp']); $lasttimestamp = $result_array['calldate'];
    print("Invalid query: " . mysql_error()."\n");
   
print("SQL: $sql\n");
   
die();
}
$result_array = mysql_fetch_array($result);
//$lasttimestamp = date("Y-m-d H:i:s", $result_array['voip_stamp']);
$lasttimestamp = $result_array['calldate'];
Ligne 68: Ligne 113:
$rows = 0; $handle = fopen($logfile, "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $rows = 0;
$handle = fopen($logfile, "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    // NOTE: the fields in Master.csv can vary. This should work by default on all installations but you may have to edit the next line to match your configuration
    list($accountcode,$src, $dst, $dcontext, $clid, $channel, $dstchannel, $lastapp, $lastdata, $start, $answer, $end, $duration,
     $billsec, $disposition, $amaflags ) = $data;
Ligne 70: Ligne 120:
 . // NOTE: the fields in Master.csv can vary. This should work by default on all installations but you may have to edit the next line to match your configuration list($accountcode,$src, $dst, $dcontext, $clid, $channel, $dstchannel, $lastapp, $lastdata, $start, $answer, $end, $duration, $billsec, $disposition, $amaflags ) = $data; // 3) parse each row and add to the database
 if(strtotime($end) > $lasttimestamp) { //
we found a new record so add it to the DB
  . $sql = "INSERT INTO cdr (calldate, clid, src, dst, userfield, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode)
   . VALUES('$end', '".mysql_real_escape_string($clid)."', '$src', '$dst', '$dcontext', '$channel', '$dstchannel', '$lastapp', '$lastdata', '$duration', '$billsec',
    . '$disposition', '$amaflags', '$accountcode')";
  if(!($result2 = mysql_query($sql, $link))) {
   . print("Invalid query: " . mysql_error()."\n"); print("SQL: $sql\n"); die();
  } $rows++;
 }
} fclose($handle);
    // 3) parse each row and add to the database
    i
f(strtotime($end) > $lasttimestamp) { // we found a new record so add it to the DB
        $sql = "INSERT INTO cdr (calldate, clid, src, dst, userfield, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode)
                   VALUES('$end', '".mysql_real_escape_string($clid)."', '$src', '$dst', '$dcontext', '$channel', '$dstchannel', '$lastapp', '$lastdata', '$duration', '$billsec',
                    '$disposition', '$amaflags', '$accountcode')";
       if(!($result2 = mysql_query($sql, $link))) {
            print("Invalid query: " . mysql_error()."\n");
           
print("SQL: $sql\n");
           
die();
        }
       
$rows++;
    }
}
fclose($handle);
Ligne 84: Ligne 138:
%% }}}
Ligne 86: Ligne 140:
'''ASTUCES''' : pour récuperer tous les logs (y compris ceux déjà archivés), créer un fichier tous-les-log.csv (''cat /var/log/asterisk/cdr-csv/Master.csv* >> tous-les-log.csv'') '''ASTUCES''' : pour récuperer tous les logs (y compris ceux déjà archivés), créer un fichier tous-les-log.csv (`cat /var/log/asterisk/cdr-csv/Master.csv* >> tous-les-log.csv`)
Ligne 88: Ligne 142:
Lancer l'importation : ''php importcdr.php tous-les-log.csv'' Lancer l'importation : `php importcdr.php tous-les-log.csv`
Ligne 90: Ligne 144:
'''NB''': il faudra créer, après, une tâche cron, pour lancer régulièrement l'importation '''NB''': Il faudra créer, après, une tâche cron, pour lancer régulièrement l'importation.
Ligne 92: Ligne 146:
Pour utiliser l'application, taper http://votre-serveur/asterisk-stats, et voilà. NB : l'interface est en anglais. Il suffit de franciser soi-même. Pour utiliser l'application, taper `http://votre-serveur/asterisk-stats`, et voilà.
Ligne 94: Ligne 148:
Voici ce que ça donne à Montréal : http://voip.ca.auf.org/stats/?s=1, choisir un intervalle de date et cliquer sur "Search". Voici ce que ça donne à Montréal : [[http://tech.auf/stats-voip/?s=1]], choisir un intervalle de date et cliquer sur "Search".

=== Respect de la confidentialité ===

Voici un petit script réalisé par [[JeromeSantini|Tini]] pour anonymiser un peu nos stats :
{{{
#!/usr/bin/perl -w
# -*-cperl-*-
# /usr/local/sbin/asterisk-anonymize-csv.pl

# mettez ici les 5 premiers chiffres de votre implantation
# (un guru Perl pourrait récupérer ça de la conf' asterisk...)
$PREFIX = "00844";

while(<>)
{
  chomp;

  s:IAX2/[a-z][^"]*":IAX2/XXX":gi;
  s:IAX2_[a-z][^/]*/:IAX2_XXX/:gi;
  my @tableau=split(/,/);

  $tableau[1] =~ s/(\d{5})\d*/$1.../;
  $tableau[2] =~ s/(\d{5})\d*/$1.../;
  $tableau[2] = '"'.$PREFIX.'..."' if $tableau[2] =~ /^"[1-9]/;
  $tableau[4] = '"XXX"';
  $tableau[8] =~ s/\d+/XXX/ if $tableau[7] =~ /VoiceMail/;
  print join(",",@tableau),"\n";
}
}}}

Il s'utilise simplement comme un filtre : `asterisk-anonymize-csv.pl <Master.csv >Master-anonyme.csv`

Vous pouvez également l'utiliser dans la rotation des logs pour générer automatiquement un fichier de stats anonyme mensuel. Pour cela modifiez le fichier `/etc/logrotate.d/asterisk` comme suit :
{{{
/var/log/asterisk/debug /var/log/asterisk/event_log /var/log/asterisk/messages /var/log/asterisk/cdr-csv/Master.csv {
        monthly
        missingok
        rotate 12
        sharedscripts
        prerotate
                today=$(date +%Y-%m-%d)
                /usr/local/sbin/asterisk-anonymize-csv.pl </var/log/asterisk/cdr-csv/Master.csv >/srv/www/cia/Master-${today}.csv
                /usr/local/sbin/asterisk-import-cdr.php /srv/www/cia/Master-${today}.csv
        endscript
        postrotate
                /usr/sbin/invoke-rc.d asterisk logger-reload
        endscript
}
}}}

Il ne vous reste alors plus qu'à rendre le répertoire `/var/www/cia/` accessible en ligne.

INSTALLATION ASTERISK-STATS

Outils d'analyse des logs d'Asterisk Site web : http://areski.net/asterisk-stat-v2/about.php

NB : ces notes sont écrites après une journée de "dur boulot" :(

  • s'assurer que les pré-requis sont remplis : Apache, MySQL et PHP4 (avec support MySQL et GD)

  • effectuer les opérations suivantes dans MySQL :
    -- créer une base de donnée mysql pour y importer les logs
    CREATE DATABASE asterisk;
    -- créer un compte utilisateur/motdepasse dans mysql
    GRANT ALL ON asterisk.* TO 'asterisk'@'localhost' IDENTIFIED BY 'mot-de-passe-asterisk';
    GRANT SELECT ON asterisk.* TO 'asterisk-stat'@'localhost' IDENTIFIED BY 'mot-de-passe-asterisk-stat';
    -- basculer dans cette nouvelle base
    USE asterisk;
    -- créer une table "cdr"
    CREATE TABLE cdr (id INT not null AUTO_INCREMENT, calldate DATETIME not null, clid VARCHAR (80) not null, src VARCHAR (80) not null, dst VARCHAR (80) not null, userfield VARCHAR (80) not null, channel VARCHAR (80) not null, dstchannel VARCHAR (80) not null, lastapp VARCHAR (80) not null, lastdata VARCHAR (80) not null, duration INT not null, billsec INT not null, disposition VARCHAR (80) not null, amaflags VARCHAR (80) not null, accountcode VARCHAR (80) not null, PRIMARY KEY (id), INDEX(calldate), INDEX(dst), INDEX(accountcode));


  • charger ce source de asterisk-stat : asterisk-stats.tar.gz (version avec un début de francisation)

  • l'extraire, par exemple, dans /var/www/asterisk-stats

  • modifier le fichier lib/defines.php en précisant les paramètres suivants :

    • WEBROOT : http://votre-serveur/asterisk-stats (url de l'application)

    • FSROOT : /var/www/asterisk-stats (répertoire où se trouve asterisk-stats)

    • HOST : localhost (serveur MySQL)

    • PORT : 3306 (port MySQL)

    • USER : asterisk-stat (compte utilisateur pour accéder à la base de données)

    • PASS : mot-de-passe-asterisk-stat (mot de passe du compte)

    • DBNAME : asterisk (nom de la base de données)

    • DB_TYPE : mysql (type de base de données)

    • DB_TABLENAME : cdr (table créé)

  • ajouter un alias dans Apache pour l'URL de l'application : Alias /asterisk-stats /var/www/asterisk-stats/

  • importer les logs Asterisk (/var/log/asterisk/cdr-csv/Master/csv) en utilisant le script ci-dessous qu'on peut nommer importcdr.php. Pensez à ajuster les paramètres de connexion à la base de données.

  • Source : http://www.voip-info.org/wiki/view/Asterisk+CDR+csv+mysql+import

NB: Notez qu'Asterisk est capable d'écrire directement les CDR dans une série de base de données (en natif dans PostgreSQL/TDS/ODBC/SQLite et avec asterisk-addons dans MySQL). Si vous utilisez déjà un pilote CDR base de données (cdr_*.conf) vous n'aurez besoin ni de cette importation des CDR CSV, ni du cron décrit ci-dessous.

<?php

//*** process asterisk cdr file (Master.csv) insert usage 
// * values into a mysql database which is created for use
// * with the Asterisk_addons cdr_addon_mysql.so 
// * The script will only insert NEW records so it is safe 
// * to run on the same log over-and-over such as in the 
// * case where logs have not been rotated. 
// * 
// * Author: John Lange ( john.lange@open-it.ca ) 
// * Date: May 4, 2005. Updated July 21, 2005 
// * 
// * Here is what the script does: 
// * 
// * 1) Find the last log entry in the database cdr table. 
// * 2) scan the asterisk logs until the dates are larger than the last log entry (so we don't duplicate entries) 
// * 3) parse each row from the text log and insert it into the database. 
// *

 $locale_db_host  = 'localhost';

 $locale_db_name  = '.......'; //ajuster

 $locale_db_login = '.....';   //ajuster

 $locale_db_pass  = '.......';  //ajuster


if($argc == 2) {
    $logfile = $argv[1];
} else {
    print("Usage ".$argv[0]." <filename>\n");
    print("Where filename is the path to the Asterisk csv file to import (Master.csv)\n");
    print("This script is safe to run multiple times on a growing log file as it only imports records that are newer than the database\n");
    exit(0);
}

// connect to db
$link = mysql_connect($locale_db_host, $locale_db_login, $locale_db_pass);
if (!$link) {
   die('Could not connect: ' . mysql_error());
   }

//echo "Connected successfully\n";
mysql_select_db($locale_db_name, $link) or die("Could not select database $locale_db_name");

/** 1) Find the last log entry **/
// look in cdr table to see when the last entry was made.
// this establishes the starting point for the asterisk data.
$sql="SELECT UNIX_TIMESTAMP(calldate) as calldate".
    "  FROM cdr".
    " ORDER BY calldate DESC".
    " LIMIT 1";

if(!($result = mysql_query($sql, $link))) {
    print("Invalid query: " . mysql_error()."\n");
    print("SQL: $sql\n");
    die();
}
$result_array = mysql_fetch_array($result);
//$lasttimestamp = date("Y-m-d H:i:s", $result_array['voip_stamp']);
$lasttimestamp = $result_array['calldate'];

//** 2) Find new records in the asterisk log file. **

$rows = 0;
$handle = fopen($logfile, "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    // NOTE: the fields in Master.csv can vary. This should work by default on all installations but you may have to edit the next line to match your configuration
    list($accountcode,$src, $dst, $dcontext, $clid, $channel, $dstchannel, $lastapp, $lastdata, $start, $answer, $end, $duration,
     $billsec, $disposition, $amaflags ) = $data;

    // 3) parse each row and add to the database
    if(strtotime($end) > $lasttimestamp) { // we found a new record so add it to the DB
        $sql = "INSERT INTO cdr (calldate, clid, src, dst, userfield, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode)
                   VALUES('$end', '".mysql_real_escape_string($clid)."', '$src', '$dst', '$dcontext', '$channel', '$dstchannel', '$lastapp', '$lastdata', '$duration', '$billsec',
                    '$disposition', '$amaflags', '$accountcode')";
        if(!($result2 = mysql_query($sql, $link))) {
            print("Invalid query: " . mysql_error()."\n");
            print("SQL: $sql\n");
            die();
        }
        $rows++;
    }
}
fclose($handle);

print("$rows imported\n");

?>

ASTUCES : pour récuperer tous les logs (y compris ceux déjà archivés), créer un fichier tous-les-log.csv (cat /var/log/asterisk/cdr-csv/Master.csv* >> tous-les-log.csv)

Lancer l'importation : php importcdr.php tous-les-log.csv

NB: Il faudra créer, après, une tâche cron, pour lancer régulièrement l'importation.

Pour utiliser l'application, taper http://votre-serveur/asterisk-stats, et voilà.

Voici ce que ça donne à Montréal : http://tech.auf/stats-voip/?s=1, choisir un intervalle de date et cliquer sur "Search".

Respect de la confidentialité

Voici un petit script réalisé par Tini pour anonymiser un peu nos stats :

# -*-cperl-*-
# /usr/local/sbin/asterisk-anonymize-csv.pl

# mettez ici les 5 premiers chiffres de votre implantation
# (un guru Perl pourrait récupérer ça de la conf' asterisk...)
$PREFIX = "00844";

while(<>)
{
  chomp;

  s:IAX2/[a-z][^"]*":IAX2/XXX":gi;
  s:IAX2_[a-z][^/]*/:IAX2_XXX/:gi;
  my @tableau=split(/,/);

  $tableau[1] =~ s/(\d{5})\d*/$1.../;
  $tableau[2] =~ s/(\d{5})\d*/$1.../;
  $tableau[2] = '"'.$PREFIX.'..."' if $tableau[2] =~ /^"[1-9]/;
  $tableau[4] = '"XXX"';
  $tableau[8] =~ s/\d+/XXX/ if $tableau[7] =~ /VoiceMail/;
  print join(",",@tableau),"\n";
}

Il s'utilise simplement comme un filtre : asterisk-anonymize-csv.pl <Master.csv >Master-anonyme.csv

Vous pouvez également l'utiliser dans la rotation des logs pour générer automatiquement un fichier de stats anonyme mensuel. Pour cela modifiez le fichier /etc/logrotate.d/asterisk comme suit :

/var/log/asterisk/debug /var/log/asterisk/event_log /var/log/asterisk/messages /var/log/asterisk/cdr-csv/Master.csv {
        monthly
        missingok
        rotate 12
        sharedscripts
        prerotate
                today=$(date +%Y-%m-%d)
                /usr/local/sbin/asterisk-anonymize-csv.pl </var/log/asterisk/cdr-csv/Master.csv >/srv/www/cia/Master-${today}.csv
                /usr/local/sbin/asterisk-import-cdr.php /srv/www/cia/Master-${today}.csv
        endscript
        postrotate
                /usr/sbin/invoke-rc.d asterisk logger-reload
        endscript
}

Il ne vous reste alors plus qu'à rendre le répertoire /var/www/cia/ accessible en ligne.

Asterisk/Stats (dernière édition le 2008-02-21 22:09:46 par localhost)