Pam fod galwad SIP yn cofrestru dros VPN ond yn anfon dim sain
Mae cofrestru a sain yn dilyn llwybrau gwahanol. Dilynwch un alwad drwy’r twnnel i weld pa gyfeiriadau y gall y PBX eu defnyddio a ble mae RTP yn stopio mewn gwirionedd.
Nid yw cofrestriad llwyddiannus yn dweud fawr ddim wrthych am sain. Gall meddalffôn ddal rhwymiad dilys â PBX y swyddfa am oriau ac eto ddanfon tawelwch. Dim ond y pecynnau y mae rhywun wedi’u hanfon yn fwriadol iddo y mae’r twnnel yn eu cludo, ac mae galwad yn defnyddio tair llwybr ar wahân: rhwymiad, sefydlu deialog, a ffrwd RTP. Unwaith y byddwch yn gwahanu’r rhain, mae’r methiant yn disgyn ar un llwybr yn lle ar y gair VPN.
Dychmygwch liniadur ar Wi-Fi cartref yn deialu estyniad swyddfa drwy dwnnel a gymeradwywyd. Mae’r PBX yn dilysu’r defnyddiwr, yn derbyn y REGISTER, ac mae’r estyniad yn ymddangos fel un ar gael, ond eto mae’r alwad yn cysylltu â thawelwch marw mewn un cyfeiriad.
Mae cofrestru yn rhwymo cyswllt, nid llwybr cyfryngau
Mae cais REGISTER yn gofyn i’r cofrestrydd storio map rhwng cyfeiriad-cofnod ac un neu fwy o URIau cyswllt. Mae’r map hwnnw’n ateb cwestiwn cul ynglŷn â ble y dylid anfon deialog newydd nawr. Nid yw’n dweud dim am ble y mae cyfryngau’n perthyn, ac nid yw cofrestriad a dderbyniwyd yn profi bod INVITE diweddarach yn cario cyfeiriad cyfryngau y gellir ei gyrraedd. Mae cofrestriadau hefyd yn dod i ben ar amserydd, felly mae ffôn sy’n rhoi’r gorau i adnewyddu yn colli galwadau sy’n dod i mewn tra mae ei dwnnel yn dal i edrych yn iach. Gwyliwch ddyddiad dod i ben y cyswllt yn hytrach na statws y twnnel.
Pan fydd y meddalffôn y tu ôl i’r twnnel, gall y pennawd cyswllt gario cyfeiriad preifat. Mae PBX sy’n ei anfon ymlaen i bwynt terfyn arall yn creu deialog sy’n anelu at rwydwaith na all y sawl a alwyd ei chyrraedd. Mae gosod rewrite_contact=yes ar bwynt terfyn PJSIP yn gwneud i’r PBX amnewid y cyfeiriad ffynhonnell a arsylwyd ganddo, a dyma’n aml y gwahaniaeth rhwng caniad a therfyn amser.
Beth mae INVITE yn ei gynnig a phwy all ei ddefnyddio
Mae INVITE â chorff SDP yn cynnig lle y mae’r galwr am dderbyn cyfryngau: cyfeiriad, porth, a rhestr codigion. Mae’r sawl a alwyd yn ateb â’i gyfeiriad a’i borth ei hun, ac yna mae pob ochr yn anfon RTP at yr hyn a gynigiwyd gan y llall. Os yw’r galwr wedi cynnig cyfeiriad 192.168.x.x sy’n bodoli’n unig o fewn ei rwydwaith cartref, nid oes gan y sawl a alwyd unrhyw le i anfon sain, waeth pa mor lân oedd y signalau. Mae masgio yn ailysgrifennu penawdau IP wrth i becynnau adael llwybrydd, ond nid yw byth yn ailysgrifennu’r testun y tu mewn i gorff SDP.
Mae’r bwlch hwnnw’n esbonio’r alwad un ffordd glasurol: mae signalau’n gweithio oherwydd bod y ddau bwynt terfyn yn cyrraedd y PBX, ac mae sain yn methu oherwydd bod un pwynt terfyn wedi cael gorchymyn i anfon at gyfeiriad sydd ond yn bodoli y tu ôl i NAT arall.
| Path | Who picks the address | Typical failure |
|---|---|---|
| REGISTER | Softphone, rewritten by the registrar if configured | Binding expires or points at a private address |
| INVITE and SDP | Each endpoint in its own offer or answer | Offer names a media address nobody can route to |
| RTP | PBX relay policy or the two endpoints | Port range blocked, or no return path |
Pwy sy’n cario’r sain yw dewis ffurfweddu
Mae signalau a chyfryngau yn rolau ar wahân. Gall dirprwy aros ar lwybr y signalau am alwad gyfan a pheidio byth â chyffwrdd unrhyw becyn RTP. Mae p’un a ddaw’r PBX yn ailbelydr cyfryngau yn dibynnu ar y ffurfweddiad, nid ar bresenoldeb twnnel.
Gyda chyfryngau uniongyrchol mae’r pwyntiau terfyn yn cyfnewid RTP eu hunain, sy’n gweithio’n dda ar un LAN ac yn wael pan fydd un ochr y tu ôl i ystod porth cyfyng.
Mae gosod direct_media=no yn gorfodi’r PBX i mewn i lwybr y cyfryngau fel bod y ddau goes yn gorffen ar gyfeiriad y mae’n ei reoli, gan gyfnewid lled band a phrosesydd am gyfeirio rhagweladwy. Pan fydd yn ailbelydru, rhaid i’r PBX hysbysebu cyfeiriad y gellir ei gyrraedd o hyd. Ar westeiwr aml-rwydwaith, mae external_media_address a external_signaling_address yn pjsip.conf yn penderfynu beth sy’n ymddangos yn SDP ac ym mhenawdau Via. Gadewch nhw heb eu gosod a gall y PBX gynnig ei gyfeiriad LAN i alwr y mae ei unig lwybr ar ochr bellaf y twnnel.
Dilynwch bob cyfeiriad cyn cyffwrdd â’r gosodiadau
Dechreuwch gyda thabl socedi’r PBX tra bo galwad ar waith: mae ss -uanp | grep -E '5060|10000' yn dangos a yw pyrth RTP wedi’u rhwymo a pha gyfeiriad lleol y maent yn ei ddefnyddio. Os nad oes dim wedi’i rwymo yn yr ystod cyfryngau, nid yw’r ailbelydr wedi’i ymgysylltu ac mae’r pwyntiau terfyn yn siarad yn uniongyrchol. Yna cipiwch ar ochr y meddalffôn gyda tcpdump -ni any -s0 udp portrange 10000-20000 -w rtp.pcap. Mae pecynnau allan heb becynnau i mewn yn culhau’r broblem i’r llwybr dychwelyd neu i’r cyfeiriad y dywedwyd wrth yr ochr bell i’w ddefnyddio, ac mae cipiad gwag yn golygu nad yw cyfryngau erioed wedi cyrraedd rhyngwyneb y twnnel o gwbl. Mae cipiad signalau gyda sngrep yn ateb y hanner arall drwy ddangos y llinell gyswllt SDP fel y’i hanfonwyd.
Cymharwch y cyfeiriad yn y llinell gyswllt honno â’r cyfeiriad y gall yr ochr bell lwybreiddio iddo mewn gwirionedd. Mae’r un gymhariaeth hon yn datrys y rhan fwyaf o adroddiadau sain un ffordd yn gyflymach nag unrhyw adolygiad ffurfweddu.
Mae amgryptio’n stopio ar ymyl y twnnel
Mae SIP dros TLS yn amddiffyn y naid signalau y cafodd ei ffurfweddu ar ei chyfer, mae SRTP yn amddiffyn cyfryngau pan fydd y ddau ben yn cytuno arno, ac mae’r twnnel yn amddiffyn traffig rhwng ei bwyntiau terfyn ei hun. Nid oes yr un o’r rhain yn rhoi’r lleill. Gall galwad sydd wedi’i hamgryptio y tu mewn i’r twnnel adael y porth mewn testun clir tuag at y PBX, a phenderfyniad dylunio yw hynny yn hytrach na diffyg.
Cyn cau’r tocyn, cadarnhewch dri pheth yn eu trefn: mae’r cofrestriad yn ffres, mae’r SDP yn cario cyfeiriad y gall yr ochr bell ei gyrraedd, ac mae pecynnau’n llifo’r ddwy ffordd ar y pyrth cyfryngau. Os yw unrhyw un o’r rhain yn anwir, nid y twnnel yw lle’r broblem. Trwsiwch y llwybr a fethodd, yna ail-redegwch yr un cipiad i gadarnhau’r newid. Mae cadw’r cipiadau cyn ac ar ôl yn gwneud yr adroddiad un ffordd nesaf yn wiriad pum munud yn lle prynhawn cyfan.