Uspješna registracija gotovo ništa ne govori o zvuku. Softphone može satima održavati valjano vezivanje s uredskim PBX-om i ipak prenositi tišinu. Tunel nosi samo pakete koje netko namjerno pošalje u njega, a poziv koristi tri odvojena puta: vezivanje, postavljanje dijaloga i RTP tok. Kada ih razdvojite, kvar pada na jedan put umjesto na riječ VPN.

Zamislite prijenosno računalo na kućnom Wi-Fi-ju koje bira uredsko proširenje kroz odobreni tunel. PBX autentificira korisnika, prihvaća REGISTER i proširenje se prikazuje kao dostupno, ali poziv se spaja s mrtvom tišinom u jednom smjeru.

Registracija veže kontakt, a ne medijski put

Zahtjev REGISTER traži od registrara da pohrani mapiranje između adrese zapisa i jednog ili više kontaktnih URI-ja. To mapiranje odgovara na usko pitanje gdje novi dijalog treba sada poslati. Ne govori ništa o tome gdje mediji pripadaju, a prihvaćena registracija ne dokazuje da kasniji INVITE nosi dostupnu medijsku adresu. Registracije također istječu po timeru, pa telefon koji prestane osvježavati gubi dolazne pozive dok njegov tunel još izgleda zdravo. Pratite istek kontakta, a ne status tunela.

Kada softphone stoji iza tunela, zaglavlje kontakta može nositi privatnu adresu. PBX koji ga prosljeđuje drugom endpointu stvara dijalog usmjeren na mrežu do koje pozvana strana ne može doći. Postavljanje rewrite_contact=yes na PJSIP endpointu tjera PBX da zamijeni izvornu adresu koju je opazio, a to je često razlika između zvona i isteka vremena.

Što INVITE nudi i ko ga može koristiti

INVITE s tijelom SDP-a predlaže mjesto gdje pozivatelj želi primati medije: adresu, port i popis kodeka. Pozvana strana odgovara vlastitom adresom i portom, a zatim svaka strana šalje RTP onome što je druga predložila. Ako je pozivatelj predložio adresu 192.168.x.x koja postoji samo unutar njegove kućne mreže, pozvana strana nema kamo slati zvuk, koliko god signalizacija bila čista. Maskiranje prepisuje IP zaglavlja dok paketi napuštaju usmjerivač, ali nikada ne prepisuje tekst unutar tijela SDP-a.

Ta praznina objašnjava klasičan jednosmjerni poziv: signalizacija radi jer oba endpointa mogu doći do PBX-a, a zvuk ne uspijeva jer je jednom endpointu rečeno da šalje na adresu koja postoji samo iza drugog NAT-a.

PathWho picks the addressTypical failure
REGISTERSoftphone, rewritten by the registrar if configuredBinding expires or points at a private address
INVITE and SDPEach endpoint in its own offer or answerOffer names a media address nobody can route to
RTPPBX relay policy or the two endpointsPort range blocked, or no return path

Tko nosi zvuk stvar je konfiguracije

Signalizacija i mediji su odvojene uloge. Proxy može ostati na putu signalizacije cijeli poziv i nikada ne dotaknuti ni jedan RTP paket. Hoće li PBX postati medijski relej ovisi o konfiguraciji, a ne o prisutnosti tunela.

Uz izravne medije endpointi sami razmjenjuju RTP, što dobro radi na jednom LAN-u, a loše kada jedna strana stoji iza uskog raspona portova.

Postavljanje direct_media=no prisiljava PBX na medijski put tako da oba kraka završavaju na adresi koju on kontrolira, razmjenjujući propusnost i procesor za predvidivo adresiranje. Kada relejira, PBX ipak mora oglašavati dostupnu adresu. Na hostu s više mrežnih sučelja external_media_address i external_signaling_address u pjsip.conf određuju što se pojavljuje u SDP-u i u Via zaglavljima. Ostavite li ih nepostavljene, PBX može ponuditi svoju LAN adresu pozivatelju čiji je jedini put daleka strana tunela.

Pratite svaki smjer prije nego dirnete postavke

Počnite s tablicom socketa na PBX-u dok je poziv aktivan: ss -uanp | grep -E '5060|10000' pokazuje jesu li RTP portovi vezani i koju lokalnu adresu koriste. Ako ništa nije vezano u medijskom rasponu, relej nije uključen i endpointi razgovaraju izravno. Zatim snimite na strani softphona pomoću tcpdump -ni any -s0 udp portrange 10000-20000 -w rtp.pcap. Odlazni paketi bez dolaznih sužavaju problem na povratni put ili na adresu koju je daleka strana dobila za korištenje, a prazna snimka znači da mediji uopće nisu stigli do sučelja tunela. Snimka signalizacije s sngrep odgovara na drugu polovicu pokazujući SDP liniju veze onako kako je poslana.

Usporedite adresu u toj liniji veze s adresom do koje daleka strana stvarno može usmjeravati. Ta jedna usporedba rješava većinu izvještaja o jednosmjernom zvuku brže od bilo kojeg pregleda konfiguracije.

Enkripcija prestaje na rubu tunela

SIP preko TLS-a štiti signalni skok za koji je postavljen, SRTP štiti medije kada se obje strane dogovore o tome, a tunel štiti promet između vlastitih endpointa. Nijedno od toga ne daje ostalo. Poziv šifriran unutar tunela može napustiti gateway u čistom tekstu prema PBX-u, a to je odluka o dizajnu, ne nedostatak.

Prije zatvaranja tiketa potvrdite tri stvari redom: registracija je svježa, SDP nosi adresu do koje daleka strana može doći i paketi teku u oba smjera na medijskim portovima. Ako je bilo što od toga netočno, tunel nije mjesto problema. Popravite put koji je pao, a zatim ponovno pokrenite istu snimku da potvrdite promjenu. Čuvanje snimki prije i poslije čini sljedeći izvještaj o jednosmjernom zvuku petominutnom provjerom umjesto cijelog poslijepodneva.

Povezani članci