I. Présentation de Asterisk .................................................................................................................
1
A. La création des utilisateurs SIP : ils sont créés dans le ficher sip.conf ou users.conf................. 3
B. Gestion de boite vocale ............................................................................................................... 5
C. Musque d’attente pour le musque d’attente ............................................................................. 6
D. Configuration et mise en place du transfert d’appel .................................................................. 7
E. Le Parking Call.............................................................................................................................. 7
F. Mise en place CDR ....................................................................................................................... 8
Mise en place d’une Plateforme de ToIP avec Asterisk
I. Présentation de Asterisk
Asterisk est un autocommutateur téléphonique privé (PABX) libre et propriétaire (publié sous
double licence GPLv2 ou commerciale6 ) pour systèmes GNU/Linux. Il permet, entre autres,
la messagerie vocale, les files d'attente, les agents d'appels, les musiques d'attente et les mises
en garde d'appels, la distribution des appels. Il est possible également d'ajouter l'utilisation des
conférences par le biais de l'installation de modules supplémentaires et la recompilation des
binaires.
Asterisk implémente les protocoles H.320, H.323 et SIP, ainsi qu'un protocole spécifique
nommé IAX (Inter-Asterisk eXchange). Ce protocole IAX permet la communication entre deux
serveurs Asterisk ainsi qu'entre client et serveur Asterisk. Asterisk peut également jouer le rôle
de registrar et passerelle avec les réseaux publics (RTC, GSM, etc.) Asterisk est extensible par
des scripts ou des modules en langage Perl, C, Python, PHP, et Ruby. II Installation et
configuration 1- Installation de Asterisk Il y a deux façons d’installer Asterisk soit par la
commande
apt-get install asterisk soit par source c’est-à-dire installé la version tar de asterisk puis le
compiler comme on le fera avec la version 16 de Asterisk Apres avoir téléchargé le fichier tar
on le désarchive dans le dossier /usr/local/src qui un dossier de notre choix avec la commande
tar
exemple
tar -xvzf asterisk-16-current.tar.gz -C /usr/local/
Ensuite on se déplace dans le dossier asterisk/contrib/script/ pour installer les prérequis de asterisk avec
le script install_prereq avec la commande :
./script install_prereq install
Ensuite on revient dans le dossier source de asterisk /usr/local/src/asterisk et taper les commandes
suivantes
./configure --with-jansson-bundled
Si la configuration s’est bien passée vous aurez le logo de asterisk comme montre l’image si dessous
make menuselect
Pour choisir les fonctionnalités On active la prise en charge du format mp3 pour pouvoir jouer de la
musique sur asterisk
make pour compiler asterisk
make install pour installer les fonctionnalités
make samples pour installer les fichiers de configurations
make config pour générer les scripts de démarrage de asterisk
Maintenant l’installation de asterisk est terminée on tape la commande asterisk pour démarrer le serveur
et pour entrer dans la console d’asterisk on tape la commande
Asterisk – rvvvvvvvvv ou rasterisk
Dans notre cas nous allons mettre en place :
- Appel entre utilisateurs
- Boite vocal
- Musique d’attente
- Transfert d’appel
- Parking d’appel
- Conférence
A. La création des utilisateurs SIP : ils sont créés dans le ficher sip.conf ou
users.conf
[1000]
secret=passer
type=friend
context=ToIP
host=dynamic
qualify=yes
callerid="abdou junior" <1000>
voicemail= boiteVocale
callgroup=1
disallow=all
allow=alaw
allow=ulaw
allow=gsm
allow=g729
allow=h264
allow=h263
allow=h263p
directmedia=no
[1001]
secret=passer
type=friend
context=ToIP
host=dynamic
qualify=yes
callerid="houdadine abdou" <1001>
voicemail= boiteVocale
callgroup=1
disallow=all
allow=alaw
allow=ulaw
allow=gsm
allow=g729
allow=h264
allow=h263
allow=h263p
directmedia=no
[1002]
secret=passer
type=friend
context=ToIP
host=dynamic
qualify=yes
callerid="abdillah chak" <1002>
voicemail= boiteVocale
callgroup=1
disallow=all
allow=alaw
allow=ulaw
allow=gsm
allow=g729
allow=h264
allow=h263
allow=h263p
directmedia=no
[1003]
secret=passer
type=friend
context=ToIP
host=dynamic
qualify=yes
callerid="paul biya" <1003>
voicemail= boiteVocale
callgroup=1
disallow=all
allow=alaw
allow=ulaw
allow=gsm
allow=g729
allow=h264
allow=h263
allow=h263p
directmedia=no
[1004]
secret=passer
type=friend
context=ToIP
host=dynamic
qualify=yes
callerid="khalil ben" <1004>
voicemail= boiteVocale
[1005]
secret=passer
type=friend
context=ToIP
host=dynamic
qualify=yes
callerid="bob eponge" <1005>
callgroup=1
disallow=all
allow=alaw
allow=ulaw
allow=gsm
allow=g729
allow=h264
allow=h263
allow=h263p
directmedia=no
Enter en mode console et taper « sip show peers » si ça ne marche pas taper
« module show like sip » sinon fais ça « module load chan_sip.so »
B. Gestion de boite vocale
Le principe de boite vocal consiste à laisser un message vocal à un utilisateur lorsqu’il est
injoignable. Pour sa mise en place sous asterisk il y’a deux actions à faire
Créer les numéros de boites vocales dans le fichier voicemail.conf comme montre l’image ci-
dessous La syntaxe est la suivante : numéro de boite => mot de passe, nom user ,email user
La création de la boite vocal en éditant le fichier voicemail.conf
[boiteVocale]
1000 => 1234,1000
1001 => 1234,1001
1002 => 1234,1002
1003 => 1234,1003
1004 => 1234,1004
1005 => ,1005
C. Musque d’attente pour le musque d’attente
Gestion de la musique d’attente La musique d’attente est une des fonctionnalités les plus
utilisées dans la téléphonie. Le principe est simple, faire patienter un utilisateur avec une
musique plutôt qu’un blanc. Pour sa mise en place il y’a deux action à faire Créer la classe de
musique dans le fil
Si on n’utilise pas le musique par défaut on télécharge on créer son propre musique ou on
télécharge de format ulaw ou mp3
Dans notre cas nous avons un music de mp3
Nous allons créer le dossier mohmp3 dans /var/lib/asterisk ou nous allons mettre notre fichier
mp3
cd /var/lib/asterisk
mkdir mohmp3
On place le son dans le dossier mohmp3, puis on installe le lecteur mp3 avec le paquet mpg123
Ensuite on Crée la classe de musique dans le fichier musiconhold.conf
[mp3]
mode=mp3
directory=/var/lib/asterisk/mohmp3
random=yes
D. Configuration et mise en place du transfert d’appel
Dans le fichier features.conf se trouvant dans le repertoire /etc/asterisk, repérez les lignes
suivantes :
Pour ma part j’ai dans ce fichier de conf mis comme touches # pour le transfert aveugle et * pour le
transfert supervisé, donc au final les lignes ressemblent à ceci
blindxfer => #
atxfer => *
Puis dans le fichier extensions.conf on rajoutera l’option tT à l’application Dial()
E. Le Parking Call
Le Parking Call est la possibilité de mettre en attente une personne sur un numéro de parking,
c’est à dire que vous transférez cette personne sur un numéro qui lui est attribué, dès lors il vous
suffit de rappeler ce numéro à partir de n’importe quel poste pour reprendre l’appel.
La configuration se fait aussi dans le fichier res_parking.conf, ce sont les premières lignes du
fichier.
parkext => 700 ; Numéro à appeler pour mettre une personne dans le parking
parkpos => 701-720 ; Numéros de places de parking disponibles
context => parkedcalls ;Contexte
parkingtime => 120 ;la durée d’expiration du parking en seconde
Puis dans le fichier extensions.conf nous rajouterons dans notre contexte la ligne suivante :
include => parkedcalls
Donc comme vous le voyez, si vous transférez un appel au numéro 700 votre interlocuteur seras
mis en attente avec un numéro situé entre 701 et 720, une voix vous dira quel numéro est attribué
à votre interlocuteur.
Vous pouvez faire un transfert aveugle ou supervisé pour la mise en parking les deux
fonctionnent pareil pour ce cas.
Pour le plan de la numérotation qui comporte les configurations précédentes
[ToIP]
; pour inclure le contexte du parking au contexte ToIP
include => parkedcalls
; pour le musique d'attente
exten => _1xxx,1,Answer
exten => _1xxx,2,Set(CHANNEL(musicclass)=mp3)
; pour le plan de la numérotation
exten => _1xxx,3,Dial(SIP/${EXTEN},15,tT)
; pour la boite vocale
exten =>_1xxx,4,VoiceMail(${EXTEN}@boiteVocale)
; pour écouter la boite vocale on tape 111 et le mot de passe de la boite vocale
exten => 111,1,VoiceMailMain(${CALLERID(num)}@boiteVocale)
; pour lancer ou entre dans la conférence on tape 222
exten => 222,1,Confbridge(conference)
[SUPINFO]
100 => 1234,100
101 => 1234,101
102 => 1234,102
F. Mise en place CDR
apt-get install mysql-server libmysql++-dev php5 php5-mysql apache2 phpmyadmin
/etc/init.d/mysql restart
/etc/init.d/asterisk restart
cd /usr/src/asterisk-server
mysql -p -e 'create database asterisk'
creer la table cdr
vim cdr.sql
CREATE TABLE cdr (
calldate datetime NOT NULL,
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 ''
);
mysql -p asterisk < cdr.sql
cd /etc/asterisk
vim cdr_mysql.conf
[global]
hostname=127.0.0.1
dbname=asterisk
table=cdr
password=ousseynou
user=root
port=3306
cd /etc/asterisk/
vim modules.conf
load => cdr_addon_mysql.so