Dédicace
Remerciements
Avant-Propos
- Historique du document
- Public visé
- Logiciels et fichiers nécessaires
Introduction
- IIntroduction au contexte VoIP et des communications unifiées
- Introduction
1.POTS (Plain Old Telephony Systems)
- 1. POTS
- 2. Commutation de circuit
- 3. Commutation de paquet
- 4. Boucle locale
- 5. Trunk
- 6. Signalisation dual-tone multi-frequency signaling (DTMF)
- 7. FXO/FXS
- 8. ISDN/RNIS
- 8.1. Définition
- 8.2. Accès de base BRI
- 8.3. Accès primaire PRI
- 9. Numérotation standard E.164
- 10. Signalisation SS7
- 11. DSP : Digital Signal Processor
- 12. Cartes et passerelles vocales
2.Protocoles Multimédia
- 1. Voix et vidéo sur IP
- 2. Voice over Internet Protocol (VoIP)
- 2.1. Architecture VoIP
- 2.2. Protocoles VoIP
- 3. Le protocole RTP
- 4. Signalisation VoIP
- 5. Protocole SIP
- 6. ENUM
- 7. XMPP
- 8. NAT Traversal
- 8.1. STUN
- 8.2. TURN
- 8.3. ICE
- 9. Enregistrement DNS SRV
- 9.1. Format DNS SRV
- 9.2. Vérification de SRV DNS
- 10. Fax T.38
3.Marchés VoIP
- 1. Marchés VoIP / UC
- 2. Segment Cibles
- 3. Marché Unified Communications
- Collaboration Solutions. Unified Communications and Contact Center
- Video and Web Conferencing
- 4. Etudes Gartner
- 5. Acteurs mondiaux en Communications Unifiées
- 6. Autres marchés
- 7. Présentation de marchés VoIP
4.Exercice de connexion SIP
- 1. Logiciel Linphone
- 2. Topologie
- 3. Exercice de connexion SIP directe UAC/UAS
5.Infrastructure VoIP
- 1. Caractéristiques d’une infrastructure LAN
- 2. Infrastructure WAN
- 2.1. Connexion à Internet
- 2.2. Réseau WAN privé
- 3. SIP Trunk Provider
- 4. PBX / sofswitch
- 5. Téléphones IP
- 6. Interfaces Trunk analogiques/digitaux
- 7. Fournisseurs SIP
6.Migration VoIP
- 1. Quand migrer vers la VoIP ?
- 2. Architecture future
- 3. Topologies de déploiement
- 3.1. VoIP / ToIP dans une TPE
- 3.2. Architectures PME monosite
- 3.3. Architectures multisites
- 3.4. Architectures critiques
7.Conception VoIP
- 1. Codecs Définition
- 2. Exemples de codecs/MOS
- 3. Comment choisir son codec ?
- 4. Surcharge d’en-têtes
- 5. Calcul de bande passante et dimensionnement de lignes
- 6. Réduction de la bande passante nécessaire
- 7. Intégrité et confidentialité des échanges
8.Aperçu des logiciels de téléphonie Open Source
- 1. Solutions serveurs Open Source
- 2. IP PABX
- 2.1. Asterisk
- 2.2. Freeswitch
- 3. Proxys SIP
- 3.1. Kamailio
- 3.2. OpenSips
- 3.3. Repro
- 3.4. Flexisip
- 4. Clients VoIP Open Source
- 4.1. Clients graphiques
- 4.2. Librairies
9.Exemples de périphériques SIP
- 1. Polycom SoundPoint IP 321 (3)
- 1.1. Datasheet
- 1.2. Support
- 2. Cisco SPA508G (3)
- 2.1. Datasheet
- 2.2. Userguide (French)
- 3. Cisco SPA504G (2)
- 4. Cisco SPA922 (6)
- Datasheet and support
- 5. ATA Cisco PAP2T (2)
- 5.1. Datasheet
- 6. Switch Netgear PoE FS108P (4)
- 6.1. Datasheet
- 6.2. Support
- 7. Switch Cisco PoE SF300-24P (1)
- 7.1. Datasheet
- 7.2. Support
10.Exercices de mise en œuvre de l’infrastructure physique
- 1. Mise en place de l’infrastructure
- 2. Connexion interne
- 3. Fournisseur Anveo
- 4. Connexion externe avec un softphone
- IICapture et Analyse de paquets avec Wireshark
- Programme de formation Wireshark
11.Analyseurs de paquets
- 1. Définition
- 2. Utilité
- 3. Compétences à developper
12.Analyse de paquets avec Cloudshark
- 1. Introduction
- 2. Dialogues DNS, TCP et HTTP
- 3. Scénario
- 3.1. Outils d’analyse
- 3.2. Points d’extrémité
- 3.3. Protocoles
- 3.4. Diagramme
- 4. Trafic DNS
- 4.1. Query DNS
- 4.2. Query Response DNS
13.Placement de l’analyseur de paquets
- 1. Emplacement du trafic
- 1.1. Le support
- 1.2. L’interface de connexion
- 1.3. Mode “promiscuous”
- 1.4. Adresses de livraison
- 1.5. Concentrateur ou Hub
- 1.6. Commutateur
- 1.7. Routeurs
- 1.8. VLANs
- 2. Méthodes d’écoute
- 2.1. Port mirroring
- 2.2. Hubbing out
- 2.3. Aggregated Taps
- 2.4. Attaques de redirection
- 2.5. Installation directe sur l’hôte à surveiller
- 3. Captures distantes
- 3.1. Captures distantes avec Wireshark
- 3.2. Installation du plugin Cloudshark dans Wireshark
14.Introduction à Wireshark
- 1. Introduction à Wireshark
- 1.1. Fonctionnalités de Wireshark
- 1.2. Prérequis système
- Microsoft Windows
- UNIX / Linux
- 2. Obtenir Wireshark
- 3. Installation de Wireshark
- 3.1. Installation de Wireshark sous Windows
- Choix des composants d’installation
- Tâches supplémentaires
- Choix de l’emplacement d’installation
- Installation de WinPcap
- Options en ligne de commande de l’installateur Windows
- Installation manuelle de WinPcap
- Mettre à jour Wireshark
- Mettre à jour WinPcap
- Désinstaller Wireshark
- D ésinstaller WinPcap
- 3.2. Installation de Wireshark sous MacOS
- 3.3. Installation des fichiers binaires sous UNIX
- Installation à partir de RPM sous Red Hat et similaire
- Installation Dpkg sous Debian, Ubuntu et autres dérivés Debian
- Installation sous Gentoo Linux avec portage
- Installation sous FreeBSD avec packages
- 4. Sources
15.Analyse VoIP Wireshark
- 1. Fichiers d’exemple
- 2. Configuration générale
- 2.1. Création d’un profil de Configuration
- 2.2. Affichage des colonnes
- 2.3. Horodatage
- 2.4. Alignement des colonnes à gauche
- 2.5. Champs comme colonne
- 2.6. Règles de colorisation
- 3. Première analyse
- 3.1. Propriétés du fichier
- 3.2. Hiérarchie de protocoles
- Couche 3
- Couche 4 IPv4
- Couche 7 IPv4/UDP
- Couche 7 IPv4/TCP
- 3.3. Points d’extrémités et conversations
- Couche 2
- UDP
- 4. Analyse VoIP
- 4.1. Protocoles VoIP
- 4.2. Champs de références Wireshark
- 4.3. Statistiques SIP
- 4.4. Statistiques avec tshark
- 4.5. Menu VoIP Calls
- 4.6. Afficher une charge SIP avec tshark
- 4.7. Champs SIP
- 4.8. Affichage des utilisateurs SIP enregistrés
- 4.9. Jouer une conversation téléphonique
- 4.10. Analyse RTP
- SSRC
- Sample Rate
- 4.11. Paramètres RTP
- 4.12. Analyse de flux RTP
- 5. Captures SIP/RTP/VoIP
16.Wireshark - Annexe
- Objectifs
- IIIProtocole SIP
17.Programme de formation SIP
- Sommaire
- Programme de formation
- Architecture de SIP
- Processus d’enregistrement
- Session SIP
- Les extensions SIP
- SIP et la sécurité
18.Architecture SIP
- 1. Protocole SIP
- 2. La boîte-à-outils SIP
- 3. AOR
- 4. Rôles SIP
- 4.1. User Agents (UA)
- 4.2. Proxy - serveur mandataire
- 4.3. Serveur de redirection
- 4.4. B2BUA - Back-to-Back User Agent
- 4.5. REGISTRAR Server et Location Server
- 4.6. SBC - Session Border Controller
- 4.7. Gateways - Passerelles
- 5. Requêtes (Méthodes) SIP
- 6. Réponses (Status Codes) SIP
- 7. Messages SIP
- 7.1. Exemple d’une transaction BYE-200 OK
- Requête BYE
- Réponse 200 OK
- 8. Scénarios SIP
- 8.1. Processus d’enregistrement
- 8.2. Flux d’appel SIP entre UA et serveurs de redirection entre proxys et UAs
- 8.3. Flux d’appel B2BUA
- 9. Terminologie SIP
- 9.1. Transaction SIP
- 9.2. Dialogue SIP
- 9.3. Session Média
- 9.4. Domaine SIP
19.Aperçu des opérations SIP
- 1. Présentation du dialogue
- 2. Invitation initiale
- 3. Routage de la requête
- 4. Réception de la requête
- 5. Routage de la réponse
- 6. Accusé de réception en livraison directe
- 7. Établissement de la session
- 8. Renégociation des paramètres de la session
- 9. Fin de la session
20.INVITE SIP UAC/UAS
- 1. Requête INVITE SDP
- 2. Réponse provisionnelle 100 Trying
- 3. Réponse provisionnelle 180 Ringing
- 4. Réponse 200 OK SDP
- 5. ACK
- 6. Transfert des medias
- 7. Requête BYE
- 8. Réponse OK
21.Réponses SIP
- 1. Informational (1xx)
- 1.1. 100 Trying
- 1.2. 180 Ringing
- 1.3. 181 Call is Being Forwarded
- 1.4. 182 Call Queued
- 1.5. 183 Session Progress
- 2. Success (2xx)
- 2.1. 200 OK
- 2.2. 202 Accepted
- 3. Redirection (3xx)
- 3.1. 300 Multiple Choices
- 3.2. 301 Moved Permanently
- 3.3. 302 Moved Temporarily
- 3.4. 305 Use Proxy
- 3.5. 380 Alternative Service
- 4. Client Error (4xx)
- 4.1. 400 Bad Request
- 4.2. 401 Unauthorized
- 4.3. 403 Forbidden
- 4.4. 404 Not Found
- 4.5. 405 Method Not Allowed
- 4.6. 406 Not Acceptable
- 4.7. 407 Proxy Authentication Required
- 4.8. 408 Request Timeout
- 4.9. 422 Session Timer Interval Too Small
- 4.10. 423 Interval Too Brief
- 4.11. 480 Temporarily Unavailable
- 4.12. 481 Dialog/Transaction Does Not Exist
- 4.13. 483 Too Many Hops
- 4.14. 486 Busy Here
- 4.15. 487 Request Terminated
- 4.16. 488 Not Acceptable Here
- 5. Server Failure (5xx)
- 5.1. 500 Server Internal Error
- 5.2. 501 Not Implemented
- 5.2. 502 Bad Gateway
- 5.3. 503 Service Unavailable
- 5.4. 504 Gateway Timeout
- 5.5. 505 Version Not Supported
- 5.6. 513 Message Too Large
- 5.7. 580 Preconditions Failure
- 6. Global Error (6xx)
- 6.1. 600 Busy Everywhere
- 6.2. 603 Decline
- 6.3. 604 Does Not Exist Anywhere
- 6.4. 606 Not Acceptable
22.Protocole SDP
- 1. Introduction
- 2. Sections SDP
- 2.1. Description de la session
- 2.2. Description du timing (obligatoire)
- 2.3. Description du média (si présent)
- 3. Interprétation
23.Enregistrement Register
- 1. Introduction à la méthode REGISTER
- 2. REGISTER simple (sans authentification)
- 3. Annuler un REGISTER
- 4. REGISTER avec Authentification MD5
- 4.1. Procédure REGISTER avec Authentification MD5
- 4.2. Démonstration du challenge
- 5. REGISTER avec utilisateur erroné
- 6. REGISTER avec mot de passe erroné
- 7. Découverte de mots de passe
24.Proxy SIP UDP
- 1. Scénario
- 2. INVITE initial (telephone1 → Proxy)
- 3. INVITE routé (Proxy → telephone2)
- 4. Réponses routées 100 Trying, 180 Ringing
- 5. Réponse routée 200 OK
25.Back-to-Back User Agent (B2BUA)
- 1. Définition SIP Back-to-Back User Agent
- 2. Conversation entre un PBX Asterisk et deux téléphones
26.Flux SIP Trapéziodal
- 1. Etablissement de session à travers deux proxy
- 2. F1 INVITE Alice -> Proxy 1
- 3. F2 407 Proxy Authorization Required Proxy 1 -> Alice
- 4. F3 ACK Alice -> Proxy 1
- 5. F4 INVITE Alice -> Proxy 1
- 6. F5 INVITE Proxy 1 -> Proxy 2
- 7.F6 100 Trying Proxy 1 -> Alice
- 8. F7 INVITE Proxy 2 -> Bob
- 9. F8 100 Trying Proxy 2 -> Proxy 1
- 10. F9 180 Ringing Bob -> Proxy 2
- 11. F10 180 Ringing Proxy 2 -> Proxy 1
- 12. F11 180 Ringing Proxy 1 -> Alice
- 13. F12 200 OK Bob -> Proxy 2
- 14. F13 200 OK Proxy 2 -> Proxy 1
- 15. F14 200 OK Proxy 1 -> Alice
- 16. F15 ACK Alice -> Proxy 1
- 17. F16 ACK Proxy 1 -> Proxy 2
- 18. F17 ACK Proxy 2 -> Bob
- 19. F18 BYE Bob -> Proxy 2
- 20. F19 BYE Proxy 2 -> Proxy 1
- 21. F20 BYE Proxy 1 -> Alice
- 22. F21 200 OK Alice -> Proxy 1
- 23. F22 200 OK Proxy 1 -> Proxy 2
- 24. F23 200 OK Proxy 2 -> Bob
27.Extensions SIP
- 1. Introduction
- 2. Méthode SUBSCRIBE
- 3. Méthode PUBLISH
- 4. Méthode NOTIFY
- 5. MWI
- 5.1. A1 : Subscriber -> Notifier
- 5.2. A2 : Notifier -> Subscriber
- 5.3. A3 Notifier -> Subscriber
- 5.4. A4: Subscriber -> Notifier
- 5.5. A5: Notifier -> Subscriber
- 5.6. A6: Subscriber -> Notifier
- 5.7. A7: Subscriber -> Notifier
- 5.8. A8: Notifier -> Subscriber
- 5.9. A9: Notifier -> Subscriber
- 5.10. A10: Subscriber -> Notifier
- 5.11. A11: Subscriber -> Notifier
- 5.12. A12: Notifier -> Subscriber
- 5.13. A13: Notifier -> Subscriber
- 5.14. A14: Subscriber -> Notifier
- 6. Méthode REFER
- 6.1. Premier message (F1)
- 6.2. Second message (F2)
- 6.3. Troisième message (F3)
- 6.4. Quatrième message (F4)
- 6.5. Cinquième message (F5)
- 6.6. Sixième message (F6)
- 7. Méthode MESSAGE
- 8. Méthode INFO
- 9. Méthode PRACK
- 10. Méthode UPDATE
28.SIP et la sécurité
- 1. Menaces
- 1.1. Rapport Shodan
- 1.2. Typologie des attaques et des menaces
- 2. Scans SIP
- 2.1. La suite Sipvicious
- 2.2. Scan SIP avec Nmap
- 3. Attaque ARP Poison Routing (APR)
- 3.1. Capture de paquets
- 3.2. Capturer des paquets dans un environnement LAN commuté
- 3.3. Transfert de trafic dans une attaque APR
- 3.4. Détail de l’attaque
- 3.5. Outils d’attaque ARP
- 3.6. Contre-mesures
- 4. Capture de paquets
- 4.1. Capture SIP / RTP avec tcpdump
- 4.2. Capture SIP / RTP avec tshark
- 5. Mot de passe REGISTER
- 5.1. Dump d’un REGISTER (sans attaque MiTM)
- 5.2. Cassage du mot de passe REGISTER avec un dictionnaire pof.
- 5.3. Cassage du mot de passe REGISTER avec un dictionnaire standard
- 5.4. Crack de l’emprunte avec john
- 6. Metasploit
- 7. Autres outiles et Frameworks
- 7.1. Frameworks
- 7.2. Denial Of Service
- 8. Manipulation de trafic VoiP (forges, générateurs)
- 8.1. Outils de forge génériques
- 8.2. Outils de forge dédiés SIP
- 9. Protection d’un infrastructure SIP
- 9.1. Propositions du RFC 3261
- 9.2. Solutions en bordure
- 9.3. Solutions internes
- 10. Session Border Controller (SBC)
- 11. Signalisation et transport sécurisés
- Sécurité Astersik
- Sécurité Kamailio
- Sécurité FreeSWITCH
29.Liste des RFCs SIP
- 1. Core SIP Documents
- 2. SDP-Related Documents
- 3. RTP-Related Documents
- 4. HTTP-Related Documents
- 5. MIME-Related Documents
- 6. SIP Standards Track Documents (Options, Extensions, etc.)
- 7. SIP Informational RFCs and BCP Documents
- 8. SIP-Related Documents
- 9. Directory Services Documents
30.Annexes
- 1. UA en ligne de commande
- 1.1. Installation PJSUA par les sources
- 1.2. Installation PJSUA sur Ubuntu
- 1.3. Exemple d’usage de PJSUA
- 1.4. Installation du dépôt Linphone en Centos 7
- 1.5. Compilation de Linphone minimal pour Raspbian (Rasberry Pi)
- 1.6. Installation de Linphone sur Ubuntu
- 1.7. linphonecsh
- 1.8. linphonec
- 2. Capture en ligne de commande
- 2.1. Captures distantes avec affichage dans Wireshark local (via SSH)
- 2.2. Capture SIP / RTP avec tcpdump
- 2.3. Capture SIP / RTP avec tshark
- 3. Filtres VoIP
- 3.1. Affichage des points terminaux
- 3.2. Statistiques SIP tshark
- 3.3. Visualiser les appels
- 3.4. Enregistrements
- 3.5. Affichage d’une charge SIP
- 3.6. Affichage des utilisateurs SIP enregistrés
- 3.7. Analyse RTP
- 4. Notes
- IVAsterisk PBX
- Programme de formation Asterisk
31.Solution FreePBX
- 1. Introduction
- 1.1. Fonctionnalités
- 1.2. Topologie
- 2. Installation
- 2.1. Procédure d’installation
- 2.2 Post-installation
- 2.3. Configuration du PBX
- 2.4. Configuration des modules
- 3. Connectivité
- 3.1. Ajout des extensions
- 3.2. Configuration du compte Anveo
- 3.3. Configuration du Trunk SIP
- 3.4. Route sortante
- 3.5. Route entrante
- 5. Francisation
- 6. Boîtes vocales
- 7. IVR
- 8. Trunk IAX2 intersites
- 9. Sécurité
- 10. Fail2ban
- 11. Support du Fax
32.Asterisk Core PABX
- 1. Qu’est-ce qu’Asterisk ?
- 1.1. Asterisk est …
- 1.2. Un logiciel Open-Source sur plateformes PC
- 1.3. Un PBX fonctionnel et plus
- 1.4. Fonctionnalités avancées
- 1.5. Société Digium
- 2. Pourquoi Asterisk ?
- 2.1. Avantages d’Asterisk
- 2.2. Un coût fortement réduit
- 2.3. Contrôle et indépendance du système téléphonique
- 2.4. Environnement de développement rapide et facile
- 2.5. Riche en fonctionnalités
- 2.6. Un dial plan flexible et puissant
- 2.7. Un logiciel open-source testé et maintenu
- 2.8. Ce qu’en pense l’industrie
- 3. Réticences majeures à l’égard d’Asterisk
- 3.1. Les parts de marché d’Asterisk sont infimes
- 3.2. Asterisk gratuit, comment les concepteur en vivent ?
- 3.3. Difficile de trouver du support
- 3.4. Asterisk supporte plus de 200 extensions ?
- 3.5. Seul les « geeks » sont capables de l’installer ?
- 3.6. Et si le serveur tombe ?
- 3.7. On n’est pas favorable au logiciel open-source
- 3.8. Il n’est pas recommandé d’utiliser le CPU pour un PBX
- 4. Documentation Asterisk
- 4.1. Vidéos YouTube
- 4.2. Compréhension globale
- Acronymes et Terminologie
- Protocoles de téléphonie
- Linux & Unix
- Installer et Configurer Asterisk
- Programmation C
- 4.3. Où obtenir de l’aide ?
- Listes de diffusion et IRC
- Forums Web de discussion
- Communautés en ligne
- 4.4. Eviter des informations obsolètes ou incorrectes
33.Asterisk Concepts de bases
- 1. Sources à consulter
- 2. Introduction à Asterisk
- 2.1. Versions d’Asterisk
- 2.2. Composants d’Asterisk
- 2.3. Channels
- Channels qui s’interfacent sur le PSTN
- Channels qui s’interfacent en Voice-over IP
- Autres channels
- 2.4. Codec
- Codecs et traduction de codecs
- Codecs disponibles
- 2.5. Modules
- 3. Installation
- 3.1. Préparation du système
- 3.2. Acquérir les sources
- 3.3. Configurer et compiler
- 4. Adaptation du pare-feu
- 4.1. Firewalld
- 4.2. Désactivation
- 4.3. Retour à iptables
- 5. Configuration minimale
- 5.1. Fichier indications.conf
- 5.2. fichier asterisk.conf
- 5.3. Fichier modules.conf
- 5.4. Fichier musiconhold.conf
- 6. Un Simple PBX
- 6.1. Fichier sip.conf
- 6.2. Fichier pjsip.conf
- 6.3. Fichier extensions.conf
- 6.4. Redémarrage du service
- 6.5. Contextes, extensions et priorités
- 6.6. Applications
- 7. Commandes de base
- 7.1. Démarrage du service
- 7.2. Lancement de la console
- 7.3. Dialplan
- 7.4. Vérification chan_pjsip
- 7.5. Vérification chan_sip
- 8. Collecter des logs dans la console
34.Asterisk intermédiaire
- 1. Interactivité
- 1.1. Rappels et notions sur le Dialplan
- Application Dial()
- Variables
- Correspondance de motifs d’appel
- Directive Include
- Applications Goto, Background, WaitExten
- 1.2. Service d’enregistrement audio et serveur interactif
- 2. Boites vocales
- 2.1. NTP/SMTP
- 2.2. Configuration
- 2.3. Extensions.conf / Plan d’appel
- 2.4. Commandes
- 2.5. Tests à partir des téléphones
- 3. Connectivité externe
- 3.1. Configuration du Trunk
- 3.2. Route sortante
- 3.3. Route entrante
- 3.4 Simplification wizard de pjsip.conf
- 3.5. Internationalisation
- 4. Trafic sécurisé
- 4.1. Simple trunk SIP
- Étape 1 Trunk SIP
- Étape 2 Route sortante
- 4.2. Client/serveur SIPS/SRTP
- 4.3. Serveur/serveur SIPS
- 4.4. Trunking IAX2
- 5. Fonctionnalités diverses
- 5.1. Dire l’adresse IP avec la fonction curl
- 5.2. Fichiers d’exemples
- 5.3. Exploration de fonctionnalités plus avancées
35.Asterisk Avancé
- 1. Base de données
- 2. AGI / AMI
- 2.1. Frameworks et librairies AGI
- 2.2. Exemple AGI en bash
- 2.4. ARI
- 3. Backups d’Asterisk
- 4. Mise-à-jour d’Asterisk
- 5. Haute Disponibilté / Clustering
- 5.1. The Definitive Guide
- 5.2. Solutions HA
- 6. Text-to-speech / Speech recognition