Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduzione ................................................................................................................. 2
La telefonia .................................................................................................................. 4
1.1 Introduzione ................................................................................................. 5
1.2 La telefonia tradizionale .............................................................................. 5
1.2.1 I PBX (Private Branch eXchange)....................................................... 7
1.3 La telefonia su reti basate su IP ................................................................... 8
1.3.1 I PBX VoIP........................................................................................ 10
Bibliografia ................................................................................................................ 60
Introduzione
(Internet Protocol), conosciuta anche come VoIP (Voice over IP), sta attirando molta
i livelli. Infine, una nuova classe di prodotti emergente sul mercato, chiamati Internet
In una prima fase di questo lavoro di tesi, si sono studiati i due principali
protocollo SIP ed i tipici componenti di una rete che sfrutta questo protocollo per
SIP Registrar e Location Server, così da gestire chiamate SIP per client che si sono
reti VoIP basate su due protocolli eterogenei come, appunto, SIP e H.323.
supplementari quali caselle vocali, redirezione e filtri delle chiamate, ecc., e sono
gateway sulla rete commutata tradizionale (PSTN), che come noto è una rete TDM;
dalla Digium, cui, tra l’altro, è anche possibile attestare dei normali telefoni
analogici.
3
Capitolo 1
La telefonia
La telefonia
1.1 Introduzione
da D. E. Hughes nel 1877. Da allora le cose sono molto cambiate: al posto delle
profonda metamorfosi del sistema telefonico, con una migrazione dalle reti a
Chi è che non ha mai fatto una telefonata? Chi di noi non ha mai alzato la
5
La telefonia
fortemente inserito nel nostro scenario di vita quotidiano, è quello che chiamiamo
ignora come esso sia realizzato, ma credo che sia nell’immaginario comune
immaginare “un filo” che collega gli apparecchi telefonici dei due interlocutori, sul
quale la voce viaggia in qualche modo. Bene, questo concetto, sebbene un po’
grossolano, non è molto distante dalla realtà, se sostituiamo alla parola filo la parola
circuito. Infatti, nel momento in cui è instaurata una chiamata, viene settato un
circuito fisico che collega i due terminali e che è dedicato solo a quella chiamata; il
distanza dalla nostra abitazione alla centrale locale più vicina, da un tratto in fibra
ottica che collega la centrale locale ad una eventuale centrale di transito e più centrali
di transito fra loro, ed infine da un altro doppino in rame dalla centrale locale
detto potrebbe portare a pensare che un singolo cavo possa “trasportare” un solo
circuito; in realtà ciò non è vero, in quanto nella telefonia tradizionale si impiega una
tecnica di multiplazione nota come TDM (Time Divison Multiplexing), grazie alla
per ottenere più canali di velocità più bassa. Nel caso del TDM, si considerano N slot
temporali consecutivi e si assegnano a canali differenti. Ogni canale può usare solo
6
La telefonia
uno slot ogni N ed in tale slot trasmetterà uno o più campioni del segnale telefonico.
Ovviamente la distanza tra due slot consecutivi deve essere tale da non degradare la
caso si ricorre ai centralini o PBX, dispositivi cui vengono attestati vari telefoni che,
contattare operatori esterni e quindi senza costi di tariffazione. Il PBX, poi, viene
7
La telefonia
in seguito ai quali le chiamate sono instradate sulla linea esterna o su quella interna
Negli ultimi anni, grazie al boom delle reti locali (LAN - Local Area Network)
interesse e sviluppo delle tecnologie di trasporto della voce in tempo reale su reti a
Voice over IP (VoIP) è una tecnologia che utilizza IP per trasmettere traffico
voce come pacchetti. In tal modo VoIP può utilizzare ogni tipo di rete dati che
La telefonia su IP (IP Telephony), invece, può essere vista come una “suite di
1
Task Force sulla Larga Banda, Ministero dell’Innovazione, 2001: “La larga banda è un ambiente
tecnologico che consente l’utilizzo delle tecnologie digitali ai massimi livelli di interattività”
8
La telefonia
dedicato’, bensì sullo stesso circuito fisico viaggiano pacchetti di dati provenienti da
datagrammi, per cui pacchetti emessi dalla stessa sorgente potrebbero seguire strade
diverse nel loro viaggio verso il destinatario ed arrivarvi non in ordine e/o con ritardi
del tutto aleatori e/o no arrivarvi affatto! In altri termini, il protocollo IP è progettato
per offrire servizi di tipo ‘best effort’, non garantendo prestazioni di tipo real-time.
Questi problemi vanno tenuti nel dovuto conto nella progettazione di un sistema per
la telefonia su IP, insieme ad altri quali la sicurezza (chiunque in rete può ‘catturare’
Fin qui abbiamo visto i problemi che comporta la telefonia su IP, ma,
ovviamente, essa porta con se anche una serie di vantaggi. Del resto non è difficile
immaginare come una tipologia di rete come quella descritta comporti un minore
spreco di risorse, basti pensare che una telefonata ‘tradizionale’, nel caso di una
pausa nella conversazione di diversi minuti, occupa per tutto il tempo il canale,
pacchetto durante la pausa il canale risulterebbe invece libero, così da poter essere
9
La telefonia
Facciamo quindi un breve elenco dei motivi che negli ultimi anni stanno
♦ Ottimizzazione risorse
tradizionali.
una stessa LAN o, anche, per poter comunicare con un utente della rete tradizionale.
IP in traffico TDM, che può essere realizzato nel PBX stesso o può esserne
10
La telefonia
un sistema di telefonia su IP, nella propria LAN casalinga o aziendale, con totale
11
Capitolo 2
La raccomandazione ITU-T H.323
La raccomandazione ITU-T H.323
2.1 Descrizione
dati) che si trovi a lavorare, come sottorete di trasporto, su una rete a pacchetto che
potrebbe non garantire una Qualità di Servizio (QoS – Quality of Service). Queste
reti a pacchetto possono includere Local Area Network, Enterprise Area Network,
conforme allo standard H.323, oppure un dispositivo dedicato (IP Phone). H.323
13
-------------------------------------------------- La raccomandazione ITU-T H.323
Non tutte le entità descritte sono indispensabili, anzi, a dire il vero, una
14
La raccomandazione ITU-T H.323
collega insieme una serie di protocolli applicativi, specificati poi nel dettaglio in altre
servizi che devono necessariamente essere forniti dal livello inferiore e che sono:
quale UDP
15
La raccomandazione ITU-T H.323
registrazioni.
1
Endpoint H.323: componente di rete in grado di effettuare e ricevere chiamate; esso genera e termina
flussi di informazione. Sono endpoints i Terminali, i Gateway, i MCU...
16
La raccomandazione ITU-T H.323
endpoints comunicanti.
dialogo RAS.
17
La raccomandazione ITU-T H.323
Ogni entità deve instaurare un canale dedicato di tipo affidabile (TCP), detto
H.245 Control Channel, per ogni comunicazione alla quale partecipa; tale canale sarà
permanentemente aperto durante tutta la connessione. Osserviamo che nel caso una
delle entità in questione sia un MCU, che può supportare molte chiamate
L’instaurazione degli H.245 Control Channel avviene dopo il dialogo H.225 (RAS e
Call Signalling).
tra endpoints.
18
La raccomandazione ITU-T H.323
codec.
trasmettendo.
19
La raccomandazione ITU-T H.323
dialogo H.245 non fa più seguito al messaggio H.225.0 Connect, bensì la struttura
dei messaggi di apertura dei canali logici è inserita in un campo dei primi messaggi
di Call Signalling, quali Setup e Alerting. In questo modo, quindi, i canali logici
2.2.3 RTP/RTCP
trasporto esistenti, TCP e UDP, erano entrambi inadeguati. Per questo l’IETF ha
1890. Esso estende le funzionalità del protocollo UDP, sul quale si basa, ovviando
alla necessità del traffico real-time di avere stringenti vincoli sul ritardo di consegna
Control Protocol (RTCP), per la rilevazione della qualità del servizio, per il controllo
È opportuno notare che RTP non offre nessun meccanismo per assicurare la
consegna dei pacchetti entro tempi prestabiliti o alcun genere di garanzia circa la
qualità del servizio, ma si appoggia ai servizi forniti dai livelli inferiori nella
20
La raccomandazione ITU-T H.323
gerarchia ISO-OSI, nel nostro caso all’UDP/IP. Allo stesso modo RTP supporta i
2.3 Le entità
2.3.1 Terminali
Per fare ciò tutti devono supportare i protocolli di controllo per negoziare l’uso del
flussi audio e video (dove possibili) e i protocolli relativi allo scambio di dati
21
-------------------------------------------------- La raccomandazione ITU-T H.323
2.3.2 Gateway
La connessione avviene tramite traduzione dei protocolli applicativi relativi alle due
comunicazione su entrambe le reti: esso viene quindi visto come un terminale H.323
22
La raccomandazione ITU-T H.323
2.3.3 Gatekeeper
offre tutta una serie di sevizi a cui altrimenti si deve rinunciare. In particolare, esso
ad un livello tale da non degradare troppo la qualità offerta agli altri servizi (e-mail,
Gatekeeper, delle quali alcune obbligatorie e altre opzionali. Tra quelle obbligatorie
bisogna citare:
23
La raccomandazione ITU-T H.323
protocollo RAS.
disponibile.
2
Zona H.323: insieme di dispositivi H.323 che afferiscono allo stesso Gatekeeper
24
La raccomandazione ITU-T H.323
raccomandazione.
chiamata in atto.
25
La raccomandazione ITU-T H.323
questo aspetto è il Multipoint Control Unit. Se da una parte può essere considerato un
differenza è come agisce su questi. Infatti, l’MCU riceve tutti i flussi audio e video
sovrapposte come nella realtà, mentre, per quel che riguarda il video, viene spedita
26
La raccomandazione ITU-T H.323
A. Call Setup
Prima di queste quattro fasi, nel caso in cui sia presente un Gatekeeper, c’è la
Gatekeeper (anche noto come GnuGk) su una macchina basata su sistema operativo
macchine Windows; la scelta è stata motivata dal fatto che le funzionalità di GnuGk
sono già state testate in un lavoro di tesi precedente questo, mentre SJPhone è l’unico
software free che può agire sia da client H.323 che da client SIP (vedi in seguito),
quindi si adatta particolarmente alle nostre esigenze. Abbiamo fatto comunicare i due
27
La raccomandazione ITU-T H.323
client ed abbiamo effettuato un’analisi dei pacchetti con Ethereal Network Analyzer.
propria identità, il proprio punto di ancoraggio alla rete e gli alias names attraverso
cui vuole essere rintracciabile, e RCF (Registration ConFirm), con cui il Gatekeeper
FASE A
28
La raccomandazione ITU-T H.323
connessione.
29
La raccomandazione ITU-T H.323
FASI B e C
Slave Determination.
30
La raccomandazione ITU-T H.323
FASE B
FASE C
FASE D
31
La raccomandazione ITU-T H.323
FASE E
3
Polling: Interrogazione periodica e ciclica.
32
La raccomandazione ITU-T H.323
confermati da un ACK.
medesimo messaggio.
H.225.0 di ReleaseComplete.
(Disingage ReQuest).
33
Capitolo 3
SIP (Session Initiation Protocol)
SIP (Session Initiation Protocol)
3.1 Introduzione
manutenzione di una sessione, dove per sessione si intende uno scambio di dati tra
quali, ad esempio, telefonate su IP. È un protocollo standard della IETF (RFC 3261),
della comunicazione. SIP consente all'utente di decidere come e dove desidera essere
grandi aziende. Queste funzioni sono, infatti, demandate ad appositi Proxy Servers,
comunicazione che usa e dal luogo in cui si trova, in base ovviamente alla specifica
prevede 5 fasi:
35
SIP (Session Initiation Protocol)
sessione sia dal lato del chiamante che da quello del chiamato.
servizi supplementari.
messaggi.
Nella figura alla pagina seguente sono illustrati i componenti di una tipica
Agents e Servers.
36
SIP (Session Initiation Protocol)
Uno User Agent, nell’arco di una sessione, alterna le funzioni di User Agent
1
Transazione SIP: sequenza di una richiesta e di una o più risposte SIP nell’ambito di un comune
contesto.
37
SIP (Session Initiation Protocol)
3.2.2 Servers
Ha la funzione di intermediario tra gli User Agents che prendono parte alla
sessione; in base ad una logica può rispondere direttamente a richieste SIP (ruolo di
User Agent Server), o inoltrare richieste/risposte SIP per conto dei client, previa
Nel corso della sperimentazione svolta durante questo lavoro di tesi, si è fatto
Dunque, il Re-Direct Server, a differenza del Proxy, che deve occuparsi del routing
LOCATION SERVER
38
SIP (Session Initiation Protocol)
REGISTRAR SERVER
affidabilità basato sui timeout, e può poggiare sia su protocolli di trasporto orientati
alla connessione (TCP), che non (UDP); inoltre, fa uso di protocolli quali RTP, per il
trasporto dei dati real-time, SDP (Session Description Protocol), per la descrizione
39
SIP (Session Initiation Protocol)
A. Registrazione
B. Call Setup
Nella nostra sperimentazione, abbiamo fatto uso, come detto, del NIST SIP
Proxy, anch’esso oggetto di studio in altri lavori di tesi, e dei client SJPhone. Al
Diagram.
Prima, però, diamo un accenno alla struttura di messaggi SIP; essi consistono
dei seguenti elementi: Start line, Header, CRLF, Message body. La Start line si
individua un particolare campo definito Header-field. Tra questi campi, alcuni sono
40
SIP (Session Initiation Protocol)
protocollo. A questo punto del messaggio SIP, è presente una riga vuota, CRLF
(Carriage-Return Line-Feed), che precede il corpo del messaggio e che deve essere
REGISTRAZIONE
Gatekeeper, la registrazione a un SIP Proxy Server avviene con soli due messaggi.
mentre nell’Header-field “Contact:” sono riportati uno o più indirizzi SIP dove
l’utente è raggiungibile.
41
SIP (Session Initiation Protocol)
sono codici di tre cifre (codici di stato) seguiti da una frase descrittiva, analogamente
alle risposte HTTP. In questo caso, la response è 200 OK, che indica che la request
ha avuto successo e i dati relativi all’utente sono stati memorizzati all’interno del
secondo messaggio, in quanto in tale campo il Server comunica il tempo per cui la
registrazione resta valida. Un utente può rinnovare una registrazione prima della sua
CALL SETUP
42
SIP (Session Initiation Protocol)
chiamato.
Osserviamo che i tre messaggi INVITE, 200 OK e ACK costituiscono una sorta
di three-way-handshake.
In questa fase avviene lo scambio, tra i due User Agents, dei pacchetti RTP.
Tali pacchetti, a differenza dei pacchetti di segnalazione propri di tutte le altre fasi,
6. Uno dei due User Agents, nel nostro caso il primo, invia il messaggio
43
SIP (Session Initiation Protocol)
chiamata.
RTP STREAM
44
Capitolo 4
La piattaforma Asterisk
La piattaforma Asterisk
4.1 Introduzione
ambiente Linux, che permette di realizzare a basso costo una soluzione completa di
PBX Voice over IP. Alcuni la definiscono come il più potente, flessibile ed
Il suo nome proviene dal simbolo dell’asterisco ‘*’, che negli ambienti Unix
fornisce per le comunicazioni SIP, H.323 e TDM, abbiamo effettuato varie prove per
ha richiesto l’utilizzo di una macchina basata su sistema operativo Linux (la nostra
alcuni già citati nei capitoli precedenti, altri che nomineremo a tempo debito.
46
La piattaforma Asterisk
4.2 L’architettura
dalla maggior parte dei prodotti per telefonia. Essenzialmente, Asterisk opera da
Le tecnologie per telefonia possono includere servizi VoIP (SIP, H.323) così
47
La piattaforma Asterisk
4.3 Il Dialplan
suo Diaplan. Esso è responsabile del routing di tutte le chiamate dalla sorgente alla
extensions.conf.
riceve una chiamata relativa a questa estensione, per prima cosa aspetta 3 secondi,
poi risponde alla chiamata e riproduce il file audio chiamato ‘demo’. Infine termina
la chiamata.
Nei prossimi due paragrafi, esamineremo i supporti che Asterisk fornisce alle
48
La piattaforma Asterisk
[general]
port=5060
binaddr=0.0.0.0
context=voip
disallow=all
allow=ulaw
[mysjphone]
type=friend
host=dynamic
dtmfmode=rfc2833
context=voip
mailbox=1234
[mykphone]
type=friend
host=dynamic
dtmfmode=inband
[linuxsjphone]
type=friend
host=dynamic
dtmfmode=rfc2833
context=voip
Come possiamo vedere, sono presenti più sezioni, ognuna delimitata da due
parentesi quadre [ ] contenenti il nome della stessa. In ogni sezione, poi, si usa la
sintassi keyword=opzione.
keyword port indica su quale porto il server resterà in ascolto di connessioni SIP
(di default è il porto 5060); binaddr, invece, indica su quale indirizzo IP dovrà
mettersi in ascolto (di default, l’indirizzo di ascolto è 0.0.0.0 che rappresenta tutte le
49
La piattaforma Asterisk
codec; nel nostro caso è abilitato solo il codec µ-law in quanto abbiamo testato un
client SIP per Linux, KPhone, che supporta unicamente codec a 64Kbps.
In seguito, abbiamo definito tre sezioni, una per ogni client che abbiamo
usato. Queste sezioni è come se fossero degli account personalizzati di ogni client.
client.
[voip]
exten => 1,1,Dial(SIP/mysjphone,30)
exten => 1,2,VoiceMail,u1234
exten => 1,102,VoiceMail,b1234
exten => 2,1,Dial(SIP/mykphone)
exten => 12,1,Dial(SIP/mysjphone&SIP/mykphone)
exten => 3,1,Dial(SIP/linuxsjphone,30)
;Voice Mail
50
La piattaforma Asterisk
;Nomi simbolici
exten => mysjphone,1,goto(1,1)
exten => mykphone,1,goto(2,1)
exten => linuxsjphone,1,goto(3,1)
exten => myvoicemail,1,goto(1001,1)
attraverso il PBX. Asterisk è un SIP Registrar e Location Server, quindi i client SIP,
prima di tutto, devono registrarsi. Nel nostro caso, abbiamo configurato il server per
così via. In alternativa, è possibile utilizzare i nomi simbolici definiti. Per quanto
riguarda il client mysjphone, abbiamo anche impostato una voicemail, una casella
vocale nella quale è possibile lasciare dei messaggi in caso di mancata risposta o di
esempio il Bye, prima di inoltrarlo all’altro client ripete con questi la fase di three-
51
La piattaforma Asterisk
confrontato con quello a pag. 44 (dove in luogo di Asterisk c’è il NIST SIP Proxy),
52
La piattaforma Asterisk
necessita delle librerie PWLib v.1.5.2 e OpenH323 v.1.12.2 installate sul sistema, ed
abbiamo sperimentato che non funziona correttamente con versioni più recenti.
[general]
port=1719
binaddr=0.0.0.0
context=voip
dtmfmode=rfc2833
gatekeeper=217.9.64.170
[det-gw]
prefix=323
Gatekeeper con cui interfacciarsi per gestire il traffico H.323. Anche in questo caso
che tutte le chiamate con prefisso ‘323’ dovranno essere inoltrate ad Asterisk. Questa
53
La piattaforma Asterisk
creato nel file extensions.conf, che gestisce sia le chiamate SIP che H.323.
[voip]
exten => 1,1,Dial(SIP/mysjphone,30)
exten => 1,2,VoiceMail,u1234
exten => 1,102,VoiceMail,b1234
exten => 2,1,Dial(SIP/mykphone)
exten => 12,1,Dial(SIP/mysjphone&SIP/mykphone)
exten => 3,1,Dial(SIP/linuxsjphone,30)
;Voice Mail
exten => 1001,1,Ringing
exten => 1001,2,Wait(2)
exten => 1001,3,VoicemailMain,s1234
;Nomi simbolici
exten => mysjphone,1,goto(1,1)
exten => mykphone,1,goto(2,1)
exten => linuxsjphone,1,goto(3,1)
exten => phonejack,1,goto(4,1)
exten => bellatrixh323,1,goto(5,1)
exten => myvoicemail,1,goto(1001,1)
di come sia possibile far interoperare H.323 con SIP: il server Asterisk dovrà
54
La piattaforma Asterisk
che produce, fra l’altro, l’hardware per la connettività con la PSTN/ISDN. Queste
schede, installate sulla stessa macchina sede del PBX, costituiscono dei Gateway
Inoltre c’è la possibilità di collegare a tali schede dei telefoni analogici, similmente a
sono realizzate in hardware sulla scheda che, poi, si interfaccia “naturalmente” con
55
La piattaforma Asterisk
4.7 L’interoperabilità
stato possibile realizzare un’architettura in cui far interoperare client SIP e H.323,
H.323 Alerting e Connect sono tradotti nei corrispondenti SIP 180 Ringing e 200
OK, rispettivamente.
56
La piattaforma Asterisk
57
La piattaforma Asterisk
Per quanto riguarda il termine della comunicazione, alla fine della fase di
rilascio della chiamata H.323 (vedi pag. 29), Asterisk invia il messaggio Bye al client
SIP.
SIP: connection_request()
[…]
Internet Protocol, Src Addr: 217.9.64.228, Dst Addr: 217.9.64.213
[…]
User Datagram Protocol, Src Port: 5060, Dst Port: 5060
[…]
Session Initiation Protocol
Request line: INVITE sip:phonejack@217.9.64.213:5060 SIP/2.0
[…]
Session Description Protocol
[…]
H.323: connection_request()
[…]
Internet Protocol, Src Addr: 217.9.64.213, Dst Addr: 217.9.64.170
[…]
Transmission Control Protocol, Src Port: 32919, Dst Port: 1719
[…]
H.225.0 CS
[…]
Message type: SETUP (0x05)
[…]
H.323: ringing()
[…]
Internet Protocol, Src Addr: 217.9.64.170, Dst Addr: 217.9.64.213
[…]
Transmission Control Protocol, Src Port: 32919, Dst Port: 1719
[…]
H.225.0 CS
[…]
Message type: ALERTING (0x01)
[…]
58
La piattaforma Asterisk
SIP: ringing()
[…]
Internet Protocol, Src Addr: 217.9.64.213, Dst Addr: 217.9.64.228
[…]
User Datagram Protocol, Src Port: 5060, Dst Port: 5060
[…]
Session Initiation Protocol
Status line: SIP/2.0 180 Ringing
[…]
H.323: connection_established()
[…]
Internet Protocol, Src Addr: 217.9.64.170, Dst Addr: 217.9.64.213
[…]
Transmission Control Protocol, Src Port: 32919, Dst Port: 1719
[…]
H.225.0 CS
[…]
Message type: CONNECT (0x07)
[…]
SIP: connection_established()
[…]
Internet Protocol, Src Addr: 217.9.64.213, Dst Addr: 217.9.64.228
[…]
User Datagram Protocol, Src Port: 5060, Dst Port: 5060
[…]
Session Initiation Protocol
Status line: SIP/2.0 200 OK
[…]
Session Description Protocol
[…]
Indirizzi IP:
59
Bibliografia
[2] Evi Nemeth, Garth Snyder, Scott Seebass, Trent R. Hein – Unix® System
systems.
communication.
[6] IETF RFC 1889 – RTP: A transport protocol for real-time applications.
[7] IETF RFC 1890 – RTP profile for audio and video conferences with minimal
control.
[15] Sito ufficiale The VOIP Wiki - a reference guide to all things VOIP –
http://voip-info.org/
[17] Mark Spencer, Mack Allison, Christopher Rhodes – The Asterisk Handbook,
Version 2.
[18] Leif Madsen, Jared Smith, Steven Sokol, Wasim Baig, Daniel Heinzen, Josh
[21] Saverio Niccolini, Rosario Giuseppe Garroppo, Jörg Ott, Stefan Prelle, Jiri
Kuthan, Jan Janak, Sven Ubik, Magrit Brandl, Dimitris Doskopoulos, Egon
61