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

Codes de réponse SIP : Interprétation et Signification

Bonjour et bienvenue dans cette troisième leçon sur les fondamentaux du SIP.

Dans les leçons précédentes, nous avons exploré les requêtes SIP (les méthodes comme INVITE ou BYE) qui demandent une action. Vous savez maintenant comment un équipement demande à initier, terminer ou superviser un appel.

Aujourd'hui, nous allons nous intéresser à la deuxième partie de la conversation : les réponses SIP. Chaque requête que nous avons vue entraîne une réponse de la part du destinataire. Cette réponse, sous la forme d'un code à trois chiffres, nous indique le résultat de la requête : a-t-elle réussi ? A-t-elle échoué ? Est-elle en cours de traitement ?

Comprendre ces codes est absolument fondamental pour le dépannage. Un code 404 Not Found pointe vers un problème de routage, tandis qu'un 503 Service Unavailable indique un problème sur le serveur distant. Savoir les interpréter vous permet de diagnostiquer la cause d'un échec d'appel en quelques secondes.

Objectif de cette leçon : Interpréter les codes de réponse SIP (1xx, 2xx, 3xx, 4xx, 5xx, 6xx) et leurs significations.

1. Les Six Catégories de Réponses SIP

Les réponses SIP sont toujours constituées d'un code à trois chiffres. Le premier chiffre est le plus important, car il classe la réponse dans l'une des six catégories, chacune ayant une signification générale.

SIP Response Codes Infographic
Cette infographie résume visuellement les six catégories de codes de réponse SIP, de 1xx (Informationnel) à 6xx (Échec Global), avec des exemples courants pour chaque catégorie.

Ces catégories peuvent être regroupées en deux types principaux :

  • Provisoire (1xx) : Ces réponses indiquent que la requête a été reçue et est en cours de traitement, mais que le dialogue n'est pas encore finalisé.
  • Finale (2xx-6xx) : Ces réponses terminent la transaction SIP. Elles indiquent un succès, une redirection ou un échec définitif.

Pour une introduction textuelle, je vous invite à lire le début de l'article suivant qui présente ces concepts.

SIP Response Codes

L'article "SIP Response Codes" de 46 Labs offre une excellente introduction. Il explique la structure des codes, les six catégories, et la distinction essentielle entre les réponses 'provisoires' et 'finales'.

Lisez la première partie de l'article, jusqu'à la section '1xx - Informational'. Concentrez-vous sur la définition des six classes et sur la différence entre une réponse provisoire et une réponse finale.

En résumé, voici ce que chaque catégorie signifie en pratique pour le dépannage :

Catégorie Signification "Traduction" en dépannage
1xx Informationnel "J'ai bien reçu, je traite la demande." (ex: 100 Trying, 180 Ringing)
2xx Succès "C'est bon, la requête est acceptée." (ex: 200 OK)
3xx Redirection "Ce n'est pas la bonne adresse, va voir ailleurs." (ex: 302 Moved Temporarily)
4xx Erreur Client "Ta requête est incorrecte." (ex: 404 Not Found, 401 Unauthorized)
5xx Erreur Serveur "J'ai un problème, je ne peux pas te répondre." (ex: 503 Service Unavailable)
6xx Échec Global "L'appel ne peut aboutir nulle part." (ex: 600 Busy Everywhere)

Pour le troubleshooting, les catégories 4xx, 5xx et 6xx sont vos principaux indicateurs d'un problème à investiguer.

2. Exploration Détaillée des Codes de Réponse

Pour bien maîtriser ces codes, il faut aller au-delà de la catégorie et comprendre la signification des codes les plus courants. La vidéo suivante est une excellente ressource qui parcourt chaque catégorie en détail.

Lecture - 6 | SIP Error Codes/Messages Explained - 1XX, 2XX, 3XX, 4XX, 5XX, 6XX

La vidéo "SIP Error Codes/Messages Explained" de Technical Venture est un guide complet des codes de réponse. Nous allons la regarder en plusieurs parties pour assimiler chaque catégorie.

Nous allons commencer par l'introduction générale. Regardez la section de 0:00 à 3:45 qui présente les six catégories de messages.

a) 1xx - Réponses Provisoires

Ces codes informent l'appelant de la progression de l'appel avant qu'il ne soit décroché.

Lecture - 6 | SIP Error Codes/Messages Explained - 1XX, 2XX, 3XX, 4XX, 5XX, 6XX

Continuons avec la vidéo pour explorer en détail les réponses 1xx.

Regardez maintenant la section de 3:45 à 15:57. Portez une attention particulière aux explications sur 100 Trying, 180 Ringing, et 183 Session Progress.

  • 100 Trying: C'est la première réponse, envoyée immédiatement par un proxy ou un SBC. Son rôle est de dire à l'appelant "J'ai reçu ton INVITE, arrête de le renvoyer". Sans ce 100 Trying, l'équipement appelant renverrait l' INVITE en boucle, pensant qu'il a été perdu.

  • 180 Ringing: Indique que le téléphone du destinataire sonne. L'équipement de l'appelant génère alors localement la tonalité de sonnerie.

  • 183 Session Progress: C'est un code plus complexe. Il indique aussi une progression, mais il transporte généralement un corps de message SDP. Cela permet au réseau de jouer un message audio ou une tonalité avant même que l'appel ne soit décroché (ce qu'on appelle "early media").

    • Cas pratique (Teams Direct Routing) : Un problème classique est l'absence de sonnerie (ringback). Cela arrive quand un opérateur envoie un 183 Session Progress. Certains équipements arrêtent de jouer la sonnerie locale en pensant qu'un média va arriver du réseau. Pour corriger cela, les SBC AudioCodes peuvent être configurés pour transformer le 183 en 180 ou simplement ignorer les 183 après le premier 180, forçant ainsi la sonnerie locale. Le document de Microsoft LINK ("Issues that affect inbound Direct Routing calls") décrit précisément ce scénario.

b) 2xx - Réponses de Succès

La requête a été comprise et traitée avec succès.

Lecture - 6 | SIP Error Codes/Messages Explained - 1XX, 2XX, 3XX, 4XX, 5XX, 6XX

Cette partie de la vidéo couvre les réponses de succès.

Regardez la section de 15:57 à 19:25.

  • 200 OK: C'est la réponse de succès la plus courante. Pour un INVITE, elle signifie "Appel décroché". Pour un REGISTER, "Enregistrement réussi". Pour un BYE, "Fin d'appel confirmée". C'est le signal que tout s'est bien passé.

c) 3xx - Réponses de Redirection

Indique que la requête doit être envoyée à une autre destination.

Lecture - 6 | SIP Error Codes/Messages Explained - 1XX, 2XX, 3XX, 4XX, 5XX, 6XX

Voyons maintenant comment le SIP gère les redirections.

Regardez la section de 19:25 à 25:01. Notez la différence entre une redirection permanente (301) et temporaire (302).

  • 301 Moved Permanently: L'utilisateur a déménagé de façon permanente. L'appelant doit utiliser la nouvelle adresse (fournie dans l'en-tête Contact) pour tous les futurs appels.
  • 302 Moved Temporarily: L'utilisateur est temporairement ailleurs (ex: renvoi d'appel). L'appelant doit essayer la nouvelle adresse pour cet appel uniquement, mais ne doit pas la sauvegarder.

d) 4xx - Erreurs Client

C'est là que le dépannage commence vraiment. La requête de l'appelant (le client) a un problème.

Lecture - 6 | SIP Error Codes/Messages Explained - 1XX, 2XX, 3XX, 4XX, 5XX, 6XX

Cette section est l'une des plus importantes pour le troubleshooting. Elle couvre les erreurs côté client.

Regardez la longue section de 25:01 à 36:05. Voici les codes à absolument retenir : 401 Unauthorized / 407 Proxy Authentication Required : Problème de mot de passe ou d'authentification. 404 Not Found : L'utilisateur ou le numéro n'existe pas là où on le cherche. C'est typiquement un problème de routage. 486 Busy Here : Le correspondant est déjà en ligne. 487 Request Terminated : La requête a été annulée (par un CANCEL). Signifie que l'appelant a raccroché avant que ça ne décroche. 488 Not Acceptable Here : Souvent un problème de codecs. Le SDP proposé dans l'INVITE n'est pas compatible avec ce que le destinataire peut accepter.

L'image ci-dessous montre un 401 Unauthorized dans un flux d'appel. C'est une réponse très courante lors de la configuration d'un nouveau trunk qui nécessite une authentification.

SIP Call Flow Diagram with Message Log
Ce diagramme de flux SIP, tiré d'une interface de dépannage, montre un INVITE suivi d'une réponse 401 Unauthorized, indiquant que la requête nécessite une authentification. L'appelant envoie alors un nouvel INVITE avec les informations d'authentification.

e) 5xx - Erreurs Serveur

Le problème ne vient pas de la requête, mais de l'équipement qui essaie de la traiter.

Lecture - 6 | SIP Error Codes/Messages Explained - 1XX, 2XX, 3XX, 4XX, 5XX, 6XX

Explorons maintenant les erreurs qui indiquent un problème sur l'équipement distant.

Regardez la section de 36:05 à 41:25. Les plus importants sont : 500 Server Internal Error : Erreur générique, le serveur a rencontré un problème inattendu. 503 Service Unavailable : Le serveur est surchargé ou en maintenance. C'est un code typique quand un trunk opérateur est en panne.

f) 6xx - Échecs Globaux

Ces erreurs indiquent que l'appel a échoué et qu'il est inutile d'essayer ailleurs.

Lecture - 6 | SIP Error Codes/Messages Explained - 1XX, 2XX, 3XX, 4XX, 5XX, 6XX

Enfin, terminons avec les échecs globaux.

Regardez la dernière section de 41:25 à 45:19. Le plus courant est 603 Decline, qui signifie que l'utilisateur a délibérément rejeté l'appel.

  • 603 Decline: Le destinataire a été contacté mais a refusé l'appel (a appuyé sur le bouton "Rejeter").

3. Application Pratique : Isoler les Erreurs

Maintenant que vous connaissez les codes, comment les trouver rapidement dans une capture réseau ? Des outils comme Wireshark permettent de filtrer spécifiquement les erreurs.

Detect SIP Errors with Wireshark

Cette courte vidéo de Laura C vous montre une astuce très pratique pour trouver instantanément toutes les erreurs (4xx, 5xx, 6xx) dans une capture Wireshark.

Regardez de 0:55 à 3:31. Observez comment elle construit le filtre d'affichage sip.StatusCode >= 400 pour isoler uniquement les paquets de réponse SIP indiquant une erreur.

Cette technique est un gain de temps considérable en situation de dépannage. Au lieu de lire des centaines de messages, vous allez directement à la cause de l'échec.

Conclusion

Vous êtes maintenant capable de lire et d'interpréter la réponse à n'importe quelle requête SIP. Cette compétence est au cœur du métier d'un ingénieur VoIP, car elle transforme une trace de paquets complexe en un diagnostic clair.

Points clés à retenir

  • 1xx (Provisoire) : L'appel progresse (100, 180, 183).
  • 2xx (Succès) : L'action a réussi (200 OK).
  • 3xx (Redirection) : L'appel est dévié (301, 302).
  • 4xx (Erreur Client) : La requête est mauvaise. Cherchez le problème dans la configuration de l'équipement qui envoie la requête. (404 -> routage, 401 -> authentification, 488 -> codecs).
  • 5xx (Erreur Serveur) : Le serveur a un problème. Cherchez le problème sur l'équipement qui reçoit la requête. (503 -> trunk en panne, 500 -> bug).
  • 6xx (Échec Global) : L'appel est définitivement refusé (603).

Étapes clés d'analyse d'une réponse SIP

  1. Repérer la réponse qui suit une requête (INVITE, REGISTER, etc.) dans la trace.
  2. Identifier le code à 3 chiffres (ex: SIP/2.0 404 Not Found).
  3. Classifier le code (1xx à 6xx) pour avoir une idée générale de l'issue.
  4. Interpréter la signification spécifique du code pour formuler une hypothèse de diagnostic.
  5. Utiliser le filtre sip.StatusCode >= 400 dans Wireshark pour trouver directement les échecs.

Dans la prochaine leçon, nous allons assembler toutes les pièces du puzzle. Fort de votre connaissance des méthodes (requêtes) et des codes de réponse, nous allons analyser un flux d'appel complet, de l'établissement à la libération, à l'aide d'un diagramme de séquence.

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

Sign up