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; |
Laisser un commentaire