Étudiante en Master Sécurité des Systèmes d’Information, je partage sur ce blog mon parcours en cybersécurité à travers mes projets, travaux pratiques et retours d’expérience. J’y aborde le DevSecOps, la sécurité cloud, le SOC, la sécurité applicative, les réseaux, la gestion des risques et les bonnes pratiques pour renforcer la protection des systèmes d’information.
/image%2F7223967%2F20260414%2Fob_339451_chatgpt-image-13-avr-2026-22-02-30.png)
À l’ère de la transformation numérique, les systèmes de communication jouent un rôle essentiel dans l’amélioration de l’expérience utilisateur. Parmi ces technologies, le Serveur Vocal Interactif (SVI) occupe une place centrale en permettant d’automatiser l’accueil et l’orientation des appels.
Dans le cadre de ce TP, nous avons conçu et mis en place un SVI en utilisant Asterisk, une solution open source de téléphonie IP. Ce système permet de guider l’utilisateur à travers un menu vocal interactif afin de le rediriger efficacement vers le service approprié, en fonction de ses choix.
Ce travail a été réalisé par PAYAO Rachidatou, étudiante en Master en Sécurité des Systèmes d’Information, sous la supervision de M. Kachallah Abagana Mahamat.
L’objectif principal de ce projet est de comprendre le fonctionnement d’un système de téléphonie IP, tout en intégrant des technologies modernes telles que la synthèse vocale via Google TTS, afin de rendre l’interaction homme-machine plus fluide, intuitive et professionnelle.
L’objectif de ce TP est de concevoir et de mettre en œuvre un système complet de Serveur Vocal Interactif (SVI) en s’appuyant sur des technologies de téléphonie IP modernes.
Il est important de noter que l’installation et la configuration de base d’Asterisk ont été réalisées au préalable et détaillées dans un article dédié :
Cette installation constitue une étape essentielle, car Asterisk représente le cœur du système de téléphonie IP, permettant la gestion des appels et des services vocaux .Dans ce TP, nous nous sommes donc concentrés principalement sur les aspects avancés, notamment :https://aquila-networks.overblog.fr/2026/03/installation-d-asterisk-sous-ubuntu-server-24.html
Concevoir un système capable d’interagir avec l’utilisateur à travers un menu vocal dynamique, incluant des messages d’accueil et des options de navigation.
Mettre en œuvre la technologie Google Text-To-Speech (TTS) afin de générer automatiquement des messages vocaux à partir de texte, rendant le système plus flexible et automatisé.
Implémenter un mécanisme permettant de capter les choix de l’utilisateur via les touches du téléphone (DTMF) et de traiter ces entrées pour orienter l’appel.
Configurer le fichier extensions.conf afin de définir le comportement du système en fonction des actions de l’utilisateur, notamment la redirection des appels.
Prerequis
Pour réaliser ce TP, les prérequis suivants ont été utilisés :
- Un système Linux (Ubuntu Server)
- Asterisk installé et fonctionnel
Configuration
Installation des dépendances
La première étape consiste à installer les dépendances nécessaires au bon fonctionnement de la synthèse vocale et du traitement audio.
Ces outils permettent à Asterisk de générer et lire des messages vocaux dynamiques.
commande: apt-get install perl libwww-perl sox mpg123
/image%2F7223967%2F20260414%2Fob_683a46_svi1.png)
Cette étape prépare l’environnement en installant les bibliothèques indispensables au fonctionnement du système vocal.
Installation des dépendances audio
Dans le cadre de la configuration du SVI, nous avons installé certains outils nécessaires au traitement audio.
Une des étapes consistait à installer SoX ainsi que le support des fichiers MP3 avec la commande suivante:
Commande: apt install sox libsox-fmt-mp3 -y
/image%2F7223967%2F20260414%2Fob_9822e8_svi2.png)
Cette commande permet d’installer SoX, un outil utilisé pour le traitement des fichiers audio, ainsi que le module libsox-fmt-mp3 qui ajoute la compatibilité avec le format MP3. Ces éléments sont essentiels pour permettre la lecture et le traitement des messages vocaux dans le système SVI.
Configuration du dossier AGI
Après l’installation des dépendances audio, nous avons procédé à la configuration du script AGI nécessaire pour la synthèse vocale.
Pour cela, nous avons d’abord accédé au répertoire des scripts AGI d’Asterisk :
commande: cd /var/lib/asterisk/agi-bin
/image%2F7223967%2F20260414%2Fob_75a008_svi3.png)
Ce dossier contient les scripts AGI utilisés par Asterisk pour exécuter des actions externes, comme la génération de messages vocaux.
Téléchargement du script Google TTS
Ensuite, nous avons téléchargé le script permettant d’utiliser Google Text-To-Speech dans Asterisk.
commande : wget https://raw.github.com/zaf/asterisk-googletts/master/googletts.agi
/image%2F7223967%2F20260414%2Fob_a7e6b7_svi4.png)
Cette commande permet de récupérer le script googletts.agi depuis GitHub. Ce script est essentiel car il permet de convertir du texte en audio et de l’intégrer directement dans le système SVI.
Vérification du fichier
Cette commande permet de vérifier la présence du fichier googletts.agi ainsi que ses permissions actuelles.
Commande: ls -l
/image%2F7223967%2F20260414%2Fob_2ce9f4_sv5i.png)
Rendre le script exécutable
commande: chmod +x googletts.agi
/image%2F7223967%2F20260414%2Fob_a43803_svi6.png)
Cette commande permet d’ajouter le droit d’exécution au script, ce qui est indispensable pour qu’Asterisk puisse l’exécuter.
Vérification après modification
commande: ls -l
/image%2F7223967%2F20260414%2Fob_cf050d_svi7.png)
On verifie pour confirmer que le fichier est maintenant exécutable (présence de x dans les permissions).
Attribution du propriétaire à Asterisk
commande : chown asterisk:asterisk /var/lib/asterisk/agi-bin/googletts.agi
/image%2F7223967%2F20260414%2Fob_e8de6b_svi8.png)
Cette commande permet de définir :
asteriskasteriskCela garantit que le script googletts.agi est entièrement accessible et exécutable par le service Asterisk.
Vérification des permissions du script AGI
commande : ls -l
/image%2F7223967%2F20260414%2Fob_1b0ea2_svi9.png)
Cette commande permet de vérifier que le fichier googletts.agi appartient désormais à l’utilisateur et au groupe asterisk.
Attribution des permissions sur les fichiers audio
commande : chown -R asterisk:asterisk /var/lib/asterisk/sounds/
/image%2F7223967%2F20260414%2Fob_4b732d_svi10.png)
Cette commande permet de donner à l’utilisateur et au groupe asterisk les droits sur tous les fichiers audio du dossier sounds. Cela garantit qu’Asterisk peut accéder et lire correctement les fichiers audio utilisés dans le SVI.
Vérification des permissions
Il faut se placer dans le repertoire /var/lib/asterisk/sounds
et executer la commande : ls -l
/image%2F7223967%2F20260414%2Fob_0b5ec7_svi12.png)
/image%2F7223967%2F20260414%2Fob_5843e4_svi11.png)
Cette commande permet de vérifier que le dossier sounds ainsi que son contenu appartiennent bien à l’utilisateur asterisk et que les permissions ont été correctement appliquées.
Configuration du dossier temporaire
commande : chmod 1777 /tmp
/image%2F7223967%2F20260414%2Fob_f8bda2_svi13.png)
Cette commande donne les permissions nécessaires sur le dossier /tmp pour permettre la création de fichiers temporaires par les scripts (notamment pour les fichiers audio générés).
Configuration du Serveur Vocal Interactif (SVI)
La première étape consiste à configurer le plan d’appel d’Asterisk.
Pour cela, nous ouvrons le fichier suivant :
commande : sudo vim /etc/asterisk/extensions.conf
et a l'interieure du from internal on ajoute ce bloc de texte.
; =========================
; 🎙️ SERVEUR VOCAL INTERACTIF (SVI)
; =========================
exten => 5081,1,Answer()
; On définit un timeout de 10 secondes pour la réponse de l'utilisateur
exten => 5081,2,Set(TIMEOUT(response)=10)
; Messages vocaux (Google TTS)
exten => 5081,3,AGI(gtts.agi,"Bienvenue à ESMT",fr,any)
exten => 5081,4,AGI(gtts.agi,"Vous êtes dans le serveur vocal interactif de l'ESMT",fr,any)
exten => 5081,5,AGI(gtts.agi,"Pour joindre Saher, appuyez sur la touche 1",fr,any)
exten => 5081,6,AGI(gtts.agi,"Pour joindre Fatou, appuyez sur la touche 2",fr,any)
exten => 5081,7,AGI(gtts.agi,"Appuyez sur la touche dièse pour réécouter le message",fr,any)
; Attente du choix utilisateur
exten => 5081,8,WaitExten()
; Redirections selon le choix
exten => 1,1,Goto(1000,1)
exten => 2,1,Goto(1001,1)
; Si l'utilisateur tape 3 à 9 ou #
exten => _[3-9#],1,Goto(5081,3)
; Si aucune action (timeout)
exten => t,1,Goto(5081,3)
/image%2F7223967%2F20260414%2Fob_7c91a7_svi14.png)
Ce fichier est très important dans Asterisk. Il permet de définir le comportement du système téléphonique : numéros, menus vocaux (SVI), redirections et actions à exécuter lorsqu’un appel est reçu.
C’est ici que nous allons créer notre serveur vocal interactif.
Accéder à la console Asterisk
commande :sudo asterisk -rvvv
/image%2F7223967%2F20260414%2Fob_ad52ce_svi15.png)
Cette commande permet d’accéder à la console interactive d’Asterisk.
Elle est utilisée pour :
Chargement des modules Asterisk
Dans cette étape, nous avons chargé les modules nécessaires au bon fonctionnement du Serveur Vocal Interactif (SVI).
Module func_timeout.so
commande : module load func_timeout.so
/image%2F7223967%2F20260414%2Fob_64029f_svi14.png)
Ce module permet de gérer les temps d’attente (timeout) dans Asterisk.
Il est utilisé pour contrôler la durée de réponse de l’utilisateur dans le SVI.
Module res_speech.so
commande: module load res_speech.so
/image%2F7223967%2F20260414%2Fob_83e342_svi15.png)
Ce module permet la prise en charge des fonctionnalités de reconnaissance et traitement de la parole dans Asterisk.
Il est utile pour les systèmes vocaux interactifs et les services basés sur la voix.
Module res_agi.so
commande: module load res_agi.so
/image%2F7223967%2F20260414%2Fob_48239f_svi16.png)
Ce module active le support AGI (Asterisk Gateway Interface).
Il permet d’exécuter des scripts externes comme Google Text-To-Speech (gtts.agi) dans le SVI.
Remarque: Dans notre cas, les modules Asterisk étaient déjà installés et actifs sur le système.
C’est pour cette raison que lors du chargement, le message “already loaded and running” s’affichait.
Cela signifie que les modules étaient déjà présents et fonctionnels.
Chez vous, vous aurez des messages comme ceux-ci lors du premier chargement, qui s’afficheront successivement comme suit :
Module func_timeout.so
commande : module load func_timeout.so
/image%2F7223967%2F20260414%2Fob_90b388_svi18.png)
Module res_speech.so
commande: module load res_speech.so
/image%2F7223967%2F20260414%2Fob_49dba0_svi19.png)
Module res_agi.so
commande: module load res_agi.so
/image%2F7223967%2F20260414%2Fob_b4e16a_svi20.png)
Enfin, nous effectuons le test de l’appel vers le numéro du SVI (5081).
Enfin, nous procédons au test de l’appel en composant le numéro du SVI (5081).
/image%2F7223967%2F20260414%2Fob_a9b08d_svi22.png)
Lien drive pour ecouter le serveur vocal: https://drive.google.com/drive/u/1/folders/1OL6yGrXb2pKlh5ZK5EtC8l-EdmceVErH
Les logs générés sur le serveur permettent de suivre en temps réel le fonctionnement du système.
/image%2F7223967%2F20260414%2Fob_4e97af_svi23.png)
Ce TP nous a permis de mettre en place un Serveur Vocal Interactif (SVI) basé sur Asterisk, intégrant la synthèse vocale via Google Text-To-Speech (Google TTS).
Tout au long du travail, nous avons appris à :
extensions.conf)Grâce à ce projet, nous avons mieux compris le fonctionnement des systèmes de téléphonie IP et leur importance dans les environnements modernes tels que les centres d’appels et les services automatisés.
Ce TP a été une expérience enrichissante, tant sur le plan technique que pratique, dans la mise en place d’un service vocal interactif complet.