Si vous rencontrez la redoutable erreur SIP 400 – Bad Request, vous pouvez avoir l’impression de vous heurter à un mur. Mais rassurez-vous ! Ce type d’erreur indique généralement qu’il y a un problème avec votre requête SIP, et il peut être corrigé assez facilement si vous savez où regarder. Parfois, cela est dû à des fautes de frappe, des informations manquantes ou des problèmes de formatage qui empêchent un serveur SIP de comprendre votre requête. C’est la façon dont le serveur dit : « Hé, je ne comprends pas ce message. » Ces types d’erreurs sont couramment rencontrés dans les systèmes VoIP et de visioconférence.
Dans cet article, nous vous fournirons notre guide détaillé pour résoudre toutes les erreurs SIP 400 – Bad Request que vous recevez de n’importe quel système de communication basé sur SIP.
Vérifier les schémas de numérotation
Parfois, ce sont les choses simples qui nous piègent, et une petite erreur dans le numéro que vous composez peut provoquer une erreur SIP 400. Il peut s’agir d’erreurs simples comme l’absence d’un indicatif pays, l’ajout d’espaces supplémentaires ou l’utilisation de caractères non pris en charge. Vous devez vous assurer que le numéro est propre et correctement formaté. Vous devez également vérifier si un préfixe est nécessaire pour certains numéros, comme un +1 pour les appels vers les États-Unis. Si vous utilisez une application VoIP, assurez-vous qu’elle respecte les bonnes règles de numérotation, car une vérification rapide peut vous faire gagner beaucoup de temps et vous éviter bien des maux de tête.
Étapes :
- Valider les formats de numéros
Assurez-vous que les numéros respectent la norme internationale E.164 ou les conventions locales de numérotation. Incluez les préfixes corrects, tels que les indicatifs de pays ou de zone. - Caractères spéciaux
Évitez les caractères non pris en charge comme *, # ou +, sauf s’ils sont spécifiquement requis par votre configuration. Assurez-vous qu’ils sont correctement encodés s’ils sont utilisés dans les en-têtes SIP. - Règles de numérotation PBX
Vérifiez les plans de numérotation du PBX par rapport aux exigences de votre opérateur SIP afin d’assurer la compatibilité. Certains PBX nécessitent des règles supplémentaires pour gérer les appels locaux, nationaux ou internationaux.
Exemple
Pour un appel international :
- Format : +
- Assurez-vous que le PBX peut traiter le caractère + et le convertir en préfixe correct pour les appels sortants.
Vérifier les informations des en-têtes SIP
Considérez les en-têtes SIP comme les « étiquettes d’adresse » de votre message. Si quelque chose ne va pas, le serveur SIP ne saura pas où envoyer votre message. Nous vous recommandons vivement de prendre un moment pour examiner les en-têtes clés et vérifier qu’ils sont correctement formatés. Certains en-têtes importants qui peuvent généralement provoquer des en-têtes SIP mal formés ou incomplets sont :
- From : URI de la partie émettrice
- To : URI de la partie destinataire
- Contact : URI pour le routage des réponses
- Call-ID : Identifiant unique de la transaction SIP
- CSeq : Numéro de séquence pour l’identification de la requête
Étapes :
- Capturer le trafic
Utilisez des outils comme Wireshark ou tcpdump pour capturer les paquets SIP sur votre interface réseau.
shell
Copy code
tcpdump -i eth0 -w sip_traffic.pcap port 5060
2. Inspecter les en-têtes
Analysez les en-têtes SIP pour vous assurer :
-
- D’un formatage correct (par exemple, sip:utilisateur@domaine.com).
- De la présence des en-têtes obligatoires.
- De l’absence d’en-têtes non pris en charge ou superflus.
3. Problèmes courants
Voici quelques problèmes courants que vous pouvez rencontrer :
-
- En-tête Content-Length manquant.
- Content-Type incorrect pour les corps de messages SIP (par exemple, charges utiles SDP).
- En-têtes Via mal alignés provoquant des problèmes de routage.
Outils utilisés pour vérifier les informations des en-têtes SIP :
-
- Wireshark : Filtrez par sip pour isoler les paquets SIP.
- Journaux de débogage SIP : Vérifiez les journaux sur les serveurs SIP ou les systèmes PBX.
Confirmer la configuration et la compatibilité des appareils
Les appareils peuvent être exigeants, et une mauvaise configuration d’un appareil SIP peut entraîner des incompatibilités de transport, des échecs d’enregistrement ou des erreurs d’analyse des messages. Un paramètre mal configuré est souvent à l’origine d’une erreur SIP 400. Vous pouvez vérifier, par exemple, que les paramètres de proxy SIP et de proxy sortant pointent vers le bon serveur. Il peut également être utile de s’assurer que le firmware de votre appareil est à jour. De petits ajustements de configuration peuvent faire toute la différence.
Étapes :
- Protocoles de transport
Assurez une utilisation cohérente des protocoles de transport sur l’ensemble des appareils (UDP, TCP, TLS).
Exemple : Une incompatibilité (par exemple, un client utilisant TCP alors que le serveur ne prend en charge que UDP) peut bloquer la communication. - Mises à jour du firmware
Vérifiez que les appareils exécutent la dernière version du firmware. Les nouvelles mises à jour résolvent souvent des problèmes de compatibilité ou des bogues connus. - Paramètres du proxy SIP et du registrar
Vérifiez à nouveau les paramètres du proxy SIP, du serveur registrar et des ports. Par exemple, le port SIP par défaut est 5060 pour UDP/TCP et 5061 pour TLS. - Authentification et NAT
-
- Confirmez la validité des identifiants pour l’authentification SIP.
- Utilisez Session Traversal Utilities for NAT (STUN) ou Traversal Using Relays around NAT (TURN) pour gérer les problèmes liés au NAT.
Vérifier la syntaxe des URI SIP
Les URI SIP doivent suivre un format spécifique, comme sip:utilisateur@domaine.com. Assurez-vous que le préfixe sip:, le nom d’utilisateur et le domaine sont tous corrects. Faites attention aux fautes de frappe, aux espaces supplémentaires ou aux éléments manquants. Un seul caractère mal placé peut amener le serveur à rejeter la requête et à renvoyer une erreur 400. Examinez attentivement l’URI et vous repérerez souvent le problème rapidement !
Étapes :
- Valider les URI
Vérifiez les URI From, To et Contact dans le message SIP. Assurez-vous que les formats sont corrects, comme sip:utilisateur@domaine ou sip:utilisateur@IP:port. - Caractères invalides
Supprimez tout caractère non autorisé dans les URI SIP. Les problèmes courants incluent :
- Espaces dans les URI.
- Informations utilisateur manquantes (par exemple, sip:@domaine).
- URI basées sur une IP
Lors de l’utilisation d’une adresse IP, incluez le port correct si vous n’utilisez pas le port SIP par défaut :
graphql
Copy code
sip:username@192.168.1.1:5060
Exemple
Une URI mal formatée comme sip:user domain au lieu de sip:user@domain déclenchera une erreur SIP 400.
Analyser les journaux du serveur
Les journaux du serveur sont comme le carnet d’un détective : ils regorgent d’indices et sont indispensables pour identifier les problèmes spécifiques qui provoquent des erreurs SIP 400 ! Si vous pouvez y accéder, examinez les journaux autour du moment où l’erreur s’est produite. Ils peuvent indiquer s’il y a un problème de format de la requête ou si l’authentification a échoué. Regardez les horodatages pour faire correspondre l’erreur à votre requête. C’est un excellent moyen de déterminer si le problème vient de votre côté ou de celui du serveur. Parmi les erreurs couramment révélées figurent des en-têtes mal formés, des échecs d’authentification ou des incompatibilités de protocole.
Étapes :
- Accéder aux journaux
Localisez les journaux du serveur SIP. Emplacements typiques :- Asterisk : /var/log/asterisk/full
- FreeSWITCH : /var/log/freeswitch.log
- Filtrer les messages SIP
Utilisez des filtres pour isoler les journaux pertinents pour un Call-ID SIP spécifique ou un code d’erreur. - Comparer avec les paquets capturés
Recoupez les journaux du serveur avec les captures de paquets SIP afin d’identifier les divergences.
Exemple
Des journaux contenant des messages tels que 400 Bad Request – Invalid Contact Header indiquent un en-tête Contact incorrectement formaté.
Outils
- Splunk : Pour l’analyse avancée des journaux.
- Scripts personnalisés : Utilisez des regex pour analyser les journaux à la recherche d’erreurs spécifiques.
Techniques avancées de dépannage
Si les bases n’ont pas suffi, il est temps de sortir l’artillerie lourde. Une excellente option est SIPp, un outil puissant qui permet de simuler des appels SIP. Il est parfait pour identifier des erreurs d’analyse ou repérer des problèmes qui ne sont pas évidents lors d’une utilisation normale. Vous pouvez également essayer des validateurs SIP pour détecter des erreurs de syntaxe cachées. Toujours pas sûr ? Tester avec un autre appareil ou une autre application peut révéler si le problème est isolé à votre configuration actuelle. Ces méthodes peuvent sembler un peu techniques, mais elles changent la donne lorsqu’il s’agit de trouver des problèmes complexes et cachés.
Valider l’analyse SIP avec des outils de test
Utilisez des outils comme SIPp pour simuler des appels SIP et identifier des erreurs d’analyse.
shell
Copy code
sipp -sf scenario.xml -s 1000 192.168.1.10:5060
Activer le mode débogage sur les serveurs SIP
Augmentez le niveau de verbosité des journaux sur votre serveur SIP pour un débogage détaillé :
- Asterisk : core set debug 5
- FreeSWITCH : loglevel 7
Contacter le support du fournisseur
Toujours bloqué ? Ne vous inquiétez pas, c’est à cela que sert le support du fournisseur ! Contactez votre fournisseur SIP ou le fabricant de l’appareil et expliquez-leur la situation. Partagez les journaux ou les détails de ce que vous avez déjà essayé. Plus vous fournissez d’informations, plus ils pourront vous aider rapidement. Parfois, la solution est quelque chose qu’ils ont déjà rencontré, et ils peuvent vous remettre sur la bonne voie en un rien de temps.
Étapes
- Rassemblez les données pertinentes, notamment :
- Journaux SIP.
- Captures de paquets.
- Fichiers de configuration.
- Ouvrez un ticket de support avec une description détaillée du problème.
- Demandez des mises à jour sur les bogues connus, les correctifs de firmware ou des diagnostics supplémentaires.
Résumé
Le dépannage des erreurs SIP 400 peut être frustrant, mais avec un peu de patience et des vérifications méthodiques, vous constaterez très probablement qu’il s’agit simplement d’une petite correction à effectuer. La résolution des erreurs SIP 400 implique de vérifier l’exactitude des schémas de numérotation et des en-têtes SIP, de s’assurer que les paramètres des appareils sont correctement configurés pour la compatibilité et d’analyser les journaux du serveur afin d’identifier la cause profonde. Si le problème persiste, contactez le support du fournisseur avec des informations de diagnostic détaillées pour une résolution plus rapide.
Procédez étape par étape et n’hésitez pas à demander de l’aide si nécessaire. Vous pouvez le faire !