VoIP - TPs

Transcription

VoIP - TPs
VoIP - TPs
Etude et implémentation
Auteurs : RUIZ Nicolas, LOR Maurice, Julien FERNANDES
Relecture :
Version 3.0 – 23 Novembre 2005
SUPINFO - Ecole Supérieure d’Informatique de Paris
23. rue de Château Landon 75010 Paris
Site Web : http://www.supinfo.com
Laboratoire SUPINFO des Technologies Cisco
Site Web : www.labo-cisco.com – E-mail : [email protected]
Ce document est la propriété de SUPINFO et est soumis aux règles de droits d’auteurs
Table des matières
Chapitre 1 – Protocole SIP .....................................................................................................................3
Configuration de X-lite...................................................................................................................................................... 3
Chapitre 1 – Protocole SIP .....................................................................................................................5
Calls softphone-2-softphone.............................................................................................................................................. 5
Chapitre 3 – Protocole SIP .....................................................................................................................7
Implémentation basique d’une architecture VoIP client/serveur .................................................................................... 7
Laboratoire SUPINFO des Technologies Cisco
Site Web : www.labo-cisco.com – E-mail : [email protected]
Ce document est la propriété de SUPINFO et est soumis aux règles de droits d’auteurs
Chapitre 1 – Protocole SIP
Configuration de X-lite
•
Objectif:
•
•
Préparation :
Téléchargez et installez le softphone sur votre PC. Le fichier d’installation se trouve sur le chemin réseau
indiqué par votre formateur ou via l’URL http://www.xten.com/index.php?menu=download.
•
•
•
Lancement et configuration du softphone
Lancez le softphone.
Effectuez un clic droit sur le GUI. Ceci vous permet de sélectionner :
o Le/les SIP Proxy pour votre prochain appel sortant.
o Lancer l’assistant de configuration audio.
o Afficher le log de diagnostic.
•
Parcourez les différents menus afin de vous familiariser avec les options de configurations. Quel bouton
utiliserez-vous pour obtenir la fenêtre des menus ?
-
Associez les différents menus à leur description:
Le but de ce premier TP sera de vous permettre d’effectuer une première prise en main d’X-lite un logiciel VoIP
appelé softphone.
MENU
Recent Calls
Phonebook
User Settings
System Settings
Advance system Settings
DESCRIPTION
1.
2.
3.
4.
5.
Configuration réseau, SIP Proxy, X-Tunnels, etc…
Paramètres utilisateur typique.
Configuration audio avancée, configuration du protocole SIP, et d'affichage entre autres.
Permet à l’utilisateur de revoir et stocker (50 Max) les appels récent (émis/reçus).
Phonebook & Speed Dial List
•
Quels seront les menus nécessaires au bon fonctionnement du logiciel ?
Laboratoire SUPINFO des Technologies Cisco
Site Web : www.labo-cisco.com – E-mail : [email protected]
Ce document est la propriété de SUPINFO et est soumis aux règles de droits d’auteurs
Laboratoire SUPINFO des Technologies Cisco
Site Web : www.labo-cisco.com – E-mail : [email protected]
Ce document est la propriété de SUPINFO et est soumis aux règles de droits d’auteurs
Chapitre 1 – Protocole SIP
Calls softphone-2-softphone
•
Objectif:
•
Topologie :
Le but de ce premier TP sera de vous permettre de configurer une architecture VoIP simple basée sur l’utilisation
de 2 pc portables équipés de softphones (ici nous utiliserons X-lite de l’éditeur X-ten).
L’utilisation d’un hub nous permettra de capturer et d’analyser les paquets émis et reçus à l’aide du logiciel gratuit
« Ethereal »
Analyseur de
paquets (ethereal )
Softphone 1
192.168.1.X
Analyseur de
paquets (ethereal )
HUB 100
base-T
Softphone 2
192.168.1.X
Adresse réseau : 192.168.1.0 /24
Masque de sous réseau: 255.255.255.0
•
Préparation des postes :
o Téléchargez et installez la dernière version du logiciel Ethereal (0.10.14) disponible sur le chemin
réseau indiqué par votre formateur ou via le lien : http://www.ethereal.com/download.html.
(N’oubliez pas d’installer le plug-in winpcap également).
•
Débranchez les 2 postes du LAN SUPINFO afin de les connecter au HUB.
•
Configurez une adresse IP sur chaque poste et exécutez des tests de connectivité (ping).
•
D’après le cours quels seront les types de paquets qui nous serons utiles lors de l’analyse des captures
Ethereal ?
Info :
Attention à l’existence et la configuration d’un pare-feu logiciel, notamment sur le filtrage de certains ports.
•
Trouvez les menus où se situent les paramètres nécessaires au TP et à quoi elles servent dans notre
exercice.
Laboratoire SUPINFO des Technologies Cisco
Site Web : www.labo-cisco.com – E-mail : [email protected]
Ce document est la propriété de SUPINFO et est soumis aux règles de droits d’auteurs
•
D’après les différents paramètres disponibles dans le menu SIP proxy, Comment comptez vous configurer
votre softphone afin de pouvoir l’utiliser sans passer par un serveur d’abonnés ?
Indice :
Dans notre topologie, il s’agit de tenter de faire communiquer 2 comptes SIP directement. Cela implique que
chaque softphone devra se comporter comme si le softphone distant jouait le rôle de proxy sip et inversement.
•
Les softphones étant configurés, il est maintenant possible de joindre son correspondant en composant son
numéro de téléphone SIP. Essayez de contacter votre correspondant en tapant son numéro. Que se passe-til ? Pourquoi ?
•
Servez-vous des traces (log) via le menu diagnostic du logiciel pour faire du debug et justifier votre
réponse à la question précédente.
Indice :
Lorsque vous émettez un appel, le softphone transmet une invite SIP via la syntaxe « numéro@proxyaddres » où le
proxy address correspondra à l’adresse du serveur proxy distant.
•
Essayez de composer un autre numéro toujours vers la même adresse IP, l’appel passe-t-il ? Pourquoi ?
•
Trouvez le paramètre à modifier qui vous permettra de lancer un appel seulement en composant le numéro
distant.
•
En renseignant le paramètre vous remarquerez que le softphone n’arrive plus à s’enregistrer mais
cependant vous arrivez tout de même à appeler le correspondant directement en composant son numéro.
Expliquez pourquoi.
•
Les autres numéros d’appels sont-ils encore joignables ?
•
Capture et Analyse des traces d’appel :
En vous appuyant sur les points précédents, monitorez chaque tentative d’appel (échec et réussite), afin de
récupérer les paquets échangés entre chaque postes qui pourront vous êtres utiles pour du debug.
NB :
Le logiciel ethereal permet de capturer uniquement les paquets utiles (types trame d’invitation sip, flux udp…).
Nous vous conseillons d’effectuer une capture sélective afin de ne pas être pollué par d’autres flux.
•
Essayez de recomposer les étapes des échanges entre les 2 softphones.
Laboratoire SUPINFO des Technologies Cisco
Site Web : www.labo-cisco.com – E-mail : [email protected]
Ce document est la propriété de SUPINFO et est soumis aux règles de droits d’auteurs
Chapitre 3 – Protocole SIP
Implémentation basique d’une architecture VoIP client/serveur
1. Test du serveur PROXY
•
Afin de tester le bon fonctionnement du serveur SIP installé, nous allons établir des appels entre deux
USER AGENT en passant à travers le PROXY SIP, pour cela, modifier la configuration de vos deux
abonnés.
Info :
Démarrer SER : « #serctl start »
Configurer dans le fichier hosts le domaine SIP que vous avez choisi.
Paramétrer les softphones afin d’utiliser le mode PROXY
Remplissez les champs usernname et password avec les valeurs que vous souhaitez.
Ex : username : 123 --- password : toto
•
Une fois la configuration cliente prête, établissez des appels, et relevez les calls flow de signalisation SIP
(Call flow REGISTER, INVITE, CANCEL, BYE et BUSY) : au format TEXTE.
Info :
Il peut être fort utile d’utiliser le binaire ngrep, ngrep comme son nom l’indique à la même fonction que grep mais
au niveau network, qui vous permettra d’intercepter facilement les trames SIP.
•
Vérifiez également que vos abonnés soient bien enregistrés via l’utilitaire serctl
2. Authentification des callees
Info :
Au niveau de l’étape précédente, nous avons pu voir que nos abonnées envoient bien une trame REGISTER afin de
s’enregistrer sur le PROXY/REGISTER SIP, par contre les abonnés sont enregistrés en mémoire et il n’y a pas de
réelle authentification.
•
Activez le mode DATABASE afin de stocker et d’authentifier réellement nos USERS.
Info :
Démarrer MySQL : « #mysqld_safe & »
Exécuter le script : « ser_mysql.sh
Modifier le mot de passe MySQL de l'utilisateur ser (mettre « votre mot de passe » à la place de heslo)
Générer la libraire mysql.so a partir des sources de SER et la copier dans « /usr/local/lib/ser/modules/ »
Ajouter deux abonnés avec la commande serctl.
•
Une fois toutes ces étapes réalisées, il ne reste plus qu’à activer dans le fichier de configuration principal de
SER, le mode DATABASE.
Info :
Fichier de configuration de SER : « /usr/local/etc/ser/ser.cfg »
Dé-commenter les lignes ci-dessous :
#loadmodule "/usr/local/lib/ser/modules/mysql.so"
#loadmodule "/usr/local/lib/ser/modules/auth.so"
#loadmodule "/usr/local/lib/ser/modules/auth_db.so"
Dé-commenter et modifier la ligne ci-dessous :
#modparam("usrloc", "db_mode", 2) >> modparam("usrloc", "db_mode", 1)
Laboratoire SUPINFO des Technologies Cisco
Site Web : www.labo-cisco.com – E-mail : [email protected]
Ce document est la propriété de SUPINFO et est soumis aux règles de droits d’auteurs
Ajouter ensuite la ligne suivante:
modparam("usrloc", "db_url","mysql://ser:votre_mot_de_passe@localhost/ser")
Dé-commenter les lignes ci-dessous :
#modparam("auth_db", "calculate_ha1", yes)
#modparam("auth_db", "password_column", "password")
Ajouter en dessous de la ligne du dessus
modparam("auth_db", "db_url","mysql://ser: votre_mot_de_passe @localhost/ser")
Ajouter a la fin de la partie modules, la ligne ci-dessous :
fifo_db_url="mysql://ser:supinfo@localhost/ser"
Dé-commenter les 4 lignes du dessous et modifier iptel.org par votre domaine SIP.
#
#
#
#
if (!www_authorize("iptel.org", "subscriber")) {
www_challenge("iptel.org", "0");
break;
};
Sauvegarder le fichier, et redémarrer SER.
Afin de surveiller les éventuels problèmes de configuration, vous pouvez voir les traces dans /var/log/message.
•
Une fois SER redémarré correctement, vous pouvez vous enregistrer sur le serveur avec vos comptes SIP
précédemment créé. (Relevez les calls flow REGISTER et constatez la différence).
•
Pouvez-vous émettre un appel vers un abonné SIP à partir d’un abonné SIP non enregistré ou avec un mot
de passe erroné ?
3. Authentification du caller
•
Le fait d’avoir activer le mode DATABASE ne permet pas de bloquer les appels. Il vous empêchera juste
de vous enregistrer, donc vous ne recevrez pas d’appels. Nous allons donc demander une authentification
de l’appelant.
Info :
Pour cela, on va appliquer cette configuration :
Juste entre : « append_hf("P-hint: usrloc applied\r\n"); » et « route(1); »
if (method=="INVITE") {
if (!proxy_authorize("votre domaine SIP", "subscriber")) {
proxy_challenge("votre domaine SIP", "1");
break;
};
};
•
Un abonné peut avoir une paire username/password correcte mais mettre n’importe quoi dans le champ
FROM de son USER AGENT, nous allons donc mettre une fonction qui vérifie l’égalité des champs
USERNAME et FROM.
Laboratoire SUPINFO des Technologies Cisco
Site Web : www.labo-cisco.com – E-mail : [email protected]
Ce document est la propriété de SUPINFO et est soumis aux règles de droits d’auteurs
Info :
Chargez un nouveau module au niveau du fichier de configuration de SER :
« loadmodule "/usr/local/lib/ser/modules/uri_db.so" »
Puis pour la partie REGISTER, ajoutez les lignes ci-dessous au niveau de la fonction du même nom:
entre : « break;» et « } »
} else if (!check_to()) {
sl_send_reply("403", "Username!=To not allowed");
break;
Pour la partie INVITE, ajoutez les lignes ci-dessous :
Juste après : « append_hf("P-hint: usrloc applied\r\n"); » et « route(1); »
if (method=="INVITE") {
if (!proxy_authorize("sip.vivaction.net", "subscriber")) {
proxy_challenge("sip.vivaction.net", "1");
break;
};
if (check_from()) {
route(1);
}
else
{
sl_send_reply("403", "Not allowed");
break;
};
};
Modifier également « route(1); » par « t_relay() »;
4. Gestion de groupe
•
Pour finir, nous allons activer un autre module qui nous permettra de faires des groupes, auxquelles on
ajoutera des abonnés, ce qui nous permettra par exemple de créer un groupe « free-pstn » où seul les
membres de ce groupe pourront établir des communications HORS IP.
Info :
Chargez un nouveau module au niveau du fichier de configuration de SER :
« loadmodule "/usr/local/lib/ser/modules/group.so " »
Et modifiez la ligne suivante :
« if (check_from()) {»
par
« if ((is_user_in("Credentials","free-pstn")) && check_from()) {»
Ensuite il ne reste plus qu’à ajouter les utilisateurs au sein du groupe « free-pstn » et à valider le bon
fonctionnement sur la restriction d’appels standard.
Testez également la suppression d’un utilisateur à un groupe.
Laboratoire SUPINFO des Technologies Cisco
Site Web : www.labo-cisco.com – E-mail : [email protected]
Ce document est la propriété de SUPINFO et est soumis aux règles de droits d’auteurs