În acest articol, vom discuta despre elementele de bază ale capturării și analizei traficului SIP generat de sistemul telefonic 3CX. Articolul este destinat administratorilor de sistem începători sau utilizatorilor obișnuiți care se ocupă de întreținerea telefoniei. Pentru o aprofundare a subiectului, recomandăm să parcurgeți .
3CX V16 permite capturarea traficului SIP direct prin interfața web a serverului și salvarea acestuia în format standard Wireshark PCAP. Puteți atașa fișierul de captură când contactați suportul tehnic sau îl puteți descărca pentru o analiză ulterioară.
Dacă 3CX rulează pe Windows, trebuie să instalați manual Wireshark pe serverul 3CX. În caz contrar, la încercarea de captură va apărea următorul mesaj.

În sistemele Linux, utilitarul tcpdump se instalează automat odată cu instalarea sau actualizarea 3CX.
Capturarea traficului
Pentru a începe captura, mergeți la secțiunea interfeței Acasă > Evenimente SIP și selectați interfața pe care doriți să efectuați captura. De asemenea, se poate captura traficul pe toate interfețele simultan, cu excepția interfețelor de tunelare IPv6.

În 3CX pentru Linux, se poate efectua captura traficului pentru gazda locală (lo). Această captura este utilizată pentru analiza conexiunilor clienților SIP prin tehnologia .
Butonul „Capturare trafic” pornește Wireshark pe Windows sau tcpdump pe Linux. În acel moment, trebuie să reproduceți rapid problema, deoarece captura încarcă procesorul și ocupă suficient spațiu pe disc.

Acordați atenție următoarelor parametrii de apel:
- Numărul de la care s-a sunat, numărul apelat și celelalte numere / participanți la apel.
- Ora exactă a apariției problemei conform ceasului serverului 3CX.
- Ruta parcursă de apel.
Încercați să nu faceți clic în alte părți ale interfeței, cu excepția butonului „Oprire”. De asemenea, nu navigați pe alte link-uri în această fereastră a browserului. Altfel, captura traficului va continua în fundal și va duce la o sarcină suplimentară pe server.
Obținerea fișierului de captură
Butonul „Oprire” oprește captura și salvează fișierul de captură. Puteți descărca fișierul pe computerul dumneavoastră pentru analiză în utilitarul Wireshark sau genera un fișier special , care va include această captură și alte informații de depanare. După descărcare sau includerea în pachetul de suport tehnic, fișierul de captură este șters automat de pe serverul 3CX din motive de securitate.
Pe serverul 3CX, fișierul se află la următoarea locație:
- Windows: C:ProgramData3CXInstance1DataLogsdump.pcap
- Linux: /var/lib/3cxpbx/Instance/Data/Logs/dump.pcap
Pentru a evita o sarcină crescută pe server sau pierderi de pachete în timpul capturării, perioada de capturare este limitată la 2 milioane de pachete. După aceasta, capturarea se oprește automat. Dacă aveți nevoie de o capturare mai lungă, utilizați utilitarul Wireshark, așa cum este descris mai jos.
Capturarea traficului cu utilitarul Wireshark
Dacă sunteți interesat de o analiză mai profundă a traficului de rețea, capturați-l manual. Descărcați utilitarul Wireshark pentru sistemul dumneavoastră de operare . După instalarea utilitarului pe serverul 3CX, accesați secțiunea Capture > Interfaces. Aici vor fi afișate toate interfețele de rețea ale sistemului de operare. Adresele IP ale interfețelor pot fi afișate conform standardului IPv6. Pentru a vedea adresa IPv4, faceți clic pe adresa IPv6.

Selectați interfața pentru capturare și apăsați butonul Options. Debifați Capture Traffic in promiscuous mode, iar celelalte setări le lăsați nemodificate.

Acum ar trebui să recreați problema. Când problema este recreată, opriți capturarea (meniul Capture > Stop). Puteți extrage mesajele SIP din meniul Telephony > SIP Flows.
Bazele analizei traficului — mesaj SIP INVITE
Vom analiza câmpurile principale ale mesajului SIP INVITE, care este trimis pentru stabilirea apelului VoIP, adică reprezintă punctul de plecare pentru analiză. De obicei, SIP INVITE include între 4 și 6 câmpuri cu informații utilizate de dispozitivele SIP finale (telefoane, gateway-uri) și operatorii de telecomunicații. Înțelegerea conținutului INVITE și a mesajelor ce urmează ajută adesea la identificarea sursei problemei. În plus, cunoașterea câmpurilor INVITE ajută la conectarea operatorilor SIP cu 3CX sau la integrarea 3CX cu alte centrale telefonice SIP.
În mesajul INVITE, utilizatorii (sau dispozitivele SIP) sunt identificați prin URI. De obicei, SIP URI constă din numărul de telefon al utilizatorului + adresa serverului SIP. SIP URI este foarte asemănător cu o adresă de e-mail și este scris ca sip:x@y:Port.

Request-Line-URI:
Request-Line-URI — câmpul conține destinatarul apelului. Acesta conține aceleași informații ca și câmpul To, dar fără numele de utilizator afișat (Display Name).
Via:
Via — fiecare server SIP (proxy) prin care trece cererea INVITE adaugă în partea de sus a listei Via adresa sa IP și portul pe care a primit mesajul. Apoi, mesajul este transmis mai departe pe parcursul său. Când destinatarul final răspunde la cererea INVITE, toate nodurile de tranzit «vizualizează» antetul Via și returnează mesajul expeditorului pe aceeași rută. În acest proces, proxy-ul SIP de tranzit elimină datele sale din antet.
De la:
De la — antetul indică inițiatorul cererii din perspectiva serverului SIP. Antetul este format într-un mod similar cu adresa de e-mail (user@domain, unde user este numărul de extensie al utilizatorului 3CX, iar domain este adresa IP locală sau domeniul SIP al serverului 3CX). La fel ca antetul To, antetul De la conține URI și, opțional, numele de utilizator afișat Display Name. Din antetul De la se poate înțelege cum ar trebui să fie gestionată această cerere SIP.
Standardul SIP RFC 3261 prevede că, dacă numele de utilizator afișat Display Name nu este transmis, telefonul IP sau gateway-ul VoIP (UAC) trebuie să folosească numele „Anonymous”, de exemplu, De la: „Anonymous” <sip:10000@10.172.0.2>.
Către:
Către — acest antet indică destinatarul cererii. Acesta poate fi fie destinatarul final al apelului, fie un legătură intermediară. De obicei, antetul conține SIP URI, dar sunt posibile și alte scheme (vezi RFC 2806 [9]). Totuși, SIP URI trebuie să fie acceptat în toate implementările protocolului SIP, indiferent de producătorul echipamentului. Antetul Către poate conține, de asemenea, numele de utilizator afișat Display Name, de exemplu, Către: „Nume Prenume” <sip:101@10.172.0.2>).
De obicei, câmpul Către conține SIP URI care indică primul (următorul) proxy SIP care va gestiona cererea. Nu este neapărat să fie destinatarul final al cererii.
Contact:
Contact — antetul conține SIP URI, prin care se poate lua legătura cu expeditorul cererii INVITE. Acesta este un antet obligatoriu, care trebuie să conțină un singur SIP URI. Este parte a comunicării bidirecționale, corespunzătoare cererii inițiale SIP INVITE. Este foarte important ca antetul Contact să conțină informații corecte (inclusiv adresa IP) prin care expeditorul cererii așteaptă un răspuns. URI Contact este utilizat și în comunicările ulterioare, deja după stabilirea sesiunii de comunicare.
Permite:
Permite — câmpul conține o listă de parametri (metode SIP) separate prin virgulă. Acestea descriu ce funcționalități ale protocolului SIP sunt suportate de acest expeditor (dispozitiv). Lista completă a metodelor: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE, UPDATE. Detalii suplimentare despre metodele SIP sunt descrise. .
Sursa: habr.com
