Vous êtes sur la page 1sur 4

Asterisk: stockage des CDR dans MySQL

Page 1 sur 4

Mise en place de 802.1x | Page principale | FON: un hot-spot Wi-Fi moindre cot

Asterisk: stockage des CDR dans MySQL


Publi le: 04/07/2006 Catgories: ToIP Le passage Asterisk dans le cadre dune installation srieuse, voir professionnelle, ncessite de se pencher sur les statistiques. La plupart sont gnres via des tickets dappel, les CDR (Call Detail Record). Nous allons commencer notre srie sur les statistiques par la mise en place dune base de donnes sur MySQL afin de stocker ces CDR. Tous les autocommutateurs du march gnrent ce type de ticket qui peuvent tre traits de faon assez diffrente. Il fut un temps ou lon imprimait au fil de leau sur du papier pour un vrification visuelle, puis on a commenc stocker ces informations dans un PC jouxtant le PABX. Aujourdhui il est de bon ton de garder les informations directement dans le PABX puisque celui-ci intgre souvent un systme informatique avec un disque dur et donc une capacit de stockage. Asterisk dispose de plusieurs moyens de stocker linformation dont un qui lui est propre: le fichier texte. Celui-ci permet de faire un suivi rapide et ventuellement un peu de scripting des fins statistiques. On retrouve toutes les informations ayant permis de gnrer lappel, son statut, la dure totale y compris le traitement, la dure facturable avec les deux parties dcroches. Sur une installation gnrant un nombre important dappel, rechercher lun dentre eux dans un fichier nest pas des plus simples, il impose de plus un accs direct au serveur Asterisk. On optera donc pour un stockage centralis, qui pourra ainsi consolider les CDR de plusieurs serveurs Asterisk rpartis par exemple sur plusieurs sites de production. La mthode SQL est rpandue car elle autorise un retraitement rapide des donnes lorsquelles sont organises, ce qui est le cas ici, tous les tickets ont la mme structure. Le choix se porte naturellement vers une base PostgreSQL ou MySQL, cette dernire implmentation est celle retenue ici pour lexemple. Linstallation est simple ds lors quun server MySQL est disponible via le rseau IP. Dissocier le serveur Asterisk de la base de donnes me parat tre une bonne solution afin de pouvoir ajouter dautres serveurs au fur et mesure du besoin dune part et pouvoir disposer dun frontal web accdant simplement la base SQL. On cre dans le serveur de base de donnes une base spcifique et ddie Asterisk, une seule table pour dmarrer est ncessaire, elle contiendra les CDR. La cration de la base et de la table peut seffectuer ainsi directement en ligne sur le serveur MySQL ou alors avec un phpMyAdmin:
CREATE DATABASE asterisk; GRANT INSERT ON asterisk.* TO asterisk-cdr@% IDENTIFIED BY 'asterisk-pwd'; 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 '',

http://www.cis-consultants.com/blog/archives/2006/07/asterisk_et_les.html

06/02/2007

Asterisk: stockage des CDR dans MySQL

Page 2 sur 4

`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 '', `userfield` varchar(255) NOT NULL default '' ); ALTER TABLE `cdr` ADD INDEX ( `calldate` ); ALTER TABLE `cdr` ADD INDEX ( `dst` ); ALTER TABLE `cdr` ADD INDEX ( `accountcode` );

Le travail important est effectuer sur le serveur Asterisk. Il faut ajouter les modules de gestion de la base MySQL et configurer lenvoi des CDR vers la base. Pour la premire partie on repartira des sources compils dAsterisk et de son module spcifique asterisk-addons ( cette heure en version 1.2.3 pour un Asterisk 1.2.9). Les packages de dveloppement MySQL client et serveur doivent tre installs, sur notre Fedora nous passerons par yum install avec les packages suivants: mysqlclient10.i386, mysql.i386 et mysql-devel.i386. Puis une recompilation des addons permettra dobtenir les trois modules Asterisk requis:
asterisk*CLI> show modules like sql Module Description cdr_addon_mysql.so MySQL CDR Backend res_config_mysql.so MySQL RealTime Configuration Driver app_addon_sql_mysql.so Simple Mysql Interface Use Count 0 0 0

En terme de configuration il faut indiquer dans le fichier modules.conf le chargement de la partie MySQL par lajout des lignes suivantes, attention un redmarrage de lAsterisk est requis.
preload => cdr_addon_mysql.so preload => res_config_mysql.so

Enfin, le fichier cdr_mysql.conf contiendra la configuration permettant de se connecter la base de donnes:


[global] hostname=mysql_server.cis-consultants.com dbname=asterisk table=cdr password=asterisk-pwd user=asterisk-cdr

Chaque CDR est dsormais sauvegard dans le fichier au format CSV et galement dans la base de donnes. Il ne reste plus qu travailler sur le frontal de prsentation des donnes et ventuellement sur des tables complmentaires permettant lhistorisation efficace des donnes, nous reviendrons plus tard sur cette partie. La table cdr cre est proche du format interne dAsterisk mais pas forcment adquat un traitement statistiques ou pour de la refacturation, notamment garder des informations sur les identifiants SIP de chaque appel ne prsente que peu dintrt puisquils nont de sens quau moment de lappel. De plus, lensemble des appels est prsent dans cette base, les entrants, les sortants et les appels internes, quils aient abouti ou pas. Post par Alexandre Chauvin-Hameau le 04/07/2006 18:43

Votes
http://www.cis-consultants.com/blog/archives/2006/07/asterisk_et_les.html 06/02/2007

Asterisk: stockage des CDR dans MySQL

Page 3 sur 4

Cet article vous a intress, dite le nous: 23 / 14

Commentaires Ajouter un commentaire


Nom:

Courriel:

URL: Se souvenir de moi? Yes No

Commentaire: (you may use HTML tags for style)

Code:
Relecture Publie

Copyright 1998-2006 - CIS Consultants - 41, rue Saint Augustin - 75002 Paris, France - Mtro OPERA Tlphone: +33 143 125 747 / +33 872 645 747, courriel: contact@cis-consultants.com

Vous cherchez voluer dans votre carrire, nous cherchons des ingnieurs motivs et comptants pour nos clients, rejoignez une quipe dynamique et implique. Vous abonner:
email@xyz.org

Sur le fil: RSS ATOM Autres agrgateurs

Web

www.cis-consultants.com

http://www.cis-consultants.com/blog/archives/2006/07/asterisk_et_les.html

06/02/2007

Asterisk: stockage des CDR dans MySQL

Page 4 sur 4

Recherche Google

accueil

Bibliothque Data Management Information Produit Rseau Scurit ToIP Wi-Fi Effacement rel de donnes Cache DNS et Windows XP Mots de passe inchangs Canal Wi-Fi Complexit de mot de passe 5 Meilleurs articles: Asterisk: agents et centre d'appel VRRP Rapid Spanning Tree Protocol Asterisk: Introduction la ToIP Asterisk : files dattente

http://www.cis-consultants.com/blog/archives/2006/07/asterisk_et_les.html

06/02/2007

Vous aimerez peut-être aussi