Progettare una rete di comunicazione Voip P2P

Da uno spunto preso dal forum voip di html.it ho buttato giù un paio di idee su una rete di comunicazione P2P con la tecnologia VoIP.

Lo standard SIP (Session Initiation Protocol) prevede che la comunicazione arrivi dal client fino al server attraversando il network (o la rete internet) e da li venga smistato tramite chiamata – sempre su standard SIP – sino al client “chiamato”, ipotizzando che si stia effettuando una chiamata sulla stessa rete verso un client SIP.

Se la comunicazione avviene tramite un network sovradimensionato in termini di banda possiamo non porci il problema, ma se stiamo lavorando in una grande rete e vogliamo evitare di sprecare banda con traffico inutile verso il server – forse è il caso di intraprendere soluzioni più “avanzate”.

Skype è il classico esempio di una comunicazione VoIP P2P anche se la sua politica closed-source non è di aiuto a questa guida. Ma in pratica, cosa succede?

Quando tentiamo di chiamare un nostro amico il nostro software contatta il server di Skype che ci risponde con l’IP dell’amico connesso, ora skype si collegherà direttamente a lui senza più passare per i server centralizzati, e questo permette un notevole risparmio in termini di banda (pensiamo solo a quante comunicazione skype avvengono in contemporanea nel mondo) senza gravare sulla qualità della chiamata, anzi migliorandola visto che la chiamata passerà attraverso un numero minore di hop.

Attualmente sto studiando una soluzione simile per una azienda che ha esigenza di diminuire il traffico sulla propria rete (in alcuni punti Wireless, altri VPN) per evitare colli di bottiglia sui punti “critici” della rete ed evitare degradi del servizio.

Essendo il SIP uno standard aperto stavo pensando ad un client scritto ad hoc che sfrutti la tecnica adottata da skype, ossia collegarsi al server solo per ottenere l’IP del chiamato e demandare al chiamante la “fatica” di effettuare la chiamata.

Sto leggendo vari manuali su Asterisk per trovare una soluzione ottimale al problema, voi avete esperienze o consigli in merito?

Ti consigliamo anche

Link copiato negli appunti