Vous êtes sur la page 1sur 40

REPUBLIQUE DU BENIN

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA


RECHERCHE SCIENTIFIQUE

UNIVERSITE AFRICAINE DE TECHNOLOGIE ET DE MANAGEMENT


(UATM GASA FORMATION)

MEMOIRE DE FIN DE FORMATION POUR L’OBTENTION DU


DIPLOME DE LINCENCE PROFESSIONNELLE

THEME
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE
APPLICATION WEB

Filière : Génie Electrique Réalisé par : Michaèl KODJI


Option : Réseaux Informatiques et
Télécommunications

Directeur de mémoire
M. OLORY Suzon

Année Académique 2020 -2021


Dédicaces
----------------------------------------------------------
Je dédie ce mémoire à mes chers parents
Alice et Vincent KODJI
----------------------------------------------------------

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

Remerciements ..................................................................................................... iii

Listes des abréviations.......................................................................................... iv

Listes des figures ................................................................................................... v

INTRODUCTION ................................................................................................. 1

Chapitre I. Présentation de la structure hôte ......................................................... 2

Section 1. Présentation de MA-INFO ................................................................ 2

I. Historique..................................................................................................... 2

II. Organigramme ............................................................................................ 2

III. Description ................................................................................................ 3

Section 2. Cadre de travail et déroulement du stage ..................................... 4

I. Travaux effectués......................................................................................... 4

II. Difficultés rencontrées ............................................................................... 5

Chapitre II. Modélisation ...................................................................................... 6

Section 1. Problématique et objectifs ............................................................ 6

I- Problématique ........................................................................................... 6

II- Objectifs .................................................................................................... 6

Section 2. Analyse de l’infrastructure ........................................................... 7

I- Fonctionnement d’un commutateur .......................................................... 7

II- Présentation d’Asterisk .......................................................................... 8

III- Synthèse comparatif commutateur classique et Asterisk .................... 10

IV- Etude des API d’Asterisk .................................................................... 10

Sextion2. Conception de l’application .......................................................... 12


I- Diagramme de cas d’utilisation .............................................................. 12

II- Diagramme de séquences .................................................................... 13

III- Diagramme d’activité .......................................................................... 13

Chapitre III. Implémentation de l’infrastructure ................................................. 13

Section 1. Implémentation du réseau d’hébergement ................................. 13

I. Architecture du réseau d’hébergement ...................................................... 13

II. Installation et configuration d’Asterisk .................................................... 14

II. Configuration des ressources ................................................................... 21

Section 2. Réalisation du logiciel ................................................................ 23

I-Etude des technologies ............................................................................... 23

II- Les technologies en présence .............................................................. 25

III- Les interfaces du logiciel ..................................................................... 26

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

Chapitre I. Présentation de la structure hôte

Section 1. Présentation de MA-INFO


I. Historique
Présente sur le marché de la nouvelle technologie depuis 2000, Multimédia
Alliance Informatique (MA-INFO) est fondée par 03 ingénieurs informaticiens
(Réseaux et Sécurité, Ingénieur commercial IT, Architecte de base de données) et
propose une approche globale à travers une offre cohérente de produits et services
numériques.
MA-INFO est une société dont la mission est d’intégrer des technologies
innovantes pour booster les entreprises et leur permettre de réussir, d’éclore et de
rayonner. Comme objectif, la société souhaite être le guichet unique des
entreprises, être un hub de technologie pour les entreprises et leur éviter ainsi de
se perdre entre plusieurs prestataires dans le domaine de l’informatique.
II. Organigramme

Directeur général

Département administratif Service commercial Département techniques


et financier

Comptabilité Assistante du DG Service informatique Service électroniques

Figure 1: Organigramme de MA-INFO

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

- Reprogrammation de circuit intégré


- Montage d’un matériel électronique
 Le service informatique
Il assure :
- La maintenance de tout le matériel informatique
- La proposition de solutions informatiques améliorant la rentabilité de
l’entreprise

Section 2. Cadre de travail et déroulement du stage


Notre stage au sein de MA-INFO S.A.R.L nous a permis d’acquérir plus de
connaissances et d’apprendre d’autres choses dont nous n’avions pas
connaissance. En effet, notre stage s’est déroulé au département technique sous la
période du 01 Mars au 30 Avril 2021. Cela s’est révélé être d’un grand intérêt
pour nous en ce sens qu’il nous a permis une meilleure immersion dans les
implications des tâches de notre département et de beaucoup apprendre de nos
supérieurs hiérarchiques.
I. Travaux effectués
Au cours de notre stage, nous avons effectués plusieurs tâches au département
techniques
 Câblage réseau : Nous avons accompagné l’équipe technique pour effectuer
des travaux dans une structure clientèle. Là-bas, nous avons d’abord
analysé les pièces de la structure pour vérifier des goulottes existantes afin
d’y faire circuler des câbles réseaux ftp cat6. Après avoir percé les murs
pour fixer les goulottes et faire circuler les câbles au niveau des goulottes,
nous avons procéder à la constitution de l’armoire informatique pour y fixer
les switch. Ensuite, nous avons serti les câbles avec des embases Ethernet
pour les insérer dans les ports du switch.

4
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

 Téléphonie sur IP : nous avons accompagné l’équipe dans le test d’un


système de téléphonie d’un centre de santé et son annexe connecté via
faisceaux hertziens.
 Configuration de routeurs (TP Link) et switch : là nous avons accéder à
l’interface du routeur via son adresse IP en renseignant le login et le mot de
passe puis nous avons attribué une plage d’adresse IP au serveur DHCP.
 Nous avons installés des systèmes d’exploitation (Windows, linux) sur des
postes, installé des logiciels de bureau, et activé Windows sur certains
postes.
 Configuration de la caméra IP CCTV
 Configuration des PBX Yeastar, MyPBX et UC1000
 Sertissage de câbles réseaux

II. Difficultés rencontrées


Notre stage nous a permis de parfaire nos connaissances en réseau. Cependant, il
ne s’est pas déroulé sans difficultés. Aux nombres de celles-ci nous avons :
l’intégration difficile au personnel de l’entreprise. De même, notre manque de
connaissances sur certaines notions en réseau a aussi été pour nous un handicap
au début de notre stage mais grâce à nos responsables et à leur désir de transmettre
leur savoir-faire, nous avons pu rapidement combler ces lacunes et profiter
pleinement de notre stage.

5
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

Chapitre II. Modélisation

Section 1. Problématique et objectifs


I- Problématique
La recherche c’est aller vers l’inconnu, c’est également résoudre des problèmes
du quotidien mais aussi de relever des défis technologiques. Tout cela passe par
la maitrise de ce qui est déjà afin d’aboutir à une solution évoluée qui simplifie la
vie de tous les acteurs à qui est destinée cette solution. La télécommunication plus
principalement la téléphonie fait partie intégrante de ces domaines où la recherche
ne dort presque jamais. Généralement mettre en place une solution de téléphonie
sur IP dans une entreprise revient à disposer d’un IPBX auquel on raccorde des
téléphones IP. Ces IPBX dont les coûts excèdent sont dotés d’un logiciel qui
pourtant est libre et gratuit. En réalité ils possèdent une interface graphique
contrairement au logiciel de base qui est configurable en ligne de commande.
Toutefois développé une interface web pour le logiciel et l’installer sur un poste
fait de celui-ci un IPBX parfait qui amortisserait le coût dans l’implémentation
des solutions de téléphonie sur IP. Ainsi une entreprise pourrait mettre en
production des IPBX à moindre coût avec le logiciel open source et l’interface
web embarquée.
II- Objectifs
Le but de ce projet est de maitriser tous les composants qui rentrent dans la
conception de Asterisk avant des proposer des solutions qui permettent de le
prendre en main de manière efficace et ergonomique

6
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

Section 2. Analyse de l’infrastructure


I- Fonctionnement d’un commutateur
Un autocommutateur téléphonique quel que soit sa technologie est constitué de
03 grands blocs regroupant les fonctions téléphoniques mais aussi les moyens de
gestion et les outils de maintenance.
 Le bloc de raccordement : il assure généralement la fonction d’interface
avec le réseau téléphonique
 Le bloc de commande : C’est la partie intelligente du système où se
prennent les décisions d’après les programmes câblés ou enregistrés
 Le réseau de connexion : C’est e véritable cœur de chaine commutée
permettant les différents types de connexion.

Figure 2 : Scénario de l'échange entre des abonnées raccordées à un PABX classique

Quand un abonné compose le numéro de téléphone pour effectuer un appel, le


numéro est enregistré par un organe situé dans l’Unité de commande. Cet organe
7
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

II- Présentation d’Asterisk


Asterisk est un autocommutateur téléphonique privé (PABX) créé en 1999 par un
étudiant de l'université d'Auburn (États-Unis Alabama) qui était à la recherche
d'un commutateur téléphonique privé pour créer un centre de support technique.
Dissuadé par les tarifs trop élevés des solutions existantes, il décide de créer son
propre routeur d'appels sous Linux. Il a donc commencé à développer Asterisk.
Les programmeurs Open Source du monde entier ont contribué à l’écriture du
code source, aux expérimentations, et aux patches correctifs des bugs en
provenance de la communauté.

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

Lorsque l’utilisateur A souhaite établir une communication avec B, une trame


INVITE est envoyée au serveur. Ce dernier renvoie alors une trame TRYING qui
stipule à A qu’il est en train d’essayer d’établir la communication.
Le serveur envoie ensuite une trame INVITE à l’utilisateur B qui lui répond
également à l’aide d’une trame TRYING, puis d’une trame RINGING lui
indiquant que le téléphone de B sonne. Cette trame est transmise à A qui doit
entendre la tonalité dans son téléphone indiquant que celui de B est en train de
sonner. B décroche alors et une trame OK signale au serveur que la requête de
communication avec B a bien été reçue. Cette trame est transmise à A qui envoie
alors un ACK (acquittement) à B pour que la communication puisse s’établir. A
et B peuvent alors discuter. Lorsqu’ A raccroche, une trame BYE est alors
envoyée au serveur qui la transfère à B. Celui-ci répond par une trame OK
stipulant qu’il a bien reçu la trame BYE qui termine la communication.

9
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

III- Synthèse comparatif commutateur classique et Asterisk


Les autocommutateurs classiques acheminent les voix sous forme de continuités
métallique. La membrane en caoutchouc se trouvant dans le combiné
téléphonique vibre selon le rythme de la voix, ce mouvement étant par la suite
converti en signal électrique analogique par un mécanisme composé d’aimants,
de fils électriques et de bobines. Le signal est ensuite transmis vers le standard,
transite sur le réseau en cuivre pour parvenir au destinataire, là où se passe la
retranscription en conversation vocale audible. Cependant il reste difficile de
mettre configurer ces types de commutateurs et ils coutent extrêmement chères.

Dans ce système de téléphonie avec un IPBX, un micro placé dans le combiné


capte la voix à la place du système de vibration. La voix est numérisée grâce au
processus d’échantillonnage, de quantification et de codage. Ensuite elle est
découpée en de nombreux paquets de données après compression et enfin
transmises au destinataire final via un réseau acceptant le protocole TCP/IP. Cela
offre une réduction du coût de communication, un gain de mobilité et permet la
mise en œuvre de la visioconférence etc.

IV- Etude des API d’Asterisk


Peu de temps après le début du projet Asterisk, deux interfaces de programmation
d'applications (API) ont été ajoutées à Asterisk : l'Asterisk Gateway Interface
(AGI) et l'Asterisk Manager Interface (AMI). Ces interfaces ont des objectifs
distincts :
 AGI est analogue à CGI dans Apache. AGI fournit une interface entre le
plan de numérotation Asterisk et un programme externe qui souhaite

10
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

manipuler un canal dans le plan de numérotation. En général, l'interface est


synchrone. Les actions sont prises sur un canal à partir d'un bloc AGI et ne
reviennent pas tant que l'action n'est pas terminée.

 AMI fournit un mécanisme pour contrôler où les canaux s'exécutent dans


le plan de numérotation. Contrairement à AGI, AMI est une interface
asynchrone pilotée par les événements. Pour la plupart, AMI ne fournit pas
de mécanismes pour contrôler l'exécution des canaux il fournit plutôt des
informations sur l'état des canaux et contrôle l'endroit où les canaux
s'exécutent.

11
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

Ces deux interfaces sont puissantes et ouvrent un large éventail de possibilités


d'intégration. En utilisant AGI, l'exécution du plan de numérotation à distance
pourrait être activée, ce qui a permis aux développeurs d'intégrer Asterisk avec
PHP, Python, Java et d'autres applications. À l'aide d'AMI, l'état d'Asterisk peut
être affiché, les appels lancés et l'emplacement des canaux contrôlés. En utilisant
les deux API ensemble, des applications complexes utilisant Asterisk comme
moteur peuvent être développées.

 ARI (Asterisk Rest Interface)

Sextion2. Conception de l’application


Notre étude du projet s’est basée sur une analyse UML nous permettant ainsi de
retenir les diagrammes suivant.
I- Diagramme de cas d’utilisation

12
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

II- Diagramme de séquences

III- Diagramme d’activité

connexion au
panneau

invalide valide
error

accès au panneau
d'administration

ajout des clients


ajouter diaplans
SIP

Informations Informations
non non
correctes correctes
Erreur Erreur

Informations Informations
correctes correctes
Utilisateurs diaplans
enregistrés enregistrés

Chapitre III. Implémentation de l’infrastructure

Section 1. Implémentation du réseau d’hébergement


I. Architecture du réseau d’hébergement
L’application est hébergée sur un serveur sur lequel tourne également le serveur
de téléphonie Asterisk. Elle est accessible en étant dans un LAN constitué du

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.

Smartphone équipé d un softphone


IP phone

IP phone

Serveur d Asterisk et de l application web


Poste client pour la configuration

II. Installation et configuration d’Asterisk


A- Installation d’Asterisk

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.

Figure 4 : Configuration matérielle de la machine virtuelle

Détermination des prés requis

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

 Etape 1 : Mise à jour et téléchargement des dépendances


Nous allons mettre à jour notre système, ensuite procédé à l’installation des
dépendances.

sudo apt update


sudo apt upgrade
sudo apt install build-essential libxml2-dev libncurses5-dev linux-headers-`uname -r` l
ibsqlite3-dev libssl-dev libedit-dev uuid-dev libjansson-dev

 Etape 2 : Téléchargement des codes sources


Voilà les lignes de commandes nécessaires pour le téléchargement d’Asterisk. On
identifie l’url et après on le télécharge via la commande wget

mkdir /usr/src/asterisk
cd /usr/src/asterisk
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

 Etape 3 : Extraction des paquetages


Les paquetages téléchargés sont des archives compressés qui contiennent le code
source, on aura besoin de les extraire, en utilisant la commande tar, avant de les
compiler

tar -xvzf asterisk-16-current.tar.gz


cd asterisk-16.0.1
./configure --with-jansson-bundled
make menuselect

16
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

 Etape 4 : Compilation et installation


Nous allons terminer l’installation d’Asterisk en complétant les modules
supplémentaires pour son fonctionnement optimal.

make
make install
make samples
make config

 Etape 5 : Fixer l’adresse IP de notre serveur


Nous avons défini notre réseau avec une adresse privée de classe C 192.168.2.0
avec pour masque 255.255.255.0. Nous allons fixer l’adresse 192.168.2.75 au
serveur en rééditant le fichier network avec les lignes suivantes.

sudo nano /etc/interfaces/network ; nous y avons ajouté les lignes suivantes


#iface enp0s3 inet dhcp
iface enpos3 inet static
address 192.168.2.75
mask 255.255.255.0
gateway 192.168.2.1

 Etape 6 : Démarrer Asterisk et Lancer la console d’Asterisk


Nous allons à présents démarrer le service asterisk grâce aux commandes
suivantes :

/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

Figure 5 : Fichiers de configuration d’Asterisk

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

Voici les explications concernant ces différents paramètres :


[6001]: numéro utilisé pour appeler l’utilisateur
type: trois types peuvent être choisi pour définir les « droits » de l’utilisateur
- friend : droit d’émettre et de recevoir des appels.
- peer : droit d’émettre uniquement des appels.
- user : droit de recevoir uniquement des appels.
username : nom de l’utilisateur
secret: mot de passe de l’utilisateur
host: deux situations peuvent se présenter
- dynamic : l’utilisateur peut utiliser tous les clients pour se connecter à son
compte.
- adresse IP (ex : 192.168.2.4) : l’utilisateur ne pourra qu’utiliser le client à
l’adresse IP indiquée pour se connecter à son compte.
19
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

context : définit quel contexte du plan de numérotation est attribué à l’utilisateur


Nous créons donc de la même façon, différents utilisateurs, (6002,6003, 6004,
6005, 6006, 6007,6008 et 6000) dans le fichier users.conf.

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

II. Configuration des ressources


1. Configuration des terminaux
Pour tester nos configurations, nous avons dû installer des postes clients avec des
Téléphones IP afin que ceux-ci puissent utiliser le serveur de téléphonie Asterisk.
Nous avons choisi d’utiliser les téléphones IP de marque yealink comme les
postes clients pour tester l’ensemble des configurations faites.

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

Figure 7 : Configuration du compte SIP sur le softphone

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

Section 2. Réalisation du logiciel


I- Etude des technologies
Pour notre application nous avons choisir d’utiliser l’AMI comme API vu sa
flexibilité et sa simplicité d’utilisation.
L’AMI est un modèle client/serveur fonctionnant sur TCP. Elle permet entre
autres de contrôler le PBX, passer des appels, vérifier l'état de la boîte aux lettres,
surveiller les canaux et les files d'attente ainsi qu'exécuter les commandes Asterisk
C'est une des briques d’Asterisk qui lui vaut son succès. Elle est configurable dans
le fichier manager.conf. Par défaut, AMI est disponible sur le port TCP 5038 en
l'activant dans le fichier manager.conf.
L'AMI reçoit des commandes, appelées "actions". Ceux-ci génèrent une "réponse"
de la part d'Asterisk. Asterisk enverra également des "Événements" contenant
divers messages d'information sur les changements d’état au sein
d'Asterisk. Certaines actions génèrent une réponse initiale et des données sous
forme de liste d'événements. Ce format est créé pour s'assurer que les rapports
détaillés ne bloquent pas complètement l'interface du gestionnaire.
1. Configuration
Pour pouvoir utiliser Asterisk Manager Interface, il faut d’abord autoriser AMI à
fonctionner, ensuite se connecter avec un compte valide. Un compte est défini par
un login, un mot de passe et des droits associés. La configuration se fait en
modifiant les lignes du fichier manager.conf.

[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

Un message de retour est envoyé dès qu’on s’authentifie correctement.

3. Administrer Asterisk avec PHP


AMI devient particulièrement intéressant quand il s'agit de se connecter avec un
langage de développement. Le principe du socket offre la possibilité de contrôler
aisément asterisk via les commandes de l’AMI tout en établissant une session TCP
à partir de n’importe quel langage. Les sockets permettent d’envoyer et de
recevoir des informations sans devoir se soucier des contraintes de gestion du
réseau. Ainsi nous insérons les commandes de l’AMI dans les sockets que nous
envoyons au serveur asterisk et qui nous envoie les résultats de nos commandes

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");

fputs($socket, "Action: Logoff\r\n\r\n");


$wrets = 'begin';

while(trim($wrets) != '--END COMMAND--'){


$wrets=trim(fgets($socket));
echo $wrets."";
}

fclose($socket);
?>

AMI dispose de nombreuses commandes permettant d’afficher la liste des


utilisateurs, d’en ajouter de les supprimer ou encore de les modifiés.
Exemple: Action: Command Command: sip show peer

II- Les technologies en présence


1. Choix du langage de programmation
 HyperText Preprocessor est un langage de script utilisé le plus souvent
côté serveur

25
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

 JavaScript est un langage de programmation de scripts principalement


employé dans les pages web interactives et à ce titre est une partie
essentielle des applications web
 Cascading Style Sheets, forment un langage informatique qui décrit la
présentation des documents HTML et XML
 HyperText Markup Language, généralement abrégé HTML ou dans sa
dernière version HTML5, est le langage de balisage conçu pour représenter
les pages web

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.

III- Les interfaces du logiciel


Interface de connexion. L’administrateur se connecte avec les identifiants créés
dans le fichier manager.conf. Dès que les identifiant sont correctes,
l’administrateur accède au panneau d’administration.

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)

Dans l’onglet user, l’administrateur à la possibilité d’ajouter des clients SIP en


renseignant le nom, le numéro de téléphone le mot de passe et le contexte dans
lequel il doit se trouver. Ces données sont concaténer dans des commandes AMI
grâce aux sockets et sont envoyer au serveur Asterisk qui les traites. Une fois le
l’enregistrement effectuée le tableau en bas se met à jour et affiche les
informations du nouveau client SIP.

27
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

2- Vue de gestion des clients SIP

Figure 9 : Interface d’ajout et de suppressions des clients SIP

L’administrateur a la possibilité de modifier les informations du client SIP en


cliquant sur l’icône du crayon. Les informations sont renvoyées dans le formulaire
avec quelques champs qui sont plus modifiables.

Figure 10 : Interface de modification d’un client SIP

28
PRISE EN MAIN DU SERVEUR ASTERISK PAR UNE APPLICATION WEB Réalisé par ddfddddddd
Michaèl KODJI

3- Vue de gestion des extensions


L’administrateur a également la possibilité d’ajouter des plans de numérotations
et de se déconnecter de l’interface.

Figure 11 : Interface d’ajout des extensions

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

Table des matières


Dédicaces ............................................................................................................... ii

Remerciements ..................................................................................................... iii

Listes des abréviations.......................................................................................... iv

Listes des figures ................................................................................................... v

INTRODUCTION ......................................................Erreur ! Signet non défini.

Chapitre I. Présentation de la structure hôte ..............Erreur ! Signet non défini.

Section 1. Présentation de MA-INFO .....................Erreur ! Signet non défini.

I. Historique..........................................................Erreur ! Signet non défini.

II. Organigramme .................................................Erreur ! Signet non défini.

III. Description .....................................................Erreur ! Signet non défini.

Section 2. Cadre de travail et déroulement du stageErreur ! Signet non


défini.

I. Travaux effectués..............................................Erreur ! Signet non défini.

II. Difficultés rencontrées ....................................Erreur ! Signet non défini.

Chapitre II. Problématique et étude de l’infrastructureErreur ! Signet non


défini.

Section 1. Problématique ...................................Erreur ! Signet non défini.

Section 2. La voix sur IP et Asterisk .................Erreur ! Signet non défini.

I. La voix sur IP....................................................Erreur ! Signet non défini.

II. Présentation d’Asterisk....................................Erreur ! Signet non défini.

Chapitre III. Implémentation de l’infrastructure ........Erreur ! Signet non défini.

Section 1. Installation et configuration de la plateformeErreur ! Signet non


défini.

I. Installation d’Asterisk .......................................Erreur ! Signet non défini.


32
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.

Section 2. Développement de l’application .......Erreur ! Signet non défini.

I. Etudes et choix des technologies ......................Erreur ! Signet non défini.

II. Aperçues des interfaces ...................................Erreur ! Signet non défini.

CONCLUSION ..........................................................Erreur ! Signet non défini.

Webographie...............................................................Erreur ! Signet non défini.

Bibliographie ..............................................................Erreur ! Signet non défini.

33

Vous aimerez peut-être aussi