Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 6

Capture and Filter SIP Traces with Wireshark.

Recommended resources

Bonjour. Au cours des leçons précédentes, nous avons assemblé toutes les pièces du puzzle SIP : la structure des messages, le rôle des headers, la séquence d'un appel, la signification des codes de réponse et, plus récemment, le décodage du corps SDP qui décrit le média. Il est temps maintenant de passer de la théorie à la pratique et de voir tous ces concepts "en action" sur le réseau.

L'objectif de cette leçon, qui conclut notre premier module sur les fondamentaux SIP, est de vous apprendre à capturer et filtrer des traces SIP avec Wireshark. Pour un expert en communications unifiées, la maîtrise de Wireshark n'est pas une option, c'est l'outil de diagnostic par excellence. Il fournit la vérité terrain, celle qui permet de résoudre les problèmes de signalisation, d'interopérabilité ou de qualité audio.

Nous aborderons la capture de base, les filtres d'affichage essentiels pour ne pas se noyer dans les paquets, l'utilisation des outils d'analyse VoIP intégrés à Wireshark, et nous terminerons par une section spécifique aux SBC AudioCodes, afin de vous préparer directement au dépannage dans votre environnement cible.

1. Capturer et Filtrer le Trafic : Les Bases

Wireshark est un analyseur de protocole réseau qui intercepte et affiche le trafic passant par une interface réseau. Le principe de base est simple, mais quelques bonnes pratiques sont essentielles pour obtenir une capture utile.

Pour commencer, l'article suivant résume bien la démarche de base et les bonnes pratiques.

Wireshark's VoIP Traffic Analysis | Detailed Guide - Ecosmob

Ce guide du blog Ecosmob fournit une excellente vue d'ensemble, allant de la capture initiale aux meilleures pratiques pour une analyse efficace.

Lisez les sections suivantes pour vous familiariser avec le processus : Commencez par le guide de capture. Il décrit les étapes fondamentales : choisir l'interface, démarrer et arrêter la capture. Portez une attention particulière à la section sur les meilleures pratiques. En tant que chef de projet et expert, le point sur l'utilisation d'un "proper capture point" (port mirroring sur un switch ou un TAP réseau) est fondamental pour garantir que vous voyez bien tout le trafic et pas seulement celui destiné à votre machine. Enfin, parcourez rapidement les questions fréquentes qui renforcent les concepts clés.

Les Filtres d'Affichage : Votre Outil le Plus Précieux

Une fois la capture effectuée, vous vous retrouvez face à des milliers de paquets. Les filtres d'affichage (display filters) sont la clé pour isoler ce qui vous intéresse. Les deux filtres les plus fondamentaux pour la VoIP sont sip et rtp.

Vous pouvez également les combiner avec un opérateur || (OU) pour voir la signalisation et le média en même temps : sip || rtp.

Cette capture d'écran montre une liste de paquets Wireshark où le filtre `sip || rtp` a été appliqué. On y voit clairement l'échange de messages SIP (en rose) suivi par les paquets RTP (en bleu) une fois l'appel établi.

La vidéo suivante vous montre en direct comment appliquer ces filtres de base.

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

Cette vidéo de la chaîne Technical Venture offre une démonstration pratique de l'application des filtres dans Wireshark.

Regardez la première partie qui introduit les expressions de filtre, puis la démonstration en direct où l'instructeur applique le filtre sip à un fichier de capture.

Isoler un Appel Spécifique

Dans un environnement de production, filtrer sur sip ne suffit pas. Vous devez isoler la session d'appel qui pose problème. Pour cela, plusieurs techniques existent :

  • Par adresse IP : ip.addr == x.x.x.x vous montrera tout le trafic depuis et vers une IP spécifique (un PBX, un SBC, un téléphone).
  • Par méthode SIP : sip.method == "INVITE" est très utile pour repérer le début de toutes les tentatives d'appel.
  • Par Call-ID (la méthode la plus fiable) : Comme nous l'avons vu, le header Call-ID identifie de manière unique une session SIP. En filtrant sur un Call-ID spécifique, vous isolez tous les messages liés à un seul et même appel.

La façon la plus simple d'appliquer ce filtre est de trouver un paquet de l'appel, de dérouler l'arborescence du protocole SIP, de faire un clic droit sur le champ "Call-ID" et de choisir "Apply as Filter" -> "Selected".

How To Analyze SIP Calls in Wireshark

Cette vidéo de Yeastar Technical Channel montre précisément comment isoler un appel à l'aide de son Call-ID.

Regardez la section qui explique comment filtrer par méthode et par Call-ID. La démonstration du "clic droit -> Apply as Filter" est particulièrement utile.


2. Les Outils d'Analyse VoIP de Wireshark

Wireshark va bien au-delà du simple affichage de paquets. Il intègre des outils puissants dédiés à l'analyse de la téléphonie.

La Fenêtre "VoIP Calls"

Le point d'entrée principal est le menu Telephony > VoIP Calls. Wireshark analyse la capture et liste toutes les sessions d'appel SIP qu'il a détectées, avec des informations comme l'heure de début, la durée, les correspondants, etc.

Le Diagramme de Flux ("Flow Sequence")

Depuis la fenêtre "VoIP Calls", vous pouvez sélectionner un appel et cliquer sur "Flow Sequence". Wireshark génère alors le diagramme en échelle (ladder diagram) de la session. C'est la visualisation parfaite du flux d'appel que nous avons étudié : INVITE, 100 Trying, 180 Ringing, 200 OK, ACK, etc. C'est un outil de diagnostic extraordinairement rapide pour vérifier si la signalisation se déroule comme prévu.

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

La vidéo "How to Analyze SIP calls in Wireshark" que nous avons déjà consultée montre en détail comment utiliser ces outils.

Regardez attentivement ces deux sections : La présentation de la fonctionnalité VoIP Calls et Flow Sequence. La démonstration en direct où l'instructeur ouvre la fenêtre VoIP Calls, sélectionne un appel et affiche son diagramme de flux, en commentant chaque étape.

Analyse et Lecture des Flux RTP

Une fois l'appel établi, le média est échangé via RTP. Wireshark permet non seulement de voir les paquets RTP, mais aussi d'analyser et même d'écouter les flux.

  • Lister les flux : Telephony > RTP > RTP Streams liste tous les flux RTP de la capture, avec des statistiques clés (perte de paquets, gigue, etc.).
  • Écouter l'appel : Depuis la liste des flux RTP ou la fenêtre VoIP Calls, le bouton "Play Streams" ouvre un lecteur qui vous permet d'écouter la conversation. C'est un moyen infaillible pour confirmer un problème de "pas de son" ou de "son dans un seul sens".

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

La fin de cette même vidéo est consacrée à l'analyse RTP.

Regardez la section sur l'analyse RTP. Elle montre comment lister les flux, analyser les statistiques de qualité et utiliser la fonction "Play Streams".


3. Capture Spécifique à AudioCodes : Le Debug Recording

Nous arrivons maintenant à la partie la plus pertinente pour votre objectif. Les SBC AudioCodes possèdent une fonctionnalité de dépannage très puissante appelée Debug Recording. Plutôt que de dépendre d'un port mirroring, vous pouvez configurer le SBC pour qu'il envoie une copie des paquets de signalisation et média d'un appel directement à votre machine où tourne Wireshark.

Ces paquets sont encapsulés dans un protocole propriétaire AudioCodes, identifié dans Wireshark par le filtre acdr.

Cette capture montre une trace Wireshark filtrée avec `acdr`. On voit le paquet SIP INVITE encapsulé dans un header propriétaire "AUDIOCODES DEBUG RECORDING", qui contient des métadonnées utiles pour le dépannage.

Pour que Wireshark puisse correctement décoder ce format, l'installation d'un plugin spécifique est nécessaire. Le guide de référence suivant d'AudioCodes est votre ressource de référence pour cette procédure.

[PDF] How to Debug Voice with Wireshark - AudioCodes

Ce guide officiel d'AudioCodes détaille la procédure de bout en bout pour utiliser le Debug Recording. Il est essentiel pour votre pratique.

Lisez attentivement ce document. Concentrez-vous sur les points suivants : La configuration du Debug Recording sur le SBC, notamment la définition de l'IP de destination (votre PC) et les filtres pour ne capturer que l'appel désiré. La note sur les plugins ACDR, qui est une étape indispensable. La procédure d'analyse : How do I extract the Audio.... Elle explique comment, une fois la trace capturée, utiliser l'ID de session complet (acdr.full_session_id) pour isoler un appel, de la même manière que nous avons utilisé sip.Call-ID précédemment.

L'avantage majeur de cette méthode est qu'elle vous donne une vue complète de ce que le SBC voit sur ses différentes interfaces (par exemple, côté Microsoft Teams et côté opérateur), ce qui est crucial pour diagnostiquer les problèmes de routage ou de manipulation de messages.


Conclusion

Félicitations, vous avez terminé le premier module de votre parcours ! Vous disposez maintenant d'une base solide sur tous les aspects fondamentaux du protocole SIP, et surtout, vous savez comment utiliser Wireshark pour observer et analyser ces concepts dans le monde réel.

Points clés à retenir :

  • La capture est la première étape : elle doit être faite à un point pertinent du réseau (port mirroring ou, mieux, via le Debug Recording du SBC).
  • Les filtres sont essentiels : commencez par sip et rtp, puis affinez avec ip.addr, sip.method et surtout sip.Call-ID (ou acdr.full_session_id pour AudioCodes) pour isoler une session.
  • Les outils VoIP de Wireshark automatisent l'analyse : Telephony > VoIP Calls et le diagramme de flux sont vos meilleurs alliés pour un diagnostic rapide de la signalisation.
  • L'analyse RTP confirme les problèmes de média : La fonction RTP Streams permet de vérifier la gigue, la perte de paquets et de réécouter l'audio pour valider les plaintes des utilisateurs.
  • AudioCodes simplifie la capture : La fonction Debug Recording (acdr) est la méthode privilégiée pour obtenir des traces complètes et fiables directement depuis le SBC.

Dans notre prochaine leçon, nous ouvrirons un nouveau chapitre en plongeant au cœur des SBC AudioCodes. Nous commencerons par décrire l'architecture logicielle des SBC AudioCodes Mediant, ce qui nous permettra de comprendre comment le matériel et le logiciel interagissent pour traiter les appels.