Nella telefonia tradizionale, indicata con la sigla PSTN
(Public Switched Telephone Network), la voce umana, attraverso il
microfono della cornetta telefonica, viene convertita in un segnale
elettrico analogico ed inviata attraverso il doppino telefonico
verso la centrale telefonica dove viene instradata attraverso le
reti di dorsale fino all'apparecchio del chiamato, dove il segnale
elettrico viene tradotto in voce attraverso l'altoparlante della
cornetta telefonica. La principale caratteristica di questa tecnologia
è la creazione e l'utilizzo di un canale fisico, detto circuito,
che connette il chiamante e il chiamato utilizzato esclusivamente
per il trasporto del segnale elettrico in cui viene tradotta la
voce. Quando viene effettuata una chiamata, questo circuito resta
attivo indipendentemente dal fatto che le parti siano in conversazione
o in silenzio.
Le reti telefoniche tradizionali sono connesse attraverso un doppino
di rame alla rete dorsale a commutazione di circuito. Quando un
utente compone un numero, questo causa la creazione di un circuito
fisico fino a raggiungere l’utente chiamato, identificato
in maniera univoca dal numero composto . La rete pubblica (PSTN)
è divisa in tanti distretti ognuna gestita da un commutatore
(centrale) capace di commutare da un minimo di alcune decine di
utenti fino ad un milione di linee. Le centrali di commutazione
identificate dalle prime cifre del numero di telefono composto,
appena dopo il prefisso. Mentre invece le ultime 4 cifre del numero
telefonico identificano l’utente all’interno della centrale.
Una volta che il circuito è stato stabilito, il telefono
dell’utente incomincia a squillare e il segnale vocale transita
sul circuito.
Usando invece la VoIP
la voce umana viene tradotta in una serie di campioni numerici dal
telefono o dal softphone IP, che vengono poi raggruppati in pacchetti
e spediti alla destinazione, dove vengono assemblati e riconvertiti in segnali vocali.
La trasmissione di questi pacchetti avviene attraverso Internet, la rete che permette ai computer
di parlare tra di loro, utilizzando il protocollo IP. Questo significa
inviare l’informazione contenuta nella voce in forma digitale
piuttosto che attraverso i tradizionali protocolli a commutazione
di circuito delle tradizionali PSTN. Cerchiamo adesso di approfondire
i vari concetti.
I computer possono avere sistemi operativi diversi ma quando sono
collegati tra loro, devono “parlare” la stessa lingua,
hanno bisogno di un Protocollo, cioè di una serie di norme
comuni, che assicuri il corretto scambio di informazioni. Il Protocollo
IP implementa le regole per trasmettere i dati e gestire il traffico
fra i diversi computer collegati ad Internet; esso impacchetta i
dati in uscita e li invia scegliendo la strada migliore per arrivare
a destinazione. Il Protocollo IP basa l’invio dei dati su
di un sistema di indirizzi numerici univoci. Ogni computer collegato
in Rete viene infatti individuato da un solo indirizzo numerico,
nella forma XXX.XXX.XXX.XXX, determinato da quattro campi separati
tra loro da un punto, in cui ogni campo può assumere valori
da 0 a 255. Come esempio, si può paragonare l’IP ad
una targa automobilistica con un numero univoco che permette di
sapere chi è il proprietario dell’autovettura.
Gli ISP (Internet Service Providers) che ci forniscono accesso alla
Rete, ci prestano una delle loro targhe (l’indirizzo IP) e
tengono un registro dove viene annotato a chi, a che ora e per quanto
tempo, la targa è stata assegnata.
Le tecniche di codifica della voce vengono chiamate CoDec
(CoDec = Compressione Decompressione) e vengono classificate in
base alla banda, misurata in Kbit al secondo(un Kbit corrisponde
a 1024 bit), in cui trasformano il flusso vocale. I Codec con alto
flusso di bit consumano più banda ma richiedono meno capacità
elaborativa da parte della CPU del sistema. Viceversa i bit con
elevato fattore di compressione generano dei flussi di bit assai
più contenuti ma richiedono maggiore potenza elaborativa
da parte del terminale.
Di seguito riportiamo i principali Codecs implementati:
G.711 (64 Kb/s) è
lo standard internazionale per la codifica del segnale audio telefonico
su un canale a 64 Kbps. È uno schema di modulazione di codice
di impulso (PCM) che funziona con una frequenza di campionamento
di 8 KHz, con 8 bit per campione. Questo standard ha due forme,
i.e. A-Law and µ-Law. La A-Law è lo standard per tutti
i circuiti internazionali. G.711 è il codec comunemente usato
per la trasmissione di voce digitale nella rete PSTN. Ma a seguito
del suo alto consumo di banda, se raffrontato con altri codificatori
è usato ugualmente nelle tecnologie di voce su IP, anche
se è il solo codificatore esplicitamente consigliato nelle
raccomandazioni.
G.722 (64/56/48 Kb/s)
ITU-T G.722 è lo standard di riferimento per le trasmissioni
di voce ad alta qualità a larga banda. Come tutti i codificatori
vocali a larga band, anche in G.722 il segnale vocale è campionato
a 16 KHz. G.722 può gestire la banda di segnali vocali e
segnali audio fino a 7 KHz, in rapporto ai 3.6 KHz dei codificatori
vocali a banda stretta. Il codificatore G.722 è basato sul
principio Sub Band - Adaptive Differential Pulse Code Modulation
(SB-ADPCM). I sistemi che utilizzano il codificatore G.722 possono
funzionare in tre modi: 64, 56 e 48 Kbps.
G.723.1 (6.3 Kb/s)
É lo standard ITU-T per un codificatore vocale a 2 rate,
per la compressione del segnale vocale ad alta qualità (frequenza
di campionamento 8 KHz). Le applicazioni tipiche di questo codificatore
vocale sono nella telefonia su reti a pacchetto di telefonia, come
VoIP. Questo codificatore vocale è usato frequentemente per
la codifica del componente vocale nei sistemi di videoconferenza
e fa parte della famiglia degli standard H. 324. Questo codificatore
ha due bit rate: 5.3 e 6.3 Kbps.
G.726 (32 Kb/s) Funziona
a 4 bit rate, cioè 16, 24, 32 e 40 Kbps. Questo è
un codificatore di forma d’onda basato sul principio di Differential
Pulse Code Modulation (ADPCM). Questo codificatore riceve in ingresso
segnali campionati a 8 KHz e li converte in un formato compresso,
a seconda del bit rate.
G.729 (8 Kb/s) L'appendice
A (G.729A) è un campione basso del codificatore di discorso
di tasso di punta da ITU-T, per discorso di compressione di qualità
del tributo. G.729A è algoritmicamente più semplice
ai codificatori G.729 del G.729. The e G.729A sono inter-operabili.
Le applicazioni tipiche di questo codificatore di discorso sono
nelle reti eccessive del pacchetto di telefonia, come VoIP.
CELP (da 2 a 44 kb/s)
La tecnica di CELP è basata su tre concetti. Il primo è
l'uso di un modello lineare di previsione (LP) per modellare il
tratto vocale. Il secondo è l'uso delle entrate (adattabili
e fisse) del codebook come input (eccitazione) del modello del LP.
Il terzo è la ricerca effettuata in circuito chiuso “perceptually
weighted domain”. Il codec di CELP è inoltre open source
ed è disponibile con lo pseudonimo di speex (http://www.speex.org/).
Speex è basato su CELP ed è destinato a comprimere
la voce ai tassi di punta che variano da 2 a 44 kbps. Altre caratteristiche
sono la codifica stereo di intensità, la dissimulazione di
perdita del pacchetto, funzionamento Variable Bit Rate (VBR) e Voice
Activity Detection (VAD).
Per instaurare una chiamata VoIP è necessario non solo disporre
di Codec per il trasporto della voce, ma è anche necessario
avere un protocollo per il settaggio della chiamata stessa. Come
avviene nelle reti PSTN, anche in VoIP i vari utenti, chiamati client,
devono essere connessi a server locali che a loro volta sono connessi
ad altri server nel mondo. Diversi protocolli sono stati implementati
per fare comunicare i vari server, tra cui ricordiamo H.323, MGCP,
SIP.
Il protocollo ITU-T H.323 segue una architettura client-server assai
simile all’approccio PSTN. I vari client interagiscono sia
per lo streaming audio che per il controllo della chiamata con un
insieme di nodi che coordinano e gestiscono la chiamata. Poichè
SIP (Session Initation Protocol) sta diventando il protocollo più
diffuso nel mondo delle telecomunicazioni, in questa sede descriviamo
le caratteristiche più salienti solo di SIP trascurando gli
altri protocolli.
Il protocollo SIP è uno standard della Internet Engineering
Task Force (IETF) come RFC3261 per l'inizializzazione di una sessione
interattiva dell'utente che coinvolge elementi multimediali quali
video, voce e chat. Come l’HTTP o lo SMTP, il protocollo per
gestire le e-mail, SIP opera nello strato applicativo del modello
di comunicazione Open Systems Interconnection (OSI). Lo strato applicativo
è il livello responsabile della verifica che la comunicazione
sia possibile. SIP può stabilire sessioni multimediali (come
ad esempio giochi interattivi, chat, .. ) o chiamate via Internet
per poi modificare i parametri on line ed infine terminarle. Il
protocollo può anche invitare partecipanti a sessioni unicast
o multicast che non necessariamente coinvolgono l'iniziatore. A
differenza di H.323, SIP implementa una architettura distribuita
in cui i vari server sono solo usati per localizzare gli utenti,
avvicinandosi quindi maggiormente al paradigma Peer to Peer (P2P)
che recentemente sta conoscendo un grande successo: basti pensare
a Skype. Poiché il SIP supporta servizi di mapping e redirezione,
è possibile per gli utenti inizializzare e ricevere comunicazioni
da qualunque località e per le reti identificare gli utenti
ovunque essi siano.
La pila del nucleo del protocollo SIP include:
- Supporto per Session Initiation Protocol (SIP)
- Supporto per Session Description Protocol (SDP)
- Supporto per Real Time Protocol (RTP)
- Supporto per Point to Point calling (One active Call)
- Supporto per SIP-INFO Payload
- Supporto per UDP Signalling
- Supporto per Basic, Redirection and Negotiation features

In figura riportiamo il flusso dei messaggi SIP necessari per instaurare
una conversazione telefonica tra due utenti (chiamati UA: User Agent),
in questo caso tra due softphone il primo funzionante su un PAD e
il secondo su un computer portatile. SIP richiede che gli UA siano
registrati presso un SIP proxy server. Il messaggio per settare la
chiamata si chiama INVITE e viene inviato al proxy che lo redirige
ad un altro SIP proxy in base alla tabella interna di instradamento
delle chiamate.
Se il secondo proxy SIP conosce la locazione dell’UA invia
l’invite al dispositivo con cui l’utente è registrato.
Per semplicità abbiamo supposto nell’esempio che entrambi
gli UA siano registrati sullo stesso SIP proxy. Il protocollo SIP
richiede che alla ricezione dell’INVITE il proxy (o l’UA)
rispondano immediatamente con un messaggio indicante lo stato della
transazione: TRYING, RINGING, o ERRORE. Alla ricezione del messaggio
di OK (l’utente ha accettato la conversazione), lo UA che
ha iniziato la transazione invia direttamente, senza passare più
per il proxy, l’ACK per poi iniziare il flusso audio RTP tra
i due peer. Da notare che come per l’ultimo ACK, il flusso
voce, trasportato da RTP, sia instaurato in modalità peer
to peer direttamente tra i due client senza coinvolgere ulteriormente
i server SIP.

In figura mostriamo l’intera pila protocollare IETF SIP, con
le molte estensioni possibili, spesso ancora in fase di standardizzazione
da parte di IETF. Lo stesso SIP fornisce tuttora poche tipologie di
messaggi basati su testo che possono essere scambiati in una transazione
tra due peer SIP. La sessione è descritta a due livelli. La
parte protocollare SIP contiene gli indirizzi delle due parti e le
caratteristiche dei media coinvolti, con il corpo del messaggio contenete
i parametri SDP (Service Delivery Protocol),che è il protocollo
di testo usato per la parte multimediale. Da notare che SDP non deve
necessariamente descrivere una sessione VoIP, ma può riferirsi
a qualsiasi flusso multimediale (video, Istantant Message, Video gaming,
…) essendo completamente trasparente rispetto a SIP. A puro
titolo di esempio ricordiamo le estensioni SIP per la notifica degli
eventi (RFC 3265), l’update di sessione (RFC 3311), il trasferimento
di chiamata (call transfer) e la chiamata in attesa (call hold).
Attualmente esistono diversi sistemi di VoIP su rete fissa. Il primo, che chiamiamo telefono a telefono, utilizza dei mediagateway che trasformano i segnali di voce dei telefoni tradizionali in pacchetti VoIP in maniera del tutto trasparente per l'utilizzatore finale. Sebbene il costo per postazione sia inferiore rispetto al costo di un (buon) telefono IP, queste soluzioni non permettono di beneficiare dei vantaggi del VoIP poichè non permettono di implementare completamente i nuovi servizi. Il secondo sistema, quello PC a PC, spesso in modalità peer to peer , cioè senza un proxy in mezzo, permette di instaurare una chiamata VoIp direttamente tra i due computer dell'utente senza usare la rete telefonica pubblica. Il terzo sistema, che chiamiamo PC a telefono, permette di collegare dei telefoni tradizionali ad una rete IP attraverso del gateway che eseguono le operazioni di traduzione necessarie per far parlare gli utenti connessi con un PC alla telefonia tradizionale. Questo pero' richiede cheente VoIP abbia anche un numero di telefono tradizionale od usi un operatore che gli offra questo servizio (come SkypeIN).
|