§ 7.1

Wireshark, filtres utiles.

Sept filtres qui couvrent 95 % des situations de débogage SIP/RTP.

FiltreCe qu'il montre
sipTous les messages SIP, peu importe le port.
sip.Method == "INVITE"Seulement les requêtes INVITE.
sip.Status-Code >= 400Toutes les réponses d'erreur (4xx, 5xx, 6xx).
sip.Call-ID == "..."Un seul dialogue, identifié par son Call-ID.
rtpTout le flux média RTP.
rtp.ssrc == 0x12345678Un seul flux RTP, par identifiant de source.
tcp.port == 5061 or udp.port == 5060Tout ce qui touche le SIP, sans dissection applicative.
§ 7.2

Lire un flow.

Telephony → VoIP Calls → choisir un appel → Flow Sequence. Wireshark dessine un diagramme verticalement, avec les UA en colonnes et les messages en flèches. C'est ce qu'on appelle un ladder diagram.

Linphone (192.168.1.20) sip.ippi.com Bob (mobile) │ │ │ │── REGISTER ─────────────►│ │ cseq 1 │◄────────── 401 Unauth ───│ │ │── REGISTER (auth) ──────►│ │ cseq 2 │◄──────────── 200 OK ─────│ │ │ │ │ │── INVITE +33612... ─────►│ │ cseq 3 │◄──────── 100 Trying ─────│ │ │ │── INVITE ────────────►│ │ │◄── 180 Ringing ──────│ │◄──── 180 Ringing ────────│ │ │ │◄── 200 OK ────────────│ │◄──── 200 OK ─────────────│ │ │── ACK ──────────────────►│── ACK ───────────────►│ │ ═════════════════ RTP G.711 ═════════════════ │ │── BYE ──────────────────►│── BYE ───────────────►│ │◄──── 200 OK ─────────────│◄── 200 OK ────────────│

Ce diagramme permet de voir d'un coup d'œil : la chronologie, qui parle à qui, où l'appel a éventuellement raté. Plus efficace qu'une trace ligne par ligne.

§ 7.3

Diagnostic RTP.

Telephony → RTP → Stream Analysis. Pour chaque flux, Wireshark calcule trois métriques critiques :

MétriqueBonMauvais
Jitter moyen< 30 ms> 80 ms = voix robotique.
Lost packets< 1 %> 5 % = voix hachée.
Delta max< 100 ms> 300 ms = mute apparent.

Si les chiffres sont mauvais : tester filaire au lieu de Wi-Fi, changer de codec (Opus est plus résilient), vérifier la QoS sur le routeur, ou contacter l'opérateur si le SBC est en cause.

§ 7.4

Pannes courantes.

SymptômeCause probableRemède
403 Forbidden au REGISTERMauvais mot de passe ou compte non activé.Revérifier depuis le tableau de bord ippi.
408 Request TimeoutLe proxy ne répond pas — réseau ou DNS.dig sip.ippi.com, nc -u sip.ippi.com 5060.
Pas de son sortantRTP bloqué par le NAT.Activer STUN, vérifier que c= SDP a bien l'IP publique.
Pas de son entrantNAT asymétrique côté distant.Forcer rport, ouvrir UDP 7078–7099 en forward sur la box.
L'appel coupe à 30 sNAT keep-alive expiré côté box.Réduire le timer SIP register à 60 s, activer keepalive RTP.
Voix robotiqueCodec inadapté ou perte de paquets.Forcer G.711 en codec unique pour diagnostiquer, puis revenir à Opus.
Écho localCouplage micro/HP, ou pas d'annulation d'écho.Casque obligatoire, ou activer l'AEC dans les préférences audio.
488 Not AcceptableAucun codec commun.Ajouter G.711 µ-law et A-law dans la liste autorisée.
§ 7.5

Snippets utiles.

Test rapide de connectivité SIP

# Vérifier que le port SIP répond
nc -uv sip.ippi.com 5060
# Réponse attendue : "Connection succeeded" (UDP, pseudo)

# Envoyer un OPTIONS minimal avec sipsak
sipsak -s sip:sip.ippi.com

Capturer une trace SIP avec tcpdump

# Tout le trafic SIP/RTP vers/depuis ippi
tcpdump -i any -s 0 -w trace.pcap \
  '(udp port 5060) or (host sip.ippi.com)'

Décoder un Authorization à la main (Perl)

perl -e 'use Digest::MD5 qw(md5_hex);
  $u="votre_login"; $r="sip.ippi.com"; $p="motdepasse";
  $m="REGISTER"; $uri="sip:sip.ippi.com";
  $n="3a7f5c8b9e4d2";
  $h1=md5_hex("$u:$r:$p");
  $h2=md5_hex("$m:$uri");
  print md5_hex("$h1:$n:$h2"), "\n";'

Faire sonner tous ses postes en parallèle (Asterisk)

; extensions.conf
exten => votre_login,1,Dial(PJSIP/1001&PJSIP/1002&PJSIP/1003,30)
exten => votre_login,n,Voicemail(1001@default)
§ 7.6

Mesurer la qualité.

Quatre indicateurs à suivre sur un parc en production :

IndicateurCibleSource
ASR (Answer-Seizure Ratio)> 50 %Asterisk CDR.
ACD (Average Call Duration)> 30 sAsterisk CDR.
MOS estimée> 4.0RTCP XR ou outil tiers (VQ).
PDD (Post-Dial Delay)< 3 sWireshark, mesurer INVITE → 180.
§ 7.7

« Le SIP est lisible. Le RTP est mesurable. Si quelque chose ne marche pas, c'est qu'on n'a pas encore ouvert le bon outil. » — note de fin

Retour à : ← Accueil