0% ont trouvé ce document utile (0 vote)
64 vues47 pages

Rapport

Le rapport de stage présente la configuration d'un serveur Asterisk pour développer un VoiceBot utilisant l'intelligence artificielle, dans le cadre d'une Licence en Technologies de l'Information et de la Communication. Réalisé par Dhia Eddine Hertelli, ce projet est encadré par M. Kamel Aloui et M. Ala Eddine Hertelli, et se déroule au sein de la société ALAVOIP. Le document inclut une étude préalable, une méthodologie Scrum, ainsi que des spécifications et étapes de mise en œuvre du projet.

Transféré par

salemriem8
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
64 vues47 pages

Rapport

Le rapport de stage présente la configuration d'un serveur Asterisk pour développer un VoiceBot utilisant l'intelligence artificielle, dans le cadre d'une Licence en Technologies de l'Information et de la Communication. Réalisé par Dhia Eddine Hertelli, ce projet est encadré par M. Kamel Aloui et M. Ala Eddine Hertelli, et se déroule au sein de la société ALAVOIP. Le document inclut une étude préalable, une méthodologie Scrum, ainsi que des spécifications et étapes de mise en œuvre du projet.

Transféré par

salemriem8
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE

UNIVERSITE DE SOUSSE

INSTITUT SUPERIEUR D’INFORMATIQUE


ET DES TECHNOLOGIES DE COMMUNICATION
‫المعهد العالي لإلعالمية وتكنولوجيات االتصال‬

Rapport de stage de fin d’études


Présenté en vue de l’obtention du diplôme de Licence en Technologies de
l’Information et de la Communication
Spécialité : Télécommunications

Configurer un serveur Asterisk afin de réaliser un


VoiceBot avec IA

Réalisé par :
Hertelli Dhia Eddine

Encadrant académique : M. Kamel Aloui

Encadrant professionnel : M. Ala Eddine Hertelli

Société d’accueil

ALAVOIP
Année universitaire : 2023/2024
Institut Supérieur d'Informatique et des Technologies de Communication ISITCOM

Tél/Fax : +216 73 37 15 71 / +216 73 36 44 11


MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITE DE SOUSSE

INSTITUT SUPERIEUR D’INFORMATIQUE


ET DES TECHNOLOGIES DE COMMUNICATION
‫المعهد العالي لإلعالمية وتكنولوجيات االتصال‬

Rapport de stage de fin d’études


Présenté en vue de l’obtention du diplôme de Licence en Technologies de
l’Information et de la Communication
Spécialité : Télécommunications

Configurer un serveur Asterisk afin de réaliser un


VoiceBot avec IA

Réalisé par :
Hertelli Dhia Eddine

Encadrant académique : M. Kamel Aloui ____________

Encadrant professionnel : M. Ala Eddine Hertelli

Société d’accueil

ALAVOIP
Année universitaire : 2023/2024
Institut Supérieur d'Informatique et des Technologies de Communication ISITCOM

Tél/Fax : +216 73 37 15 71 / +216 73 36 44 11


REMERCIEMENTS

J’adresse mes remerciements les plus sincères à ma famille pour leur amour incondi-
tionnel, leur patience et leur soutien indéfectible tout au long de mes études. Je tiens tout
particulièrement à remercier mon père, Najeh, et ma mère, Faiza, qui m’ont énormément
aidé et soutenu tout au long de ce parcours. Leur dévouement et leurs encouragements ont
été une source constante de motivation. De plus, je souhaite à ma sœur, Siwar, beaucoup
de succès dans ses études et la réussite dans son baccalauréat. Sa détermination et son
engagement sont exemplaires, et je suis convaincu qu’elle atteindra tous ses objectifs.
Je tiens à exprimer ma profonde gratitude à toutes les personnes qui ont contribué
à la réalisation de ce projet de fin d’études. Tout d’abord, je remercie chaleureusement
mon superviseur, M. Ala Eddine Hertelli, pour ses conseils avisés, son soutien constant
et ses encouragements tout au long de cette aventure. Son expertise et ses commentaires
constructifs ont été inestimables pour l’aboutissement de ce travail.
Je souhaite également remercier les membres du jury pour leur temps et leur considé-
ration.
Un grand merci à mes collègues et amis pour leur aide, leurs idées et leur soutien
moral. Leurs discussions stimulantes et leur collaboration ont grandement enrichi ce
travail.
Enfin, je voudrais exprimer une pensée spéciale pour ma grand-mère "Chadlia", qui nous
a quittés la semaine dernière. J’espère que vous aurez une pensée pour elle dans vos
prières. Son absence est douloureusement ressentie, et elle restera à jamais dans nos
cœurs.

DhiaEddine Hertelli

.
LISTE DES ABRÉVIATIONS

— SIP : Session Initiation Protocol


— RTP : Real- Time Transport Protocol
— AGI : Asterisk Gateway Interface
— STT : Speech to text
— TTS : Text To Speech
— UML : Unified Modeling Language
— VOIP : Voice Over Internet Protocol
— SSH : Secure Shell
Table des matières

Table des figures 7

Liste des tableaux 9

Introduction Generale 10

1 ETUDE PRÉALABLE 12
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1 Organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1.1 Présentation de la société . . . . . . . . . . . . . . . . . . . . . 12
1.2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.1 Contexte Général . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 Etude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.1 Analyse de l’existant . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.2 Critiques de l’existant . . . . . . . . . . . . . . . . . . . . . . 13
1.3.3 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Capture des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.1 Identifications des acteurs . . . . . . . . . . . . . . . . . . . . 14
1.4.2 Identifications des Besoins fonctionnels . . . . . . . . . . . . . 14
1.4.3 Identifications des Besoins non fonctionnels . . . . . . . . . . 15
1.5 Méthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.1 Présentation de la méthode SCRUM . . . . . . . . . . . . . . 15
1.5.2 Les différents rôles dans Scrum . . . . . . . . . . . . . . . . . 17
1.5.3 Les artéfacts de la méthode Scrum Agile . . . . . . . . . . . . 17
1.6 Gestion de projet selon la méthodologie Scrum . . . . . . . . . . . . . 18
1.6.1 Le Backlog de produit . . . . . . . . . . . . . . . . . . . . . . 18
1.6.2 Planification des sprints . . . . . . . . . . . . . . . . . . . . . 18
1.6.3 Planning du déroulement du projet . . . . . . . . . . . . . . . . 19
1.7 Diagramme de cas d’utilisation général . . . . . . . . . . . . . . . . . 20
1.8 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . . . . 21

5
1.8.1 Technologies et frameworks utilisés . . . . . . . . . . . . . . . 21
1.8.2 Les outils et les logiciels utilisés . . . . . . . . . . . . . . . . . 23
1.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2 SPRINT 1 - Gérer les Appels 25


2.1 Spécification des besoins . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.1 Backlog du sprint . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.2 Spécification fonctionnelle . . . . . . . . . . . . . . . . . . . . 26
2.1.3 Diagramme de séquence de gestion d’un appel . . . . . . . . . 29
2.1.4 Étapes de mise en œuvre . . . . . . . . . . . . . . . . . . . . . 31
2.1.5 Procédure d’un appel dans Asterisk . . . . . . . . . . . . . . . 33

3 SPRINT 2 - Gérer les demandes de voicebot 35


3.0.1 Spécification des besoins . . . . . . . . . . . . . . . . . . . . . 36
3.1 Etude conceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.1.1 Diagrammes de séquences détaillés . . . . . . . . . . . . . . . 38
3.2 Étape de mise en oeuvre . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.1 [Link] . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.2 [Link] . . . . . . . . . . . . . . . . . . . . . . 41
3.2.3 asterisk_chatgpt.py . . . . . . . . . . . . . . . . . . . 43

Bibliographie 46
Table des figures

1.1 Le process de Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . 16


1.2 Planification des sprints . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.3 Planning du déroulement du projet . . . . . . . . . . . . . . . . . . . . 19
1.4 diagramme de cas d’utilisation général . . . . . . . . . . . . . . . . . . 20
1.5 logo SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.6 logo Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7 logo Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.8 logo perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.9 logo AGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.10 logo Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.11 logo Putty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.12 logo Linphone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.1 VoIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 diagramme de cas d’utilisation d’authentification . . . . . . . . . . . . 27
2.3 Diagramme de cas d’utilisation de gestion des appels . . . . . . . . . . 28
2.4 diagramme de séquence de gestion d’un appel . . . . . . . . . . . . . . 30
2.5 install Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.6 Fichiers Asterisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.7 [Link] 1000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.8 [Link] appel . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.9 procédure d’un appel dans Asterisk . . . . . . . . . . . . . . . . . . . . 33

3.1 Fichiers AGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36


3.2 diagramme de cas d’utilisation gérer une demande de voicebot . . . . . 37
3.3 diagramme de séquence gestion demande voicebot . . . . . . . . . . . 39
3.4 scénario d’une interaction avec voicebot dans le serveur . . . . . . . . 40
3.5 les scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.6 googlettes en perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.7 bibliotheque googlettes . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.8 Perl / service utilisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

7
3.9 Speech API key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.10 python_asterisk_chatgpt.py . . . . . . . . . . . . . . . . . . . 43
3.11 bibliothèque asterisk_chatgpt.py . . . . . . . . . . . . . . . . 43
3.12 key openAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.13 voicebot [Link] . . . . . . . . . . . . . . . . . . . . . . . . . 44
Liste des tableaux

1.1 Rôles dans Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17


1.2 Backlog de produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.1 Le Backlog de produit "Sprint 1" . . . . . . . . . . . . . . . . . . . . . 26


2.2 Description textuelle du diagramme de cas d’utlisation “authentification” 27
2.3 Description textuelle de diagramme de cas d’utlisation "Gestion des
appels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1 Le Backlog de produit "Sprint 2" . . . . . . . . . . . . . . . . . . . . . 36


3.2 Description textuelle du cas d’utilisation "Gestion des demandes Voicebot" 38

9
Introduction Generale

Au sein d’un monde de plus en plus interconnecté, où la technologie occupe une


place centrale et où les attentes des clients en matière d’innovation sont en constante
augmentation, ALAVOIP, un prestataire majeur dans le domaine des services de télécom-
munication, saisit l’occasion d’optimiser son infrastructure pour répondre de manière
efficace à ces besoins en perpétuelle évolution. Dans cette perspective, notre équipe a
entrepris un projet de fin d’études (PFE) au sein de cette entreprise, avec objectif de
mettre en place un serveur Asterisk et de développer un voicebot utilisant l’intelligence
artificielle pour fournir des réponses vocales aux questions des clients.

Ce rapport exhaustif présente en détail le fruit de nos efforts tout au long de ce


projet. Structuré en trois chapitres, ce document explore minutieusement les différentes
facettes de notre travail. Le premier chapitre offre une vue d’ensemble du contexte du
projet, incluant l’étude préliminaire, l’identification des problématiques, les résultats de
l’étude et la méthodologie adoptée. Les deux chapitres suivants, conformes aux principes
SCRUM, constituent l’essence même de notre étude. Le deuxième chapitre analyse en
profondeur la gestion des appels, tandis que le troisième se concentre sur la gestion des
demandes vers le voicebot.

En conclusion, notre rapport résume le travail accompli et esquisse les perspectives


futures du projet.

10
Résumé
Ce projet, entrepris au sein de l’entreprise ALAVOIP, représente le travail de fin
d’études dans le cadre de l’obtention du diplôme de licence en télécommunication. Son
objectif est de mettre en place, de configurer et de développer un serveur VoIP (Voice
over IP) pour réaliser un voicebot intégrant des fonctionnalités d’intelligence artificielle.
Pour atteindre cet objectif, diverses technologies sont employées. Nous incluons
notamment Python,Perl, PuTTY, ainsi que la méthodologie Scrum pour la gestion de
projet.

11
Chapitre 1

ETUDE PRÉALABLE

Introduction
Avant d’attaquer pleinement le volet technique du projet, il est fondamental de
dégager le contexte général du travail ainsi que de spécifier la problématique et les
objectifs visés. Les détails y afférents font l’objet de la présentation de ce chapitre.

1.1 Organisme d’accueil


1.1.1 Présentation de la société
ALAVOIP est une entreprise spécialisée dans les solutions de téléphonie sur IP (VoIP)
et dans la mise en œuvre du logiciel Asterisk, une plateforme puissante pour la gestion de
systèmes de communication. En tant qu’experts dans le domaine de la VoIP, ALAVOIP
offre une gamme complète de services, allant de l’installation et la configuration de
systèmes VoIP à la maintenance et au support technique.
— nom de l’entreprise : ALAVOIP
— adresse : 10 Rue de la mer méditerrané Jaafer Rouad Ariana 2082
— Tel/fax : 24277977
— E-mail : [Link]@[Link]

1.2 Présentation du projet


1.2.1 Contexte Général
Les moteurs de recherche sur le net comme Google et Wikipedia sont devenus incon-
tournables pour rechercher des informations. Cependant, la grande quantité de contenu

12
peut rendre la recherche difficile et chronophage. Développer un serveur intelligent
utilisant l’intelligence artificielle pour répondre aux demandes des utilisateurs de manière
précise et personnalisée permet de relever ces défis et d’améliorer l’expérience utilisateur.

1.2.2 Objectifs
L’objectif de ce projet est de développer un outil permettant de :

— Trouver une solution digitale qui s’intègre aux appels téléphoniques. En d’autres
termes, il s’agit de formuler des demandes vocales et de recevoir des réponses de
manière automatique, sans nécessiter d’interaction humaine.
— Configurer et Développer un serveur pour réaliser un voicebot qui utilise l’intelli-
gence artificielle pour répondre verbalement aux questions des clients
— Lancer des appels et des communications vocales entre deux utilisateurs.
— Mettre en œuvre un système capable de comprendre les requêtes des clients lors
d’appels téléphoniques.
— Organiser les appels entrants et sortants pour assurer une réponse efficace aux
clients.
— Réduire les temps d’attente des clients en leur fournissant des réponses rapides et
efficaces à leurs interrogations.
— Assurer la confidentialité et la sécurité des données des clients tout au long de leurs
interactions avec le système.

1.3 Etude de l’existant


1.3.1 Analyse de l’existant
Amelia, développé par IPsoft, est un voicebot révolutionnaire déployé dans divers
secteurs pour automatiser les interactions avec les clients. Grâce à ses capacités avancées
de traitement du langage naturel et d’apprentissage automatique, Amelia peut comprendre
et répondre intelligemment aux demandes des utilisateurs. Cela garantit une interaction
client fluide et efficace

1.3.2 Critiques de l’existant


Bien que Amelia soit un outil puissant, elle présente des limitations importantes. Les
interactions ambiguës ou imprévues peuvent entraîner des erreurs de compréhension ou
des réponses inappropriées, ce qui peut nuire à la qualité de l’expérience utilisateur. De

13
plus, Amelia n’opère pas toujours en temps réel, ce qui peut entraîner des retards dans
ses réponses et frustrer les utilisateurs. Enfin, la précision de la reconnaissance vocale
peut parfois être insuffisante, affectant la qualité de l’interaction et la fiabilité de l’outil.

1.3.3 Solution proposée


Comme solution au problème cité, en proposant un projet visant à résoudre ces
conflits, nous nous engageons à améliorer la réactivité du système pour réduire consi-
dérablement les temps de réponse, rendant ainsi l’interaction presque en temps réel et
éliminant les frustrations potentielles des clients.

1.4 Capture des besoins


1.4.1 Identifications des acteurs
— Acteurs principales :
— Utilisateur : Interagir avec le serveur ASTERISK pour initier des appels,
composer des numéros, utiliser ses fonctionnalités pour la communication,
poser des questions et obtenir les informations nécessaires.
— Serveur ATERISK : Le serveur Asterisk IP qui gère les appels et facilite la
communication entre l’utilisateur et le voicebot.
— Acteurs secondaires :
— Administrateur : Gérer les informations d’identification des utilisateurs, telles
que l’adresse IP du serveur, les mots de passe et les numéros utilisateur, afin
de traiter efficacement ces demandes.

1.4.2 Identifications des Besoins fonctionnels


— S’authentifier
— S’inscrire
— Gérer des appels (lancer ,terminer)
— Se communiquer
— Demander des informations
— Recevoir des informations

14
1.4.3 Identifications des Besoins non fonctionnels
— Le système doit être sécurisé pour protéger les données des utilisateurs.
— Le système doit être capable de répondre rapidement aux requêtes des utilisateurs
et de gérer un grand nombre d’interactions simultanées avec efficacité.
— Le système doit être facile à maintenir.

1.5 Méthodologie
Afin d’assurer le succès de tout projet et promouvoir une collaboration harmonieuse,
il est crucial de choisir la méthodologie appropriée. La méthodologie de travail organise
la planification et le contrôle du processus de développement, ce qui améliore l’efficacité
et la rentabilité du projet. Dans notre projet en partenariat avec ALAVOIP, nous avons
décidé d’adopter la méthodologie agile Scrum.

1.5.1 Présentation de la méthode SCRUM


La méthode SCRUM [1] , une approche agile populaire en gestion de projets, est
reconnue pour sa flexibilité et son adaptabilité. Elle encourage la collaboration et l’esprit
d’équipe tout au long du développement. Contrairement aux méthodes traditionnelles
linéaires, SCRUM utilise des cycles courts et favorise une implication continue du client,
permettant ainsi une approche itérative et collaborative.
Cette approche agile offre de nombreux avantages. Tout d’abord, elle permet la mise
en œuvre rapide des fonctionnalités logicielles, en allouant le budget par sprints plutôt
que de manière globale. De plus, elle améliore la qualité du travail de l’équipe grâce à une
communication accrue et à des réunions fréquentes. Ces échanges réguliers permettent
aux membres de partager leurs expériences, de discuter de leurs progrès et de résoudre
ensemble les problèmes rencontrés. En partageant les erreurs et les exceptions, l’équipe
accélère son apprentissage et optimise ses performances.
En résumé, la méthode agile se démarque par sa flexibilité, son approche itérative et sa
forte collaboration, ce qui lui confère des avantages significatifs par rapport aux méthodes
traditionnelles de gestion de projet.

15
F IGURE 1.1 – Le process de Scrum

16
1.5.2 Les différents rôles dans Scrum
La méthodologie agile Scrum assigne des rôles spécifiques à chaque participant du
processus de développement logiciel. Dans la présentation du projet, l’attribution des
rôles SCRUM est exposée ci-jointe.

Product Owner AlaEddine Hertelli Généralement représentant le client, il est


responsable de la définition de la vision du
produit à développer. En étroite collabo-
ration avec l’équipe de développement, le
Product Owner s’assure que le produit fi-
nal répond aux besoins et attentes du client,
et il prend les décisions prioritaires concer-
nant le contenu du produit.
Scrum Master AlaEddine Hertelli Consiste à garantir une application efficace
et cohérente de la méthodologie Scrum.
Agissant en tant que facilitateur, il veille à
ce que l’équipe suive les principes et pra-
tiques de Scrum pour maximiser la valeur
produite.
Équipe de Développement Dhia Eddine Hertelli Transforme les exigences exprimées par
le Product Owner en fonctionnalités utili-
sables pour le produit final

TABLE 1.1 – Rôles dans Scrum

1.5.3 Les artéfacts de la méthode Scrum Agile


— Le Product Backlog : constitue une liste exhaustive de toutes les fonctionnalités à
développer pour un projet. Il est ensuite découpé en un ensemble de "Sprints", qui
sont des itérations de développement généralement d’une durée de 2 à 4 semaines.
— Le Sprint Backlog : il correspond à la fragmentation de chaque sprint en plusieurs
"user stories", qui sont des descriptions brèves et simples des fonctionnalités à
développer.
— Le Product Increment : joue un rôle crucial dans Scrum en présentant l’ensemble
des livrables produits pour le client. Cela se concrétise en réalisant les tâches du
backlog de produit pendant un sprint, et il englobe également les progrès de tous
les sprints précédents.

17
1.6 Gestion de projet selon la méthodologie Scrum
1.6.1 Le Backlog de produit

ID Thème User Story Priorité Estimation


1 S’authentifier En tant qu’utilisateur, je veux m’authenti- S 1
fier afin d’accéder aux fonctionnalités du
serveur ASTERISK.
2 Lancer un appel En tant qu’utilisateur, je veux lancer un M 4
appel.
3 Communiquer En tant qu’utilisateur, je veux communi- M 3
quer.
4 Terminer un appel En tant qu’utilisateur, je veux terminer un M 1
appel.
5 Voir l’historique des ap- En tant qu’utilisateur, je veux voir l’histo- S 1
pels rique des appels.
6 Demander un service à En tant qu’utilisateur, je veux demander M 4
Voicebot un service à Voicebot.
7 Recevoir une informa- En tant qu’utilisateur, je veux recevoir une M 4
tion réponse.

TABLE 1.2 – Backlog de produit

1.6.2 Planification des sprints


L’objectif de la planification du sprint est de définir clairement les objectifs réalisables
pour la durée du sprint et de détailler la démarche à suivre pour les atteindre.
Suite à la réalisation du backlog de sprint et à l’analyse approfondie du projet, nous
avons convenu de diviser le travail en deux parties distinctes. La première partie s’étend
du 1er mars au 1er Avril, la deuxième partie du 2 Avril au 20 May. Cette découpe nous
permet de finaliser notre projet de manière progressive et structurée.

18
F IGURE 1.2 – Planification des sprints

1.6.3 Planning du déroulement du projet


La figure 1.3 ci-dessous illustre le déroulement de la période de notre stage.

F IGURE 1.3 – Planning du déroulement du projet

19
1.7 Diagramme de cas d’utilisation général
En utilisant le Langage de Modélisation Unifié (UML), un diagramme de cas d’utili-
sation résume les interactions entre les utilisateurs (appelés acteurs) et le système. Ces
cas d’utilisation décrivent les besoins fondamentaux du système du point de vue de
l’utilisateur, en mettant en avant les actions qu’ils peuvent entreprendre pour atteindre
leurs objectifs. Ce type de diagrammes est facile à comprendre pour les utilisateurs et les
développeurs car il se concentre sur les actions principales sans entrer dans les détails. Il
récapitule simplement certaines des relations entre les cas d’utilisation, les acteurs et les
systèmes. Il n’illustre pas l’ordre dans lequel les étapes sont exécutées pour atteindre les
objectifs de chaque cas d’utilisation
Dans notre cas, l’acteur qui est l’utilisateur a le droit de gérer les appels, communiquer
et gérer les demandes à voicebot. La figure suivante illustre notre diagramme de cas
d’utilisation général.

F IGURE 1.4 – diagramme de cas d’utilisation général

20
1.8 Environnement de travail
1.8.1 Technologies et frameworks utilisés
SIP

F IGURE 1.5 – logo SIP

Le protocole SIP [2] (Session Initiation Protocol) est un standard de communication


utilisé pour établir, modifier et terminer des sessions multimédias sur des réseaux IP. Il
permet la transmission de voix, de vidéo, de messages instantanés et d’autres données
multimédias.

Firewall

F IGURE 1.6 – logo Firewall

Un pare-feu, souvent appelé pare-feu en anglais, est un dispositif de sécurité informa-


tique conçu pour contrôler et filtrer le trafic réseau entrant et sortant. Son rôle principal
est de protéger un réseau informatique en bloquant ou en autorisant sélectivement le
passage du trafic réseau en fonction de règles prédéfinies.

21
Python

F IGURE 1.7 – logo Python

Python [3] est un langage de programmation, de haut niveau interprété par la plupart.
Conçu pour être simple et lisible, il est largement utilisé dans divers domaines, allant du
développement web à l’analyse de données.

Perl

F IGURE 1.8 – logo perl

Perl [4] est un langage de programmation polyvalent et puissant, créé par Larry Wall
en 1987. Conçu initialement pour la manipulation de texte. Perl a évolué pour inclure une
large gamme de fonctionnalités, allant de l’administration système au développement
web en passant par la gestion de bases de données.

Asterisk Gateway Interface

F IGURE 1.9 – logo AGI

L’AGI [5] ou "Asterisk Gateway Interface", est une interface permettant à Asterisk,
un logiciel de téléphonie, d’interagir avec des scripts ou des programmes externes
pendant la gestion des appels. En utilisant l’AGI, les développeurs peuvent écrire des

22
scripts dans des langages comme Perl, Python ou PHP pour étendre les fonctionnalités
d’Asterisk. Ces scripts peuvent effectuer diverses tâches telles que la lecture de bases de
données, l’envoi de messages, ou l’interaction avec d’autres systèmes, permettant ainsi
une personnalisation et une automatisation des processus de téléphonie.

1.8.2 Les outils et les logiciels utilisés


Serveur Asterisk

F IGURE 1.10 – logo Asterisk

Asterisk [6] est un logiciel de communication open-source qui permet de créer un


système de téléphonie basé sur IP (VOIP) puissant et flexible. En tant que serveur de
communication, y compris plusieurs protocoles de communication tel que SIP, RTP, et
IAX, ce qui lui permet d’interconnecter des téléphones, des softphones, des passerelles
et d’autres périphériques de communications.

Putty

F IGURE 1.11 – logo Putty

Putty [7] est un logiciel open-source qui permet aux utilisateurs de se connecter à
distance à des serveurs via des protocoles tels que SSH, Telnet et RDP. Il offre une
interface utilisateur simple et intuitive, permettant aux utilisateurs de saisir l’adresse IP
et le nom d’hôte du serveur auquel ils souhaitent se connecter, ainsi que le port et le
protocole appropriés.

23
linphone

F IGURE 1.12 – logo Linphone

Linphone [8] est une application open source de VoIP (Voice over Internet Protocol)
qui permet aux utilisateurs de passer des appels audio et vidéo, ainsi que d’envoyer des
messages texte via Internet. Compatible avec divers systèmes d’exploitation, y compris
Windows, macOS, Linux, Android et iOS,

1.9 Conclusion
Dans ce chapitre, nous avons d’abord présenté l’objectif de notre travail et nous avons
fait l’analyse des solutions existantes. Ensuite, nous avons discuté des fonctionnalités
et des exigences techniques, ainsi que de notre plan de travail. Enfin, nous avons expli-
qué notre approche de conception et de développement du système, en détaillant son
architecture et en présentant notre environnement de travail.

24
Chapitre 2

SPRINT 1 - Gérer les Appels

Introduction
Dans ce chapitre, les détails relatifs au travail réalisé lors du premier Sprint sont
rapportés. On rappelle à cet effet que ce dernier est consacré à configurer des utilisateurs,
au niveau du serveur dédié aux appels téléphoniques, ainsi que la gestion des appels.
Avant de commencer, nous allons définir ce qu’est un serveur Asterisk.

Asterisk Est un logiciel de communication open-source qui permet de créer un


système de téléphonie basé sur IP (VOIP) puissant et flexible. En tant que serveur de
communication, y compris SIP, RTP, et IAX, ce qui lui permet d’interconnecter des
téléphones, des softphones, des passerelles et d’autres périphériques de communications.

F IGURE 2.1 – VoIP

25
VOIP (Voice Over Internet Protocole [9]), c’est une technologie qui permet de
transmettre des appels téléphoniques via internet ou tout autre réseau utilisant le protocole
IP. (internet protocole)
Lorsqu’un utilisateur passe un appel téléphonique en utilisant la VoIP, son appareil
compatible VoIP collecte le contenu audio (et éventuellement vidéo) de l’appel et l’envoie
au téléphone du destinataire via Internet. Au lieu d’utiliser les lignes téléphoniques
traditionnelles, la VOIP convertit la voix en paquets de données numérique qui sont
ensuite envoyer sur un réseau IP .

2.1 Spécification des besoins


2.1.1 Backlog du sprint
Ce backlog présentera en détail les tâches à réaliser durant ce sprint.

ID Thème Estimation
1 s’authentifier (1)
2 lancer des appels (3)
3 communiquer (1)
4 terminer des appels (2)
5 voir l’historique des appels (2)

TABLE 2.1 – Le Backlog de produit "Sprint 1"

2.1.2 Spécification fonctionnelle


Notre premier sprint est dédié à la gestion des appels. Après avoir établi le backlog
du sprint, nous allons étudier en profondeur l’authentification et la gestion des appels en
représentant des diagrammes de cas d’utilisation et des diagrammes de séquence.

26
Cas d’utilisation d’authentification

F IGURE 2.2 – diagramme de cas d’utilisation d’authentification

Le tableau 2.2 décrit la description textuelle du cas d’utilisation « Authentification ».

Cas d’utilisation Authentification


Acteur l’administrateur et le client
Description Ce diagramme décrit l’action d’authentification.
Précondition Le client doit s’authentifier au serveur asterisk
Scénario L’utilisateur introduit l’adresse IP du serveur, le numéro configuré par
l’administrateur et le mot de passe de ce numéro dans un logiciel de
téléphonie VoIP tel que Linephone
Scénario exceptionnelle Si les champs sont faux une erreur va être afficher
Postcondition L’utilisateur va être capable de gérer des appels

TABLE 2.2 – Description textuelle du diagramme de cas d’utlisation “authentification”

27
Cas d’utilisation de gestion des appels

F IGURE 2.3 – Diagramme de cas d’utilisation de gestion des appels

Le tableau 2.3 décrit la description textuelle du cas d’utilisation « Gestion des appels
»

28
Cas d’utilisation Gestion des appels
Acteur L’utilisateur
Description Ce diagramme décrit la gestion des appels
Précondition Le client doit s’authentifier au serveur asterisk à travers linephone
Scénario 1-Une fois authentifié, le client sélectionne l’option pour passer un appel.
2-Le client compose le numéro configuré dans le serveur Asterisk en
utilisant le clavier numérique de Linephone.
3-Après avoir composé le numéro, le client appuie sur le bouton d’appel
pour initier l’appel.
4-Le serveur Asterisk traite l’appel et recherche l’utilisateur correspon-
dant au numéro composé.
5-L’utilisateur destinataire de l’appel reçoit une notification et décide de
répondre à l’appel.
6-Une fois que l’utilisateur destinataire a répondu, le client et l’utilisateur
se communiquent vocalement.
7-Après la communication, le client appuie sur le bouton pour terminer
la session d’appel.
8-L’appel se termine et le client revient à l’interface principale de Line-
phone.
9-Ensuite, si le client le souhaite, il peut accéder à l’historique des appels
dans l’application Linephone pour consulter les appels passés.
Scénario exceptionnelle Si les informations saisies par le client sont incorrectes, l’appel ne sera
pas établi.

TABLE 2.3 – Description textuelle de diagramme de cas d’utlisation "Gestion des appels

2.1.3 Diagramme de séquence de gestion d’un appel


Dans ce scénario, l’utilisateur 1 souhaite appeler l’utilisateur 2 à travers un serveur
Asterisk. Il commence par composer le numéro de téléphone de l’utilisateur 2, puis envoie
une demande d’appel au serveur Asterisk. Le serveur Asterisk vérifie les autorisations de
l’utilisateur 1 et lui attribue une extension SIP. Une fois connecté à cette extension, une
connexion est établie entre l’utilisateur 1 et l’utilisateur 2, permettant ainsi la conversation
téléphonique. Lorsque l’utilisateur 1 décide de terminer l’appel, il envoie une demande
de terminaison au serveur Asterisk, qui confirme alors la fin de l’appel.

29
F IGURE 2.4 – diagramme de séquence de gestion d’un appel

30
2.1.4 Étapes de mise en œuvre
Installation du serveur Asterisk
On a utilisé cette commande dans notre terminal pour installer Asterisk.

F IGURE 2.5 – install Asterisk

Les fichiers Asterisk


Nous allons examiner les fichiers de configuration d’Asterisk, situés dans le répertoire
/etc/asterisk.

F IGURE 2.6 – Fichiers Asterisk

Parmi tous ces fichiers, nous accorderons une attention particulière à la configuration
des fichiers "[Link]" et "[Link]". Ce sont ces deux fichiers qui seront configurés
pour mettre en place les appels sur le serveur Asterisk.

Configuration [Link]
Dans le fichier [Link], nous allons configurer les utilisateurs Asterisk, notamment
les utilisateurs 1000, 2000 et 5000. Ces paramètres représente les id des utilisateurs,
ils sont interprétés analogiquement a des numéros téléphoniques. Cette configuration
comprendra des paramètres tels que le type d’utilisateur, le contexte, l’hôte, le mot de
passe.

31
F IGURE 2.7 – [Link] 1000

Configuration [Link]
Dans le fichier [Link], nous allons définir les règles de composition pour
gérer les appels téléphoniques. Pour le premier scénario entre les utilisateurs 1000 et
5000, nous allons créer une extension dans le contexte approprié. Cette extension définira
comment Asterisk doit acheminer les appels entre ces utilisateurs. Par exemple, nous
pouvons utiliser l’instruction Dial pour appeler le numéro de l’utilisateur 5000 lorsque
l’utilisateur 1000 compose son numéro.

F IGURE 2.8 – [Link] appel

Ce scénario réduit est dédié pour lancer des appels téléphoniques entre deux utilisateurs.

32
2.1.5 Procédure d’un appel dans Asterisk

F IGURE 2.9 – procédure d’un appel dans Asterisk

— L’utilisateur 1000 lance un appel, et le protocole SIP envoie une requête SIP au
serveur pour initier l’appel.
— Asterisk vérifie le fichier [Link] pour s’assurer que l’utilisateur 1000 est configuré
et authentifié dans [Link].
— Une fois l’utilisateur 1000 authentifié, Asterisk utilise le contexte défini (dans ce
cas, "internal") pour déterminer comment traiter l’appel. Le contexte "internal"
indique à Asterisk de regarder dans la section [internal] du fichier [Link].
— Asterisk trouve l’entrée exten => 5000,1,Dial(SIP/5000) qui indique comment
traiter l’appel. Asterisk exécute la commande Dial(SIP/5000), ce qui tente de
connecter l’appel à l’utilisateur SIP 5000.

33
Conclusion
Dans ce chapitre, nous avons exploré le premier sprint, couvrant les phases d’analyse,
de conception et de réalisation de la gestion des appels. Dans le chapitre suivant, nous
nous pencherons sur le deuxième sprint.

34
Chapitre 3

SPRINT 2 - Gérer les demandes de


voicebot

Introduction
Dans ce chapitre, les détails relatifs au travail réalisé lors du deuxième Sprint sont
rapportés. On rappelle à cet effet que ce dernier est consacré à configurer le voicebot au
niveau du serveur. Nous débuterons par une définition détaillée de "Asterisk Gateway
Interface" (AGI).

Asterisk Gateway Interface .AGI() (AGI) est une interface de programmation


utilisée dans Asterisk, une plateforme de téléphonie open source. AGI permet aux
développeurs d’exécuter des scripts externes pour contrôler et manipuler les appels
téléphoniques en temps réel. Ces scripts peuvent être écrits dans divers langages de pro-
grammation tels que PHP, Python ou Perl, et sont utilisés pour ajouter des fonctionnalités
personnalisées comme des services vocaux interactifs, des systèmes de messagerie vocale
avancés, ou des intégrations avec des bases de données et des applications externes.
Nous avons utilisé l’Asterisk Gateway Interface (AGI) à travers plusieurs scripts pour
réaliser notre travail, notamment avec "[Link]" et "[Link]". Grâce
à AGI, nous pouvons étendre les capacités d’Asterisk en ajoutant des fonctionnalités
personnalisées et sophistiquées adaptées à nos besoins spécifiques.

Répertoire /var/lib/asterisk/agi-bin Pour assurer le bon fonctionnement des scripts


AGI (Asterisk Gateway Interface), il est essentiel de les placer dans le répertoire
/var/lib/asterisk/agi-bin. Ce répertoire est créé automatiquement lors de l’installation
d’Asterisk et est dédié aux scripts AGI. En utilisant ce répertoire, vous assurez qu’Aste-
risk peut trouver et exécuter vos scripts sans problème, garantissant ainsi une gestion et

35
une organisation optimales. agi-bin dans Asterisk signifie "Asterisk Gateway Interface
binaries".

Les fichiers agi-bin


La figure 3.1 représente les fichiers dans le répertoire agi-bin

F IGURE 3.1 – Fichiers AGI

3.0.1 Spécification des besoins


Backlog du sprint
Ce backlog du sprint est fait pour réaliser les tâches présentes dans le tableau suivant

ID Thème Estimation
1 lancer un appel vers voicebot (3)
2 demander une question (4)
3 recevoir une information (4)

TABLE 3.1 – Le Backlog de produit "Sprint 2"

Spécification fonctionnelle
Dans cette partie de ce deuxième sprint, on commence avec les diagrammes de cas
d’utilisation de gestion des demandes au niveau voicebot.

36
F IGURE 3.2 – diagramme de cas d’utilisation gérer une demande de voicebot

Le tableau 3.2 décrit la description textuelle du cas d’utilisation « Gestion des


demandes Voicebot »

37
Cas d’utilisation Gestion des demandes Voicebot
Acteur L’utilisateur
Description Ce diagramme décrit la gestion des demandes Voicebot
Précondition Le client doit lancer un appel vers le numéro du voicebot
Scénario 1. L’utilisateur compose le numéro du voicebot configuré dans le
serveur Asterisk.
2. Le serveur Asterisk répond à l’appel et diffuse un message de
bienvenue, invitant l’utilisateur à poser sa question.
3. L’utilisateur demande un service en posant une question vocale-
ment.
4. Le message vocal est transformé en texte à l’aide d’un service
de reconnaissance vocale (Speech-to-Text).
5. Le texte de la question est transmis à un moteur d’IA tel que
ChatGPT pour traitement.
6. Le moteur d’IA analyse la question et génère une réponse ap-
propriée.
7. La réponse textuelle est renvoyée au serveur.
8. La réponse est transformée en message vocal à l’aide d’un ser-
vice de synthèse vocale (Text-to-Speech).
9. Le voicebot diffuse la réponse vocale à l’utilisateur.
Postcondition L’utilisateur pourra poser des questions vocalement et recevoir des
informations en temps quasi-réel.

TABLE 3.2 – Description textuelle du cas d’utilisation "Gestion des demandes Voicebot"

3.1 Etude conceptuelle


3.1.1 Diagrammes de séquences détaillés

38
F IGURE 3.3 – diagramme de séquence gestion demande voicebot

L’utilisateur compose le numéro du serveur. Le serveur Asterisk diffuse un message


d’accueil. L’utilisateur demande un service, et le serveur Asterisk transfère la demande
au module de reconnaissance vocale (speech-to-text). Ce module convertit le message
vocal en texte puis l’envoie au serveur. Le serveur envoie ensuite le message au moteur
d’intelligence artificielle (IA). Le moteur IA traite la question et renvoie le résultat au
serveur Asterisk. Le serveur transfère la réponse au module de synthèse vocale (text-to-
speech), qui convertit le texte en résultat vocal puis l’envoie au serveur. Enfin, le serveur
Asterisk envoie le résultat à l’utilisateur.

L’illustration suivante détaille le fonctionnement des scripts nécessaires à la mise en


œuvre du scénario lors d’une interaction de l’utilisateur avec le voicebot au niveau de
serveur.

39
F IGURE 3.4 – scénario d’une interaction avec voicebot dans le serveur

3.2 Étape de mise en oeuvre

F IGURE 3.5 – les scripts

Parmi les fichiers placés dans le répertoire /var/lib/asterisk/agi-bin, nous avons parti-
culièrement détaillé [Link] et [Link] pour la réalisation de notre
projet. Ces deux scripts jouent un rôle crucial dans la création du voicebot. Le script goo-
[Link] est utilisé pour la conversion de texte en parole (Text-to-Speech), tandis que
[Link] est dédié à la reconnaissance vocale et à la conversion de parole en
texte (Speech-to-Text). Ensemble, ces scripts permettent d’intégrer des fonctionnalités
avancées de traitement vocal, essentielles pour le fonctionnement efficace et interactif du
voicebot.

40
3.2.1 [Link]
Le script [Link] est une composante essentielle de notre voicebot, jouant un
rôle clé dans la conversion de texte en parole (Text-to-Speech). Écrit en Perl, ce script
utilise l’Asterisk Gateway Interface (AGI) pour interagir directement avec le système
téléphonique Asterisk

F IGURE 3.6 – googlettes en perl

Il permet de lire des textes écrits en anglais, offrant ainsi une interaction vocale fluide
et naturelle. Perl est choisi pour sa flexibilité et ses capacités robustes de manipulation de
texte. [Link] utilise des bibliothèques bien connues telles que LWP : :UserAgent
pour effectuer des requêtes HTTP vers les services Google Text-to-Speech, permettant
de transmettre efficacement le texte et de recevoir l’audio en réponse.

F IGURE 3.7 – bibliotheque googlettes

3.2.2 [Link]
Le script [Link] représente une pièce maîtresse de notre système de voice-
bot, axé sur la reconnaissance vocale (Speech-to-Text). Écrit en Perl, ce script permet de
convertir la parole en texte, facilitant ainsi une interaction utilisateur intuitive et efficace.
Perl a été sélectionné pour sa souplesse et sa capacité à manipuler efficacement les
données textuelles.

le service utilisé par le script pour réaliser la conversion de la parole en texte est Goo-
gle’s Speech API (Speech-to-Text). Ce service, également connu sous le nom de Google

41
Cloud Speech-to-Text API, fournit des fonctionnalités avancées de reconnaissance vocale,
permettant de transcrire de l’audio en texte avec précision et fiabilité

F IGURE 3.8 – Perl / service utilisé

Il est à noter que ce script requiert l’installation des dépendances suivantes


— perl-libwww : offre une gamme complète de fonctionnalités pour effectuer des
opérations sur le Web à partir de Perl
— perl-libjson : elle permet de convertir des données JSON en structures de données
Perl et vice versa
— IO-Socket-SSL : elle permet à Perl de communiquer de manière sécurisée avec des
serveurs via SSL/TLS (Transport Layer Security), ce qui est essentiel pour établir
des connexions sécurisées via HTTPS.
— flac : en utilisant cette bibliothèque, Perl peut lire et écrire des fichiers audio sans
perte (lossless) au format FLAC, ce qui est utile pour le traitement de l’audio de
haute qualité dans les applications Perl.
Toutefois, il est à noter que l’utilisation de tels services requiert généralement une clé
API pour l’authentification et l’accès aux fonctionnalités. La clé API joue un rôle crucial
dans le processus, permettant de sécuriser l’accès aux services et de contrôler les quotas
d’[Link] ci dessous représente le clé utilise

F IGURE 3.9 – Speech API key

En utilisant [Link], notre voicebot est en mesure d’interpréter les com-


mandes vocales des utilisateurs avec précision, améliorant ainsi l’expérience globale et
offrant une alternative pratique à l’interaction texte. Cette fonctionnalité enrichit consi-
dérablement notre système en offrant une interactivité accrue et en ouvrant la voie à de
nouvelles possibilités d’engagement avec les utilisateurs.

42
3.2.3 asterisk_chatgpt.py
Ce script est écrit en python et utilise lAPI d Open AI pour obtenir des réponses de
ChatGpt . Python a été utilisé pour ce script en raison de sa simplicité et de sa lisibilité,
ce qui le rend idéal pour des tâches de traitement de texte et d’interaction avec des API.
Python dispose de bibliothèques robustes, telles que requests pour les requêtes HTTP et
des SDK comme openai, qui facilitent l’intégration avec des services web comme l’API
d’OpenAI

F IGURE 3.10 – python_asterisk_chatgpt.py

Il est à noter que ce script requiert l’installation des bibliothèques suivantes


— requests : cette bibliothèque est utilisée pour envoyer des requêtes HTTP dans
Python. Elle permet d’interagir avec des API web, de récupérer des données à
partir d’URLs, d’envoyer des données à des serveurs
— sys : la bibliothèque sys fournit un accès à certaines variables utilisées ou mainte-
nues par l’interpréteur Python et à des fonctionnalités liées au système. Elle permet
notamment de manipuler des variables spécifiques à l’environnement Python,
de gérer les arguments de la ligne de commande, et d’interagir avec le système
d’exploitation.
— json : cette bibliothèque est utilisée pour travailler avec des données au format
JSON (JavaScript Object Notation) en Python. Elle permet de convertir des objets
Python en chaînes JSON et vice versa.

F IGURE 3.11 – bibliothèque asterisk_chatgpt.py

Ce code utilise une clé API OpenAI pour s’authentifier et accéder à l’API ChatGPT
d’OpenAI, permettant ainsi d’envoyer des requêtes et d’obtenir des réponses de l’IA. La
clé API est une chaîne de caractères unique qui identifie le compte et l’application, et
est nécessaire pour que l’API accepte les requêtes et fournisse des réponses. l’image ci
dessous représente la clé API

43
F IGURE 3.12 – key openAI

Voicebot dans [Link] Après avoir développé les scripts [Link]


et [Link], qui permettent respectivement de convertir un texte
en parole et de reconnaître la voix pour la transformer en texte, il est temps de confi-
gurer le script Python asterisk_chatgpt.py. Ce dernier a pour rôle de recevoir
les messages envoyés par [Link], de les traiter à l’aide de l’API
ChatGPT, puis de renvoyer les réponses au serveur. La dernière étape consiste à configu-
rer le fichier [Link] d’Asterisk, qui joue un rôle crucial dans la liaison
et la coordination des différents scripts, permettant ainsi une interaction fluide entre les
composants du système et assurant le bon fonctionnement de l’ensemble de l’application.

F IGURE 3.13 – voicebot [Link]

Conclusion
Dans ce chapitre, nous nous sommes concentrés sur le deuxième sprint. Nous avons
effectué une analyse approfondie des phases d’analyse, de conception et de réalisation,
indispensables pour atteindre les objectifs fixés.

44
Conclusion

Dans le cadre de notre projet de fin d’études, nous avons configuré un serveur Asterisk
afin de réaliser un voicebot avec intelligence artificielle. L’importance de mon projet
réside dans sa capacité à rendre l’information plus accessible et plus facilement disponible
pour les utilisateurs, contribuant ainsi à améliorer leur expérience et leur [Link]
utilisateurs peuvent obtenir les informations dont ils ont besoin rapidement et facilement,
sans avoir à parcourir de multiples sources ou à effectuer des recherches fastidieuses en
ligne. Cette facilité d’accès à l’information permet d’économiser du temps et des efforts
pour les utilisateurs.
Bien que le voicebot que nous avons développé soit capable de répondre efficacement
aux questions des utilisateurs en anglais, sa capacité à comprendre et à répondre dans une
seule langue reste un domaine d’amélioration significatif. Nous sommes conscients de
l’importance croissante de la multilinguisme dans notre société-Monde, et nous sommes
déterminés à poursuivre le développement du projet pour le rendre capable de comprendre
et de répondre dans plusieurs langues.

45
Bibliographie

[1] Méthode Scrum : [Link]


uploads/2021/06/[Link] [En ligne consulté le
23-04-2024]

[2] SIP :[Link]


ANd9GcT58C8yup3GVrcwUibPRtKvAQSA\newline1esmVuixWg&s [En
ligne consulté le 25-04-2024]

[3]Python : [Link] [En ligne consulté le 25-04-2024]

[4] Perl :[Link] [En ligne consulté le 25-04-2024]

[5]agi :[Link]
01/[Link] [En ligne consulté le 27-04-2024]

[6]Asterisk : [Link] En ligne consulté le 27-04-2024]

[7]Putty : [Link] En ligne consulté le 27-04-2024]

[8]linphone : [Link] En ligne consulté le 12-05-2024]

46
[9] VoIP : [Link]
08/[Link] [En ligne consulté le 23-05-2024]

47

Vous aimerez peut-être aussi