Daniels blogg
12 Dez/08 0

Tunneling IAX2 VoIP gjennom en SSH tunnel

IAX2 SSH tunnel

Just for kicks, prøvde jeg å koble sammen to Asterisk servere gjennom en SSH tunnel til sted kryptert samtaler via IAX2 fra BOX1 til BOX2. Det fungerte, men lydkvaliteten er stygg og FIFO natur UDP-konvertere trafikk til TCP-trafikk ga noen merkelige resultater. Men tross alt lærte jeg mye å gjøre det ....

Hva vi trenger:

- 2 Asterisk bokser

- Rot på BOX2

- Ssh

- Socat

Hva jeg gjorde:

Koble begge boksene med en SSH port-forwarding for å få samtaler gjennom internett. Konverter IAX2 UDP-trafikk fra å komme inn i Asterisk Box1s med socat TCP, ettersom UDP ikke støtter SSH tunneling. Send data via TCP tunnelen. Plukk den opp på den andre siden med socat og konvertere den tilbake til UDP. Mate UDP data inn målet stjerne.

Hvordan jeg gjorde det:

BOX1:

kontekst å mate på utgående ringe inn i våre socat converter:

utstrakt => 3,1, Dial (IAX2/user: pass@127.0.0.1: 10000 / 1)

sette opp socat:

socat udp4 lister: 10000, reuseaddr, gaffel tcp: 127.0.0.1:10001

sette opp våre ssh tunnel:

ssh-l root @ box2 10001:127.0.0.1:10000


Box2:

Sette opp socat å plukke opp TCP stream fra tunnelen og gi det til stjerne:

socat tcp4-lytte: 10000, reuseaddr, gaffel UDP: 127.0.0.1:4569

iax.conf:

[Generelt]
bindport = 4569
bindaddr = 0.0.0.0
forbyr = alle
tillate = ulaw
tillate = aLaw

[Box1]
type = peer
username = bruker
secret = pass
auth = plaintext
kontekst = iax-tunnel
peer kontekst = iax-tunnel
kvalifisere = yes
trunk = yes

Tunnelen iax sammenhengen bare spille et pip:
; IAX testing
[Iax-tunnel]
utstrakt => 1,1, Svar ()
utstrakt => 1,2, Avspilling (pip)
utstrakt => 1,3, Legg på ()

Enjoy ...

Kommentarer (0) Trackbacks (1)

    Legg igjen en kommentar

    Vennligst kopier strengen rhGjef til feltet nedenfor: