Breve storia della telefonia Il telefono è stato inventato attorno al 1860 da Antonio Meucci. Brevemente, l'apparecchio era dotato di un microfono e di un altoparlante che era fisicamente collegato, tramite un filo, ad un'altro apparecchio. La voce captata dal microfono era amplificata e trasmessa all'altoparlante dell'altro apparecchio. Il segnale elettrico inviato lungo il filo si dice “analogico” ed ogni apparecchio, per comunicare, deve essere fisicamente connesso all'altro, attraverso i commutatori presenti nei centralini del provider.
Linee a commutazione di circuito Immaginiamo che, per permettere ad N apparecchi di comunicare senza alcun centralino, tutti gli N apparecchi devono essere INTERCONNESSI tra loro (connessione a stella). La linea telefonica “tradizionale” (PSTN) funziona su un sistema chiamato “commutazione di circuito”. Quando Alice telefona a Bob, la centrale telefonica collega fisicamente il filo di Alice al filo di Bob per permettere il passaggio del segnale analogico tra gli apparecchi. Immaginiamo che, per permettere ad N apparecchi di comunicare senza alcun centralino, tutti gli N apparecchi devono essere INTERCONNESSI tra loro (connessione a stella). La linea telefonica “tradizionale” (PSTN) funziona su un sistema chiamato “commutazione di circuito”. Quando Alice telefona a Bob, la centrale telefonica collega fisicamente il filo di Alice al filo di Bob per permettere il passaggio del segnale analogico tra gli apparecchi.
Internet Internet è quel meraviglioso sistema che permette a milioni di persone di essere interconnesse tra loro. I dati vengono continuamente scambiati da una parte all'altra del globo “inscatolati” dentro FRAME IP per il controllo della trasmissione passando attraverso cavi dedicati (DSL, ISDN) o linee telefoniche tradizionali (PSTN). Siccome i dati DIGITALI transitano in pacchetti, questo sistema si chiama anche a “commutazione di pacchetto”.
Commutazione di pacchetti Il bello di Internet è proprio la capacità, attraverso apparecchi chiamati ROUTER, di scambiarsi pacchetti di dati semplicemente dicendo a chi sono destinati. Il sistema non è, pertanto, centralizzato e non è sempre possibile sapere con esattezza il percorso che ogni pacchetto di dati segue ed in che sequenza essi arrivano a destinazione.
PSTN vs INTERNET ● Alice e Bob devono essere connessi ad Internet ● Alice invia su Internet pacchetti di dati destinati a Bob ● Comunicazione digitale a pacchetti ● Alice e Bob devono essere connessi ad Internet ● Alice invia su Internet pacchetti di dati destinati a Bob ● Comunicazione digitale a pacchetti ● Alice e Bob devono essere connessi ad Internet ● Alice e Bob devono essere connessi entrambi alla stessa centrale telefonica ● Alie verrà connessa fisicamente al telefono di Bob ● Comunicazione analogica ● Alice e Bob devono essere clienti e pagare le tariffe al provider TLC ● Alice e Bob devono essere connessi entrambi alla stessa centrale telefonica ● Alie verrà connessa fisicamente al telefono di Bob ● Comunicazione analogica ● Alice e Bob devono essere clienti e pagare le tariffe al provider TLC
L'idea Già dal 1995 ci furono i primi protocolli per trasmettere voce in tempo reale tramite reti IP. Di fatto nacque il VoIP: Voice over IP Si tratta, in pratica, di campionare l'audio, codificarlo ed inserirlo nel frame IP per poi trasmetterlo ad destinatario che provvede a decondificare i dati audio e riprodurli sullo speaker. Già dal 1995 ci furono i primi protocolli per trasmettere voce in tempo reale tramite reti IP. Di fatto nacque il VoIP: Voice over IP Si tratta, in pratica, di campionare l'audio, codificarlo ed inserirlo nel frame IP per poi trasmetterlo ad destinatario che provvede a decondificare i dati audio e riprodurli sullo speaker.
Le Implementazioni Il VoIP è fatto di due “tipi” di protocollo: sessione e trasporto. Attualmente esistono decine di implementazioni per il VoIP. I più famosi sono due protocolli standard: ● SIP (IETF) ● H.323 (ITU) ed uno proprietario: ● Skype (Skype Technology S.A.) Noi approfondiremo solamente il protocollo di sessione SIP (Session Initiation Protocol) ed il trasporto tramite RTP (Real Time Protocol). Il VoIP è fatto di due “tipi” di protocollo: sessione e trasporto. Attualmente esistono decine di implementazioni per il VoIP. I più famosi sono due protocolli standard: ● SIP (IETF) ● H.323 (ITU) ed uno proprietario: ● Skype (Skype Technology S.A.) Noi approfondiremo solamente il protocollo di sessione SIP (Session Initiation Protocol) ed il trasporto tramite RTP (Real Time Protocol).
Sessione Per sessione si intende tutti quei dati che regolano la trasmissione, ad esempio l'autenticazione sul server VoIP, chi è il chiamante, l'ID della chiamata, il codec usato per l'audio, se c'è un NAT in mezzo, etc. etc. REGISTER SIP/2.0 Via: SIP/2.0/UDP :5069;rport CSeq: 3943 REGISTER To: From: Expires: 900 Call-ID: Authorization: Digest username="213", realm="asterisk", nonce="3c306025", response="00e1699f3675d646a0ad322e30b5ff5a" User-Agent: UniversalSIPClient/ Contact: Content-Length: 0
IP Trasporto Per trasporto si intende il modo in cui vengono trasmessi i dati della comunicazione. In genere si utilizza un protocollo chiamato RTP (Real Time Protocol) incapsulato in pacchetti UDP per la trasmissione su reti IP. UDP RTP
SIP Proxy ? Teoricamente per chiamare via Internet non c'è bisogno di intermediari (le cosiddette chiamate Peer-to-Peer). In realtà è piuttosto scomodo dover sempre sapere che IP ha l'altra persona percui è comodo avere dei SERVIZI DI REGISTRAZIONE (SIP Proxy) a cui posso dire qualcosa come: “Hey, sono Alice ed il mio IP è ” così quando Bob vorrà chiamare Alice può chiedere qualcosa come: “Ciao, sono Bob ed il mio IP è e vorrei chiamare Alice.” ed il server potrà dire qualcosa come “Si, te la chiamo” oppure “No, non c'è !”.
Un pò di TEORIA SIP è un protocollo di segnalazione testuale simile all'HTTP usato per iniziare, mantenere e chiudere una sessione (ad esempio una telefonata, una partita ad un gioco, etc.). La definizione del protocollo ed il suo funzionamento sono definiti nell' RFC3261. Distinguamo adesso da dispositivo utente (UA) e Proxy seguendo passo-passo una sessione di CHIAMATA sul Proxy tramite protocollo SIP.
SIP
SIP Proxy ! In realtà il SIP Proxy si occupa di molte cose tra cui la gestione delle segnalazioni, il registro delle chiamate ed eventuali servizi aggiuntivi quali IVR, VoiceBox ed altro ancora. Il SIP Proxy si occupa anche di dire alle due parti come scambiarsi i dati audio. Infatti non necessariamente i due “protocolli”, segnalazione e trasporto, compiono lo stesso percorso. In particolare il trasporto dei dati audio è molto oneroso in termini di banda richiesta ed è necessario minimizzarne il percorso necessario. Invece la segnalazione è molto leggera e può essere usata per molteplici acrobazie: ● Reindirizzamento della chiamata ● “Rimbalzo” della chiamata su altri Proxy ● Invio di messaggi tipo “SMS” In realtà il SIP Proxy si occupa di molte cose tra cui la gestione delle segnalazioni, il registro delle chiamate ed eventuali servizi aggiuntivi quali IVR, VoiceBox ed altro ancora. Il SIP Proxy si occupa anche di dire alle due parti come scambiarsi i dati audio. Infatti non necessariamente i due “protocolli”, segnalazione e trasporto, compiono lo stesso percorso. In particolare il trasporto dei dati audio è molto oneroso in termini di banda richiesta ed è necessario minimizzarne il percorso necessario. Invece la segnalazione è molto leggera e può essere usata per molteplici acrobazie: ● Reindirizzamento della chiamata ● “Rimbalzo” della chiamata su altri Proxy ● Invio di messaggi tipo “SMS”
SIP