La nostra infrastruttura di telefonia

Abbiamo una rete interna di telefonia che si basa su:

yate: centralino PBX che mi e' sembrato piu' semplice rispetto al classico Asterisk

vde2: switch virtuale by Renzo Davoli

La rete (client raspberry)

L'obiettivo e' di mettere tutti i telefoni in rete locale tramite vde2 in modo da non preoccuparsi di NAT o cose simili. Come si puo' fare?

# tunctl -u fero -t myvoip0

# ip a a 10.42.0.10/16 dev myvoip0 # il server ha l'1

# ip link set myvoip0 up

$ vde_switch –tap myvoip0 -s /tmp/switch

$ dpipe vde_plug /tmp/switch = ssh befair.it vde_plug /tmp/switch

e fin qui… ho configurato un client softphone yate-qt4 e configurato un account sip con nome utente e password che so io… e che sul server si puo' vedere tra i file di configurazione… :)

e il test basilare va!!! http://docs.yate.ro/wiki/Beginners_in_Yate#Test_the_setup

Il telefono

Il telefono a disposizione e' uno Unicorn 4102 in cui ci sono 2 interfacce di rete che agiscono come switch. Basta invertire i cavi, ossia collegare la parte PC alla LAN e la parte LAN al PC (ad esempio raspberry) cui si fa riferimento sopra.

Assegnare al telefono staticamente, o tramite server dhcp configurato sul raspberry un indirizzo IP della rete dei telefoni (io ho preso il 10.42.0.11)

il gioco dovrebbe essere fatto… provo!

Piccolo dettaglio :) il bridge

Per consentire al telefono di raggiungere il server voi e' necessario mettere le interfacce in bridge. Annoto qui alcuni comandi:

sudo apt-get install bridge-utils

sudo brctl addbr br0

sudo ip link set eth0 down

sudo ip link set myvoip0 down

sudo brctl addif br0 eth0

sudo brctl addif br0 myvoip0

sudo ip a a 192.168.82.100/24 dev br0

sudo ip a a 10.42.0.10/16 dev br0

sudo ip route add default via 192.168.82.1 dev br0

ora dal server befar.it si riesce a pingare il 10.42.0.11 = il telefono direttamente!

Test

Sul telefono provo a comporre il 10 → ottengo un errore di routing da Yate. E' fattaaaaaa! Raggiungo il server intanto. L'ho potuto vedere con

tcpdump -n -i myvoip0

Avrei potuto fare anche telnet localhost 5038 e dare debug on e color on come documentato