Asterisk CDR MySql

Installer Asterisk CDR Mysql 

Exigencs Asterisk CRD

  •  Apache / http server
  •  Php
  •  Postgresql or mysql
  •  Php-pgSQL or Php-MySQL
  •  Need GD library
  •  Jpgraph_lib (inclued)

 

Par défaut Asterisk CDR génère des enregistrements dans un fichier CSV situés dans le répertoire /var/log/asterisk/cdr-csv.

Asterisk cdr peut également stocker des enregistrements CDR dans une base de données comme MySQL ou PostgreSQL comme une alternative aux fichiers CSV.

Si vos enregistrements CDR sont stockées dans une base de données, vous pouvez installer un analyseur basé sur le Web CDR facilement gérer et analyser vos enregistrements CDR comme Asterisk stat par :

 

 

Installer Asterisk stat

http://areski.net.

Asterisk-statFonctionnalités d’Asterisk stat

  • CDR report (monthly or daily)
  • Monthly traffic
  • Daily load
  • Compare call load with previous days
  • Many criterias to define the report
  • Export CDR report to PDF and CSV
  • Support MySQL and PostgreSQL database
  • Many others

 

Pour installer asterisk-stat, vous devez installer un serveur HTTP, PHP et MySQL. Je suppose que vous utilisez CentOS et avoir Asterisk installé dans votre serveur.

http://www.cahilig.org/install-asterisk-12-centos-4-and-centos-5

or download the auto install script form

http://www.cahilig.org/install-asterisk-12-auto-install-script-centos-4-and-centos-5.

Pour commencer, installez le serveur web Apache, PHP et MySQL. Exécutez cette commande dans la console.

# yum install httpd php php-mysql php-gd mysql mysql-devel mysql-server

Démarrer Apache et MySQL et assurez-vous qu’il se déroulera pendant le temps de démarrage en tapant cette commande.

# service httpd start
# chkconfig httpd on
# service mysqld start
# chkconfig mysqld on

Allez dans /usr/src/  télécharger et installer asterisk-addon.

# wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-1.2.8.tar.gz
# tar -zxvf asterisk-addons-1.2.8.tar.gz
# make clean
# make
# make install

Copiez le fichier à partir du répertoire cdr_mysql.conf.sample configs dans /etc/asterisk, renommez-le en cdr_mysql.conf. Modifier la configuration de base de données.

[global]
hostname=localhost
dbname=asteriskcdrdb
table=cdr
password=password
user=asterisk
port=3306

Ensuite, éditez votre fichier /etc/asterisk/modules.conf et ajoutez la cdr_addon_mysql.so dans la section [global].

[global]
load => cdr_addon_mysql.so

Connectez-vous à votre serveur MySQL et créer un mot de passe root pour sécuriser votre serveur, puis créer une base de données pour stocker vos enregistrements.

# mysql -u root
mysql> SET PASSWORD FOR root@localhost = PASSWORD ('password');
mysql> Create Asterisk CDR databases and user to the databases.
mysql> create database asteriskcdrdb;
mysql> GRANT SELECT,INSERT ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY 'password';
mysql> Create a table called cdr under the database name you will be using the following schema.
mysql> USE asteriskcdrdb;
mysql> CREATE TABLE cdr ( calldate datetime NOT NULL default '0000-00-00 00:00:00', clid varchar(80) NOT NULL default '', src varchar(80) NOT NULL default '', dst varchar(80) NOT NULL default '', dcontext varchar(80) NOT NULL default '', channel varchar(80) NOT NULL default '', dstchannel varchar(80) NOT NULL default '', lastapp varchar(80) NOT NULL default '', lastdata varchar(80) NOT NULL default '', duration int(11) NOT NULL default '0', billsec int(11) NOT NULL default '0', disposition varchar(45) NOT NULL default '', amaflags int(11) NOT NULL default '0', accountcode varchar(20) NOT NULL default '', uniqueid varchar(32) NOT NULL default '', userfield varchar(255) NOT NULL default '' );quit

Se connecter à votre serveur MySQL et créer un mot de passe root pour sécuriser votre serveur, puis redémarrez votre PBX, commencer à faire un appel et vérifier si le CDR est écrit dans votre base de données.

mysql> use asteriskcdrdb;
mysql>  select uniqueid, src, calldate from cdr;

Vous pouvez également vérifier dans la console en tapant la commande  :

# asterisk -ncrvvvvvvvvvv
# cdr mysql status

Il permet d’afficher le message exactement comme ceci :

Connecté à asteriskcdrdb @ localhost en utilisant la table cdr pour 0 heures, 15 minutes, 15 secondes.
Écrit 1 enregistrements depuis le dernier redémarrage.

Si vous voyez le message de ce type en haut, vous avez réussi à installer asterisk-addon.

Allez dans /var/www/html/ et saisir asterisk-stats package à partir de:

http://areski.net

# wget http://areski.net/asterisk-stat-v2/asterisk-stat-v2_0_1.tar.gz
# tar -zxvf asterisk-stat-v2_0_1.tar.gz

Renommer asterisk-stat-v2_0_1 à asterisk-stats et modifier le defines.php dans le répertoire /lib.

define ("WEBROOT", "http://hostname/asterisk-stats/");
define ("FSROOT", "/var/www/html/asterisk-stats/");

define ("LIBDIR", FSROOT."lib/");

define ("HOST", "localhost");
define ("PORT", "3306");
define ("USER", "asterisk");
define ("PASS", "password");
define ("DBNAME", "asteriskcdrdb");
define ("DB_TYPE", "mysql");

define ("DB_TABLENAME", "cdr");

Créer un lien symbolique de cdr.php à index.php

# ln -sf cdr.php index.php

Et l’URL serait:
http://localhost/asterisk-stats

La version v2.0.1 a un bogue quand vous exportez des CDR au format pdf.
Pour corriger le bogue, vous devez changer la ligne 5 du export_pdf.php à partir de:

include_once(dirname(FILE) . "/lib/fpdf.php');

Par:

include_once(dirname(FILE) . "/lib/fpdf.php");

Il devrait être bien maintenant, vous pouvez exporter votre CDR au format PDF.

Votre asterisk-stat est fait, mais il n’est pas encore assuré, tout le monde peut se connecter sans authentification. Si vous voulez mettre une authentification à votre Asterisk-stat, il suffit de suivre ce tutoriel. Il faudra visiteurs du site Web de se connecter avec un nom d’utilisateur et mot de passe.

Vous pouvez supprimer le CDR dans votre base de données MySQL avec phpMyAdmin.

 

4 commentaires sur “Asterisk CDR MySql

  1. Ping : bat keo bong da

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

* Copy This Password *

* Type Or Paste Password Here *