Skip to main content

Someone wanted to learn this too, so Grasp built them a personal learning path.

You can keep exploring this one or create your own

Analyse de la VoIP SIP avec Wireshark

Bonjour !

Dans la leçon précédente, nous avons appris à configurer un SBC AudioCodes pour capturer des traces de débogage détaillées avec l'outil Syslog Viewer. C'est une première étape essentielle pour voir ce qui se passe en temps réel. Cependant, pour une analyse approfondie et structurée, surtout dans des captures complexes avec de nombreux appels, nous avons besoin d'un outil plus puissant.

Aujourd'hui, nous allons passer de la capture de données brutes à une analyse intelligente. L'objectif de cette leçon est d'apprendre à utiliser les filtres d'affichage de Wireshark et sa fonction 'VoIP Calls' pour isoler et analyser un dialogue SIP. Maîtriser Wireshark n'est pas une option, c'est la compétence fondamentale qui distingue un administrateur VoIP d'un expert en troubleshooting.

1. De la Trace Brute à l'Analyse Visuelle

La leçon précédente s'est terminée avec un fichier de log textuel. Bien qu'utile, ce format rend difficile la visualisation des échanges et l'isolation d'un appel parmi des centaines. C'est là que Wireshark entre en jeu.

Il y a deux manières principales d'analyser les traces d'un SBC AudioCodes avec Wireshark :

  1. Le Syslog : Les logs que nous avons appris à capturer peuvent être analysés, mais la méthode la plus efficace est de capturer directement le trafic réseau.
  2. Le "Debug Recording" (ou "Packet Capture") : C'est la méthode à privilégier. Le SBC envoie une copie du trafic réseau (SIP, RTP, etc.) directement à votre ordinateur, où Wireshark l'enregistre au format .pcap. C'est un format universel que Wireshark analyse nativement et qui contient l'intégralité des paquets, sans aucune altération.

Nous allons nous concentrer sur l'analyse d'une capture .pcap, car c'est la méthode la plus complète et la plus utilisée en environnement professionnel.

2. Isoler le Signal du Bruit : Les Filtres d'Affichage

Une capture réseau, même de quelques minutes, peut contenir des milliers de paquets. La première compétence à acquérir est de filtrer cette masse d'informations pour n'afficher que ce qui nous intéresse.

Lecture - 8 | How to Analyze SIP calls in Wireshark | SIP Calls troubleshooting | Analyze RTP Stream

Cette vidéo est une excellente introduction pratique aux filtres Wireshark essentiels pour la VoIP. Elle vous montrera comment appliquer les filtres les plus courants pour commencer votre analyse.

Regardez cette section de la vidéo (de 01:00 à 07:28). Elle couvre les points suivants : Les filtres de base : sip, rtp, et l'opérateur or (par exemple sip or rtp). Les filtres plus spécifiques comme sip.method pour trouver des requêtes précises (ex: sip.method == "INVITE"). Une démonstration de l'exploration d'un paquet SIP pour voir les en-têtes (From, To, Call-ID, SDP). Comment utiliser le clic-droit pour créer un filtre à partir d'un champ (Prepare as filter > Selected).

Voici un résumé des filtres que vous utiliserez constamment :

Filtre Description Usage
sip Affiche uniquement les paquets de signalisation SIP. Le point de départ de toute analyse.
rtp Affiche uniquement les paquets média RTP. Utile pour les problèmes de "no audio" ou de qualité vocale.
ip.addr == 192.168.1.10 Affiche tous les paquets de/vers cette adresse IP. Pour isoler le trafic d'un équipement spécifique (SBC, ITSP, etc.).
sip.call-id == "..." Le filtre le plus important. Isole tous les messages SIP d'un unique dialogue d'appel. Pour suivre un appel de A à Z sans être pollué par les autres.
sip.method == "INVITE" Affiche toutes les nouvelles tentatives d'appel. Pour trouver rapidement le début des appels dans une capture.

Le champ sip.call-id est une chaîne de caractères unique générée par l'équipement qui initie l'appel. Tous les messages (INVITE, 180 Ringing, 200 OK, ACK, BYE) appartenant à ce même appel partageront le même Call-ID. C'est donc le moyen le plus fiable pour isoler un dialogue.

3. L'Analyse Intelligente : La Fonction "VoIP Calls"

Wireshark dispose d'un outil extraordinairement puissant qui fait une grande partie du travail pour vous. Au lieu de construire des filtres manuellement, vous pouvez lui demander de détecter et de lister tous les appels VoIP présents dans la capture.

Wireshark: Accéder à l'Analyse des Appels VoIP
Pour accéder à cet outil, il suffit d'aller dans le menu `Telephony` puis de cliquer sur `VoIP Calls`.

Une fois dans cette fenêtre, Wireshark vous présente une liste de tous les dialogues SIP qu'il a identifiés. C'est déjà une vue d'ensemble très utile qui vous donne l'heure de début, les numéros appelant/appelé et l'état de l'appel (COMPLETED, CANCELED, etc.).

Mais la véritable puissance se révèle lorsque vous sélectionnez un appel et cliquez sur le bouton "Flow Sequence".

Wireshark Call Flow Diagram for SIP Analysis
Ce diagramme de séquence est une représentation visuelle et chronologique du dialogue SIP. Chaque colonne est une entité (une adresse IP), et les flèches représentent les messages échangés. En un seul coup d'œil, vous pouvez suivre le déroulement de l'appel : l'INVITE initial, la réponse 401 Unauthorized, le second INVITE avec authentification, le 180 Ringing, le 200 OK, les flux RTP (le média), et enfin le BYE pour terminer l'appel.

Ce diagramme est votre meilleur allié pour le diagnostic. Vous pouvez immédiatement repérer :

  • Une requête qui ne reçoit jamais de réponse.
  • Un code d'erreur (4xx, 5xx) qui explique l'échec de l'appel.
  • Des délais anormaux entre les messages.
  • À quel moment le flux média (RTP) démarre et s'arrête.

Lecture - 8 | How to Analyze SIP calls in Wireshark | SIP Calls troubleshooting | Analyze RTP Stream

Cette partie de la vidéo précédente montre exactement comment utiliser la fonction 'VoIP Calls' et comment interpréter le diagramme de séquence. C'est une démonstration pratique de ce que nous venons de décrire.

Regardez cette section (de 09:29 à 11:24, puis de 13:49 à 16:20). Elle vous montrera comment : Ouvrir la fenêtre VoIP Calls. Sélectionner un appel et générer le diagramme de séquence (Flow Sequence). Lire et comprendre le diagramme, en identifiant les messages clés (INVITE, 100 Trying, 180 Ringing, 200 OK, ACK) et les flux RTP.

4. Application Pratique à AudioCodes

Pour rendre tout cela concret, voyons comment cela s'applique à votre environnement AudioCodes. Comme mentionné, la meilleure façon de générer une capture pour Wireshark est la fonction "Debug Recording" du SBC.

How to Debug Voice with Wireshark

Ce guide rapide d'AudioCodes est une ressource précieuse. Il explique non seulement comment configurer le 'Debug Recording', mais aussi comment utiliser des filtres spécifiques à AudioCodes dans Wireshark.

Lisez attentivement la section 'How do I extract the Audio from the Debug recording trace?' à partir de l'étape 2. Focalisez-vous sur les points suivants : Étape 3 : Le plugin ACDR (AudioCodes Debug Recording) pour Wireshark ajoute une section spéciale dans les paquets, qui contient des informations de contexte précieuses. Étape 4 : Vous pouvez filtrer un appel entier en utilisant le champ acdr.full_session_id. C'est l'équivalent du sip.call-id mais spécifique au contexte interne du SBC AudioCodes. C'est une méthode de filtrage extrêmement puissante et précise lorsque vous travaillez avec des traces AudioCodes. Étape 5 : Comment combiner ce filtre avec un autre (par ex. and RTP) pour affiner encore plus votre recherche.

Ce document mentionne également les plugins ACDR pour Wireshark. C'est un détail pratique crucial : sans ces plugins, Wireshark ne pourra pas interpréter correctement les informations spécifiques ajoutées par le SBC AudioCodes dans les traces "Debug Recording". Vous trouverez facilement ces plugins sur le portail de support d'AudioCodes.

Conclusion

Vous avez maintenant les clés pour transformer une capture réseau chaotique en une histoire claire et compréhensible. L'analyse de traces n'est plus une tâche intimidante, mais une méthode structurée pour trouver la cause d'un problème.

Points Clés à Retenir :

  • Wireshark est l'outil standard pour l'analyse de traces SIP. La fonction "Debug Recording" d'AudioCodes est conçue pour générer des captures pour cet outil.
  • Les filtres d'affichage (sip, ip.addr, et surtout sip.call-id) sont essentiels pour isoler le trafic pertinent.
  • La fonction Telephony > VoIP Calls automatise la détection des appels et fournit une liste synthétique.
  • Le diagramme de séquence (Flow Sequence) est le moyen le plus rapide et le plus visuel pour analyser le déroulement d'un appel et identifier les anomalies.
  • Pour les traces AudioCodes, le filtre acdr.full_session_id est un moyen très efficace d'isoler un appel.

Aperçu de la prochaine leçon :

Nous savons maintenant comment visualiser un échec d'appel dans Wireshark (par exemple, voir un message 404 Not Found). Mais Wireshark nous montre le symptôme, pas toujours la cause profonde à l'intérieur du SBC. Dans la prochaine leçon, "Diagnostiquer les échecs de routage", nous apprendrons à corréler ce que nous voyons dans Wireshark avec les traces internes du SBC (les logs Detailed vus dans la leçon précédente) pour comprendre pourquoi le SBC a décidé d'envoyer ce 404. Nous allons connecter l'analyse externe (le "quoi") à l'analyse interne (le "pourquoi").

Can't find a good explanation? Sign up and we'll make it for you

Sign up