W tym artykule omówimy podstawy przechwytywania i analizy ruchu SIP generowanego przez centralę 3CX. Artykuł jest skierowany do początkujących administratorów systemów lub zwykłych użytkowników, którzy zajmują się obsługą telefonii. Aby głębiej zgłębić temat, polecamy przystąpić do .
3CX V16 umożliwia przechwytywanie ruchu SIP bezpośrednio przez interfejs webowy serwera i zapisywanie w standardowym formacie Wireshark PCAP. Możesz załączyć plik przechwytywania, kontaktując się z pomocą techniczną, lub pobrać go do samodzielnej analizy.
Jeśli 3CX działa na Windowsie, należy samodzielnie zainstalować Wireshark na serwerze 3CX. W przeciwnym razie podczas próby przechwycenia pojawi się następujący komunikat.

W systemach Linux narzędzie tcpdump instalowane jest automatycznie podczas instalacji lub aktualizacji 3CX.
Przechwytywanie ruchu
Aby rozpocząć przechwytywanie, przejdź do sekcji interfejsu Główna > Zdarzenia SIP i wybierz interfejs, na którym należy przeprowadzić przechwytywanie. Możliwe jest również przechwytywanie ruchu na wszystkich interfejsach jednocześnie, z wyjątkiem interfejsów tunelowania IPv6.

W 3CX dla Linux można przechwytywać ruch dla lokalnego hosta (lo). To przechwytywanie służy do analizy połączeń klientów SIP w technologii .
Przycisk „Przechwytywanie ruchu” uruchamia Wireshark na Windowsie lub tcpdump na Linuxie. W tym momencie należy szybko odtworzyć problem, ponieważ przechwytywanie obciążą procesor i zajmie sporo miejsca na dysku.

Zwróć uwagę na następujące parametry połączenia:
- Numer, z którego dzwoniono, numer, na który dzwoniono oraz inne numery / uczestnicy połączenia.
- Dokładny czas wystąpienia problemu wg zegara serwera 3CX.
- Trasa przejścia połączenia.
Staraj się nie klikać w inne miejsca w interfejsie oprócz przycisku „Zatrzymaj”. Nie przechodź również do innych linków w tym oknie przeglądarki. W przeciwnym razie, przechwytywanie ruchu będzie kontynuowane w tle i spowoduje dodatkowe obciążenie serwera.
Pobieranie pliku przechwytywania
Przycisk „Zatrzymaj” zatrzymuje przechwytywanie i zapisuje plik przechwytywania. Możesz pobrać plik na swój komputer do analizy w narzędziu Wireshark lub wygenerować specjalny plik , który będzie zawierał ten zrzut oraz inne informacje debugujące. Po pobraniu lub dołączeniu do pakietu wsparcia technicznego, plik zrzutu jest automatycznie usuwany z serwera 3CX w celach bezpieczeństwa.
Na serwerze 3CX plik znajduje się w następującej lokalizacji:
- Windows: C:ProgramData3CXInstance1DataLogsdump.pcap
- Linux: /var/lib/3cxpbx/Instance/Data/Logs/dump.pcap
Aby uniknąć nadmiernego obciążenia serwera lub utraty pakietów podczas zrzutu, czas zrzutu jest ograniczony do 2 milionów pakietów. Po tym zrzut automatycznie się zatrzymuje. Jeśli potrzebujesz dłuższego zrzutu, użyj osobnego narzędzia Wireshark, jak opisano poniżej.
Zrzut ruchu za pomocą narzędzia Wireshark
Jeśli interesuje Cię głębsza analiza ruchu sieciowego, zrzutuj go ręcznie. Pobierz narzędzie Wireshark dla swojego systemu operacyjnego. . Po zainstalowaniu narzędzia na serwerze 3CX, przejdź do sekcji Capture > Interfaces. Tutaj będą pokazane wszystkie interfejsy sieciowe systemu operacyjnego. Adresy IP interfejsów mogą być wyświetlane w standardzie IPv6. Aby zobaczyć adres IPv4, kliknij na adres IPv6.

Wybierz interfejs do zrzutu i naciśnij przycisk Opcje. Odznacz opcję Capture Traffic in promiscuous mode, pozostawiając pozostałe ustawienia bez zmian.

Teraz należy odtworzyć problem. Gdy problem zostanie odtworzony, zatrzymaj zrzut (menu Capture > Stop). Możesz wyodrębnić wiadomości SIP w menu Telephony > SIP Flows.
Podstawy analizy ruchu — wiadomość SIP INVITE
Rozważmy podstawowe pola wiadomości SIP INVITE, która jest wysyłana w celu nawiązania połączenia VoIP, tzn. stanowi punkt wyjścia do analizy. Zazwyczaj SIP INVITE zawiera od 4 do 6 pól z informacjami, które są używane przez końcowe urządzenia SIP (telefony, bramy) oraz operatorów telekomunikacyjnych. Zrozumienie zawartości INVITE oraz kolejnych wiadomości pomaga często w ustaleniu źródła problemu. Ponadto znajomość pól INVITE pomaga przy podłączaniu operatorów SIP do 3CX lub integrowaniu 3CX z innymi centralami SIP.
W wiadomości INVITE użytkownicy (lub urządzenia SIP) są identyfikowani za pomocą URI. Zazwyczaj SIP URI to numer telefonu użytkownika + adres serwera SIP. SIP URI jest bardzo podobny do adresu e-mail i jest zapisywany jako sip:x@y:Port.

Request-Line-URI:
Request-Line-URI — pole zawiera adresata połączenia. Zawiera tę samą informację, co pole To, ale bez pokazywanego imienia użytkownika (Display Name).
Via:
Via — każdy serwer SIP (proxy), przez który przechodzi zapytanie INVITE, dodaje na górze listy Via swój adres IP i port, na który otrzymał wiadomość. Następnie wiadomość jest przekazywana dalej zgodnie z trasą przemarszu. Gdy końcowy odbiorca odpowiada na zapytanie INVITE, wszystkie węzły tranzytowe „przeglądają” nagłówek Via i zwracają wiadomość nadawcy tą samą trasą. W tym samym czasie tranzytowy proxy SIP usuwa swoje dane z nagłówka.
From:
From — nagłówek wskazuje na inicjatora zapytania z punktu widzenia serwera SIP. Nagłówek jest tworzony w sposób podobny do adresu e-mail (user@domain, gdzie user — numer wewnętrzny użytkownika 3CX, a domain — lokalny adres IP lub domena SIP serwera 3CX). Podobnie jak w nagłówku To, nagłówek From zawiera URI i opcjonalnie wyświetlaną nazwę użytkownika Display Name. Z nagłówka From można zrozumieć, jak należy przetwarzać to zapytanie SIP.
Standard SIP RFC 3261 przewiduje, że jeśli wyświetlana nazwa Display Name nie jest przekazywana, telefon IP lub brama VoIP (UAC) powinny używać wyświetlanej nazwy „Anonymous”, na przykład, From: „Anonymous” .
To:
To — ten nagłówek wskazuje na odbiorcę zapytania. Może to być zarówno końcowy odbiorca połączenia, jak i pośrednie ogniwo. Zazwyczaj w nagłówku znajduje się SIP URI, jednak możliwe są również inne schemy (zob. RFC 2806 [9]). Niemniej jednak SIP URI musi być obsługiwany we wszystkich implementacjach protokołu SIP, niezależnie od producenta sprzętu. Nagłówek To może również zawierać wyświetlaną nazwę Display Name, na przykład, To: „Imię Nazwisko” .
Zwykle pole To zawiera SIP URI wskazujący na pierwszy (następny) proxy SIP, który będzie przetwarzać zapytanie. Nie musi to być końcowy odbiorca zapytania.
Contact:
Contact — nagłówek zawiera SIP URI, pod którym można skontaktować się z nadawcą zapytania INVITE. Jest to obowiązkowy nagłówek, który musi zawierać tylko jeden SIP URI. Stanowi część dwustronnej komunikacji odpowiadającej początkowemu zapytaniu SIP INVITE. Bardzo ważne jest, aby nagłówek Contact zawierał poprawne informacje (w tym adres IP), pod którym nadawca zapytania oczekuje odpowiedzi. URI Contact jest również używane w dalszej komunikacji, już po ustanowieniu sesji komunikacyjnej.
Allow:
Dozwolone — pole zawiera listę parametrów (metod SIP) oddzielonych przecinkami. Opisują one, jakie możliwości protokołu SIP wspiera ten nadawca (urządzenie). Pełna lista metod: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE, UPDATE. Szczegóły dotyczące metod SIP opisano .
Źródło: habr.com
