COMPTE RENDU VOIP
MEMBRES
Mouhamadou Bara Lamine Mbacké
Maimouna Aidara Faye Ndiaye
Mouhamadou Mansour Baro
TP1 : Télécharger MICROSIP dans deux machines et tester les
appels
TP2 : Installation KAMAILIO modules et configuration
Etape 1 : Installer le serveur de base de données MYSQL
Pour l’installer, mettez à jour l’index de paquet sur votre serveur
avec apt
$ sudo apt update
Installez ensuite le paquet par défaut :
$ sudo apt install mysql-server
Configuration de mysql : exécutez le script de sécurité
$ sudo mysql_secure_installation
Etape 2 : Installation de Kamailio
$ apt-get install kamailio
$ apt-get install flux bison libssl-dev libcurli-opinstall-dev libcure3-dev
libmysqlclient-dev
$ apt-get install kamailio-utils-modules kamailio-mysql-modules kamailio-
carrierroute-modules kamailio-presence-modules kamailio-xmpp-modules
kamailio-python-modules kamailio-xml-modules
Etape 3 : Configuration Kamailio
Modifiez le fichier /etc/kamailio/kamctlrc et assurez-vous que la
variable DBENGINE est définie sur MySQL. Supprimez le symbole # pour le
décommenter.
Définir le moteur de base de données sur MYSQL.
$ sudo nano / etc / kamailio / kamctlrc
DBENGINE = MYSQL
DBHOST = localhost
Créer une base de données pour [Link] commande ci-dessous créera
les utilisateurs et les tables dont Kamilio a besoin.
$ sudo kamdbctl create
Mot de passe MySQL pour root:
INFO: création de base de données kamailio ...
INFO: octroi de privilèges à la base de données kamailio ...
INFO: créer des tables standard en kamailio ...
INFO: les tables Core Kamailio ont été créées avec succès.
Installer des tables liées à la présence? (o / n): y
INFO: créer des tables de présence dans kamailio ...
INFO: tables de présence créées avec succès.
Installer des tables pour imc cpl siptrace domainpolicy carrierroute
drouting userblacklist htable violet uac pipelimit mtree sca mohqueue
rtpproxy rtpengine? (o / n): y
INFO: créer des tables supplémentaires dans kamailio ...
INFO: tables supplémentaires créées avec succès.
Installer des tables pour uid_auth_db uid_avp_db uid_domain uid_gflags
uid_uri_db? (o / n): y
INFO: créer des tables uid dans kamailio ...
INFO: les tables UID ont été créées avec succès.
Vous serez invité à fournir un mot de passe root mysql. Les utilisateurs de Mysql
et le mot de passe ajouté par la commande ci-dessus sont.
Kamailio avec le mot de passe kamailiorw. Il dispose d'autorisations d'accès en
lecture / écriture à la base de données Kamailio.
kamailiorw : Le mot de passe de cet utilisateur est kamailiorw . Il dispose
d'autorisations d'accès en lecture seule à la base de données Kamailio.
NB : Créer les utilisateurs sur la base en tapant la commande
$ kamctl add nomuser motdepasse
/etc/kamailio/[Link] est le fichier de configuration de kamailio. Modifiez-le
pour activer certaines des fonctionnalités qui l'accompagnent.
Ajoutez les lignes suivantes juste en dessous de #! KAMAILIO.
$ sudo nano /etc/kamailio/[Link]
#! définir WITH_MYSQL
#! définir WITH_AUTH
#! définir WITH_USRLOCDB
#! définir WITH_ACCDB
Démarrer le service de Kamailio :
$ systemctl restart kamailio
$ systemctl status kamailio
Regarder l'IP du server kamailio et attribuer à des utilisateurs déjà crée un
compte avec un softphone (microsip, zoiper...).
Tester les appels
Utiliser wireshark
L’enregistrement du client sip au niveau du server kamailio avec la
méthode register
Les étapes de la signalisation de sip avec la méthode NUITE BYE
TP3 : Intérêt des enregistrements DNS, SRV et NAPTR
I. Configuration DNS avec deux domaines orange et free
Etape 1 : Installation Bind
Installer le package bind9 en utilisant la commande :
$ sudo apt-get install bind9
Toutes les configurations DNS sont stockées sous le répertoire
/etc/Bind.
Etape 2 : Configurer le serveur DNS Primaire/Master
Maintenant, nous allons configurer bind9 comme le Master pour le domaine
« [Link] ».
Comme première étape dans la configuration de notre serveur DNS, nous
devons Forward la résolution de bind9.
Pour ajouter la résolution Forward vers bind9, modifiez
/etc/bind9/[Link].
Zone "[Link]" {
Type master;
File "/etc/bind/[Link]";
};
Etape 3 : Mise en place de la Forward résolution pour le serveur
DNS Primaire/Master
Maintenant nous allons ajouter les détails qui sont nécessaires pour la
forward résolution dans le fichier /etc/bind/[Link].
Premièrement, copiez /etc/bind/[Link] dans /etc/bind/[Link] :
$ sudo cp /etc/bind/[Link] /etc/bind/[Link]
Ensuite, modifiez le fichier /etc/bind/[Link] :
$TTL 604800
@ IN SOA [Link] [Link]. (
1024 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800) ; Negative Cache TTL
;
@ IN NS [Link].
[Link] IN NS [Link].
[Link] IN A [Link] (IPaddress)
Etape 4 : Redémarrer le service bind9 et faire les tests du bon
fonctionnement
$ sudo service bind9 restart
Nous allons tester notre serveur DNS en faisant un ping vers le domaine
[Link]
On fait la même chose pour le domaine [Link]
II. Configuration SRV
Etape 1 : Editer le fichier zone [Link]
Ajouter les lignes suivantes dans le fichier /etc/bind/[Link] :
-SIP-tcp .[Link] 86400 IN SRV 10 10 50 60 [Link]
-SIP-udp .[Link] 86400 IN SRV 10 10 50 60 [Link]
Etape 2 : Vérifier l’enregistrement du service SRV
$ [Link] SRV
On fait la même chose pour le fichier zone [Link]
Etape 3 : Tester les appels avec Kamailio
Ajouter l'adresse de la machine distante (l'autre server kamailio)
Exemple : ajouter les lignes suivantes dans le fichier /etc/bind/[Link] :
To [Link]. IN A [Link]
-[Link] 86400 IN SRV 10 10 -5060 to ip [Link]
-[Link] 86400 IN SRV 10 10 -5060 to ip [Link]
III. Configuration NAPTR
Etape 1 : Editer le fichier zone [Link]
Ajouter les lignes suivantes dans le fichier /etc/bind/[Link]
[Link].[Link]. NAPTR 10 100 'u" "E2U + sip"" "!^.×$!sip:100@[Link]!"
[Link].[Link]. NAPTR 10 100 'u" "E2U + sip"" "!^.×$!sip:109@[Link]!"
On fait la même chose pour le fichier zone [Link] en remplaçant tous les 1 par 2
TP4 : Mise en place d’un environnement ASTERISK
A. Etablissement Appel
Etape 1 : Installation
Pour l'installation de Astérisk avec les fichiers sources, il faut
d'abord aller sur le site [Link] pour télécharger
le fichier .[Link] de la nouvelle version d'asterisk.
Ensuite désarchiver le fichier .[Link] dans le dossier de votre choix.
Déplacez-vous dans ce dossier pour passer à l'installation.
$ cp /home/nomdelamachine/telechargerment/asterisk-16-
[Link]
$ tar -xvzf [Link]
Puis aller dans le dossier asterisk désarchivé et lancer la
commande :
$ cd asterisk-16-4-0/
$ cd contrib/scripts/
$ ./install_prereq.install
$ cd ..
$ cd ..
Après nous allons exécuter la commande ./configure, pour passer à
la configuration des paquets. S'il y a des prérequis non satisfaites,
cette commande ne passera pas.
$ ./configure --with-jeasson-bundled
S’il n’y a pas d’erreur on voit le logo de asterisk à la fin comme
indique l’image
Après que cette commande passe, il ne reste qu'à agrandir votre
terminal qui doit occuper tout l'écran de votre machine pour
exécuter la commande make menuselect et vérifier la fonction
chan_sip dans Channel Drivers si elle est activée et la fonction curl
dans Dialplan Function si elle est aussi activée.
Après activation des fonctions, revenez pour taper la commande make
Ici aussi vous pouvez avoir des erreurs de dépendances non satisfaites
dans ce cas il faudra les installer
Il reste qu'à taper la commande make install.
Pour une nouvelle installation, taper la commande make samples
et make config, pour placer les fichiers de configuration dans leur
dossier de configuration.
Il ne reste plus qu'à démarrer le serveur astérisk par la commande asterisk –
rvvvvvvvvv.
Installation du serveur mysql
$ apt-get install mysql-server
Création de la base de donnée asterisk
$ mysql -u root -p motdepass
>create database asterisk ;
Création de la table Sip
Installer appach2
$ apt-get install appach2
Installer phpmyadmin
$ apt-get install phpmyadmin
Apres installation aller dans le répertoire /etc/phpmyadmin et
copier [Link] dans /etc/apach2/site-available:
$ cd /ect/phpmyadmin
$ cp [Link] /etc/apach2/site-available
Activer le site [Link] avec la commande :
$ a2ensite [Link]
Recharger appache2
$ service apache2 reload
Renseigner le nom et le mot de passe de connexion définis au
moment de l'installation
$ URL localhost/phpmyadmin
Installer asterisk-mysql et connecter le serveur asterisk a la base
donnée mysql
$ apt-get install asterisk-mysql
Renseigner la base de donnée dans le répertoire /etc/asterisk
Aller dans le fichier res_conf_mysql.conf et dans la section générale
Migration du fichier [Link] dans [Link]
Aller à la fin et ajouter les données:
Redémarrer asterisk
Etape 2 : Création des comptes utilisateurs
La création de compte utilisateur se fait dans le fichier [Link]
[1000] signifie le numéro SIP
Type=friend signifie le type d’objet SIP, friend = utilisateur
Secret c’est le mot de passe du compte SIP
host=dynamic signifie qu’on peut e connecter à ce compte SIP à partir
de n’importe quelle adresse IP
username c’est le nom de l’utilisateur
context=ec2lt c’est le contexte. c’est une sorte de conteneur dans lequel les
utilisateurs faisant partis de ce contexte pourrons communiquer entre eux.
Une fois le fichier [Link] enregistré, on peut allez dans la console Asterisk,
tapez reload pour recharger le serveur asterisk et tapez la commande sip show
users pour voir les utilisateurs qu’on vient de créer.
Etape 3 : Configuration du plan de numérotation
Le plan de numérotation se configure dans le fichier [Link]
exten => : déclare l’extension (on peut aussi simplement dire numéros)
_1XXX : Prend les extensions (ou numéros) de 1000 à 1999
1 : Ordre de l’extension
Dial : application qui va être utilisé
SIP: Protocol qui va être utilisé
${EXTEN} : variable de l’extension composé, si on appelle le 1001 la
variable
${EXTEN} prendra comme valeur 1001
20: temps d’attente avant de passer à l’étape suivante.
La seconde ligne : exten => _1XXX,2,Hangup() permet de raccrocher si il
n’y a pas de réponses au bout des 20 secondes.
Etape 4 : Test d’appel
Maintenant que nos deux utilisateurs sont créés et que nous avons
configuré les extensions du context «ec2lt » nous allons pourvoir
effectuer un appel entre ces deux utilisateurs.
Dans nos tests nous allons utiliser Zoiper sur Ubuntu et sur
un téléphone portable.
On met d’abord le numéro de l’utilisateur, le mot de passe définie
dans [Link] et l’adresse IP du serveur.
Dès l’instant qu’on se connecte sur le serveur on peut voir les
utilisateurs connectés avec leurs adresses IP en allant sur la
console d’asterisk et lancer la commande sip show peers.
Maintenant qu’on lance un appel d’un utilisateur vers un autre on
peut voir le trafic qui se fait sur la console d’asterisk
B. Transmission automatique d'appel
C. Transfert automatique et bouclé d'appel
D. Renvoyer l'appel vers plusieurs terminaux
simultanément
E. Boite vocal
Etape 1 : Création d’une boite vocale
Aller dans le fichier [Link] et créer dans le context dsti une
boite vocale 2000 et assigne lui comme code 1234 et comme user
ismaila
Etape 2 : Attribuer une boite vocale à un user
Aller dans [Link] et dans le compte de ismaila et attribuer ismaila la
boite vocale 2000 du context dsti
Etape 4 : Mettre l'appelant en boite vocale
Cela se fait dans [Link]
Etape 5 : Consulter une boite vocale
Dans le fichier [Link] définir 300 comme numéro de
consultation
F. Donner une même sonnerie aux appelants
Etape 1 : Création d'une sonnerie
Cela se fait dans le fichier [Link]
Etape 2 : Activer la sonnerie pour chaque appelant
Aller dans [Link] et activé la sonnerie pour les appelant de
ismaila.
G. Proposer une sonnerie pour chaque appelant
Etape 1 : Création des deux sonneries
Dans le fichier [Link] créer deux classes une pour ismaila
et l'autre pour abou
Etape 2 : Création des callid
Aller dans le fichier [Link] et assigner un callid aux users ismaila et
abou
Etape 3 : Activer les sonneries pendant les appels
Aller dans [Link] et définissez les règles de routage comme
suit: