19
République du Sénégal Un peuple - Un but – Une foi ************* Ministère de l'enseignement supérieur et de la recherche Ecole Centrale des Logiciels Libres et de Télécommunications COUPLAGE A2BILLING-ASTERISK ET CDR L’objectif de ce document est de vous montrer comment coupler asterisk à a2billing et mettre en place un sytème de CDR dans un environnement de ToIP . L’enjeu des CDRs, c’est de stocké toutes les traçabilités des transactions faites par vos utilisateurs dans une base de données. A travers ce système, on pourra voir les transactions faites par les clients et y dresser un rapport. Présenté par : KACHALLAH Abagana Mahamat Licence 3 en Télécommunications et Réseaux Tel : +221707474374 Courriel : [email protected] 07/09/2016 COUPLAGE A2BILLING-ASTERISK ET CDR 1

COUPLAGE A2BILLING-ASTERISK ET CDR · 2020-02-25 · République du Sénégal Un peuple - Un but – Une foi ***** Ministère de l'enseignement supérieur et de la recherche Ecole

  • Upload
    others

  • View
    58

  • Download
    0

Embed Size (px)

Citation preview

République du Sénégal

Un peuple - Un but – Une foi

*************

Ministère de l'enseignement supérieur et de la rechercheEcole Centrale des Logiciels Libres et de

Télécommunications

COUPLAGE A2BILLING-ASTERISK ET CDR

L’objectif de ce document est de vous montrer comment coupler asteriskà a2billing et mettre en place un sytème de CDR dans un environnement de ToIP . L’enjeu des CDRs, c’est de stocké toutes les traçabilités des transactions faites par vos utilisateurs dans une base de données. A traversce système, on pourra voir les transactions faites par les clients et y dresser un rapport.

Présenté par : KACHALLAH Abagana Mahamat Licence 3 en Télécommunications et Réseaux Tel : +221707474374 Courriel : [email protected] 07/09/2016

COUPLAGE A2BILLING-ASTERISK ET CDR 1

INTRODUCTION

Dans ce rapport nous mettons en place un systeme de facturation basé sur le logiciel a2billing qui permettrait aux utilisateur de asterisk d'être facturé et de mettre un système de traçabilité des appels .

I. Asterisk

Asterisk est un logiciel libre open source fonctionnant sous Linux ou Windows. Il a été crééen 1999 par Mark Spencer, et a été le support de lancement de la société Digium, permettant à unmicro_ordinateur de type PC de se comporter comme un PABX IP. Il permet à cet d'offrir toutes lesfonctionnalités des PABX. Le développement du logiciel est financé par la vente de solution matérielle telles que des cartespermettant à Asterisk de se comporter comme une passerelle VoIP / Téléphonie classique.La licence sous laquelle Asterisk est fourni a permis à de nombreux acteurs de s'impliquer eux aussidans le développement du logiciel, et il a ainsi rapidement acquis de nombreuses fonctionnalités.Ainsi Asterisk permet de mettre en place une messagerie vocale, des conférences à plusieursutilisateurs, des serveurs vocaux, la distribution, le transfert des appels... Il supporte notamment lesprotocoles H323, SIP, MGCP en plus de son protocole IAX (« Inter-Asterisk eXchange »,permettant de connecter entre eux plusieurs serveurs Astérisk).

Asterisk est à l'origine développé pour tourner sur plateforme Linux avec processeur IntelIA32. Il permet en outre de passer du monde IP vers les réseaux téléphoniques publics (analogique /RNIS / 2G-3G) par l'adjonction de cartes ou boîtiers passerelles. Cependant il a été conclu pour êtreportable, cette portabilité associée à un faible besoin en ressources processeur rend Asteriskparticulièrement intéressant dans le monde embarqué: il devient possible de créer des boitiers IPBXde faibles dimensions, et ainsi de les positionner dans le monde des petites et moyennes entreprisescomme une solution intéressante à plus d'un titre face aux solutions propriétaires.

La configuration d'Asterisk est effectuée en utilisant différents fichiers de configuration (contenus dans les répertoires /etc/asterisk). On y trouve parmi d’autre ces fichiers .conf :

* le fichier Sip.conf, qui contient la liste et les profils des utilisateurs utilisant le protocole SIP pour communiquer avec Asterisk .* le fichier extentions.conf, dans lequel on configure le plan de numérotation et les règles de routage des appels entrants et sortants. * le fichier iax.conf, qui contient la liste et les profils des utilisateurs utilisant le protocole IAX pour communiquer avec Asterisk

Astérisk peut aussi être couplé à une base de données, type MySQL par exemple (ce n'est pas laseule possibilité !), afin de stocker les utilisateurs et leurs profils, ... Les solutions téléphoniques à base d’Astérisk offrent une gamme riche et souple de fonctionnalités.Astérisk offre à la fois les fonctionnalités classiques d’un PBX et des fonctionnalités innovantes etémergeantes. Ce système de plugins offre des possibilités d'extensions quasiment infinies.Cependant, couplé au plugin AMP « Astérisk Management Portal », il offre les fonctionnalités suivantes:

* Passerelle SIP et/ou H323 permettant aux clients de s'authentifier. * Passerelle VoIP / RTPC adaptée à un Client SIP ou H323 permettant à Astérisk de passer lui-même des appels par un fournisseur de service VoIP. * Messagerie vocale avec possibilité d'envoi par mail des messages aux utilisateurs. * Gestion des files d'attente d'appels pour chaque utilisateur.

COUPLAGE A2BILLING-ASTERISK ET CDR 2

* Centralisation de l'état de chaque téléphone, permettant d'avoir en un seul affichage l'état de tous les clients VoIP du réseau (via Astérisk Management Portal) * Organisation de conférences téléphoniques entre utilisateurs. * Transfert d'appel conditionnel ou inconditionnel.

Astérisk interagit avec les traditionnels systèmes de téléphonie de type standard, et les systèmes deVoix sur IP. Il offre les fonctionnalités que l'on attendrait d'un grand système PBX et même plus.Les développeurs ou les sociétés souhaitant étendre les fonctionnalités d'Astérisk peuvent le fairegrâce à un système d'AGI permettant le contrôle d'Astérisk par des programmes écrits en PHP,langage C, Perl ou Python par exemple.Il faut noter que l’interface de communication d’astérisk est Astérisk Manager Interface (AMI).Ce système d’AGI précédemment cité permettra la communication d’Astérisk avec A2billing.

II. A2billing

A2billing est un logiciel de taxation, très complexe, qui permet non seulement de gérer les ticketsd'appels, de gérer des comptes clients, de créditer de différentes manières ces comptes mais aussi deles débiter en fonction des appels passés, ... A2billing offre plusieurs fonctionnalités parmi lesquelles nous allons étudier ces trois grandesactions : * Admin

Il est l’administrateur de la plateforme, il est chargé de la création des comptes aux clients, de lacréation des agents, des trunks, de fixer la taxation aux clients, de la politique des droits que lesclients pourront effectuer sur l’interface,...

* Agent

Un agent est un distributeur, un associé au fournisseur qui est chargé de faire écouler les produits deson fournisseur. Ici par exemple en tant que administrateur on peut ajouter du crédit à un agent qui àson tour pourra le distribuer aux clients.

* Custumer

Le custumer est un client qui une fois l’administrateur lui crée un compte il dispose de son nomd’utilisateur (login) et de son mot de passe (password), ces deux informations lui permettront depouvoir se connecter à la plateforme et d’acquérir toutes les informations lui concernant. Il disposed’une interface qui lui permet d’avoir plusieurs actions à effectuer comme par exemple la créationde compte à ses clients, de consulter ses factures, de voir l’historique des appels, des payements,... L’administrateur peut définir des politiques de droit que son client pourra avoir sur la plateforme.Pour bien contrôler les actions des clients sur l’interface, l’administrateur doit associer à chaqueclient un groupe. Le client, une fois qu’il dispose des informations de son compte via son interface de la plateformesur l’onglet SIP_INFO, il peut créer un trunk entre son IPBX et son fournisseur de service. Il copieces informations dans son fichier d’asterisk Sip.conf et il définit un plan numérotation dans sonfichier extentions.conf c’est-à-dire il peut dire tout numéro qui commence par X route le sur leprovider qui est notre serveur A2billing. De ce fait on aura besoin de créer une liste de numéro pourque tout client qui arrive puisse être identifié. Le custumer a la possibilité de créer ses propres clients, mais pour que ceux-ci puissent atteindred’autres clients dans un autre opérateur il est impérative qu’ils passent par le provider VoIP, celui-ci

COUPLAGE A2BILLING-ASTERISK ET CDR 3

via une passerelle (Gateway) permettra une communication vers d’autres opérateurs.Le fournisseur de service qui définit les modalités de facturation des clients. Ceci se fait au niveaude l’interface du serveur lors de la création des SDAs (Sélection Directe à l’Arrivée) en anglais ondira DIDs. Chaque client est associé un DID. L’association d’un DID à un client se fait au niveau dela rubrique Inbound DID ensuite dans destination de l’interface du serveur.Donc une fois le Custumer crée on crée un DID qui lui sera associé, de la même manière qu’on peutcréer un groupe de Custumer, on peut aussi créer un groupe de DID pour faciliter la gestion desutilisateurs ou clients. Il faut noter qu’a2billing dispose de quatre méthodes de facturation des clients :

* VoIP registration : ici le client est inscrit à a2billing avec son nom d’utilisateur et son mot de passe. * IP adress : tous les appels sont acceptés à partie d’une adresse IP spécifique. * PIN authentification : c’est l’utilisation d’un code PIN unique * CallerID : c’est l’utilisation du CID pour l’authentification des clients.

La dernière méthode sera celle que nous utiliserons dans notre travail car elle nous permettra depouvoir gérer des clients des autres opérateurs.

COUPLAGE A2BILLING-ASTERISK ET CDR 4

III. Installation et configuration

III.1. Installation

# apt -get install libapache2 -mod- php5 php5 php5 -common php5 -cli php5 -mysql mysql-server apache2 php5 -gd openssh-server subversion php5- mcrypt

# apt -get install asterisk asterisk-prompt-fr-proformatique

#cd /usr/local/src# wget https://github.com/star2Billing/a2billing/archive/v2.0.5.tar.gz

#tar -xvzf v2.0.5.tar.gz -C /usr/local/src/a2billing

Après cela on vérifie dans la base de donnée et nous devons avoir 97 tables différentes crées dans labase de données.

Création d'un lien symbolique

Modification des informations de la base de donnée

COUPLAGE A2BILLING-ASTERISK ET CDR 5

chown asterisk:www-data /etc/asteriskchmod 775 /etc/asterisktouch /etc/asterisk/additional_a2billing_iax.conftouch / etc/asterisk/additional_a2billing_sip.confecho ''# include additional_a2billing_sip.conf'' >> / etc / asterisk / sip.confecho ''# include additional_a2billing_iax.conf'' >> / etc / asterisk / iax.conf

Exécuter le script d’installation des sons disponibles dans le dossier addons NB : Le script suppose que les sons asterisk sont dans /usr/share/asterisk/sounds/

Configurationn de asterisk manager

Installation des composants AGI

Ce sont des scripts écrits en PHPd’A2billing qui vont piloter Asterisk:# mkdir /usr/share/asterisk/agi-bin/ # chown asterisk:asterisk /usr/share/asterisk/agi-bin/ # ln-s /usr/local/src/a2billing/a2billing-2.0.5/AGI/a2billing.php /usr/share/asterisk/agibin/a2billing.php# ln -s /usr/local/src/a2billing/a2billing-2.0.5/AGI/a2billing_monitoring.php /usr/share/asterisk/agi-bin/a2billing_monitoring.php # ln -s /usr/local/src/a2billing/a2billing-2.0.5/AGI/lib/ /usr/share/asterisk/agi-bin/lib # chmod +x /usr/share/asterisk/agi-bin/a2billing.php # chmod +x /usr/share/asterisk/agi-bin/a2billing_monitoring.php

Interface web a2billing

* Crée un dossier a2billing dans /var/www/

# mkdir /var/www/a2billing# chown www-data:www-data /var/www/a2billing

* Créer un répertoire dossier à surveiller scripts

# mkdir -p /var/lib/a2billing/script

* Créer un répertoire de dossier pour Cronts PID

COUPLAGE A2BILLING-ASTERISK ET CDR 6

# mkdir /var/run/a2billing

* faire des liens symboliques dans /var/www/a2billing/

ln -s /usr/local/src/a2billing/a2billing-2.0.5/admin /var/www/a2billing /adminln -s /usr/local/src/a2billing/a2billing-2.0.5/agent /var/www/a2billing /agentln -s /usr/local/src/a2billing/a2billing-2.0.5/common /var/www/common

* Fixer les permissions du dossier templates_c dans chacun de l’interface utilisateur

#chmod 755 / usr/local/src/a2billing/admin/templates_c#chmod 755 / usr/local/src/a2billing/customer/templates_c#chmod 755 / usr/local/src/a2billing/agent/templates_c#chown- Rf www-data : www-data / usr/local/src/a2billing/admin/templates_c#chown- Rf www-data : www-data / usr/local/src/a2billing/customer/templates_c#chown- Rf www-data : www-data / usr/local/src/a2billing/agent/templates_c

Redémarrage du serveur Asterisk

#/etc/init.d/asterisk restart

* Connexion à l'interface web

Par défaut

user : rootpassword: changepassword

http://@IP-serveur/a2billing/admin

COUPLAGE A2BILLING-ASTERISK ET CDR 7

III.2. Configuration

Etape 1

Il est recommandé avant de commencer la configuration de régler le paramètres global dans la rubrique “Systems settings => Global list“, ils sont principalement les suivants :

• “Asterisk version“, on vérifie la version correspondante a celle d’asterisk installée dans notre PC et on le remplace avec celle disponible au niveau de cette rubrique dans l’interface.

• Use realtime on le met à NO • Les commands params, ils sont au nombre de trois, on enlève les pipes ( | ) et on les

remplace par des virgules ( , ). • Use DNID on le met à yes • CLID Enable est mis à yes • Say Balance After Auth on le met à NO • Say Balance After Call on le met à NO.

Etape 2

On passe maintenant à la configuration des comptes des utilisateurs. Ceci est la démarche à suivre :

• Création du Provider

• Crée un provider : Providers => Add Provider

COUPLAGE A2BILLING-ASTERISK ET CDR 8

• Crée un trunk : Trunks => Add Trunk

• Création de Rates

Dans la rubrique RATES :

• Crée d’abord un RateCard : RateCards => Add RateCard

COUPLAGE A2BILLING-ASTERISK ET CDR 9

• Crée un call plan: Call Plan => Add Callplan

• Crée un rate : Rates => Add Rate

COUPLAGE A2BILLING-ASTERISK ET CDR 10

• Création de Custumers

Dans la rubrique CUSTUMERS

• Crée d’adord un custumer : Add ::Search => Add Custumer

COUPLAGE A2BILLING-ASTERISK ET CDR 11

• Crée un Caller ID: Caller-ID => Add CallerID

COUPLAGE A2BILLING-ASTERISK ET CDR 12

On édite le fichier /etc/asterisk/sip.conf et on ajoute le compte asterisk qui est le nom du provider eton spécifie le context a2billing qui va permettre aux clients de asterisk de passer par serveura2billing .

Editons le fichier /etc/asterisk/extensions.conf

COUPLAGE A2BILLING-ASTERISK ET CDR 13

III. CDR (Call Detail Record)

CDR est l’acronyme de détail des appels enregistrés permettant de voir les statistiques des appels.Les CDR sont l'ensemble de données utilisées recueillies concernant un appel (Fixe, VoIP, Mobile).Ces données sont recueillies par les opérateurs de téléphonies et peuvent être réutilisées pourl'optimisation du réseau (Service Assurance et le Performance Management), la facturation (Billing)et la détection d'incident (Faul management). Les CDRs sont souvent utilisés pour vérifier latraçabilité des appels émis par les personnels d'une entreprise. Ainsi, nous allons voir dans ce tutoriel, comment installer et configurer un CDR. Cependant, pourmettre en place notre CDR, nous allons installer asterisk comme IPBX et MySQL comme SGBDpour enregistrer nos appels et transactions. Le principe est que tous les appels qui seront effectuéspar les utilisateurs d'asterisk, vont être enregistrés dans une base de données.

III.1 Installation

Installation de MySQL

root@kachou:~# apt-get install mysql-server

Installation d’ODBC

root@kachou:~# apt-get install unixodbc libmyodbc unixodbc iodbc

III.2 Paramètrage

Paramétrage ODBC

vim /etc/odbc.ini

COUPLAGE A2BILLING-ASTERISK ET CDR 14

vim /etc/odbcinst.ini

NB : L’emplacement du Driver peut différer d’une distribution à une autre.

Vérification de la connexion odbc

Cette capture prouve que la connexion à la base de données ait réussi

Paramétrage d'Asterisk

root@kachou:~# vim /etc/asterisk/res_odbc.conf

root@kachou:~# vim /etc/asterisk/cdr_odbc.conf

COUPLAGE A2BILLING-ASTERISK ET CDR 15

root@kachou:~# vim /etc/asterisk/cdr.conf

Redémarrage du serveur asterisk

Démarrage de la console d'asterisk

Rechargement du module ODBC

Rechargement du module cdr_odbc

COUPLAGE A2BILLING-ASTERISK ET CDR 16

IV. Démonstration

Avant l'appel nous remarquons l'utilisateur kachallah (491021) possède un crédit de 593 :

Nous lancé l'appel dont l'utilisateur kachallah (491021) appel l'utilisateur kadiatou (491022)

COUPLAGE A2BILLING-ASTERISK ET CDR 17

Sur la console d'asterisk on remarque:

Après l'appel vers l'utilisateur kadiatou (401022) on rémarque que le compte de kachallah a étédéfalqué:

Nous rémarqons qu'on a aussi les détails des appels:

COUPLAGE A2BILLING-ASTERISK ET CDR 18

CONCLUSION

Nos objectifs étaient de coupler asterisk à a2billing et d’enregistrer les traçabilités des transactionsfaites par les utilisateurs gérer par l’IPBX asterisk pour un éventuel traitement. Nous avons pumettre en place ces concepts car nous avons constaté bel et bien après les captures ci-dessus que lesutilisateurs d'asterisk sont via la plateforme a2billing et que asterisk enregistre ses CDRs via ODBCdans une base de données locale ou distante. Cependant, nous pourrons dorénavant stocker lesCDRs de notre IPBX asterisk dans une base de données centralisées afin d’exploiter des donnéesriches avec une application comme CDR-STATS, afin d’analyser nos appels et extraire de joliesstats.

COUPLAGE A2BILLING-ASTERISK ET CDR 19