In questo articolo parleremo delle basi della cattura e dell'analisi del traffico SIP generato da 3CX. L'articolo è destinato ai sistemisti principianti o agli utenti comuni a cui compete la manutenzione della telefonia. Per un approfondimento sull'argomento, ti consigliamo di seguire .
3CX V16 consente di catturare il traffico SIP direttamente tramite l'interfaccia web del server e di salvarlo nel formato standard Wireshark PCAP. Puoi allegare il file di cattura quando contatti il supporto tecnico o scaricarlo per un'analisi autonoma.
Se 3CX è in esecuzione su Windows, è necessario installare manualmente Wireshark sul server 3CX. In caso contrario, durante il tentativo di cattura apparirà il seguente messaggio.

Nei sistemi Linux, l'utilità tcpdump viene installata automaticamente durante l'installazione o l'aggiornamento di 3CX.
Cattura del traffico
Per iniziare la cattura, vai alla sezione dell'interfaccia principale > Eventi SIP e seleziona l'interfaccia da cui effettuare la cattura. È anche possibile catturare il traffico su tutte le interfacce contemporaneamente, ad eccezione delle interfacce di tunneling IPv6.

In 3CX per Linux è possibile catturare il traffico per l'host locale (lo). Questa cattura viene utilizzata per analizzare le connessioni dei client SIP tramite la tecnologia .
Il pulsante «Cattura traffico» avvia Wireshark su Windows o tcpdump su Linux. In questo momento è necessario riprodurre velocemente il problema, poiché la cattura carica il processore e occupa notevole spazio su disco.

Fai attenzione ai seguenti parametri della chiamata:
- Il numero dal quale si sta chiamando, a quale numero si sta chiamando e altri numeri / partecipanti alla chiamata.
- Il momento esatto in cui si verifica il problema in base all'orologio del server 3CX.
- Il percorso della chiamata.
Cerca di non cliccare in altre aree dell'interfaccia, ad eccezione del pulsante «Arresta». Inoltre, non navigare su altri link in questa finestra del browser. In caso contrario, la cattura del traffico continuerà in background e porterà a un carico aggiuntivo sul server.
Ottieni il file di cattura
Il pulsante «Arresta» interrompe la cattura e salva il file di cattura. Puoi scaricare il file sul tuo computer per analizzarlo con l'utilità Wireshark o generare un file speciale , che includerà questa cattura e altre informazioni di debug. Dopo il download o l'inclusione nel pacchetto di supporto, il file di cattura viene automaticamente eliminato dal server 3CX per motivi di sicurezza.
Sul server 3CX, il file si trova nel seguente percorso:
- Windows: C:ProgramData3CXInstance1DataLogsdump.pcap
- Linux: /var/lib/3cxpbx/Instance/Data/Logs/dump.pcap
Per evitare un carico eccessivo sul server o la perdita di pacchetti durante la cattura, il periodo di cattura è limitato a 2 milioni di pacchetti. Dopo questo limite, la cattura si interrompe automaticamente. Se hai bisogno di una cattura più lunga, utilizza l'utilità separata Wireshark, come descritto di seguito.
Cattura del traffico con l'utilità Wireshark
Se sei interessato a un'analisi più approfondita del traffico di rete, catturalo manualmente. Scarica l'utilità Wireshark per il tuo sistema operativo . Dopo aver installato l'utilità sul server 3CX, vai alla sezione Capture > Interfaces. Qui verranno mostrati tutti i protocolli di rete del sistema operativo. Gli indirizzi IP delle interfacce possono essere visualizzati nello standard IPv6. Per vedere l'indirizzo IPv4, fai clic sull'indirizzo IPv6.

Seleziona l'interfaccia per la cattura e premi il pulsante Options. Deseleziona Capture Traffic in promiscuous mode e lascia le altre impostazioni invariate.

Ora devi riprodurre il problema. Quando il problema si verifica, interrompi la cattura (menu Capture > Stop). Puoi selezionare i messaggi SIP nel menu Telephony > SIP Flows.
Fondamenti dell'analisi del traffico — messaggio SIP INVITE
Esaminiamo i campi principali del messaggio SIP INVITE, che viene inviato per stabilire una chiamata VoIP, cioè rappresenta il punto di partenza per l'analisi. Di solito, SIP INVITE include da 4 a 6 campi con informazioni utilizzate dai dispositivi SIP finali (telefoni, gateway) e dai fornitori di servizi. Comprendere il contenuto di INVITE e dei messaggi successivi spesso aiuta a identificare la fonte del problema. Inoltre, conoscere i campi di INVITE è utile quando si collegano operatori SIP a 3CX o quando si collegano 3CX ad altre centraline SIP.
Nel messaggio INVITE, gli utenti (o i dispositivi SIP) sono identificati tramite URI. Di solito, l'URI SIP è il numero di telefono dell'utente + indirizzo del server SIP. L'URI SIP è molto simile a un indirizzo e-mail ed è scritto come sip:x@y:Port.

Request-Line-URI:
Request-Line-URI — il campo contiene il destinatario della chiamata. Contiene le stesse informazioni del campo To, ma senza il nome visualizzato dell'utente (Display Name).
Via:
Via — ogni server SIP (proxy) attraverso il quale passa la richiesta INVITE aggiunge in cima all'elenco Via il proprio indirizzo IP e la porta su cui è stato ricevuto il messaggio. Successivamente, il messaggio viene inoltrato lungo il percorso. Quando il destinatario finale risponde alla richiesta INVITE, tutti i nodi di transito "esaminano" l'intestazione Via e restituiscono il messaggio al mittente lungo lo stesso percorso. In questo processo, il proxy SIP di transito rimuove i propri dati dall'intestazione.
From:
From — l'intestazione indica l'iniziatore della richiesta dal punto di vista del server SIP. L'intestazione è formata nello stesso modo di un indirizzo e-mail (user@domain, dove user è il numero interno dell'utente 3CX e domain è l'indirizzo IP locale o il dominio SIP del server 3CX). Così come l'intestazione To, l'intestazione From contiene URI e, opzionalmente, il nome visualizzabile dell'utente Display Name. Dall'intestazione From è possibile capire come gestire questa richiesta SIP.
Lo standard SIP RFC 3261 prevede che se il nome visualizzabile Display Name non viene trasmesso, il telefono IP o il gateway VoIP (UAC) debbano utilizzare il nome visualizzabile "Anonymous", ad esempio, From: "Anonymous" .
To:
To — questa intestazione indica il destinatario della richiesta. Può essere sia il destinatario finale della chiamata che un intermediario. Di solito, l'intestazione contiene un SIP URI, ma sono possibili anche altre schemi (vedi RFC 2806 [9]). Tuttavia, il SIP URI deve essere supportato in tutte le implementazioni del protocollo SIP, indipendentemente dal produttore dell'hardware. L'intestazione To può anche contenere un nome visualizzabile Display Name, ad esempio, To: "Nome Cognome" ).
Di solito, il campo To contiene un SIP URI che indica il primo (prossimo) proxy SIP che gestirà la richiesta. Questo non deve necessariamente essere il destinatario finale della richiesta.
Contact:
Contact — l'intestazione contiene il SIP URI attraverso il quale è possibile contattare il mittente della richiesta INVITE. Questa è un'intestazione obbligatoria che deve contenere solo un SIP URI. È parte della comunicazione bidirezionale, corrispondente alla richiesta iniziale SIP INVITE. È molto importante che l'intestazione Contact contenga informazioni corrette (incluso l'indirizzo IP) attraverso il quale il mittente della richiesta si aspetta una risposta. L'URI Contact viene utilizzato anche nelle comunicazioni successive, già dopo l'instaurazione della sessione di comunicazione.
Allow:
Allow — il campo contiene un elenco di parametri (metodi SIP) separati da virgole. Questi descrivono quali funzionalità del protocollo SIP supporta questo mittente (dispositivo). L'elenco completo dei metodi: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE, UPDATE. Maggiori dettagli sui metodi SIP possono essere trovati .
Fonte: habr.com
