I denne artikel vil vi tale om grundlæggende opfangning og analyse af SIP-trafik genereret af 3CX telefonisystemet. Artiklen henvender sig til begyndere blandt systemadministratorer eller almindelige brugere, hvis opgaver omfatter vedligeholdelse af telefonisystemet. For en dybere forståelse af emnet anbefaler vi at gennemgå .
3CX V16 gør det muligt at opfange SIP-trafik direkte gennem serverens webgrænseflade og gemme den i det standardiserede Wireshark PCAP-format. Du kan vedhæfte opfangningsfilen, når du kontakter supporten, eller downloade den til selvstændig analyse.
Hvis 3CX kører på Windows, skal Wireshark installeres manuelt på 3CX serveren. Ellers vil der fremkomme følgende meddelelse ved forsøg på opfangning.

I Linux-systemer installeres tcpdump automatisk ved installation eller opdatering af 3CX.
Opgang af trafik
For at starte opfangningen skal du gå til sektionen i grænsefladen Hjem > SIP-hændelser og vælge den grænseflade, hvor opfangningen skal finde sted. Det er også muligt at opfange trafik på alle grænseflader samtidigt, undtagen på IPv6 tunnelgrænseflader.

I 3CX til Linux kan trafik opfanges for lokal vært (lo). Denne opfangning benyttes til analyse af forbindelser fra SIP-klienter via .
Knappen "Opgang af trafik" starter Wireshark på Windows eller tcpdump på Linux. På dette tidspunkt skal du hurtigt reproducere problemet, da opfangningen belaster CPU'en og optager en del plads på disken.

Vær opmærksom på følgende opkaldsparametre:
- Nummeret, der ringede fra, til hvilket nummer der blev ringet, samt andre numre / deltagere i opkaldet.
- Det nøjagtige tidspunkt for problemet ifølge serverens ur på 3CX.
- Ruten for opkaldet.
Forsøg ikke at klikke andre steder i grænsefladen, undtagen på knappen "Stop". Overhold også ikke andre links i denne browservindue. Ellers vil trafikken blive opfanget i baggrunden og føre til ekstra belastning på serveren.
Modtagelse af opfangningsfil
Knappen "Stop" stopper opfangningen og gemmer opfangningsfilen. Du kan downloade filen til din computer for analyse i Wireshark eller generere en speciel fil , der vil inkludere denne optagelse og anden fejlsøgningsinformation. Efter download eller inkludering i supportpakken fjernes optagelsesfilen automatisk fra 3CX-serveren af sikkerhedsmæssige årsager.
På 3CX-serveren er filen placeret på følgende sted:
- Windows: C:ProgramData3CXInstance1DataLogsdump.pcap
- Linux: /var/lib/3cxpbx/Instance/Data/Logs/dump.pcap
For at undgå overbelastning af serveren eller tab af pakker under optagelsen er optagelsesperioden begrænset til 2 millioner pakker. Herefter stopper optagelsen automatisk. Hvis du har brug for en længere optagelse, skal du bruge det separate værktøj Wireshark, som beskrevet nedenfor.
Trafikoptagelse med værktøjet Wireshark
Hvis du er interesseret i en dybere analyse af netværkstrafikken, skal du optage den manuelt. Download værktøjet Wireshark til dit operativsystem. . Efter installation af værktøjet på 3CX-serveren, skal du gå til sektionen Capture > Interfaces. Her vises alle netværksinterfaces på operativsystemet. IP-adresserne for interfaces kan vises i IPv6-standarden. For at se IPv4-adressen, klik på IPv6-adressen.

Vælg et interface til optagelse, og klik på knappen Options. Fjern markeringen i Capture Traffic in promiscuous mode, mens de øvrige indstillinger forbliver uændrede.

Nu skal problemet genskabes. Når problemet er genskabt, skal optagelsen stoppes (menu Capture > Stop). SIP-beskeder kan udvælges i menuen Telephony > SIP Flows.
Grundlæggende om trafikanalyse — SIP INVITE-beskeden
Lad os se på de grundlæggende felter i SIP INVITE-beskeden, som sendes for at etablere et VoIP-opkald, dvs. den er udgangspunktet for analysen. Normalt indeholder SIP INVITE mellem 4 og 6 felter med oplysninger, der bruges af de afsluttende SIP-enheder (telefoner, gateways) og teleselskaberne. At forstå indholdet af INVITE og de efterfølgende beskeder hjælper ofte med at identificere problemmens kilde. Derudover hjælper kendskabet til INVITE-felterne ved tilslutning af SIP-operatører til 3CX eller integration af 3CX med andre SIP-ATCer.
I INVITE-beskeden identificeres brugerne (eller SIP-enhederne) ved hjælp af URI. Normalt er SIP URI brugerens telefonnummer + SIP-serveradresse. SIP URI ligner meget en e-mail-adresse og er skrevet som sip:x@y:Port.

Request-Line-URI:
Request-Line-URI-feltet indeholder modtageren af opkaldet. Det indeholder de samme oplysninger som To-feltet, men uden det viste brugernavn (Display Name).
Via:
Via — hver SIP-server (proxy), som en INVITE-anmodning går igennem, tilføjer sin IP-adresse og port øverst i Via-listen, hvor beskeden blev modtaget. Beskeden sendes dernæst videre ad ruten. Når den endelige modtager svarer på INVITE-anmodningen, 'ser' alle transitnoder Via-headeren og returnerer beskeden til afsenderen via den samme rute. I denne proces fjerner den transit SIP-proxy sine data fra headeren.
Fra:
Fra — headeren angiver initiatoren af anmodningen set fra SIP-serverens perspektiv. Headeren dannes på samme måde som en e-mailadresse (user@domain, hvor user er brugernummeret for 3CX, og domain er den lokale IP-adresse eller SIP-domænet for 3CX-serveren). Ligesom To-headeren indeholder Fra-headeren en URI og valgfrit et vist navn Display Name. Gennem Fra-headeren kan man forstå, hvordan denne SIP-anmodning skal behandles.
SIP-standarden RFC 3261 specificerer, at hvis det viste navn Display Name ikke overføres, skal IP-telefonen eller VoIP-gatewayen (UAC) bruge Display Name «Anonymous», for eksempel, Fra: «Anonymous» <sip:10000@10.172.0.2>.
Til:
Til — denne header angiver modtageren af anmodningen. Det kan være enten den endelige modtager af opkaldet eller et mellemliggende led. Normalt indeholder headeren en SIP URI, men der kan være andre skemaer (se RFC 2806 [9]). SIP URI skal dog understøttes i alle implementeringer af SIP-protokollen, uanset udstyrsproducent. Til-headeren kan også indeholde et vist navn Display Name, for eksempel, Til: «Navn Efternavn» <sip:101@10.172.0.2>).
Normalt indeholder To-feltet en SIP URI, der angiver den første (næste) SIP-proxy, som vil behandle anmodningen. Det behøver ikke at være den endelige modtager af anmodningen.
Kontakt:
Kontakt — headeren indeholder en SIP URI, som man kan kontakte afsenderen af INVITE-anmodningen på. Dette er en obligatorisk header, der kun må indeholde én SIP URI. Den er en del af den tovejs kommunikation, der svarer til den oprindelige SIP INVITE-anmodning. Det er ekstremt vigtigt, at Kontakt-headeren indeholder korrekte oplysninger (inklusive IP-adresse), som afsenderen af anmodningen forventer svar på. URI Kontakt bruges også i efterfølgende kommunikation, efter at kommunikationssessionen er etableret.
Tillad:
Tillad — feltet indeholder en liste over parametre (SIP-metoder) adskilt af kommaer. De beskriver, hvilke funktioner SIP-protokollen understøtter for denne afsender (enhed). Den komplette liste over metoder: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, PRACK, REFER, REGISTER, SUBSCRIBE, UPDATE. Mere om SIP-metoder er beskrevet .
Kilde: habr.com
