Dans cet article, nous parlerons des bases de la capture et de l'analyse du trafic SIP généré par le PBX 3CX. L'article s'adresse aux administrateurs système novices ou aux utilisateurs ordinaires dont les responsabilités incluent la maintenance de la téléphonie. Pour une étude approfondie du sujet, nous vous recommandons de parcourir
3CX V16 vous permet de capturer le trafic SIP directement via l'interface Web du serveur et de l'enregistrer au format standard Wireshark PCAP. Vous pouvez joindre le fichier de capture lorsque vous contactez le support technique ou le télécharger pour une analyse indépendante.
Si 3CX fonctionne sous Windows, vous devrez installer Wireshark sur le serveur 3CX vous-même. Sinon, le message suivant apparaîtra lorsque vous tenterez de capturer.
Sur les systèmes Linux, l'utilitaire tcpdump est installé automatiquement lors de l'installation ou de la mise à jour de 3CX.
Capture du trafic
Pour lancer la capture, rendez-vous dans la section interface Accueil > Événements SIP et sélectionnez l'interface sur laquelle capturer. Vous pouvez également capturer le trafic sur toutes les interfaces simultanément, à l'exception des interfaces de tunneling IPv6.
Dans 3CX pour Linux, vous pouvez capturer le trafic pour l'hôte local (lo). Cette capture est utilisée pour analyser les connexions des clients SIP à l'aide de la technologie
Le bouton Traffic Capture lance Wireshark sous Windows ou tcpdump sous Linux. À ce stade, vous devez reproduire rapidement le problème, car... la capture est gourmande en CPU et occupe une bonne quantité d’espace disque.
Faites attention aux paramètres d'appel suivants :
- Le numéro à partir duquel l'appel a été passé, vers lequel d'autres numéros/participants à l'appel ont également appelé.
- L'heure exacte à laquelle le problème est survenu selon l'horloge du serveur 3CX.
- Itinéraire d'appel.
Essayez de ne cliquer nulle part dans l'interface, sauf sur le bouton « Stop ». Ne cliquez pas non plus sur d’autres liens dans cette fenêtre de navigateur. Sinon, la capture du trafic se poursuivra en arrière-plan et entraînera une charge supplémentaire sur le serveur.
Réception d'un fichier de capture
Le bouton Arrêter arrête la capture et enregistre le fichier de capture. Vous pouvez télécharger le fichier sur votre ordinateur pour analyse dans l'utilitaire Wireshark ou générer un fichier spécial
Sur le serveur 3CX le fichier se trouve à l'emplacement suivant :
- Windows : C:ProgramData3CXInstance1DataLogsdump.pcap
- Linux : /var/lib/3cxpbx/Instance/Data/Logs/dump.pcap
Pour éviter une charge accrue du serveur ou une perte de paquets pendant la capture, la période de capture est limitée à 2 millions de paquets. Après cela, la capture s'arrête automatiquement. Si vous avez besoin d'une capture plus longue, utilisez l'utilitaire Wireshark distinct comme décrit ci-dessous.
Capturez le trafic avec l'utilitaire Wireshark
Si vous souhaitez une analyse plus approfondie du trafic réseau, capturez-le manuellement. Téléchargez l'utilitaire Wireshark pour votre système d'exploitation
Sélectionnez l'interface à capturer et cliquez sur le bouton Options. Décochez Capturer le trafic en mode promiscuité et laissez le reste des paramètres inchangés.
Vous devez maintenant reproduire le problème. Lorsque le problème se reproduit, arrêtez la capture (Menu Capture > Stop). Vous pouvez sélectionner les messages SIP dans le menu Téléphonie > Flux SIP.
Bases de l'analyse du trafic - Message SIP INVITE
Regardons les principaux champs du message SIP INVITE, qui est envoyé pour établir un appel VoIP, c'est-à-dire : est le point de départ de l’analyse. En règle générale, SIP INVITE comprend de 4 à 6 champs contenant des informations utilisées par les appareils finaux SIP (téléphones, passerelles) et les opérateurs de télécommunications. Comprendre le contenu de l'INVITE et les messages qui la suivent peut souvent aider à déterminer la source du problème. De plus, la connaissance des champs INVITE est utile lors de la connexion des opérateurs SIP à 3CX ou de la combinaison de 3CX avec d'autres PBX SIP.
Dans le message INVITE, les utilisateurs (ou appareils SIP) sont identifiés par URI. Généralement, l'URI SIP est le numéro de téléphone de l'utilisateur + l'adresse du serveur SIP. L'URI SIP est très similaire à une adresse e-mail et s'écrit sip:x@y:Port.
URI de ligne de requête :
Request-Line-URI - Le champ contient le destinataire de l'appel. Il contient les mêmes informations que le champ À, mais sans le nom d'affichage de l'utilisateur.
Via:
Via - chaque serveur SIP (proxy) par lequel transite la requête INVITE ajoute son adresse IP et le port sur lequel le message a été reçu en haut de la liste Via. Le message est ensuite transmis plus loin sur le parcours. Lorsque le destinataire final répond à une demande INVITE, tous les nœuds de transit « recherchent » l'en-tête Via et renvoient le message à l'expéditeur le long du même itinéraire. Dans ce cas, le proxy SIP de transit supprime ses données de l'en-tête.
À partir de
From - l'en-tête indique l'initiateur de la requête du point de vue du serveur SIP. L'en-tête est formé de la même manière qu'une adresse e-mail (utilisateur@domaine, où utilisateur est le numéro de poste de l'utilisateur 3CX, et domaine est l'adresse IP locale ou le domaine SIP du serveur 3CX). Comme l'en-tête To, l'en-tête From contient un URI et éventuellement le nom d'affichage de l'utilisateur. En regardant l’en-tête From, vous pouvez comprendre exactement comment cette demande SIP doit être traitée.
La norme SIP RFC 3261 stipule que si le Display Name n'est pas transmis, le téléphone IP ou la passerelle VoIP (UAC) doit utiliser le Display Name « Anonyme », par exemple From : « Anonymous »[email protected]>.
À:
À - Cet en-tête indique le destinataire de la demande. Celui-ci peut être soit le destinataire final de l'appel, soit un lien intermédiaire. Généralement l'en-tête contient l'URI SIP, mais d'autres schémas sont possibles (voir RFC 2806 [9]). Cependant, les URI SIP doivent être pris en charge dans toutes les implémentations du protocole SIP, quel que soit le fabricant du matériel. L'en-tête À peut également contenir un nom d'affichage, par exemple À : "Prénom Nom de famille"[email protected]>).
Généralement, le champ À contient un URI SIP pointant vers le premier (suivant) proxy SIP qui traitera la demande. Il n'est pas nécessaire qu'il s'agisse du destinataire final de la demande.
Contact :
Contact - l'en-tête contient l'URI SIP par lequel vous pouvez contacter l'expéditeur de la demande INVITE. Il s’agit d’un en-tête obligatoire et ne doit contenir qu’un seul URI SIP. Il fait partie de la communication bidirectionnelle correspondant à la requête SIP INVITE originale. Il est très important que l'en-tête Contact contienne les informations correctes (y compris l'adresse IP) auxquelles l'expéditeur de la demande attend une réponse. L'URI Contact est également utilisé dans d'autres communications, une fois la session de communication établie.
Autoriser:
Autoriser - le champ contient une liste de paramètres (méthodes SIP), séparés par des virgules. Ils décrivent les capacités du protocole SIP prises en charge par un expéditeur (appareil) donné. Liste complète des méthodes : ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE, UPDATE. Les méthodes SIP sont décrites plus en détail
Source: habr.com