Vous êtes sur la page 1sur 27

PROJET TUTORE

VoIP Asterisk & Ubuntu


Le projet
Notre projet porte sur Asterisk, un logiciel open source gratuit qui joue le rle
d'autocommutateur tlphonique priv (PABX). C'est un logiciel multiplateforme (Unix/MAC
OS X/Windows). Il existe d'autres solutions de tlphonie sur IP :
Propritaires
Alcatel
Cisco
Microsoft

Libres
Asterisk
SipX
OpenPBX
Nous nous intresserons donc Asterisk pour sa forte communaut francophone, ses
nombreuses fonctionnalits et sa fiabilit avec Ubuntu comme systme d'exploitation puisqu'il
dispose aussi d'une communaut importante et qu'il est rput pour sa stabilit.
Notre but est de comprendre le fonctionnement de ce logiciel et de dcouvrir les nombreuses
possibilits qu'il offre. Pour cela nous nous baserons sur un TP de licence pro RSFS.

Matriel et installation rseau
Voici la liste du matriel mis notre disposition pour raliser notre projet :
2 Ordinateurs
2 Tlphones SIP
1 Casque
1 Switch (5 ports)
Des cordons Ethernet
1 CDROM Ghost Ubuntu (Version 6.06 LTS Dapper du 1er octobre 2006)
1 CDROM Ghost Windows XP
1 CDROM SuperGrub
Schma de l'installation rseau

Installation des OS
Le PC de gauche sera le serveur Asterisk sous Ubuntu et le PC de droite une machine sous XP
(sur laquelle sera install un logiciel SIP). Il suffit de booter sur le CD et de lancer l'installation.
Une fois l'installation d'Ubuntu termine sur le PC de gauche, il faut utiliser le CD SuperGrub
pour corriger le problme du boot.

Installation d'Asterisk
Asterisk est dj install car celui-ci est inclus dans l'image GHOST Ubuntu. De mme, les
modules grant l'ISDN (Integrated Services Digital Network) sont dj prsents.
Son installation est donc termine. Cependant, au fur et mesure que nous ajouterons de
nouvelles fonctionnalits, il nous faudra installer des paquets supplmentaires ncessaires au
bon fonctionnement.

Lancement d'Asterisk
Pour lancer Asterisk, il faut d'abord se loguer en root :
root@asterisk:~# sudo -s root
Lancer Asterisk :
root@asterisk:~# /etc/init.d/asterisk start
Lancer la CLI (Command-Line Interface) :
root@asterisk:~# asterisk -vvvvvvvvvr

Les commandes de la CLI
Le nombre de commandes est important. Voici celles que nous avons le plus utilises :
sip debug : active le mode debug et affiche les trames
sip show users : affiche les utilisateurs inscrits
reload : recharge les fichiers de configuration
show dialplan : affiche extensions.conf
Vous pouvez accder toutes les commandes ici.

Les fichiers de configuration
Les fichiers de configuration d'Asterisk se trouvent dans /etc/asterisk/ et portent
l'extension .conf.
asterisk.conf : contient les emplacements des diffrents rpertoires utiliss par Asterisk
cdr.conf : permet de modifier la faon dont Asterisk stocke les Enregistrements des
Appels (Call Detail Record)
cdr_mysql.conf : permet de dfinir les paramtres d'accs la base MySQL
extconfig.conf : permet de modifier la faon dont Asterisk cherche les fichiers de
configuration (statique ou temps rel)
extensions.conf : permet de dfinir le plan de numrotation (Dial Plan)
features.conf : permet de modifier certaines fonctionnalits (parcage d'appels)
iax.conf : permet de configurer les liaisons utilisant le protocole IAX (entre 2 serveurs
Asterisk,...)
modules.conf : permet de dfinir quel module doit tre lanc au dmarrage
musiconhold.conf : permet de dfinir les paramtres des musiques d'attente
sip.conf : permet de dfinir les contextes d'appel et les utilisateurs utilisant le protocole
SIP
voicemail.conf : permet de configurer les botes vocales de chaque utilisateur


Configuration de base d'Asterisk
Pour mieux comprendre le fonctionnement d'Asterisk, on se basera sur des modles simplifis
d'extensions.conf et sip.conf. Il est conseill de faire une copie des fichiers d'origine et de les
renommer en extensions.conf.ORIG et sip.conf.ORIG afin de pouvoir revenir aux
configurations par dfaut en cas de problme.
Pour modifier les fichiers de configuration, il faut utiliser un diteur de texte, de
prfrence gedit.
root@asterisk:~# gedit /etc/asterisk/extensions.conf &
Pour ajouter des abonns, il faut d'abord modifier le fichier extensions.conf.
; extensions.conf
;
;
[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=yes ; autorise le saut d'appel n+101
;
[globals]
; On ajoute des variables pour une meilleure visibilit
Loulou = SIP/2201 ; Tlphone 1
Totoche = SIP/2202 ; Tlphone 2
gigi = SIP/2203 ; Softphone Xlite PC XP
;
[from-sip] ; Ajout du contexte from-sip
exten => 2201,1,Answer() ; On rpond
exten => 2201,n,Wait,1 ; Pause d'une seconde
exten => 2201,n,DIAL(${Loulou},8,rTt) ; 8 sonneries
; r : gnre une tonalit pour l'appelant
; (par exemple : ligne occupe)
; T : autoriser lappelant transfrer lappel
; t : autoriser l'appel transfrer l'appel
exten => 2201,n,VoiceMail(u2201) ; Lancement de la messagerie de Loulou
exten => 2201,n,Hangup() ; On raccroche
;
;etc

; sip.conf
;
[general]
; ...
[2201] ; Ajout du numro de tel de l'abonn Loulou
type=friend
language = fr ; Langage par dfaut (de tous les utilisateurs)
context=from-sip ; Comment traiter un appel venant de ce poste
; (contexte dfini dans extensions.conf)
callerid=Loulou <2201> ; Identifiant de l'appelant complet
host=dynamic ; Nous avons une adresse IP statique mais prive
secret = 2201 ; Mot de passe
nat=no ; Pas de NAT entre le tl. et son serveur denregistrement
;canreinvite=yes ; autorise le flux RTP
dtmf=rcf2833 ;
mailbox=2201@default ; mailbox 1234 in voicemail context "default"
disallow=all ; On interdit tous les types de codec avant de les autoriser
allow=ulaw ; Note: In user sections the order of codecs
allow=alaw
;
; faire de mme pour les autres abonns
Il faut alors qu'Asterisk prenne en compte les changements et relise les fichiers de configuration.
asterisk*CLI> reload

Configuration de base des tlphones SIP
Nous pouvons maintenant mettre sous tension les tlphones. Il faut d'abord faire un reset
constructeur en renseignant leur adresse mac, marque dessous. Nous allons utiliser des
adresses IP statiques que nous rentrerons manuellement, en prenant soin de dsactiver la
fonction DHCP.
Aprs un reboot, ils doivent tre accessibles par leur adresse IP via le navigateur des PC du
rseau.

Page d'identification du tlphone


Configurations de base (Basic settings)



Nous choisissons d'utiliser le serveur de temps (NTP) de l'UJF.

Configuration du NTP (Advanced settings)


Ajout d'un utilisateur sur le tlphone (account).
Il faut maintenant enregistrer les modifications (update) et redmarrer le tlphone (reboot)
pour qu'elles soient prises en compte.

Sauver la configuration et redmarrer le tlphone

Configuration du Softphone Xlite
On ajoute le compte utilisateur gigi de numro de poste 2203 en reprenant les manipulations
prcdentes des fichiers extensions.conf et sip.conf. Nous allons utiliser le Softphone Xlite. Il
doit tre configur comme ceci :

Configuration du softphone

Destinataire occup
L'application DIAL permet de lancer une autre application si la ligne est occupe. Dans ce cas,
elle renvoie la ligne n+101. Pour autoriser cela, il faut diter extensions.conf.
; extensions.conf
;
[general]
priorityjumping=yes ; autorise le renvoi la ligne n+101 si occup
Si la ligne est occupe, on veut que l'appelant soit inform par la lecture d'un fichier audio. On
ajoute alors la ligne adquate dans extensions.conf.
; extensions.conf
;
exten => 2201,1,Answer()
exten => 2201,n,Wait,1
exten => 2201,n,DIAL(${Loulou},8,rTt) ; Aprs 8 sonneries, on va la ligne 104
exten => 2201,n,Hangup()
exten => 2201,104,PlayBack(tt-allbusy)

Gestion de la messagerie
Par dfaut Asterisk ne contient que des fichiers audios en anglais. Pour obtenir ceux en franais,
il faut lancer Synaptic et lancer une recherche avec le mot asterisk. On installe ensuite les
paquets en franais.
Il faut maintenant indiquer Asterisk d'utiliser les fichiers audios en franais plutt que ceux
en anglais. On modifie alors le fichier sip.conf.
; sip.conf
;
[general]
language=fr ; dfinit le franais comme langue par dfaut
On veut que la messagerie d'un utilisateur se dclenche au bout de n sonneries. On adapte le
fichierextensions.conf.
; extensions.conf
;
exten => 2201,n,DIAL(${Loulou},8,rTt) ; 8 sonneries
exten => 2201,n,VoiceMail(u2201) ; Lancement de la messagerie de Loulou
On indique quelle est la messagerie d'un utilisateur dans sip.conf.
; sip.conf
;
[2201]
mailbox=2201@default ; Loulou a la messagerie 2201 dans le contexte
; default de voicemail.conf
On ajoute la mailbox de lutilisateur dans le contexte default de voicemail.conf
; voicemail.conf
;
[default]
2201 => 2201,Loulou,,,tz=paris24
Aprs un reload et un test, on entend un message en franais nous indiquant de laisser un
message.

Ecouter ses messages
Pour consulter ses messages, on utilise l'application VoiceMailMain() dans extensions.conf.
Pour y accder, il faut composer un numro. Ici, le code 888 demande le numro de bote
vocale et le mot de passe :
; extensions.conf
;
[from-sip]
; Accs la messagerie : numro de messagerie + MDP
exten => 888,1,Answer()
exten => 888,n,VoiceMailMain() ; aucun paramtre
exten => 888,n,Hangup()
Le code 555 demande seulement le mot de passe car on lie lappel depuis un tlphone la
bote vocale ayant le mme numro:
; Accs la messagerie : MDP
exten => 555,1,Answer()
exten => 555,n,VoiceMailMain(${CALLERIDNUM}) ; appel li
exten => 555,n,Hangup()
Le code 555 permet de consulter sa messagerie depuis un autre poste.

Messagerie unifie
On souhaite qu'un utilisateur ayant reu un message soit notifi par email. On installe donc
un serveur de messagerie sur le pc Asterisk. A l'aide de Synaptic, installer les paquets suivant
:
postfix
courier-imap
courier-authdaemon
mozilla-thunderbird
Attention bien rpondre Site Internet la question sur Postfix.
Il faut ensuite crer les comptes utilisateurs Unix totoche et gigi

; voicemail.conf
;
[general]
format = wav ; Le format des pices jointes est wav
attach = yes ; L'email contient le message vocal en pice jointe
Complter les lignes mailbox avec ladresse mail :
; voicemail.conf
;
[default]
2201 => 2201,Loulou,loulou@localhost,,tz=paris24
On souhaite faire en sorte que les mails arrivent dans le home directory de l'utilisateur. On doit
pour cela passer Postfix au format Maildir en ditant son fichier de configuration
(/etc/postfix/main.cf) :
; /etc/postfix/main.cf
;
home_mailbox = Maildir/ ; Ligne ajouter
Il suffit de relancer Postfix pour prendre en compte les changements :
root@asterisk:~# /etc/init.d/postfix reload
Nous allons utiliser IMAP grce courier-imap (dj en marche). Il faut relier
l'authentification IMAP avec les comptes UNIX :
root@asterisk:~# /etc/init.d/courier-authdaemon start
Il ne reste plus qu' ajouter les comptes dans Thunderbird et nous obtenons alors ceci :

Messagerie unifie

Liaison inter Asterisk
Pour raliser une liaison entre 2 serveurs Asterisk, nous allons utiliser un protocole propre
Asterisk :
IAX (Inter Asterisk eXchange). IAX permet le cryptage et l'utilisation d'un seul port (utile pour
NAT et Firewall).
Nous avons dans notre cas ralis une liaison sans cryptage. Nous avons pour cela fait le test
avec un autre binme. Nous avons d diter notre fichier iax.conf :
; iax.conf
;
[general]
language=fr
bandwidth=low ; On peut laisser le paramtre 'low'
Les deux binmes sont BX et BY. Nous sommes le binme Y, soit la colonne de droite sur le
modle suivant :
[binomeY] [binomeX]
type=friend type=friend
host=@IP_binomeY host=@IP_binomeX
auth=plaintext auth=plaintext
username=binomeX username=binomeY
secret=toto secret=toto
context=iax context=iax
permit=0.0.0.0/0.0.0.0 permit=0.0.0.0/0.0.0.0
trunk=yes trunk=yes
Aprs modification, on obtient :
; iax.conf
;
; On ajoute la fin
;
[binome18]
type=friend
host=10.33.18.253
auth=plaintext
username=binome22
secret=toto
context=iax
permit=0.0.0.0/0.0.0.0
trunk=yes
On vrifie que dans le fichier extensions.conf la ligne suivante est bien commente :
; iax.conf
;
;TRUNK=IAX2/user:pass@provider -- doit tre commente
On ajoute une extension pour les appels sortants vers l'autre binme (Loulou) :
; extensions.conf
;
[from-sip]
exten => _9101,1,DIAL(IAX2/binome18/${EXTEN:1})
; 101 numro local de Loulou de l'autre binme (18)
On ajoute une extension pour les appels entrants depuis l'autre binme dans un nouveau
contexte, les appels venant de la liaison IAX seront ainsi interprts et traits de la mme faon
que les appels locaux :
; extensions.conf
;
[iax]
include => from-sip
Aprs un reload dans la CLI, il est possible d'appeler les utilisateurs de part et d'autre de la
liaison. Voici quelques commandes permettant d'obtenir des informations sur la liaison :
show peer binomeX
iax2 show peers
iax2 debug
iax2 trunk debug

Manipulation avec Wireshark
On installe Wireshark sur la machine Asterisk.
On lance alors une capture puis on se fait appeler par l'autre binme. On voit alors apparatre
dans les premires trames les valeurs des variables "username" et "secret". Nous constatons
dj que le cryptage devient ncessaire. Nous allons voir maintenant qu'il est possible d'couter
les conversations !
On slectionne alors une ligne au hasard, puis "Statistics", "RTP", "Show All Streams". On
slectionne les deux flux (nomms "Forward" et "Inverse"), puis "Analyze". Il n'y a plus
qu' Sauvegarder avec "Save payload" au format ".au". Cela va nous permettre de l'exploiter
avec le logiciel Audacity.
On installe ensuite Audacity sur le poste XP et on ouvre le fichier .au.

Lecture du .au avec Audacity

Enregistrer des messages simplement
Asterisk propose d'enregistrer facilement des messages vocaux par le biais d'un tlphone.
; extensions.conf
;
[from-sip]
;Enregistre un message au format .gsm dans /tmp/
;
exten => 662202,1,Answer()
exten => 662202,2,Wait(1)
exten => 662202,3,Record(/tmp/file_${EXTEN:2}:gsm) ; Le nom du fichier sera 2202.gsm,
exten => 662202,4,Wait(2) ; les 2 premiers chiffres sont supprims
exten => 662202,5,PlayBack(/tmp/file_${EXTEN:2}) ; Lit le message aprs enregistrement
exten => 662202,6,Wait(1)
exten => 662202,7,Hangup()


IVR
Au lieu de changer le contexte d'un tlphone en [default], on prfre utiliser
l'application Goto dans le contexte [from-sip] pour renvoyer vers [default]. Ainsi tous les
tlphones peuvent joindre les numros IVR et continuer joindre les numros from-sip. On
obtient la configuration suivante :
; extensions.conf
;
[from-sip]
;
exten => 2200,1,Answer
exten => 2200,2,Wait(1)
exten => 2200,3,Goto(default,2200,1) ; Redirection vers le contexte default,
; num 2200, ligne 1
[default]
exten => 2200,1,Answer
exten => 2200,2,Wait(1)
exten => 2200,3,Background(merci) ; "Merci de votre appel. Pour le service "Ventes",
; fates le 1,pour joindre le support technique, fates le 2"
exten => 2200,n,WaitExten ; attend la saisie d'un numro
exten => 1,1,Goto(submenu,s,1) ; Redirection vers le contexte submenu, num s, ligne 1
; si la touche saisie est 1
exten => 2,1,Hangup ; raccroche si la touche saisie est 2
;
[submenu]
exten => s,1,Ringing ; Laissons alors sonner 2 secondes.
exten => s,n,Wait,2
exten => s,n,Background(submenuventes) ; "Vous tes au service des ventes.
; Pour joindre Loulou, fates le 1, pour joindre Totoche, fates le 2."
exten => s,n,WaitExten ; attend la saisie d'un numro
exten => 1,1,Goto(from-sip,2201,1) ; Redirection vers le contexte from-sip,
; num 2201, ligne 1
exten => 2,1,Goto(from-sip,2202,1) ; Redirection vers le contexte from-sip,
; num 2202, ligne 1


Messages variables, en fonction des heures ouvres
Dans cet exemple Loulou prend les appels sur le 2210 les heures ouvres,
et Totoche les heures non ouvres et le week-end :
; extensions.conf
;
[from-sip]
;
exten => 2210,1,Answer
exten => 2210,2,Wait(1)
exten => 2210,3,Goto(default,2210,1); Redirection vers le contexte default
; num 2200, ligne 1
[default]
exten => 2210,1,Answer
exten => 2210,n,Set(HEURE=${IFTIME(08:29-17:59,mon-fri,*,*?OUVERT:FERME)})
;
; si l'heure est comprise entre 08:29 et 17:59,
; et que le jour est compris entre lundi et vendredi la variable HEURE = OUVERT
; sinon HEURE = FERME
;
exten => 2210,n,Background(merci1) ;"Merci de votre appel.Nous contactons un technicien"
exten => 2210,n,GotoIf($[${HEURE}=OUVERT]?semaine:week)
;
; Si HEURE = OUVERT on va la ligne n(semaine)
; Sinon on va la ligne n(week)
;
exten => 2210,n(semaine),Goto(from-sip,2201,1) ; redirection vers Loulou
exten => 2210,n(week),Goto(from-sip,2202,1) ; redirection vers Totoche


Conversation vido
Pour pouvoir profiter de la vido, il faut utiliser des tlphones compatibles. Nous avons notre
disposition deux tlphones vido Grandstream GVX3000.
Pour activer la ngociation d'une communication vido entre deux tlphones, on doit ajouter
danssip.conf la ligne suivante :
; sip.conf
;
[general]
videosupport=yes ;
Il faut ajouter deux nouveaux utilisateurs (video1 : 2204 et video2 : 2205). Nous devons aussi
indiquer quel codec sera utilis pour chaque videophone. Nous utilisons ici le codec h263 car
notre version d'Asterisk est ancienne (1.2.x). Pour les versions plus rcentes (1.4.x) on utilise
le codec h264 :
; sip.conf
;
[2204]
; ...
disallow=all ; On interdit tous les types de codec avant de les autoriser
allow=ulaw
allow=alaw
allow=h263
;
[2205]
; ...
disallow=all ; On interdit tous les types de codec avant de les autoriser
allow=ulaw
allow=alaw
allow=h263
Il ne reste plus qu' faire un reset constructeur des deux tlphones, configurer leur adresse
iprespective et les utilisateurs (vu prcdemment).
Aprs un reload, la vido fonctionne !


Liaison avec les bases de donnes
Pour rendre possible la liaison d'Asterisk avec une base de donne, il faut installer les paquets
suivants grce Synaptic :
mysql
libmysqlclient
libmysqlclient-dev
gcc
asterisk-dev
Sur le site http://www.asterisk.org/downloads , choisir "Older releases of Asterisk can be
found here"

Anciennes version d'Asterisk
Tlchargeons ensuite asterisk-addons-1.2.7.tar.gz sous /tmp par exemple.

asterisk-addons-1.2.7.tar.gz

On dcompresse les fichiers sous /usr/share/ puis on va dans le rpertoire cr
:/usr/share/asteriskaddons-1.2.7 :
root@asterisk:~# cd /usr/share/
root@asterisk:/usr/share# tar xvzf /tmp/asterisk-addons-1.2.7.tar.gz
root@asterisk:/usr/share# cd asterisk-addons-1.2.7/
Ensuite on compile sans oublier d'installer les librairies :
root@asterisk:~# apt-get install build-essential
root@asterisk:/usr/share/asterisk-addons-1.2.7# make
root@asterisk:/usr/share/asterisk-addons-1.2.7# make install
Les modules compils sont maintenant prsents dans /usr/lib/asterisk/modules.
Nous allons prsent crer une configuration CDR (Call Details Record) qui utilisera notre
future base de donnes. Cela nous permettrait de facturer les abonns et de faire des statistiques.
Editons pour cela le fichier/usr/share/asterisk-addons-
1.2.7/configs/cdr_mysql.conf.sample.
; cdr_mysql.conf.sample --> SAUVER SOUS /etc/asterisk/cdr_mysql.conf
;
[global]
hostname=127.0.0.1 ; adresse du serveur mysql
dbname=asterisk ; nom de la base de donnes
table=cdr ; nom de la table
sock=/tmp/mysql.sock
user=user ; nom d'utilisateur pour se connecter la base
password=toto ; mot de passe
On peut maintenant lancer mysql :
root@asterisk:~# /etc/init.d/mysql start
Starting MySQL database server: mysqld...already running.
* Root password is blank. To change it use:
* /etc/init.d/mysql reset-password
On nous indique alors comment changer le mot de passe de l'utilisateur root de mysql, ce que
nous allons faire. Le mot de passe sera totomysql.
root@asterisk:~# /etc/init.d/mysql reset-password
New MySQL root password:
Verify:
Setting new MySQL root password
On se connecte la base en root:
root@asterisk:~# mysql -u root -p
On cre la base nomme "asterisk" :
mysql> create database asterisk ;
Query OK, 1 row affected (0.00 sec)
On donne tous les droits l'utilisateur nomm "user" sur toutes les tables de cette base :
mysql> grant all privileges on asterisk.* to user@localhost identified by 'toto';
Query OK, 0 rows affected (0.01 sec)
On efface les anciens privilges :
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
On se dconnecte puis reconnecte en User :
mysql> quit
root@asterisk:~# mysql -u user -p // avec le mot de passe toto
On peut voir les bases de donnes (sur lesquelles user a les autorisations) :
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| asterisk | // La database bien t cre
+--------------------+
2 rows in set (0.00 sec)
On slectionne la base de donnes qui nous intresse : asterisk :
mysql> use asterisk;
Database changed
Nous pouvons maintenant crer la table cdr :
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 '',
`userfield` varchar(255) NOT NULL default ''
);
ALTER TABLE `cdr` ADD `uniqueid` VARCHAR(32) NOT NULL default '';
ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
On peut voir les tables de la base de donnes asterisk :
mysql> show tables;
+--------------------+
| Tables_in_asterisk |
+--------------------+
| cdr | // La table bien t cre
+--------------------+
1 row in set (0.00 sec)
Il suffit de relancer Asterisk avec un reload et de vrifier que le module a bien t charg avec
la commande show modules like mysql.
Aprs quelques appels, la table se complte. On peut la visualiser avec une requte select :

Contenu de la table CDR

Liaison Apache2/PHP/MySQL
Pour amliorer l'utilisation des donnes nous allons rendre la base de donnes accessible depuis
une interface web.
Nous allons installer diffrents logiciels, les uns aprs les autres avec Synaptic. Dans le menu
Configuration , Prferences , cocher Toujours prfrer la version la plus leve .

Prfrences Synaptic

Pour installer on utilise le bouton Rechercher . Ensuite on slectionne le paquet pour
l'installation (clic droit) et l'installer (Appliquer).
apache2 (version 2)
libapache2-mod-php5 (relancer /etc/init.d/apache2 restart)
php5-mysql (relancer /etc/init.d/apache2 restart)
On peut vrifier le bon fonctionnement en ditant une page index.php contenant une ligne
<?php phpinfo(); ?>. Si on se rend l'adresse localhost, on obtient :

http://localhost/index.php

Tlchargeons asterisk-stat-v2_0_1.tar.gz dans /tmp depuis le FTP ftp://ftp.gtrgrenoble.fr/.
On dcompresse les fichiers sous /var/www/ :
root@asterisk:~# cd /usr/share/
root@asterisk:/usr/share# tar xvzf /tmp/asterisk-addons-1.2.7.tar.gz

<!-- /var/www/asterisk-stat-v2/lib/defines.php -->
<?php
// ...
define ("HOST", "127.0.0.1");
define ("PORT", "5432");
define ("USER", "user");
define ("PASS", "toto");
define ("DBNAME", "asterisk");
define ("DB_TYPE", "mysql"); // mysql or postgres
// ...
include ("/var/www/asterisk-stat-v2/lib/DB-modules/phplib_".DB_TYPE.".php")
// emplacement du fichier phplib_mysql.php
//...
?>
Le site est maintenant oprationnel, nous pouvons le consulter l'adresse suivante :
http://127.0.0.1/asterisk-stat-v2/cdr.php


site php cdr


Musique d'attente
Nous devons d'abord installer un lecteur MP3 pour Unix avec Synaptic, "mpg123".
Modifions prsent le fichier musiconhold.conf :
; musiconhold.conf
;
[default]
mode=quietmp3 ; pour Asterisk 1.2.X - pour MP3s
directory=/usr/share/asterisk/mohmp3 ; Rpertoire contenant les fichiers ausio
; (nous mettons notre propre MP3 dedans)
application=/usr/bin/mpg123 ; Application permettant de lire les MP3s
On peut tester la configuration actuelle en ajoutant une extension dans le
fichier extensions.conf :
; extensions.conf
;
exten => 6000,1,Answer
exten => 6000,2,MusicOnHold()
Il faut quitter puis relancer Asterisk pour que les modifications soient prises en compte.
La musique d'attente fonctionne !