Recommended resources
The freely available resources this lesson will direct you to.
- Lecture - 8 | How to Analyze SIP calls in Wireshark | SIP Calls troubleshooting | Analyze RTP Streamwww.youtube.com
- CALLMANAGER TRACES - DTMFwww.youtube.com
- [PDF] CPE Troubleshooting Guide | AudioCodeswww.audiocodes.com
- [PDF] AudioCodes Quick Reference Guide - Voice Quality Troubleshootingwww.audiocodes.com
Bonjour ! Bienvenue dans cette nouvelle leçon du module 7 sur la normalisation et l'interopérabilité avancée.
Dans les modules précédents, nous avons vu comment construire les blocs de base de la configuration d'un SBC AudioCodes, comment créer des règles de routage et comment manipuler les messages SIP. Aujourd'hui, nous allons mettre ces connaissances en perspective en nous concentrant sur le "pourquoi" de ces manipulations : l'interopérabilité.
L'objectif de cette leçon est d'apprendre à identifier les problèmes d'interopérabilité SIP les plus courants. Un SBC est rarement une île ; il connecte des systèmes hétérogènes (opérateurs, Microsoft Teams, centres de contact, PBX internes) qui ne parlent pas toujours exactement le même "dialecte" SIP. Savoir repérer ces différences dans les traces est la première étape cruciale de tout dépannage ou projet d'intégration.
Nous allons nous concentrer sur trois catégories de problèmes :
- Les conflits de codecs audio.
- Les incompatibilités de signalisation DTMF.
- Les divergences de format de numéro.
À la fin de cette leçon, vous saurez où regarder dans une trace SIP pour diagnostiquer ces problèmes, préparant ainsi le terrain pour les leçons suivantes où nous apprendrons à les corriger avec les outils d'AudioCodes.
1. Problèmes d'interopérabilité des Codecs
Un codec (codeur-décodeur) est un algorithme qui compresse et décompresse les données audio pour les transmettre sur un réseau IP. Pour que deux participants à un appel puissent s'entendre, leurs équipements doivent se mettre d'accord sur un codec commun.
Cette négociation se fait via le protocole SDP (Session Description Protocol), qui est transporté dans le corps des messages SIP INVITE et 200 OK.
- L'Offre (Offer) : Le premier message (
INVITE) contient une liste de tous les codecs supportés par l'appelant. - La Réponse (Answer) : Le message
200 OKrenvoyé par l'appelé contient le codec choisi parmi ceux proposés dans l'offre, qui est commun aux deux équipements.

Le Problème : Le "Codec Mismatch"
Un "codec mismatch" se produit lorsque les deux équipements ne trouvent aucun codec en commun. Les conséquences sont généralement :
- Échec de l'appel : L'appelé rejette l'appel avec un message d'erreur SIP comme
415 Unsupported Media Typeou488 Not Acceptable Here. - Absence de son ("No Audio") : L'appel s'établit (signalisation SIP OK), mais aucun flux audio (RTP) n'est échangé car les points de terminaison ne savent pas comment décoder le son de l'autre.
Comment identifier un problème de codec ?
Pour identifier un problème de codec, vous devez inspecter la partie SDP des messages INVITE et 200 OK dans une trace Wireshark.
Pour vous familiariser avec l'analyse SDP dans Wireshark, je vous invite à visionner une partie de la vidéo suivante.
Lecture - 8 | How to Analyze SIP calls in Wireshark | SIP Calls troubleshooting | Analyze RTP Stream
Cette vidéo montre comment utiliser Wireshark pour analyser les appels SIP. Concentrez-vous sur la manière d'inspecter le contenu SDP d'un message INVITE pour y trouver la liste des codecs proposés.
Regardez la section de 04:54 à 06:23. L'auteur développe le message SIP, puis le corps SDP pour montrer les lignes m= (media) et a=rtpmap, qui listent les codecs comme G.711, G.729, etc.
Dans Wireshark, vous regarderez :
-
Le message
INVITE(l'offre) : Cherchez la section "Session Description Protocol". Vous y trouverez une lignem=audio ...suivie de plusieurs lignesa=rtpmap.... Chaque lignertpmapdéfinit un codec.Exemple d'offre SDP dans un INVITE :
m=audio 9386 RTP/AVP 0 8 18 101 a=rtpmap:0 PCMU/8000 (G.711 mu-law) a=rtpmap:8 PCMA/8000 (G.711 A-law) a=rtpmap:18 G729/8000 (G.729) a=rtpmap:101 telephone-event/8000 -
Le message
200 OK(la réponse) : Comparez sa partie SDP avec celle de l'offre. La réponse ne doit contenir qu'un seul des codecs audio proposés dans l'offre.Exemple de réponse SDP dans un 200 OK :
m=audio 7050 RTP/AVP 0 101 a=rtpmap:0 PCMU/8000 a=rtpmap:101 telephone-event/8000Ici, l'appelé a choisi le codec
PCMU(G.711 mu-law) car il était présent dans l'offre.
Si la liste des codecs dans l'offre du INVITE est complètement différente de celle que l'équipement distant supporte, ce dernier ne pourra pas répondre avec un codec commun, menant à l'échec de l'appel. Dans les logs AudioCodes (Syslog), vous pourriez voir une alerte RP: RTP Payload is incorrect, comme mentionné dans le guide de dépannage AudioCodes.
2. Problèmes d'interopérabilité DTMF
Les tonalités DTMF (Dual-Tone Multi-Frequency) sont les sons que vous entendez lorsque vous appuyez sur les touches de votre téléphone. Elles sont essentielles pour interagir avec des systèmes vocaux interactifs (IVR), des messageries vocales, etc.
En VoIP, il existe plusieurs méthodes pour transporter ces tonalités :
- In-band : Les tonalités DTMF sont envoyées comme de l'audio normal, dans le flux RTP. Cette méthode est simple mais peu fiable avec les codecs compressés (comme G.729), qui peuvent déformer les tonalités et les rendre méconnaissables.
- RFC 2833 (ou RFC 4733) : C'est la méthode la plus courante et la plus fiable. Les événements DTMF sont envoyés dans des paquets RTP spéciaux, avec un "payload type" distinct (souvent
101) identifié commetelephone-event. Cela les protège de la compression audio. - SIP INFO / NOTIFY : Les chiffres DTMF sont transportés directement dans des messages de signalisation SIP (
INFOouNOTIFY), en dehors du flux média.
La vidéo suivante explique bien ces concepts.
Cette vidéo, bien que centrée sur l'écosystème Cisco, offre une excellente explication des concepts DTMF qui sont universels en VoIP. Elle vous aidera à comprendre les différences fondamentales entre les méthodes de transport et les problèmes qui en découlent.
Regardez les sections suivantes : De 00:05 à 04:45 pour comprendre ce qu'est le DTMF et la distinction entre in-band et out-of-band. De 04:45 à 06:15 qui compare les méthodes in-band audio et RTP (RFC 2833). De 10:00 à 15:39 pour une explication des problèmes typiques de DTMF, notamment les échecs de négociation et l'impact des codecs compressés.
Le Problème : Incompatibilité des méthodes DTMF
Le symptôme le plus courant est : "J'appelle un serveur vocal, j'appuie sur les touches, mais rien ne se passe". Cela se produit lorsque l'appelant envoie des DTMF via une méthode que le récepteur ne comprend pas (par exemple, l'appelant envoie en SIP INFO alors que le récepteur s'attend à du RFC 2833).
Comment identifier un problème de DTMF ?
-
Vérifiez la négociation RFC 2833 dans le SDP :
Comme pour les codecs, la méthode DTMF (si RFC 2833 est utilisé) est négociée dans le SDP. Recherchez une lignertpmapcontenanttelephone-event.a=rtpmap:101 telephone-event/8000Si cette ligne est présente dans l'offre (
INVITE) et dans la réponse (200 OK), alors les deux parties se sont mises d'accord pour utiliser RFC 2833. -
Analysez les traces pendant l'appel :
- Si RFC 2833 a été négocié : Appliquez un filtre Wireshark
rtp.p_type == <payload_type_number>. Si le payload type négocié était 101, le filtre serartp.p_type == 101. Vous devriez voir apparaître des paquets RTP chaque fois qu'une touche est pressée. - Si RFC 2833 n'a pas été négocié : Appliquez un filtre Wireshark
sip.method == INFO. Si vous voyez des messagesINFOapparaître avec le contenu du chiffre pressé, alors la méthode SIP INFO est utilisée. - Si aucune des deux méthodes ci-dessus n'est visible : Il est probable que le DTMF soit envoyé en "in-band". C'est le cas le plus difficile à diagnostiquer car les tonalités sont mélangées au flux audio.
- Si RFC 2833 a été négocié : Appliquez un filtre Wireshark
Le guide suivant d'AudioCodes fournit des exemples visuels très clairs de ce à quoi ressemblent les DTMF in-band et RFC 2833 dans les logs et les traces.
AudioCodes Quick Reference Guide - Voice Quality Troubleshooting
Ce guide de référence rapide d'AudioCodes est excellent pour le dépannage de la qualité vocale. Nous allons nous concentrer sur la section DTMF.
Veuillez lire la page 2, section 'DTMF or RFC2833 indications', pour voir les symptômes courants. Ensuite, lisez les pages 7 et 8 ('DTMF' et 'RFC2833') qui montrent des captures d'écran de traces Wireshark et de logs Syslog pour les deux types de DTMF. C'est exactement ce que vous rechercheriez dans un cas réel.
Ayant travaillé avec des SBC Oracle, vous reconnaîtrez peut-être le principe de médiation. Un SBC est souvent configuré pour "normaliser" le DTMF : il peut recevoir du DTMF en SIP INFO d'un côté et le convertir en RFC 2833 de l'autre côté pour assurer la compatibilité.

3. Problèmes de format de numéro
C'est peut-être le problème d'interopérabilité le plus fréquent. Les différents systèmes connectés au SBC (ITSP, Teams, PBX) ont souvent des exigences strictes sur le format des numéros, tant pour l'appelant (From) que pour l'appelé (To / Request-URI).
Exemples de formats :
- National :
0123456789 - International (E.164) :
+33123456789 - Interne/Extension :
2001 - Préfixé :
00123456789(pour une sortie internationale depuis un PBX)
Le Problème : "Number Mismatch"
Les conséquences d'un mauvais format de numéro sont variées :
- Échec du routage : L'équipement de destination ne reconnaît pas le format et rejette l'appel, souvent avec une erreur
404 Not Found. - Mauvais affichage du numéro : Le destinataire voit un numéro incorrect ou "Anonyme".
- Appels bloqués : De nombreux opérateurs (ITSP) n'acceptent que des numéros appelants au format E.164 et rejettent tout le reste.
- Problèmes de rappel : Si le numéro appelant est affiché dans un format interne (
2001), le destinataire ne pourra pas rappeler ce numéro depuis l'extérieur.
Comment identifier un problème de format de numéro ?
L'analyse se fait en examinant les headers clés dans le message INVITE sortant (envoyé par le SBC vers la destination) :
- Request-URI : C'est la "destination" de l'appel. Le format de ce numéro doit correspondre à ce que l'équipement de destination attend. Par exemple, pour un appel vers Teams, le numéro doit être au format E.164.
- Header
To: Similaire au Request-URI, il contient le numéro de l'appelé. - Header
From: Contient le numéro de l'appelant. C'est ce que le destinataire verra comme "Caller ID". - Header
P-Asserted-Identity(PAI) : De nombreux opérateurs utilisent ce header pour authentifier l'identité de l'appelant. Il doit souvent contenir un numéro public valide au format E.164.
Le guide de dépannage d'AudioCodes aborde ces points, notamment les problèmes liés à l'identification de l'appelant (Caller ID).
[PDF] CPE Troubleshooting Guide | AudioCodes
Ce guide de dépannage complet d'AudioCodes contient des sections utiles sur les problèmes de numérotation et de Caller ID.
Parcourez rapidement la table des matières pour voir l'étendue des sujets. Concentrez-vous sur deux sections : Section 4.2.2.2 'Why is there a Delay in Connecting a Call' (Page 30) : Elle mentionne les problèmes de 'digit map', qui sont liés à la manière dont le SBC interprète les numéros composés. Section 5 'Caller ID' (à partir de la page 39) : Elle détaille les causes possibles pour lesquelles le Caller ID n'est pas détecté ou généré, ce qui est directement lié aux formats de numéros dans les headers SIP.
Scénario Pratique :
Imaginez un utilisateur avec l'extension interne 4001 qui appelle le numéro mobile 0612345678. Le SBC doit router l'appel vers un opérateur SIP (ITSP).
- INVITE reçu par le SBC (depuis le PBX interne) :
INVITE sip:0612345678@sbc.company.com SIP/2.0 From: "User 4001" <sip:4001@pbx.company.com> To: <sip:0612345678@sbc.company.com> - Problème : L'ITSP attend un numéro appelant public au format E.164 (
+339...) et non une extension interne4001. Il va probablement rejeter l'appel. - Ce qu'il faut rechercher : Vous devez capturer la trace SIP entre le SBC et l'ITSP. Vous y verrez l'
INVITEci-dessus être envoyé, suivi d'une réponse d'erreur de l'ITSP (par exemple403 Forbiddenou404 Not Found). L'analyse des headersFrometPAIdans l'INVITEsortant révélera le formatage incorrect. La solution (que nous verrons plus tard) consistera à utiliser des règles de manipulation pour changer4001en+33987654321.
Résumé de la Leçon
Aujourd'hui, nous avons appris à identifier les trois familles de problèmes d'interopérabilité SIP les plus courantes :
-
Problèmes de Codecs :
- Symptôme : Échec d'appel (
415,488), pas de son (no audio). - Où regarder : Les listes de codecs (
a=rtpmap) dans le SDP des messagesINVITEet200 OK. Il doit y avoir au moins un codec audio en commun.
- Symptôme : Échec d'appel (
-
Problèmes de DTMF :
- Symptôme : Les touches pressées n'ont aucun effet sur un serveur vocal (IVR).
- Où regarder :
- La négociation RFC 2833 (
telephone-event) dans le SDP. - Si elle est négociée, rechercher les paquets
RTPavec le bon payload type. - Sinon, rechercher des messages
SIP INFO. - Si rien, le DTMF est probablement "in-band" et incompatible avec un codec compressé.
- La négociation RFC 2833 (
-
Problèmes de Format de Numéro :
- Symptôme : Échec d'appel (
404), mauvais affichage du numéro, appels bloqués par l'opérateur. - Où regarder : Les headers
Request-URI,From,ToetP-Asserted-Identitydans le messageINVITEenvoyé par le SBC. Le format doit correspondre aux exigences du système de destination.
- Symptôme : Échec d'appel (
Maintenant que vous savez comment diagnostiquer ces problèmes en lisant les traces, vous êtes prêt pour l'étape suivante.
Aperçu de la prochaine leçon : Dans la prochaine leçon, "Utiliser les 'IP Profiles' pour forcer la normalisation SIP", nous commencerons à résoudre ces problèmes. Nous verrons comment les IP Profiles sur un SBC AudioCodes peuvent être utilisés pour nettoyer et standardiser les messages SIP, par exemple en forçant la suppression de headers non-standard ou en ajustant certains paramètres pour améliorer la compatibilité.