Memoire Asterisk Interface Corrigé PDF
Memoire Asterisk Interface Corrigé PDF
Memoire Asterisk Interface Corrigé PDF
THEME
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE
APPLICATION WEB
Directeur de mémoire
M. OLORY Suzon
ii
Remerciements
---------------------------------------------------------------
Nous tenons à remercier :
Dieu tout puissant pour sa grâce et ses bienfaits dans nos vies
Tous les membres de l’administration et le corps professoral de l’UATM
GASA FORMATION
Monsieur Suzon OLORY notre Maître de mémoire par sa disponibilité, ses
conseils, son sens d’écoute et de partage
Le personnel de MA-INFO pour leur accompagnement dans notre
adaptation dans le monde du travail
Nos frères et sœurs qui nous ont motivés d’une manière ou d’une autre
Nos condisciples du groupe Atelier Des Sciences pour leur aide et leur
esprit de fraternité
--------------------------------------------------------------
iii
Listes des abréviations
DHCP : Dynamic Host Configuration Protocol
IP : Internet Protocol
SIP : Sessions Initial Protocol
VoIP : Voice over IP
API : Application Programming Interface
PABX : Private Automate Branch eXchange
IPBX : Internet Protocol Private Branch eXchange
TCP : Transmission Control Protocol
HTTP : Hyper Text Transfer Protocol
WAN : Wide Aera Network
GPL : General Public Licence
UDP : User Datagram Protocol
RTP : Real Time Transport Protcol
RTC : Réseau Téléphonique Commutée
IAX : Inter Asterisk eXchange
AMI : Asterisk Manager Interface
AGI : Asterisk Gateway Interface
iv
Listes des figures
Figure 1: Organigramme de MA-INFO ..................................................................................... 2
Figure 2 : Scénario de l’échange des appels entre des clients SIP ........................................... 9
Figure 3 : Architecture d’Asterisk................................................... Erreur ! Signet non défini.
Figure 4 : Configuration matérielle de la machine virtuelle ................................................... 15
Figure 5 : Fichiers de configuration d’Asterisk....................................................................... 18
Figure 6 : Configuration réseau de l’IP phone en lui attribuant une adresse IP statique ...... 21
Figure 7 : Configuration du compte SIP sur l’IP phone.......................................................... 22
Figure 8 : interface de connexion (mot de passe par défaut créé dans manager.conf) ........... 27
Figure 9 : Interface d’ajout et de suppressions des clients SIP ............................................... 28
Figure 10 : Interface de modification d’un client SIP ............................................................. 28
Figure 11 : Interface d’ajout des extensions ............................................................................ 29
v
SOMMAIRE
Dédicaces ............................................................................................................... ii
INTRODUCTION ................................................................................................. 1
I. Historique..................................................................................................... 2
I. Travaux effectués......................................................................................... 4
I- Problématique ........................................................................................... 6
CONCLUSION ................................................................................................... 30
Webographie........................................................................................................ 31
Bibliographie ....................................................................................................... 31
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
INTRODUCTION
L’un des éléments essentiels de la vie d’une entreprise est la communication en
interne c’est-à-dire pouvoir dialoguer avec les différentes entités de l’entreprise
même si elles sont situées dans différents espaces géographiques. L’une des
techniques qui rend possible ces communications est l’utilisation des
infrastructures de téléphonie. Elle est basée sur l’exploitation
d’autocommutateurs privé : PABX (Private Automate Branch eXchange) puis
PBX (Private Branch eXchange) dont le rôle principal est d’aiguiller, d’acheminer
les appels au sein d’un réseau. Les années 1999, font apparaitre une nouvelle
génération de PBXs connu sous l’appellation d’IPBX (Internet Protocol PBX)
dont les coûts sont onéreux et qui pourtant utilisent un logiciel open source qui
route les appels sous forme de paquets grâce aux protocoles TCP/IP. Cette
application nommée Asterisk est un autocommutateur virtuel qui propose les
mêmes fonctionnalités que les PBX. Sa configuration se fait en ligne de
commandes pour limiter l’accès à son architecture et aux technologies qui rentrent
dans sa conception. Les réalités du monde moderne ont donné naissance à de
nouveaux concepts comme la communication unifiée, les VAAS (Vidéo As A
Service) qui utilisent le noyau asterisk. Il est donc déterminant de s’approprier les
technologies qui composent le noyau asterisk si on souhaite faire des intégrations
avec d’autres solutions. C’est dans l’atteinte de cet objectif que nous avons initié
des travaux de prise en main du serveur asterisk par une application web. Nos
études préliminaires nous ont permis de connaitre l’existence d’API permettant
son interfaçage avec d’autres applications. Nous vous feront la synthèse de nos
investigations qui ont permis l’interfaçage avec le avec noyau asterisk.
1
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
Directeur général
2
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
III. Description
Chaque département de MA-INFO assure un certain nombre de fonctions. Le
fonctionnement de chacun d’eux se présente comme suit :
1. Direction Générale
MA-INFO a, à sa suite, une direction qui détient les pouvoirs de décision, de
coordination, de contrôle et de gestion sur tous les services de l’agence. Ses
attributions se résument comme suit :
La mise en place des stratégies pour le bon fonctionnement de la société ;
Le contrôle du service commercial
La définition d’une politique
La définition d’une politique de gestion pour le développement de la
société ;
Le contrôle de toutes les activités dans tous les secteurs
2. Le département finance et comptabilité
Ce service se charge :
Des approvisionnements aussi bien en interne que pour les produits à
vendre
Du suivi et l’exécution du budget annuel
De tenir la comptabilité quotidienne
De gérer les mêmes dépenses
3. Le département commercial
Ce service se charge de la recherche de nouveaux clients, de la gestion des ventes
et prend des dispositions pour mieux satisfaire les clients.
4. Le département technique
Il est divisé en deux services : le service électronique et le service informatique
Le service électronique
Il assure :
- La maintenance de tout le matériel informatique
3
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
4
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
5
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
6
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
appelé enregistreur fait appel à un autre organe de l’UC appelé traducteur qui
analyse le numéro saisi. Suivant le plan de numérotation, le traducteur prend en
compte un certain nombre de chiffres et ignore les autres. Si le numéro est correcte
et l’abonné appelé est joignable, son téléphone sonne. Dans le cas contraire un
film est envoyé à l’appelant
Asterisk est publié sous licence GPL et comprend un nombre très élevé de
fonctions, tel que les appels téléphoniques, la messagerie vocale, les files
d’attentes, les conférences, etc. Il implémente plusieurs protocoles H.320, H.323,
SIP, IAX, MGCP, SCCP et UNISTIM).
8
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
Figure 3 : Scénario de l’échange des appels entre des clients SIP sur Asterisk
9
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
10
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
11
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
12
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
connexion au
panneau
invalide valide
error
accès au panneau
d'administration
Informations Informations
non non
correctes correctes
Erreur Erreur
Informations Informations
correctes correctes
Utilisateurs diaplans
enregistrés enregistrés
13
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
serveur, d’un routeur ou switch et d’un poste client qui accédera à l’application.
L’application peut également fonctionnée selon une architecture distribuée où elle
est hébergée sur un serveur différent de celui d’Asterisk.
IP phone
Configuration matérielle
Notre objectif étant de mettre en place une solution de téléphonie configurée en
ligne de commandes mais configurée également via une interface web, nous avons
dû installer la plateforme Asterisk un ordinateur faisant office de serveur.
L’installation d’Asterisk requiert un ordinateur de caractéristique minimale : 2Go
de RAM, 100Go d’espace de stockage et un processeur de 1.5GHz. Dans notre
14
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
cas nous avons virtualisé notre machine à l’aide du logiciel Virtual box pour des
raisons matérielles tout en appliquant les configurations matérielles suivantes :
une machine virtuelle 4Go de mémoire vive, 10Go d’espace stockage dont nous
avons mis l’accès par pont dans le réseau pour que la machine accède à notre
réseau.
Pour installer Asterisk, notre choix s’est porté sur la distribution Ubuntu serveur
16.04 de linux. Nous avons donc procédé à une installation classique d’Ubuntu
serveur en renseignant différentes informations telles que le nom des postes, les
mots de passe et nom de connexion des utilisateurs...
Une fois notre serveur Ubuntu installé et configuré, nous avons procédé à
l’installation du service Asterisk après avoir effectué les différentes mises à jour
nécessaires.
15
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
Etapes de l’installation
mkdir /usr/src/asterisk
cd /usr/src/asterisk
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
16
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
make
make install
make samples
make config
/etc/init.d/asterisk start
sudo asterisk -rvvvv
17
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
B- Configuration d’Asterisk
Asterisk se compose de plusieurs fichiers. Sa configuration s’articule autour des
fichiers de configurations qui respectent l’architecture suivante :
/etc
asterisk
sip.conf
users.conf
extensions.conf
Autres fichiers
18
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
1. Fichier users.conf
Pour effectuer notre configuration, nous nous rendons dans le fichier users.conf
qui nous permet de renseigner les utilisateurs du service Asterisk et leurs
caractéristiques. Le fichier users.conf se présente de la façon suivante :
[6001]
type=friend
username=user1
secret=1234
host=dynamic
context=work
hasvoicemail=yes
vmsecret=1234
callcounter=1
2. Fichier extensions.conf
Une fois le fichier sip.conf configuré correctement, nous nous intéressons au
fichier extensions.conf. Celui-ci permet de définir le plan de numérotation qui
sera utilisé par le serveur pour savoir quelles actions il doit effectuer lorsque qu’un
numéro est composé. A la fin de ce fichier, sur le serveur Asterisk, nous rajoutons
donc les lignes suivantes :
[work]
exten => _6XXX,1,Dial(SIP/${EXTEN},14)
exten => _6XXX, 2,HangUp
[work] représente le contexte auquel appartiennent les clients. C’est dans cette
partie que nous indiquons les actions à effectuer par le serveur lorsqu’un numéro
est composé.
exten => _6XXX, 1, Dial (SIP/${EXTEN}) permet d’indiquer au serveur que
lorsque qu’un client appel avec un numéro commençant par le chiffre « 6 », il doit
dans un premier temps appeler le client SIP dont le numéro vient d’être composé.
Ce numéro est ici représenté par la variable ${EXTEN}. L’option 14 située après
le SIP/${EXTEN} signifie au serveur qu’il doit attendre 14 secondes avant de
passer à la règle suivante.
exten => _6XXX,4,HangUp permet de terminer correctement la communication
une fois que celle-ci est finie. Le numéro après la variable _6XXX indique l’ordre
de priorité des règles c’est-à-dire l’ordre dans lequel elles doivent être exécutées
20
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
Figure 6 : Configuration réseau de l’IP phone en lui attribuant une adresse IP statique
21
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
2. Configuration du serveur
Le serveur de base étant un serveur de téléphonie, pour faire tourner une
application web dessus, nous avons besoin d’un serveur HTTP.
Nous avons donc installé apache2 avec la commande.
sudo apt install apache2
Il faudrait également installer un interpréteur de PHP.
sudo apt install php libapache2-mod-php php-mysql
Un serveur ftp pour upload les fichiers sur le serveur nous avons installé
vsftpd
sudo apt install vsftpd
22
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
3. Configuration du routeur
[general]
enabled = yes
webenabled = yes
23
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
[mark]
secret = mysecret
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.0
read = all
write = all
2. Tester AMI
Par défaut, AMI fonctionne sur le port 5038. On peut facilement se connecter à ce
port avec l’adresse IP du serveur via la commande telnet.
Un telnet 192.168.2.75 5038 indique que la connexion à asterisk manager. Il faudra
maintenant s’authentifier avec les identifiants configurés préalablement dans le
fichier manager.conf.
Action: Login
Username: mark
Secret: mysecret
24
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
via une réponses. Les données sont extraites de la réponse et sont affichée sur
l’interface de l’administrateur.
<?php
$username='mark';
$password='mysecret';
$host='192.168.2.75';
$socket=@fsockopen($host,"5038");
fputs($socket,"Action:Login\r\n");
fputs($socket, "UserName: ".$username."\r\n");
fputs($socket, "Secret: ".$password."\r\n\r\n");
fputs($socket,"Action: Command\r\n");
fputs($socket,"Command: core show channels concise\r\n\r\n");
fclose($socket);
?>
25
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
2. L’architecture du logiciel
L’application fonctionne en client-serveur c’est-à-dire qu’elle est hébergée sur un
serveur sur lequel tourne Asterisk. Seules les machines qui sont dans le même
réseau que le serveur peuvent accéder à son interface.
26
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
1- Vue de connexion
Figure 8 : interface de connexion (mot de passe par défaut créé dans manager.conf)
27
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
28
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
29
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
CONCLUSION
Dans un secteur en pleine mutation, où le monde RTC s’efface au fur et à mesure
que le monde IP prend sa place, la VoIP a amené un grand changement dans le
domaine des télécoms, lui apportant des possibilités d'optimisation, avec surtout
une diminution des coûts d'investissement. Elle permet, par l'utilisation du
protocole IP une convergence des différents services et des technologies;
l'utilisation d'un même réseau pour la voix, les données, et les images. Sa
réalisation offre une multitude de solutions parmi lesquels Asterisk qui influence
d’ores et déjà les stratégies des équipementiers en montrant la voie à travers ces
différents API permettant ainsi de développer des applications pouvant interagir
avec lui. Un panneau de configuration permettrait à un label de mettre en
production des IPPX à faible coût.
30
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
Webographie
1- https://doc.ubuntu-fr.org/asterisk consulté le 04/05/2021 à 10h-
2-https://wiki.asterisk.org/wiki/dashboard.action consulté le 04/05/2021 à 13h
3-https://www.voip-info.org/asterisk/ consulté le 07/06/2021 à 17h
4-https://computingforgeeks.com/how-to-install-asterisk-16-lts-on-ubuntu-
debian-linux/ consulté le
09/06/2021 à 11h
Bibliographie
Laurent Ouakil et Guy Pujolle : Téléphonie sur IP, Edition EYROLLES
31
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI
II. Configuration d’Asterisk et des clients SIP ....Erreur ! Signet non défini.
III. Présentation des applications API d’Asterisk Erreur ! Signet non défini.
33