L’objectif de ce projet c’est de mettre en place un trunk entre un serveur Asterisk et un serveur OpenIMS Core afin de permettre aux utilisateurs des deux services de s’appeler mutuellement.
Câblage, installation et paramétrage d’un réseau informatique.pdf
COUPLAGE ENTRE Asterisk et OpenIMSCore
1. 06/05/2017
COUPLAGE ENTRE Asterisk et
openims ASTERISK et OpenIMS
+
Université Cheikh Anta Diop de Dakar
Faculté des Sciences et Techniques
Département de Mathématique et Informatique
Section Informatique
Master II Réseaux et Service
ING. Abdou lahad sylla
Sous la direction de : ING. Bassirou kasse
2. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
1
Table des matières
Introduction .............................................................................................2
I. Présentation d’Asterisk..................................................................... 3
1. Définition ......................................................................................... 3
2. Fonctionnalités ............................................................................. 3
3. Installations et Configurations.......................................................4
a. Installations................................................................................4
b. Configuration et création des comptes Asterisk .....................6
II. Présentation d’OpenIMS .................................................................12
1. Définition ........................................................................................12
2. Fonctionnalités ............................................................................13
3. Installations et Configurations......................................................15
a. Installations...............................................................................15
b. Configuration ............................................................................17
III. Couplage OpenIMSCore et Asterisk ............................................ 32
1. Configuration du trunk sur OpenIMSCore ................................. 32
2. Configuration du trunk sur le serveur Asterisk........................ 34
3. Test ................................................................................................. 37
Conclusion..............................................................................................38
3. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
2
Introduction
La voix sur IP, ou « VoIP » pour Voice over IP, est une technique qui
permet de communiquer par la voix (ou via des flux multimedia : audio ou
vidéo) sur des réseaux compatibles IP, qu'il s'agisse de réseaux privés ou
d'Internet, filaire (câble/ADSL/fibre optique) ou non (satellite, Wi-
Fi, GSM, UMTS ou LTE).
La VoIP concerne le transport de la voix sur un réseau IP. Cette technologie
est complémentaire de la téléphonie sur IP (« ToIP » pour Telephony over
Internet Protocol). La ToIP concerne les fonctions réalisées par un
autocommutateur téléphonique IPBX.
L’objectif de ce projet c’est de mettre en place un trunk entre un serveur
Asterisk et un serveur OpenIMS Core afin de permettre aux utilisateurs des
deux services de s’appeler mutuellement.
Nous avons réalisé ce travail pratique sous Ubuntu Serveur 14.04 LTS pour
les deux serveurs distants. Pour le test nous avons utilisé deux machines
Windows où on a installé les clients IMS (Boghe) et Asterisk (Xlite, Yate et
Zoiper).
4. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
3
I. Présentation d’Asterisk
1. Définition
Asterisk est un autocommutateur téléphonique privé (PABX) libre et
propriétaire (publié sous licence GPL et licence propriétaire) pour
systèmes GNU/Linux. Il permet, entre autres, la messagerie vocale, les files
d'attente, les agents d'appels, les musiques d'attente et les mises en garde
d'appels, la distribution des appels. Il est possible également d'ajouter
l'utilisation des conférences par le biais de l'installation de modules
supplémentaires et la recompilation des binaires.
Asterisk implémente les protocoles H.320, H.323 et SIP, ainsi qu'un
protocole spécifique nommé IAX (Inter-Asterisk eXchange). Ce
protocole IAX permet la communication entre deux serveurs Asterisk ainsi
qu'entre client et serveur Asterisk. Asterisk peut également jouer le rôle
de registrar et passerelle avec les réseaux publics (RTC, GSM, etc.) Asterisk
est extensible par des scripts ou des modules en
langage Perl, C, Python, PHP, et Ruby.
2. Fonctionnalités
Asterisk comprend un nombre très élevé de fonctions permettant
l'intégration complète pour répondre à la majorité des besoins en
téléphonie. Il permet de remplacer totalement, par le biais de cartes
FXO/FXS, un PABX propriétaire, et d'y adjoindre des fonctionnalités
de VoIP pour le transformer en PBX IP. Il permet également de
fonctionner totalement en VoIP, par le biais de téléphones SIP ou IAX
du marché. Enfin, des fonctionnalités de routage d'appel, menu vocal
et boites vocales—entre autres—le placent au niveau des PBX les plus
complexes. Au sein des grandes installations d'Asterisk, il est courant
de déployer les fonctionnalités sur plusieurs serveurs. Une unité
centrale ou plus seront dédiées au traitement des appels et seront
5. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
4
épaulées par des serveurs auxiliaires traitant les tâches secondaires
(comme une base de données, les boîtes vocales, les conférences).
Des modules tiers permettent de visualiser ou paramétrer le PBX via
une interface Flash ou via un client léger.
3. Installations et Configurations
a. Installations
Prérequis
Ce projet a été réalisé sur une machine virtuelle sous VirtualBox :
Ubuntu-Server 14.04-i386 (32 bits)
Disque Dur 16 Gb et une RAM de 1 Go minimum
Accès par pont (Bridge) de la carte réseau du système
Utilisation du logiciel Putty pour se connecter à distance du
système
Utilisation de deux logiciels VOIP de simulation pour les
tests d’appels : Eyebeam setup et Xlite
Connexion internet pour le téléchargement des paquets
Dépendances
sudo apt-get install -y build-essential linux-headers-`uname -r`
openssh-server mysql-client mysql-server libmysql++-dev
bison flex php5-curl php5-cli php5-mysql php-pear php-db
php5-gd phpmyadmin curl sox libncurses5-dev libssl-dev
libmysqlclient15-dev mpg123 libxml2-dev libnewt-dev sqlite3
libsqlite3-dev pkg-config automake libtool autoconf git
subversion uuid uuid-dev
6. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
5
Téléchargement de la version Asterisk
wget
https://downloads.asterisk.org/pub/telephony/asterisk/asteris
k-11-current.tar.gz
Extraction et Configuration des modules Asterisk
wget
https://downloads.asterisk.org/pub/telephony/asterisk/asteris
k-11-current.tar.gz
tar -xvf asterisk-11-current.tar.gz
cp -r /usr/local/
cp -r asterisk-11.25.1/ /usr/local/
cd /usr/local/asterisk-11.25.1/
./configure
make menuselect
Dans le menu de configuration il faut choisir ces trois options :
7. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
6
" Core Sound Package" > cocher "core-sounds-fr-ulaw"
"Music on Hold File Package" > cocher "Moh-opsound-ulaw"
"Extras Sounds Packages" > cocher "extra-sounds-fr-ulaw"
Installation d’Asterisk avec ces commandes suivantes :
make
make install
make samples
make config
b. Configuration et création des comptes Asterisk
Sauvegarde des fichiers de configuration pour cas d’erreur :
cp /etc/asterisk/sip.conf /etc/asterisk/sip.conf.backup
cp /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.backup
Editons le fichier /etc/asterisk/sip.conf puis ajouter
Les lignes suivantes :
9. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
8
callerid="abdoulaahi" <2004>
qualify=yes
mailbox=2004@MB
Editons le fichier /etc/asterisk/extensions.conf puis ajouter
Les lignes suivantes :
[RETEL2]
exten => _2XXX,1,Dial(SIP/${EXTEN},30,tr)
exten => _2XXX,n,Voicemail(${EXTEN}@MB)
exten => _2XXX,n,Hangup()
Exécuter les commandes asterisk –rvvv pour accéder au console
asterisk et reload pour charger les configurations.
Pour quitter exécuter la commande quit
10. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
9
c. Redémarrage du service asterisk
d. Configuration des clients sous Xlite et eyeBeam
On configure nos clients avec les comptes crées auparavant.
13. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
12
II. Présentation d’OpenIMS
1. Définition
L'open source IMS est une implémentation Open Source de certaines
fonctions d'un cœur de réseau IMS (IP Multimedia Subsystem). Celle-
ci comprend un HSS (Home Subscriber Server) "léger" et un CSCF (Call
Session Control Functions) répondant aux fonctionnalités de proxy,
interrogating, et serving.
Ces fonctions forment aujourd'hui les éléments d'un cœur de réseau
d'une architecture IMS, comme spécifié dans les
normes 3GPP, 3GPP2, ETSI TISPAN. Elles sont toutes basées sur des
programmes open source.
14. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
13
Architecture OPEN SOURCE IMS
2. Fonctionnalités
Les principales fonctions d'un réseau IMS
Architecture d'un réseau IMS
Le cœur d’un réseau IMS est un assemblage de fonctions diverses
(décrites dans le dessin ci-dessus), connectées par des interfaces
normalisées. Une fonction n'est pas forcément associée à un
équipement matériel spécifique, plusieurs fonctions IMS peuvent être
combinées dans un même équipement. Les principales fonctions d’un
réseau IMS sont les suivantes :
Réseau d'accès : peuvent être de divers types mais doivent utiliser Les
protocoles IP. Les terminaux peuvent être de purs terminaux IMS, des
15. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
14
téléphones mobiles ou des smartphones, des PDAs ou des
ordinateurs...
Cœur de réseau : utilisé par l'architecture IMS doit être compatible
au protocole IP
User Database : Le HSS (Home Subscriber Server) est la base de
données principale qui décrit les entités du réseau et contient la liste
des utilisateurs et les droits et autorisations associés ainsi que les
sessions des appels en cours. Il peut aussi fournir des informations sur
la localisation des utilisateurs du réseau IMS. Les HSS utilisent le
protocole Diameter (Cx, Dx, Sh interfaces) pour leur consultation par
les autres fonctions d’un réseau IMS.
Call Session Control Function plusieurs types de serveurs SIP
dénommés CSCF (Call/Session Control Functions), sont utilisés pour
traiter la signalisation SIP dans le réseau IMS.
Le P-CSCF (Proxy-CSCF) est le proxy SIP qui est le point de
contact pour les terminaux IMS. Il est aussi chargé de la taxation
des appels.
L’I-CSCF (Interrogating-CSCF) est le proxy SIP en charge des
fonctions administratives, son adresse IP est publiée dans les
DNS.
Le S-CSCF (Serving-CSCF) est le nœud central pour la
signalisation dans le réseau. Le S-CSCF utilise le protocole
Diameter pour communiquer avec les bases de données
d’abonnés.
Serveurs multimédia
Le MRF (Media Resource Function) contient les sources de vidéos et de
sons utilisées dans le réseau IMS :
annonces vocales
vidéoconférences
transcodage d’images, voix et vidéos (conversion entre
différents codecs)
Serveurs d’applications
16. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
15
Les serveurs d’application (application server “AS” en anglais)
hébergent et exécutent des services et les applications (par exemple :
traduction des numéros verts ou Voice call continuity « VCC ») et
s’interfacent avec le S-CSCF en utilisant le protocole SIP.
Gateways
Il existe plusieurs types de gateways (passerelles) entre le réseau IMS
et les autres réseaux téléphoniques ou informatiques :
Le PSTN Gateway fait l’interface avec les réseaux téléphoniques
commutés classiques.
Les Signalling Gateway (SGW) réalisent l’interface entre la
signalisation SIP de l’IMS et les signalisations
SS7 et SIGTRAN utilisées dans les réseaux commutés.
Les Media Gateways (MGW) font la conversion des formats
audio et vidéo.
Le Packet Data Network Gateway (PGW) fait l’interface, pour les
données, entre un réseau mobile (4G) et le réseau Internet.
3. Installations et Configurations
a. Installations
Prérequis :
Ce projet a été réalisé sur une machine virtuelle sous VirtualBox :
Ubuntu-Server 14.04-i386 (32 bits)
Disque Dur 16 Gb et une RAM de 1 Go minimum
Accès par pont (Bridge) de la carte réseau du système
Utilisation du logiciel Putty pour se connecter à distance du
système
Utilisation de deux logiciels VOIP de simulation pour les
tests d’appels : Boghe
Connexion internet pour le téléchargement des paquets
18. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
17
sudo sed -i '/include <curl/types.h>/d'
ser_ims/lib/lost/client.h
Installation d’OPENIMS CORE
cd ser_ims
sudo make install-libs all
cd ..
Compilation du composant FHOSS
sudo mkdir FHoSS
sudo svn checkout
https://svn.code.sf.net/p/openimscore/code/FHoSS/trunk/
FHoSS
cd FHoSS
sudo ant compile deploy
sudo sed -i
's/JAVA_HOME/bin/java/JAVA_HOME/usr/bin/java/g'
deploy/startup.sh
cd ..
b. Configuration
Configuration DNS
Editer le fichier de configuration /etc/dhcp/dhclient.conf et ajouter
l’adresse IP du serveur à l’option domain-name-servers
19. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
18
Copie et configuration du DNS.
sudo cp ser_ims/cfg/open-ims.dnszone /etc/bind/
nano /etc/bind/open-ims.dnszone
20. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
19
Appuyez sur Ctrl+sift+8 pour rechercher et replacer
automatiquement l’adresse localhost (127.0.0.1) par l’adresse IP de
votre serveur (192.168.43.86).
Déclaration de la zone
nano /etc/bind/named.conf.default-zones
21. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
20
Démarrage du service DNS
Test du DNS : On voit que le serveur DNS répond aux requêtes
22. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
21
Copie des fichiers de la base donnée au serveur mysql.
cd /opt/OpenIMSCore
mysql -u root -p < ser_ims/cfg/icscf.sql
mysql -u root -p < FHoSS/scripts/hss_db.sql
mysql -u root -p < FHoSS/scripts/userdata.sql
Copie des fichiers cgf, xml et sh contenant les quatre modules
sur le repertoire /opt/OpenIMSCore
sudo cp ser_ims/cfg/*.cfg .
sudo cp ser_ims/cfg/*.xml .
sudo cp ser_ims/cfg/*.sh .
Configuration automatique de l’ensemble des fichiers xml et
cfg avec l’aide du script configurator.sh
Editer le fichier ci-dessous et ajouter l’adresse IP du serveur
OpenIMS
23. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
22
Editer le fichier de configuration ci-dessous et ajouter l’adresse
IP du serveur.
24. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
23
‘
Démarrage du service OpenIMS sur 4 consoles chaque
commande sur une console.
sudo ./pcscf.sh
sudo ./scscf.sh
sudo ./icscf.sh
sudo ./fhoss.sh
Accéder à la page d’administration d’OpenIMS à partir d’un
navigateur :
http://192.168.43.86:8080/hss.web.console/index.jsp
25. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
24
Se connecter avec les identifiants par défaut login : hssAdmin
et mot de passe : hss
Page d’accueil
26. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
25
CREATION D’UTILISATEUR SUR LE SERVEUR OPENIMS
Par défaut, nous avons deux utilisateurs Alice et Bob.
Mais nous allons créer d’autres Utilisateurs comme lahad de la
manière suivante :
En cliquant sur create dans User IDENTITES
Création de l’utilisateur lahad
27. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
26
Création du Public User Identity
28. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
27
Création du IMS Subscription
Test du service OpenIMSCore entre deux utilisateurs lahad et
ngagne.
Sous Windows nous avons allons utiliser Boghe IMS Client, qu’on a
téléchargé
Et installer sur la machine. Configurez comme suivantes :
Lancer Boghe –tools –Options –Identity
30. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
29
Enfin cliquer sur save pour enregistrer les configurations
31. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
30
Cliquer sur Sign in pour se connecter
32. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
31
Appel Vidéo + Chat entre Lahad et Ngagne
33. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
32
III. Couplage OpenIMSCore et Asterisk
1. Configuration du trunk sur OpenIMSCore
Au niveau du serveur OpenIMS, on crée quelques services pour
intégrer Asterisk sur le serveur OpenIMS.
Remplissez ses champs comme suites et cocher tous les cas on niveau
sh Interface-Permission
34. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
33
Initial Filter Criteria
Sélectionner ces services dans les listes déroulantes puis
enregistrer
Asterisk Service Profile
Remplissez comme suivantes
35. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
34
Asterisk Trigger Point
2. Configuration du trunk sur le serveur Asterisk
Editer ce fichier de configuration /etc/asterisk/sip.conf
36. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
35
Ajouter les utilisateurs
Editer le fichier suivant /etc/asterisk/extensions.conf
Rajouter ces quatre dernières lignes dans le contexte RETEL2
37. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
36
Editer le fichier /etc/hosts
AJOUTER ce qui suit sur la même ligne pour que le serveur asterisk
puisse faire la résolution auprès du serveur DNS qui est sur le serveur
OpenIMSCore :
192.168.43.86 open-ims.test mobicents.open-ims.test
asterisk.open-ims.test Ue.open-ims.test presence.open-
ims.test pcscf.open-ims.test hss.open-ims.test
Ajouter l’enregistrement de type A pour le serveur Asterisk
38. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
37
3. Test
Appel entre un client OpenIMSCore (lahad avec son compte
sip lahad@open-ims.test) et un client Asterisk (lahad avec
son numéro 2001)
39. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
38
communication entre les deux utilisateurs
Conclusion
La voix sur IP (VoIP) peut faciliter des tâches et fournir des services
qu’il serait difficile ou coûteux de mettre en œuvre en utilisant le
réseau RTC traditionnel :
lus d’un appel téléphonique peut être transmis sur la même ligne
téléphonique haut-débit. De cette manière, la voix sur IP peut
faciliter l’ajout de lignes téléphoniques à l’entreprise, sans avoir
besoin de lignes téléphoniques matérielles supplémentaires.
Les fonctionnalités qui sont habituellement facturées par les
sociétés de télécom, tels que le transfert d’appel, l’ID d’appelant
ou la composition automatique, sont simples avec la technologie
de la voix sur IP.
40. COUPLAGE ENTRE ASTERISK ET OPENIMS ABDOU LAHAD SYLLA ANNÉE ACADÉMIQUE 2016-2017
39
Les communications unifiées sont sécurisées avec la technologie
de la VoIP car elle permet l’intégration avec d’autres services
disponibles sur Internet tels que la conversation vidéo, la
messagerie instantanée, etc.
Ce projet nous a permis de comprendre et de mettre en place une
plateforme interopérable qui intègre deux services de VoIP :
OpenIMSCore et Asterisk. En effet, nous avons au cours
l’implémentation de ce projet, pu installer, configurer et tester ces
deux services afin qu’ils puissent communiquer.