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

Les En-têtes SIP Cruciaux : Routage et Identité

Bonjour ! Bienvenue dans cette cinquième leçon du module sur les fondamentaux SIP.

Dans la leçon précédente, nous avons visualisé le déroulement complet d'un appel grâce aux diagrammes de séquence. Vous avez vu comment les messages SIP s'enchaînent pour établir, maintenir et terminer un appel.

Aujourd'hui, nous allons "ouvrir le capot" de ces messages. Un SBC comme celui d'AudioCodes ne fait pas que transmettre les messages ; il les lit, les interprète et prend des décisions capitales en fonction de leur contenu. Pour maîtriser le dépannage et la configuration, vous devez apprendre à lire ces messages comme le ferait un SBC.

Objectif de cette leçon : Identifier les headers SIP critiques pour le routage et l'identité (From, To, Via, Contact, Route, P-Asserted-Identity).

Comprendre le rôle de chaque en-tête (header) est la clé pour analyser un problème de routage, un échec d'appel ou un mauvais affichage du numéro appelant.

1. La Carte d'Identité et l'Adresse de l'Appel

Chaque message SIP est comme un colis postal : il contient des informations sur l'expéditeur, le destinataire et le chemin à suivre. Certains de ces champs sont purement informatifs, tandis que d'autres sont activement utilisés pour le routage et l'identification.

Commençons par les bases en visionnant une vidéo qui décortique les en-têtes les plus courants d'un message INVITE.

SIP Headers Explained

Cette vidéo, "SIP Headers Explained", est une excellente introduction aux en-têtes SIP essentiels. Elle explique clairement le rôle des en-têtes qui définissent la destination, l'origine et le chemin de retour.

Visionnez les sections suivantes : Request-URI (dans l'INVITE) : de 02:18 à 04:05. C'est l'adresse de destination principale. Via : de 04:05 à 06:55. C'est le chemin de retour pour les réponses. To : de 08:18 à 08:49. C'est le destinataire logique. From : de 08:49 à 09:26. C'est l'initiateur logique. Contact : de 10:39 à 12:32. C'est l'adresse de contact direct pour les futurs messages. Concentrez-vous sur la distinction entre ces différents en-têtes, notamment entre Via et Contact.

Après avoir visionné ces extraits, synthétisons et approfondissons les rôles de chaque en-tête, en les classant par fonction : routage ou identité.

2. Les En-têtes d'Identité : Qui appelle qui ?

Ces en-têtes définissent les participants à la conversation.

  • From : Identifie l'initiateur de l'appel. Il contient généralement un nom d'affichage et une URI SIP.
    From: "Alice" <sip:alice@domain.com>;tag=12345

  • To : Identifie le destinataire souhaité de l'appel.
    To: "Bob" <sip:bob@otherdomain.com>

    Important : Bien que To indique la destination finale, ce n'est pas l'en-tête utilisé par les proxys pour router l'appel initial. L'adresse de routage principale est le Request-URI, qui se trouve sur la toute première ligne du message (INVITE sip:bob@otherdomain.com SIP/2.0). Les SBC AudioCodes utilisent le Request-URI pour leurs premières décisions de routage.

  • P-Asserted-Identity (PAI) : C'est l'un des en-têtes les plus importants dans les environnements opérateurs et d'entreprise. Alors que l'en-tête From peut être facilement usurpé par l'utilisateur, le PAI est ajouté par un équipement de confiance sur le réseau (comme un SBC) pour certifier l'identité de l'appelant. Il est souvent utilisé pour la facturation et pour l'affichage du numéro de l'appelant (Caller ID).

Pour le dépannage, c'est un point crucial. Si un client se plaint que le mauvais numéro s'affiche chez ses correspondants, l'analyse des en-têtes From et P-Asserted-Identity est souvent la première étape.

P-Asserted-Identity (PAI) Header Priority in Caller ID Display
Cette image illustre parfaitement la primauté du PAI. À gauche, une trace Wireshark montre un `INVITE` avec un header `From` contenant "John Doe" et un header `P-Asserted-Identity` contenant "testpai12313". À droite, le téléphone qui reçoit l'appel affiche "testpai12313", prouvant que le PAI a été utilisé pour l'identité de l'appelant.

La documentation ci-dessous, bien que provenant de Cisco, résume bien l'importance des en-têtes d'identité pour le troubleshooting.

Troubleshooting the Session Initiation Protocol (SIP)

Ce document de formation sur le troubleshooting SIP met en évidence les en-têtes à inspecter en cas de problème d'affichage d'identité.

Consultez la diapositive 93 intitulée "Identity Presentation Issues". Notez que les trois en-têtes cités sont From, P-Asserted-Identity (PAI), et P-Preferred-Identity (PPI). Cela confirme le rôle central de ces en-têtes dans la gestion de l'identité.

3. Les En-têtes de Routage : Comment les messages circulent-ils ?

Ces en-têtes construisent le chemin que les messages SIP empruntent à travers le réseau. C'est ici que les SBC jouent leur rôle le plus actif.

  • Via : Chaque proxy ou SBC qui traite une requête SIP ajoute son propre en-tête Via en haut de la liste. Cet en-tête a un rôle principal : indiquer le chemin de retour pour la réponse. Quand un UAS répond avec un 200 OK, il regarde le premier Via pour savoir où envoyer sa réponse. Le proxy qui la reçoit fait de même, et ainsi de suite, jusqu'à l'appelant. C'est un mécanisme de routage hop-by-hop (de proche en proche).
SIP Message Details: Focus on Via Headers
Cette image montre un `INVITE` qui a traversé deux proxys. Chaque proxy a ajouté son propre en-tête `Via` en haut. Les réponses suivront ce chemin en sens inverse, en se basant sur ces en-têtes.
  • Contact : Cet en-tête est fondamental et souvent mal compris. Il indique l'adresse directe à laquelle un User Agent souhaite recevoir les futures requêtes au sein du même dialogue. Par exemple, lorsque Alice envoie un INVITE à Bob, elle inclut un en-tête Contact avec son adresse IP directe. Quand Bob voudra terminer l'appel en envoyant un BYE, il enverra ce BYE non pas à l'adresse de l'en-tête From, mais à l'adresse spécifiée dans l'en-tête Contact du INVITE initial. C'est un mécanisme de routage end-to-end (de bout en bout).

  • Record-Route et Route : Ces deux en-têtes fonctionnent ensemble et sont la raison d'être des SBC stateful.

    1. Quand un SBC reçoit un INVITE et le transmet, il veut s'assurer que tous les futurs messages de ce dialogue (comme BYE ou un re-INVITE) passeront aussi par lui.
    2. Pour cela, il ajoute un en-tête Record-Route contenant sa propre adresse dans l'INVITE qu'il transfère.
    3. Les User Agents (appelant et appelé) voient cet en-tête et le mémorisent.
    4. Pour toute requête ultérieure dans le dialogue, ils copieront le contenu du Record-Route dans un nouvel en-tête appelé Route. Cet en-tête Route force le message à passer par le chemin des SBCs qui se sont "enregistrés" dans le flux.

Le document suivant résume parfaitement le rôle de ces en-têtes dans un tableau clair.

Understanding the SIP Protocol - VoIPmonitor.org

La section "SIP Headers" de cette page web fournit un tableau récapitulatif très pratique des en-têtes les plus importants, y compris Record-Route.

Consultez le tableau dans la section "SIP Headers". Repérez les définitions de Via, From, To, Contact, et surtout Record-Route ("Proxy stays in signaling path"). Ce tableau est un excellent aide-mémoire.

Synthèse : Le Rôle d'un SBC

Imaginons qu'un SBC AudioCodes reçoive un appel de Microsoft Teams destiné à un opérateur ITSP. Voici comment il utiliserait ces en-têtes :

  1. Il lit le Request-URI (INVITE sip:+33123456789@itsp.fr SIP/2.0) pour déterminer la destination. Ses règles de routage internes lui indiquent que les appels vers @itsp.fr doivent aller vers le trunk de l'opérateur.
  2. Il lit From et P-Asserted-Identity pour identifier l'appelant Teams. Il peut utiliser cette information pour appliquer des politiques spécifiques ou la manipuler pour qu'elle soit dans le format attendu par l'opérateur.
  3. Il lit l'en-tête Contact de Teams pour savoir où renvoyer un éventuel BYE provenant de l'opérateur.
  4. Avant d'envoyer l'INVITE à l'opérateur, il ajoute son propre en-tête Via pour que la réponse (200 OK) de l'opérateur lui revienne.
  5. Il ajoute également un en-tête Record-Route pour s'assurer que le BYE de l'appelant Teams passera aussi par lui.

Vous voyez maintenant que ces en-têtes ne sont pas de simples lignes de texte, mais les leviers de commande du routage et de l'identité SIP.

Conclusion

Dans cette leçon, nous avons disséqué les en-têtes SIP les plus importants pour comprendre comment un appel est acheminé et comment les participants sont identifiés.

Points clés à retenir

En-tête Fonction Principale Utilisé pour...
Request-URI Destination de la requête Routage initial de la requête (ex: INVITE).
From / To Identité logique Identifier l'appelant et l'appelé (informatif).
P-Asserted-Identity Identité de confiance Certifier l'identité de l'appelant (Caller ID, facturation).
Via Chemin de retour des réponses Router les réponses (1xx, 2xx...) de proche en proche.
Contact Adresse directe du dialogue Router les requêtes futures (BYE, re-INVITE) de bout en bout.
Record-Route / Route Maintien du chemin Forcer les requêtes futures à passer par les proxys/SBC.

Vous avez maintenant les connaissances de base pour lire un message SIP et comprendre son intention.

Dans la prochaine leçon, nous passerons à l'étape suivante, qui est au cœur de votre objectif : expliquer le principe de la manipulation des headers SIP. Maintenant que vous savez ce que font ces en-têtes, nous verrons quand et pourquoi vous auriez besoin de les ajouter, les modifier ou les supprimer avec un SBC AudioCodes pour résoudre des problèmes d'interopérabilité ou mettre en œuvre des scénarios de routage complexes.

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

Sign up