V tomto článku se budeme zabývat základy zachytávání a analýzy SIP provozu generovaného PBX 3CX. Článek je určen začínajícím systémovým administrátorům nebo běžným uživatelům, jejichž úkolem je údržba telefonie. Pro hloubkové studium tématu doporučujeme absolvovat .
3CX V16 umožňuje zachytávat SIP provoz přímo prostřednictvím webového rozhraní serveru a ukládat jej ve standardním formátu Wireshark PCAP. Můžete připojit soubor zachycení při kontaktování technické podpory nebo ho stáhnout pro vlastní analýzu.
Pokud 3CX běží na Windows, je nutné si na server 3CX nainstalovat Wireshark. Jinak se při pokusu o zachycení zobrazí následující zpráva.

V Linuxových systémech je nástroj tcpdump automaticky nainstalován při instalaci nebo aktualizaci 3CX.
Zachycení provozu
Pro zahájení zachycení přejděte na rozhraní Hlavní > Události SIP a vyberte rozhraní, na kterém má být zachycení provedeno. Také můžete zachytávat provoz na všech rozhraních současně, kromě tunelovacích rozhraní IPv6.

V 3CX pro Linux lze provádět zachycení provozu pro místní hostitele (lo). Toto zachycení se používá pro analýzu připojení SIP klientů pomocí technologie .
Tlačítko „Zachytit provoz“ spouští Wireshark na Windows nebo tcpdump na Linuxu. V tuto chvíli je potřeba rychle reprodukovat problém, protože zachycení zatěžuje procesor a zabírá značné místo na disku.

Věnujte pozornost následujícím parametrům hovoru:
- Číslo, ze kterého bylo voláno, číslo, na které bylo voláno a další čísla / účastníci hovoru.
- Přesný čas vzniku problému dle hodin serveru 3CX.
- Trasa průchodu hovoru.
Snažte se neklikat na jiná místa v rozhraní kromě tlačítka „Zastavit“. Také nepřejíždějte na jiné odkazy v tomto okně prohlížeče. Jinak bude zachycení provozu pokračovat na pozadí a povede k dalšímu zatížení serveru.
Získání souboru zachycení
Tlačítko „Zastavit“ zastaví zachycení a uloží soubor zachycení. Můžete si soubor stáhnout na svůj počítač pro analýzu v nástroji Wireshark nebo vygenerovat speciální soubor , který zahrnuje tento záznam a další ladicí informace. Po stažení nebo zahrnutí do balíčku technické podpory se soubor záznamu automaticky odstraní ze serveru 3CX z bezpečnostních důvodů.
Na serveru 3CX se soubor nachází na následujícím místě:
- Windows: C:ProgramData3CXInstance1DataLogsdump.pcap
- Linux: /var/lib/3cxpbx/Instance/Data/Logs/dump.pcap
Aby se předešlo nadměrnému zatížení serveru nebo ztrátě paketů při záznamu, je doba záznamu omezena na 2 miliony paketů. Poté se záznam automaticky zastaví. Pokud potřebujete delší záznam, použijte samostatný nástroj Wireshark, jak je popsáno níže.
Záznam provozu pomocí nástroje Wireshark
Pokud zvažujete hlubší analýzu síťového provozu, záznam provádějte ručně. Stáhněte nástroj Wireshark pro váš operační systém . Po nainstalování nástroje na serveru 3CX přejděte do sekce Záznam > Rozhraní. Zde budou zobrazeny všechna síťová rozhraní operačního systému. IP adresy rozhraní se mohou zobrazovat ve standardu IPv6. Chcete-li vidět adresu IPv4, klikněte na adresu IPv6.

Vyberte rozhraní pro záznam a klikněte na tlačítko Možnosti. Zrušte zaškrtnutí u Záznam provozu v promiscuous módu, ostatní nastavení ponechte beze změny.

Nyní je potřeba reprodukovat problém. Jakmile problém nastane, zastavte záznam (menu Záznam > Zastavit). SIP zprávy lze vyfiltrovat v menu Telephony > SIP Flows.
Základy analýzy provozu – zpráva SIP INVITE
Podívejme se na hlavní pole zprávy SIP INVITE, která se odesílá pro zahájení VoIP hovoru, tedy je výchozím bodem pro analýzu. Obvykle SIP INVITE obsahuje 4 až 6 polí s informacemi, které používají koncová SIP zařízení (telefony, brány) a poskytovatelé služeb. Pochopení obsahu INVITE a následujících zpráv často pomáhá určit zdroj problému. Kromě toho znalost polí INVITE pomáhá při připojování SIP operátorů k 3CX nebo při propojení 3CX s jinými SIP PBX.
V zprávě INVITE jsou uživatelé (nebo SIP zařízení) určeni podle URI. Obvykle je SIP URI telefonní číslo uživatele + adresa SIP serveru. SIP URI je velmi podobné emailové adrese a je zapsáno jako sip:x@y:Port.

Request-Line-URI:
Request-Line-URI – pole obsahuje příjemce hovoru. Obsahuje stejné informace jako pole To, ale bez zobrazeného názvu uživatele (Display Name).
Via:
Via — každý SIP server (proxy), přes který prochází žádost INVITE, přidává na začátek seznamu Via svou IP adresu a port, na který byla zpráva doručena. Poté je zpráva předána dále po trase. Když koncový příjemce odpoví na žádost INVITE, všechny tranzitní uzly „procházejí“ hlavičku Via a vracejí zprávu odesílateli stejnou cestou. Při tom tranzitní SIP proxy odstraňuje své údaje z hlavičky.
Od:
Od — hlavička uvádí iniciátora žádosti z pohledu SIP serveru. Hlavička je sestavena stejným způsobem jako e-mailová adresa (user@domain, kde user je vnitřní číslo uživatele 3CX a domain je lokální IP adresa nebo SIP doména serveru 3CX). Stejně jako hlavička To, hlavička Od obsahuje URI a volitelně zobrazené jméno uživatele Display Name. Podle hlavičky Od lze pochopit, jakým způsobem by se měla tato SIP žádost zpracovávat.
Standard SIP RFC 3261 stanoví, že pokud se nezakládá zobrazené jméno Display Name, měl by IP telefon nebo VoIP brána (UAC) použít zobrazené jméno „Anonymous“, například Od: „Anonymous“ .
K:
K — tato hlavička ukazuje příjemce žádosti. Může to být jak koncový příjemce hovoru, tak prostřední článek. Obvykle hlavička obsahuje SIP URI, avšak možné jsou i jiné schémata (viz RFC 2806 [9]). Nicméně SIP URI by měl být podporován ve všech implementacích protokolu SIP, bez ohledu na výrobce zařízení. Hlavička K může také obsahovat zobrazené jméno Display Name, například K: „Jméno Příjmení“ ).
Obvykle pole K obsahuje SIP URI, které ukazuje na první (další) SIP proxy, jež bude zpracovávat žádost. Není nutné, aby se jednalo o koncového příjemce žádosti.
Kontaktní:
Kontaktní — hlavička obsahuje SIP URI, na kterém lze kontaktovat odesílatele žádosti INVITE. Toto je povinná hlavička, která by měla obsahovat pouze jeden SIP URI. Je součástí obousměrné komunikace odpovídající původnímu požadavku SIP INVITE. Je velmi důležité, aby hlavička Kontaktní obsahovala správné informace (včetně IP adresy), na kterou odesílatel žádosti očekává odpověď. URI Kontaktní se používá i v dalších komunikacích, již po navázání komunikačního relace.
Povolit:
Povolení — pole obsahuje seznam parametrů (SIP metod), oddělených čárkou. Tyto metody popisují, které funkce protokolu SIP podporuje daný odesílatel (zařízení). Kompletní seznam metod: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE, UPDATE. Podrobnosti o metodách SIP jsou popsány .
Zdroj: habr.com
