Vous êtes sur la page 1sur 29

École Centrale des Logiciels Libres et de

Télécommunications

RAPPORT ASTERISK

Présenté par : Sous la supervision :


Ahamadi Nasry Pr. Samuel Ouya
Sommaire
1 Les concepts généraux de la TOIP ................................................................................................... 3
1.1 Introduction ............................................................................................................................. 3
1.2 Contraintes de TOIP................................................................................................................. 3
1.3 IP-phone .................................................................................................................................. 3
1.4 SOFTPHONE ............................................................................................................................. 3
1.5 Contrainte physique ................................................................................................................ 3
1.6 Contrainte temporelle ............................................................................................................. 3
1.7 La synchronisation ................................................................................................................... 3
1.8 Les codecs ................................................................................................................................ 4
1.9 Les différents codecs : ............................................................................................................. 4
2 Etudes d’Asterisk ............................................................................................................................. 5
2.1 Définition : ............................................................................................................................... 5
2.2 Fonctionnalités d’Asterisk ....................................................................................................... 5
2.3 Quelques fichiers de configuration et explication .................................................................. 6
2.4 Installation d’asterisk 18 ......................................................................................................... 7
2.5 Création de compte PJSIP ...................................................................................................... 15
2.5.1 Prise en compte du canal pjsip. ..................................................................................... 15
2.5.2 Les objets pjsip.conf ...................................................................................................... 16
2.6 Appel...................................................................................................................................... 19
2.7 Appel vidéo ............................................................................................................................ 25
1 Les concepts généraux de la TOIP
1.1 Introduction
1.2 Contraintes de TOIP
La téléphonie sur IP est un service de téléphonie fourni sur un réseau de
télécommunications ouvert au public ou privé utilisant principalement le protocole de
réseau IP. Cette technologie permet d’utiliser une infrastructure existante de réseau IP pour
raccorder des terminaux IP que l’on nomme IP-PHONE, ainsi que des logiciels sur PC
raccordés sur le même réseau IP que l’on nomme SOFTPHONE.

1.3 IP-phone
IP phone est un téléphone bien particulier avec des ports Ethernet permettant de se
connecter sur le port réseau afin d'utiliser internet comme support de communication. Cette
technologie permet d'amoindrir les couts de communications et jouera les mêmes rôles que
le téléphone classique mais avec plusieurs d'autres avantages.

1.4 SOFTPHONE
C’est une application (ou logiciel ce qui signifie que tout est dématérialisé) qui permet
d'effectuer et recevoir des appels à l'aide de l'application sur le PC ou portable Toutefois,
elle présente de nombreux avantages mais aussi un certains nombres de contrainte au
niveau de la communication auquel il faut faire face.

1.5 Contrainte physique


Les contraintes physiques désignent l’environnement dans lequel l’utilisateur est en
production (émission d’appel). Comme contraintes physiques, nous avons: – l’écho: l’écho
désigne le signale qui revient dans l’oreille de l’émetteur au moment de la production. Cela
peut être dû à un environnement enclavé (bureau très petit, l’air, etc.). Mais pour satisfaire
une bonne qualité de communication, la norme exige que pour que l’écho ne soit pas
gênant, il faudrait que le temps de traversée (lors de la production) ne dépasse pas 28ms
soit 56ms aller-retour.

1.6 Contrainte temporelle


Lorsque deux interlocuteurs sont en production (communication), la norme exige que pour
qu’il y ‘ait une bonne qualité de communication, le temps qui sépare le moment de la
production et de la réception ne doit pas dépasser 150ms. Ici l’idée est de comprendre que
pour respecter cette contrainte temporelle il ne faudrait pas que le canal établit entre les
deux correspondants ne soit pas utilisé par d’autres fins.

1.7 La synchronisation
Les environnements IP sont des réseaux à commutation de paquets. C’est-à-dire que tous
les paquets sont transmis aux mêmes moments sont ordre de transmission, vu que tous les
paquets sont traités de la même façon au niveau des nœuds du réseau, donc il n’y a pas de
privilèges. Il est donc nécessaire de faire une resynchronisation. Cette resynchronisation ne
peut se faire que si on stocke les paquets pendant un certain temps. Le temps pendant lequel
les paquets sont stockés est appelé temps de synchronisation. La norme exige que ce temps
ne doive pas dépassé 100ms et doit être supérieur au temps maximal de traversée.
La synchronisation directe: qui consiste à utiliser le même temps.
La synchronisation différentielle: qui consiste à avoir les mêmes horloges tournant à la
même vitesse.

1.8 Les codecs


Un codec est un appareil ou un logiciel capable d’encoder ou de décoder un flux numérique
ou un signal pour la transmission sur le réseau de données. Les codecs sont divisés en deux
catégories: sans perte et avec perte. Les codecs sans perte retiennent toute l’information
contenue dans le flux d’origine, préservant ainsi la qualité vidéo/audio dans un signal, alors
que les codecs avec perte réduise la qualité de la compression mais utilisent aussi moins de
données de bande passante.

1.9 Les différents codecs :


Il existe des codecs audio et codecs vidéo :

 Codecs audio :

Les codecs audio traditionnels : G711, G722, G729, GSM.

Le codec de la nouvelle génération: opus

 Codecs vidéo :
Codecs vidéo traditionnels : H261, H263, H264
H264 est un codec propriétaire qui nécessite une licence

d’utilisation. Il y a un projet openH264 qui a développé une

version H264 open source

Vp8 et vp9 développe par Google.


Vp8 et vp9 sont recommandes par le webrtc.
2 Etudes d’Asterisk
2.1 Définition :
Asterisk est une solution de téléphonie sur IP, Open Source. Il s’agit donc d’une solution
gratuite, avec une communauté très active. Il a été développé par la société Digium.
Asterisk est disponible sous Linux et Windows, même si la version Linux utilisée est de
loin la moins rependue. Il fait office d’IPBX, mais il est aussi capable de s’interfacer avec
un réseau de téléphonie analogique, à l’aide de cartes additionnelles. Asterisk peut donc
faire office d’IPBX et de PABX.
Un serveur Asterisk permet donc de faire de la VoIP ainsi que de la téléphonie analogique.

2.2 Fonctionnalités d’Asterisk


Asterisk, en tant que logiciel de téléphonie sur IP open source, offre une vaste gamme de
fonctionnalités pour la communication. Voici quelques-unes des fonctionnalités clés
d'Asterisk :
1. Appels vocaux : Asterisk permet de passer et de recevoir des appels vocaux sur IP. Il
prend en charge plusieurs protocoles de communication, notamment SIP, IAX, H.323,
et peut être utilisé avec des téléphones IP, des adaptateurs ATA ou des softphones.
2. Messagerie vocale : Asterisk offre une fonctionnalité de messagerie vocale intégrée.
Les utilisateurs peuvent recevoir des messages vocaux et les écouter depuis leur
téléphone ou les récupérer via une interface web ou un client de messagerie
électronique.
3. Files d'attente d'appels : Les files d'attente d'appels permettent de gérer les appels
entrants de manière efficace. Les appels sont placés dans une file d'attente et sont ensuite
distribués aux agents disponibles selon différents critères (par exemple, en utilisant la
stratégie de distribution du plus ancien, du moins occupé, du round-robin, etc.).
4. Conférence téléphonique : Asterisk permet de mettre en place des conférences
téléphoniques à plusieurs participants. Les utilisateurs peuvent rejoindre une conférence
en composant un numéro dédié et entrer un code d'accès.
5. Messagerie instantanée : En plus des appels vocaux, Asterisk prend en charge la
messagerie instantanée (IM) à travers le protocole XMPP (Extensible Messaging and
Presence Protocol). Cela permet aux utilisateurs de communiquer par texte en temps
réel.
6. Numérotation abrégée : Asterisk permet de définir des numéros abrégés pour
simplifier les appels fréquents. Par exemple, vous pouvez configurer un numéro abrégé
pour appeler un collègue ou un service interne spécifique.
7. Enregistrement des appels : Asterisk offre la possibilité d'enregistrer les appels, que
ce soit pour des raisons de conformité, de formation ou d'archivage. Les enregistrements
peuvent être stockés localement ou sur un serveur distant.
8. IVR (Interactive Voice Response) : L'IVR permet aux appelants d'interagir avec un
système vocal automatisé en utilisant des commandes vocales ou des touches du clavier.
Cela peut inclure la navigation dans un menu, la récupération d'informations, le transfert
d'appels vers des destinations spécifiques, etc.
9. Intégration CRM : Asterisk peut être intégré à des systèmes de gestion de la relation
client (CRM) pour une meilleure interaction avec les appelants. Les informations du
CRM peuvent être récupérées et affichées lors des appels entrants, permettant aux
utilisateurs de disposer d'informations contextuelles sur les appelants.
10. API et développement d'applications : Asterisk offre une API qui permet aux
développeurs de créer des applications personnalisées et d'étendre les fonctionnalités
d'Asterisk. Cela ouvre la possibilité de développer des fonctionnalités spécifiques à
l'entreprise et de créer des intégrations avec d'autres systèmes.

2.3 Quelques fichiers de configuration et explication


 Appels :
o Le fichier de configuration pjsip.conf est utilisé pour configurer les paramètres liés au
protocole PJSIP.
o Vous pouvez définir les comptes PJSIP pour les utilisateurs et les périphériques, y
compris les numéros d'extension, les mots de passe, les codecs audio, etc.
o Des fonctionnalités telles que le renvoi d'appels, le blocage d'appels, la limitation
d'appels simultanés, etc., peuvent être configurées pour chaque compte.
 Boîte vocale :
o Le fichier de configuration voicemail.conf permet de configurer les boîtes vocales.
o Vous pouvez définir les numéros d'accès, les notifications par e-mail, les options de
rappel, les délais d'expiration des messages, etc.
o Les fichiers audio personnalisés pour les messages d'accueil et les instructions de
navigation peuvent également être configurés.
 Musique d'attente :
o Le fichier de configuration musiconhold.conf est utilisé pour configurer les fichiers
audio de musique d'attente.
o Vous pouvez spécifier les répertoires où sont stockés les fichiers audio, les classes de
musique d'attente, les stratégies de sélection, les priorités, etc.
 Parking d'appels :
o La fonctionnalité de parking d'appels permet de mettre un appel en attente sur un
emplacement spécifique.
o La configuration du parking d'appels se fait généralement dans le fichier
features.conf, où vous pouvez définir les numéros d'emplacements de stationnement,
les temps d'attente, etc.
 Conférence :
o Asterisk avec PJSIP prend en charge les conférences téléphoniques à plusieurs
participants.
o Vous pouvez configurer les paramètres de conférence, tels que les numéros d'accès,
les mots de passe, les capacités de participants, les annonces d'entrée/sortie, etc.
o La configuration se fait généralement dans le fichier extensions.conf
 Centre d'appels :
o Asterisk peut être utilisé pour mettre en place un centre d'appels avec diverses
fonctionnalités.
o Des fichiers de configuration tels que queues.conf (files d'attente), extensions.conf
(routage des appels), musiconhold.conf (musique d'attente), voicemail.conf (gestion
des messages vocaux), etc., sont utilisés pour configurer le centre d'appels.
 Prise en compte du module PJSIP :
o Le module PJSIP est utilisé pour la gestion des appels SIP dans Asterisk.
o Le fichier de configuration pjsip.conf est spécifiquement utilisé pour configurer les
paramètres liés au protocole PJSIP.
 Plan de numérotation :
o Le plan de numérotation est configuré dans le fichier extensions.conf.
o Vous pouvez définir les règles de composition des numéros, les routes d'appel, les
actions à effectuer en fonction des numéros composés, etc.
 Prise en charge WebRTC et Websocket :
o Asterisk avec le module PJSIP offre une prise en charge native de WebRTC et
Websocket.
o Les paramètres spécifiques liés à WebRTC et Websocket peuvent être configurés
dans le fichier pjsip.conf, tels que les codecs, les transports, les certificats de sécurité,
les adresses et ports Websocket, etc.
 Prise en charge de ARI (Asterisk REST Interface) :
o ARI est une interface RESTful qui permet de contrôler et de gérer Asterisk à partir
d'applications tierces.
o La configuration d'ARI se fait généralement dans le fichier ari.conf, où vous pouvez
spécifier les autorisations, les adresses IP autorisées, les règles de sécurité, etc.

2.4 Installation d’asterisk 18


Téléchargement depuis la source.
Lien de telechargement :
#wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz

Après téléchargement, on le désarchive dans le dossier /usr/local/

Installation des prérequis


#contrib/scripts/./install_prereq install

Installation des codecs vidéo et audio de dernière génération.


#apt install libvpx-dev libopus-dev

#./configure

Pour activer certains modules :


#make menuselect
#make

#make install
#make config

#make samples
#service asterisk restart

2.5 Création de compte PJSIP


SIP (Session Initiation Protocol) est un protocole de signalisation souvent utilisé pour
établir et terminer des sessions de communication multimédia, telles que des appels voix et
vidéo sur IP. La vidéo conférence, la diffusion multimédia en continu, la messagerie
instantanée, l'indication de présence et les jeux en ligne figurent parmi les autres exemples
d'application potentielle. SIP est un protocole de type « requête-réponse», très similaire à
deux autres protocoles Internet, HTTP et SMTP, qui correspondent respectivement aux
protocoles sous-jacents du Web et du courrier électronique.

PJSIP est une pile de protocoles SIP Open Source écrite en C, conçue pour être très
compacte, performante et très flexible. Le développement de PJSIP est principalement axé
sur une pile SIP à faible encombrement, modulaire et très portable à des fins de
développement intégré (bien qu'il soit également parfaitement adapté à
Win32/Linux/MacOS).
2.5.1 Prise en compte du canal pjsip.
D’abord, avant d’utiliser pjsip.conf pour la création des comptes on doit s’assurer que le
fichier sip.conf est arreté.si c est pas arrêté : pour l’arrêter on part dans le fichier
modules.conf est on active.
#nano modules.conf

2.5.2 Les objets pjsip.conf


Voici quelques objets pour la création d’un compte pjsip.conf.

o [transport] : Définit les paramètres de transport SIP tels que le type de transport
(UDP, TCP, TLS) et les options spécifiques.

o [endpoint] : Définit les paramètres de l'extrémité (endpoint) SIP, y compris les


codecs audio, les identifiants de l'utilisateur et les informations de localisation.

o [aor] : Définit les informations sur l'adresse d'enregistrement (AOR) associée à un


utilisateur.

o [auth] : Définit les informations d'authentification pour un compte.

o [identify] : Définit les informations d'identification pour un compte basées sur


l'adresse IP source.
Dans pjsip.conf, la création de comptes se fait comme suit :
root@nasry-ahamadi:~# cd /etc/asterisk/
root@nasry-ahamadi:/etc/asterisk# nano +2000 pjsip.conf

Déclaration du Transport udp

[udp-transport]
type=transport
protocol=udp
bind=0.0.0.0

[1001]
type=endpoint
transport=udp-transport
context=rtn
disallow=all
allow=alaw,vp8,vp9
allow=ulaw
auth=1001
aors=1001
language=fr

[1001]
type=auth
auth_type=userpass
password=passer
username=1001

[1001]
type=aor
max_contacts=10
On fait de même pour créer tout le reste des comptes :
[1002]
type=endpoint
transport=udp-transport
context=rtn
disallow=all
allow=alaw,vp8,vp9
allow=ulaw
auth=1002
aors=1002
language=fr

[1002]
type=auth
auth_type=userpass
password=passer
username=1002

[1002]
type=aor
max_contacts=10

2.6 Appel
Un appel téléphonique est l'opération de mise en connexion entre une personne qui utilise
un téléphone et son ou ses destinataires. À la suite de la numérotation du numéro de
téléphone de ce dernier sur le clavier de l'appareil émetteur, une sonnerie téléphonique
retentit à destination jusqu'à ce que l'individu contacté accepte l'appel. La conversation
téléphonique peut alors commencer, le plus souvent par la question « allô ?»
 Fichiers concernés pjsip.conf et extensions.conf
Pjsip.conf pour la création des comptes comme on vient de le faire en haut et
extensions.conf pour le plan de numérotation.
root@nasry-ahamadi:/etc/asterisk# nano +2000 extensions.conf

[rtn]
exten=>_1XXX,1,Dial(PJSIP/${EXTEN},20,tr)

On sauvegarde la config puis on lance Asterisk en mode CLI comme suit :


root@nasry-ahamadi:/etc/asterisk# asterisk –rvvvvvvvvvv

Connexion du premier téléphone (1002).


Connexion du deuxième téléphone (1001).
Test d’appel audio:
1001 initie un appel vers 1002
2.7 Appel vidéo
Création des comptes. Pour faire des appels vidéo il suffit juste d’ajouter les codecs vidéo pour
chaque compte.
[1001]
type=endpoint
transport=udp-transport
context=rtn
disallow=all
allow=alaw,vp8,vp9
allow=ulaw
auth=1001
aors=1001
language=fr

[1001]
type=auth
auth_type=userpass
password=passer
username=1001

[1001]
type=aor
max_contacts=10

Compte 1002
[1002]
type=endpoint
transport=udp-transport
context=rtn
disallow=all
allow=alaw,vp8,vp9
allow=ulaw
auth=1002
aors=1002
language=fr

[1002]
type=auth
auth_type=userpass
password=passer
username=1002

[1002]
type=aor
max_contacts=10
Test d’appel :
Toujours 1001 qui initie un appel mais cette ci en vidéo.
Cote serveur :

Vous aimerez peut-être aussi