Uspešna registracija skoraj nič ne pove o zvoku. Softphone lahko ure in ure ohranja veljavno navezavo s pisarniškim PBX in vseeno pošilja tišino. Tunel prenaša le pakete, ki jih nekdo namerno pošlje vanj, klic pa uporablja tri ločene poti: navezavo, vzpostavitev dialoga in tok RTP. Ko jih ločite, napaka pade na eno pot in ne na besedo VPN.

Predstavljajte si prenosnik na domačem Wi-Fi, ki kliče pisarniški interni priključek skozi odobren tunel. PBX overi uporabnika, sprejme REGISTER in priključek se prikaže kot dosegljiv, vendar se klic poveže s popolno tišino v eni smeri.

Registracija veže stik, ne poti medijev

Zahteva REGISTER prosi registrarja, da shrani preslikavo med naslovom zapisa in enim ali več kontaktnimi URI-ji. Ta preslikava odgovarja na ozko vprašanje, kam je treba novi dialog prav zdaj poslati. Ne pove ničesar o tem, kam sodijo mediji, in sprejeta registracija ne dokazuje, da poznejši INVITE nosi dosegljiv naslov medijev. Registracije tudi potečejo po časovniku, zato telefon, ki preneha osveževati, izgublja dohodne klice, medtem ko njegov tunel še vedno izgleda zdrav. Spremljajte potek stika in ne stanja tunela.

Ko je softphone za tunelom, lahko glava stika nosi zasebni naslov. PBX, ki jo posreduje drugi končni točki, ustvari dialog, usmerjen v omrežje, do katerega klicani ne more priti. Nastavitev rewrite_contact=yes na končni točki PJSIP povzroči, da PBX nadomesti zaznani izvorni naslov, in to je pogosto razlika med zvonjenjem in potekom časa.

Kaj ponuja INVITE in kdo ga lahko uporabi

INVITE s telesom SDP predlaga, kje želi klicatelj prejemati medije: naslov, vrata in seznam kodekov. Klicani odgovori z lastnim naslovom in vrati, nato pa vsaka stran pošlje RTP tja, kar je predlagala druga. Če je klicatelj predlagal naslov 192.168.x.x, ki obstaja le v njegovem domačem omrežju, klicani nima kam poslati zvoka, ne glede na to, kako čista je bila signalizacija. Maskiranje prepiše glave IP, ko paketi zapustijo usmerjevalnik, nikoli pa ne prepiše besedila znotraj telesa SDP.

Ta vrzel pojasnjuje klasičen enosmerni klic: signalizacija deluje, ker oba končna dela dosežeta PBX, zvok pa odpove, ker je bilo enemu končnemu delu rečeno, naj pošilja na naslov, ki obstaja le za drugim NAT.

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

Kdo nosi zvok, je izbira konfiguracije

Signalizacija in mediji so ločene vloge. Posrednik lahko ostane na poti signalizacije ves klic in se nikoli ne dotakne niti enega paketa RTP. Ali PBX postane medijski posredovalnik, je odvisno od konfiguracije, ne od prisotnosti tunela.

Pri neposrednih medijih končna dela sama izmenjujeta RTP, kar dobro deluje v enem LAN in slabo, ko je ena stran za ozkim razponom vrat.

Nastavitev direct_media=no potisne PBX na pot medijev, da se oba kraka končata na naslovu, ki ga nadzoruje, in v zameno za predvidljivo naslavljanje žrtvuje pasovno širino ter procesor. Ko posreduje, mora PBX še vedno oglaševati dosegljiv naslov. Na gostitelju z več omrežji external_media_address in external_signaling_address v pjsip.conf določata, kaj se pojavi v SDP in v glavah Via. Če ju pustite nenastavljena, lahko PBX ponudi svoj naslov LAN klicatelju, katerega edina pot je oddaljena stran tunela.

Sledite vsaki smeri, preden se dotaknete nastavitev

Začnite s tabelo vtičnic na PBX, medtem ko je klic aktiven: ss -uanp | grep -E '5060|10000' pokaže, ali so vrata RTP vezana in kateri lokalni naslov uporabljajo. Če v obsegu medijev ni ničesar vezanega, posredovalnik ni vključen in končna dela se pogovarjata neposredno. Nato zajemite na strani softphona z tcpdump -ni any -s0 udp portrange 10000-20000 -w rtp.pcap. Odhodni paketi brez dohodnih zožijo težavo na povratno pot ali na naslov, ki ga je oddaljena stran dobila v uporabo, prazen zajem pa pomeni, da mediji nikoli niso dosegli vmesnika tunela. Zajem signalizacije z sngrep odgovori na drugo polovico tako, da pokaže vrstico povezave SDP, kot je bila poslana.

Primerjajte naslov v tej vrstici povezave z naslovom, do katerega lahko oddaljena stran v resnici usmerja. Ta ena primerjava reši večino poročil o enosmernem zvoku hitreje kot kateri koli pregled konfiguracije.

Šifriranje se ustavi na robu tunela

SIP prek TLS ščiti signalizacijski skok, za katerega je bil nastavljen, SRTP ščiti medije, ko se oba konca o tem dogovorita, tunel pa ščiti promet med svojimi končnimi točkami. Nobeno od tega ne daje ostalih. Klic, šifriran znotraj tunela, lahko zapusti prehod v čistem besedilu proti PBX, in to je oblikovalska odločitev, ne napaka.

Preden zaprete zahtevek, potrdite tri stvari po vrsti: registracija je sveža, SDP nosi naslov, do katerega lahko oddaljena stran doseže, in paketi tečejo v obe smeri na vratih medijev. Če je katera od tega napačna, težava ni v tunelu. Popravite pot, ki je odpovedala, nato znova zaženite isti zajem, da potrdite spremembo. Če zajeme pred in po shranite, naslednje poročilo o enosmernem zvoku postane petminutno preverjanje namesto celega popoldneva.

Sorodni članki