Tunneling IAX2 VoIP via en SSH tunnel
Bare for det spark, prøvede jeg at forbinde to Asterisk servere gennem en SSH tunnel til at placere krypterede opkald via IAX2 fra BOX1 til box2. Det virkede, men lydkvaliteten er grim og FIFO karakteren af UDP-konvertere trafik til TCP-trafik gav nogle mærkelige resultater. Men efter jeg lærte en masse at gøre det ....
Hvad vi har brug for:
- 2 Asterisk kasser
- Root på box2
- Ssh
- Socat
Hvad jeg gjorde:
Tilslut begge felter med en SSH portvideresendelse at få opkald via internettet. Konverter IAX2 UDP-trafik fra at komme ind i Asterisk Box1s med socat TCP, fordi UDP ikke understøtter SSH tunneling. Send data via TCP tunnelen. Saml det op på den anden side med socat og konvertere det tilbage til UDP. Feed UDP data i målet stjerne.
Hvordan jeg gjorde det:
BOX1:
kontekst til foder på udgående opkald i vores socat konverter:
forlængelse => 3,1, Dial (IAX2/user: pass@127.0.0.1: 10000 / 1)
etablering socat:
socat udp4 lister: 10000, reuseaddr, gaffel tcp: 127.0.0.1:10001
oprette vores ssh tunnel:
ssh-l root @ box2 10001:127.0.0.1:10000
Box2:
Opsætning socat at hente TCP stream fra tunnelen og videregive det til stjerne:
socat tcp4-lyt: 10000, reuseaddr, gaffel UDP: 127.0.0.1:4569
iax.conf:
[Generelt]
bindport = 4569
bindaddr = 0.0.0.0
afviser = alle
tillader = ulaw-format
tillader = alaw
[Box1]
type = peer
brugernavn = bruger
Hemmeligheden = pass
auth = klartekst
kontekst = iax-tunnel
peer kontekst = iax-tunnel
kvalificere = yes
trunk = yes
Tunnelen iax kontekst bare at spille et bip:
; IAX test
[Iax-tunnel]
forlængelse => 1,1, Svar ()
forlængelse => 1,2, afspilning (bip)
forlængelse => 1,3, Læg på ()
Nyd ...

