Asterisk – CDR – Call Detail Record

Le CDR ou Call Detail Record est une fonctionnalité d’Asterisk qui permet de recueillir des informations sur les appels qui transitent par le serveur.

Ces informations peuvent ensuite être utilisées pour facturer les appels surtaxés, ou bien simplement à des fins d’analyse.

 

1) Fonctionnement

 

Comme évoqué en introduction, le Call Detail Record permet de collecter toute une série d’informations sur les appels qui transitent par notre serveur Asterisk.

Dans ces informations, nous retrouvons par exemple :

  • La source de l’appel
  • La destination de l’appel
  • La date de l’appel
  • La durée de l’appel
  • Etc…

 

Ces informations peuvent être extraites soit dans un fichier CSV, soit dans une base MySQL.

Par défaut, Asterisk est configuré pour collecter les données dans un fichier CSV.

 

Le CDR est souvent utilisé pour facturer les appels surtaxés aux appelants.

Mais il existe aussi un grand nombre d’outils permettant d’analyser les données, et de restituer des rapports comportant des graphiques, etc…

 

2) Configuration

 

La configuration du CDR est à faire dans le fichier cdr.conf.

Voici la configuration de base (normalement) déjà présente dans le fichier :

[csv]
usegmtime=yes    ; log date/time in GMT.  Default is "no"
loguniqueid=yes  ; log uniqueid.  Default is "no"
loguserfield=yes ; log user field.  Default is "no"
accountlogs=yes  ; create separate log file for each account code. Default is "yes"

 

Il faut également modifier le fichier cdr_manager.conf comme ceci :

[general]
enabled = yes

 

Si le module CDR n’est pas encore chargé dans Asterisk, il est possible de le charger comme ceci :

asterisk -rvv
module load cdr_csv.so

 

Pour stocker les données dans une base de donnéesMySQ, le fichier cdr_mysql.conf doit être rempli.

Bien entendu, cette base de données devra contenir une table à même de recevoir les données, c’est-à-dire qu’elle doit comporter les bonnes colonnes, avec le bon format de données, etc…

 

Asterisk ne supporte que les bases SQL par défaut. Mais il existe des modules permettant la connexion à des bases Oracle, PostgreSQL, etc…

 

Quant au fichier CSV qui contient les données, il s’agit du fichier suivant : /var/log/asterisk/cdr-csv/Master.csv

Les données de ce fichier sont séparées par des virgules.

Vous pouvez donc ouvrir ce fichier avec un tableur tel qu’Excel, afin d’obtenir une meilleure lisibilité.

Voici un extrait du fichier Master.csv après deux appels, avec le nom des colonnes :

Asterisk Master.csv

Parmi les colonnes, nous retrouvons :

  • Clid : l’ID de l’appelant
  • Start : date de début de l’appel
  • Answer : date de la réponse
  • End : date de fin de l’appel
  • Duration : durée total de l’appel
  • Billsec : durée de l’appel après décrochage

Le champ Disposition peut prendre les valeurs suivantes :

  • NO ANSWER
  • CONGESTION
  • FAILED
  • BUSY
  • ANSWERED

 

Vous conviendrez que l’analyse du fichier CSV peut dépanner, mais que l’utilisation d’un outil d’analyse dédié, permettra une analyse bien plus poussée.

Bien entendu, ces outils nécessitent que les données soient stockées dans une base de données.

 

Tagués avec :
Publié dans Fonctionnalités
4 commentaires pour “Asterisk – CDR – Call Detail Record
  1. John Kally dit :

    Grand merci pour ce grand travail abattu pour nous produire ce lab, il est pour moi un sauveur et m’a énormément aidé. Merci et encore d’autres s’il vous plais.

  2. Dorra dit :

    merci pour ce travail
    mais je veut savoir si on peut stocker ce fichier cdr (Master.csv) dans une base déja existante
    en particulier dans ma base symfony ???

  3. ndiaye dit :

    salut
    merci pour la clarté de ce tutot.
    vous n’avez pas d’idée sur asterisk-stat qui nous permet d’avoir le CDR sous forme de tableau

Répondre à John Kally Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.