Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

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

Publicité

Mise en place d’un Serveur Vocal Interactif (SVI) avec Asterisk et Google TTS

 

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

 

Objectifs du TP

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

Mise en place d’un menu vocal interactif

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.


Intégration de la synthèse vocale avec Google TTS

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


Gestion des interactions utilisateur

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.


 Implémentation du plan de numérotation

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

 

 

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


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

 

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

 

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

 

Rendre le script exécutable

commande: chmod +x googletts.agi

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

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
 

Cette commande permet de définir :

  • l’utilisateurasterisk
  • le groupeasterisk

Cela 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

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/

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 

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

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)

 

Édition du fichier extensions.conf

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)
 

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

Cette commande permet d’accéder à la console interactive d’Asterisk.

Elle est utilisée pour :

  • Voir les appels en temps réel
  • Déboguer le serveur téléphonique
  • Vérifier le fonctionnement du SVI
  • Afficher les logs directement dans le terminal

 

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

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

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

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

Module res_speech.so

commande: module load res_speech.so

Module res_agi.so

commande:  module load res_agi.so

 

Test de l’appel

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

 

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.

 

Conclusion générale

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 à :

  • Configurer Asterisk et son plan de numérotation (extensions.conf)
  •  Mettre en place un menu vocal interactif permettant l’orientation des utilisateurs
  • Intégrer un système de génération de messages vocaux dynamiques avec AGI
  • Gérer les interactions utilisateur à travers les touches du téléphone
  • Vérifier et analyser le fonctionnement du système via la console CLI

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.

Publicité
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article