Tunneling IAX2 VoIP attraverso un tunnel SSH
Solo per i calci, ho provato a collegare due server Asterisk passate da un tunnel SSH per effettuare chiamate criptate via IAX2 da BOX1 a BOX2. Ha funzionato, ma la qualità del suono è brutto e la natura FIFO di convertire il traffico UDP nel traffico TCP ha dato alcuni risultati strani. Ma dopo tutto quello che ho imparato molto a farlo ....
Ciò di cui abbiamo bisogno:
- 2 scatole Asterisk
- Root su BOX2
- Ssh
- Socat
Quello che ho fatto:
Collegare entrambe le caselle con SSH port-forwarding per ottenere le chiamate passanti Internet. Convertire il traffico UDP IAX2 provenienti da Box1s in Asterisk con socat TCP, UDP, perché non supporta SSH tunneling. Inviare il TCP i dati attraverso il tunnel. Prendetelo a lato con socat e riconvertirlo UDP. Inserire i dati UDP nel asterisco target.
Come ho fatto:
BOX1:
contesto, a nutrirsi di chiamata in uscita nel nostro convertitore socat:
exten => 3,1, Dial (IAX2/user: pass@127.0.0.1: 10000/1)
la creazione di socat:
socat udp4 ascolto: 10000, reuseaddr, forcella tcp: 127.0.0.1:10001
creando un nuovo tunnel ssh:
ssh-L root @ box2 10001:127.0.0.1:10000
Box2:
Impostazione socat per raccogliere il flusso TCP dal tunnel e passarlo a asterisco:
socat tcp4-listen: 10000, reuseaddr, forcella UDP: 127.0.0.1:4569
iax.conf:
[Generale]
bindport = 4569
bindaddr = 0.0.0.0
disallow = all
allow = ulaw
allow = alaw
[Box1]
type = pari
username = user
secret = pass
auth = plaintext
context = IAX-tunnel
contesto di pari = IAX-tunnel
qualificarsi = yes
tronco = yes
Il contesto IAX tunnel solo a giocare un segnale acustico:
; IAX test
[IAX-tunnel]
exten => 1,1, Answer ()
exten => 1,2, Playback (beep)
exten => 1,3, Hangup ()
Enjoy ...

