Intégration de la solution CDR dans Asterisk

Intégration de la solution CDR dans Asterisk
Le passage à Asterisk dans le cadre d’une professionnelle, nécessite d’utiliser les statistiques. La plupart sont générées via des tickets d’appel, les CDR (Call Detail Record). Les applications d’enregistrement des détails des appels ou CDR (Call Detail Records) permettent de garder une trace de l’activité du serveur Asterisk. On va mise en place d’une base de données sur MySQL afin de stocker ces CDR.
Avants il faut installer MySQL sur notre serveur VOIP (ou les deux serveurs – Asterisk et MySQL-  peut être mis sur les machines différentes)
SI vous utilisez Ubuntu :

# apt-get install mysql-server asterisk-mysql

On utilise la console mysql avec les permissions de root :

# mysql -u root -p

On va créer la nouvelle base de données :

> CREATE DATABASE `asterisk`;

On va créer l’utilisateur ‘asterisk’ avec mot de passe  ‘password’ et avec l’accès nécessaire dans cette database :

> GRANT ALL PRIVILEGES ON `asterisk`.* to 'asterisk'@'localhost'
IDENTIFIED BY 'password';

Maintenait  on va créer une nouvelle table dans la base de données:

> use asterisk ;
> 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 ''
);

ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );

Enfin, le fichier cdr_mysql.conf contiendra la configuration permettant de se connecter à la base de données :

[global]
hostname=127.0.0.1
dbname=asterisk
table=cdr
password=pa$$w0rd
user=asterisk
port=3306

[columns]
alias start => calldate
alias callerid => clid

# asterisk -rx 'reload'

Vérification la connexion avec la base de données :

# asterisk -r
> cdr mysql status
“Connected to asteriskdb@127.0.0.1, port 3306 using table
cdr for 1 hours, 22 minutes, 39 seconds.”

Chaque CDR est désormais sauvegardé dans le fichier au format CSV et également dans la base de données.
Maintenant  on peut recevoir l’information avec les requêtes SQL ou mettre en place  Asterisk-CDR-Viewer.

Exemple de requête SQL:

> SELECT * FROM `cdr` ORDER BY `calldate` DESC LIMIT 10;

Une réponse à « Intégration de la solution CDR dans Asterisk »

Laisser un commentaire