UNIVERSITA DEGLI STUDI DI CATANIA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITA DEGLI STUDI DI CATANIA"

Transcript

1 UNIVERSITA DEGLI STUDI DI CATANIA FACOLTÀ DI INGEGNERIA DIPARTIMENTO DI INGEGNERIA INFORMATICA E DELLE TELECOMUNICAZIONI Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni SALVATORE PAGANO COMUNICAZIONE UNIFICATA PER SERVIZI INTERATTIVI BASATI SU RICONOSCIMENTO VOCALE TESI DI LAUREA RELATORE: Chiar.mo Prof. Ing. Aurelio La Corte ANNO ACCADEMICO

2 I A i miei carissimi genitori Enzo e Graziella

3 Indice INTRODUZIONE... V CAPITOLO 1 - VOICE OVER IP CENNI STORICI VANTAGGI RISPETTO ALLA RETE TELEFONICA TRADIZIONALE ARCHITETTURA DI UNA RETE VOIP PROTOCOLLI AI LIVELLI DI RETE, TRASPORTO E APPLICAZIONI Il protocollo IP Il protocollo TCP Il protocollo UDP I protocolli RTP e RTCP PRINCIPALI PROTOCOLLI DI SEGNALAZIONE E CONTROLLO IN AMBITO VOIP Il protocollo SIP Lo standard H Il protocollo IAX IAX E TRUNKING CONSIDERAZIONI SULLA SICUREZZA IN AMBITO VOIP CAPITOLO 2 - PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI INTRODUZIONE VANTAGGI DELLE RETI CONVERGENTI E DI NUOVA GENERAZIONE IL SISTEMA PUBBLICO DI CONNETTIVITÀ (SPC) II

4 INDICE 2.4 LA COMUNICAZIONE UNIFICATA (CU) Telefonia e postazione utente Mobilità Interconnessione tra messaggistica vocale e messaggistica istantanea Conferenze, presence e disponibilità INTEGRAZIONE DEI FLUSSI DI COMUNICAZIONE IDEA PROGETTUALE CAPITOLO 3 - SISTEMI DI INTERACTIVE VOICE RESPONSE INTRODUZIONE AI SISTEMI DI INTERACTIVE VOICE RESPONSE STATO DELL ARTE DEI SISTEMI IVR LA VOICE USER INTERFACE Speech synthesis Speech recognition Interpretazione grammaticale e semantica La strada verso la comprensione semantica: le ontologie ARCHITETTURA IVR BASATA SUGLI STANDARD W3C Lo standard VoiceXML Il Call Control XML Architettura IVR basata su VoiceXML e CCXML SICUREZZA NEI SISTEMI IVR Autenticazione dell utente Vulnerabilità e contromisure CAPITOLO 4 - PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR OBIETTIVI E FUNZIONALITÀ DELL ARCHITETTURA PROPOSTA INTERFACCIA GRAFICA E UTILIZZO DEL SOFTWARE IL LINGUAGGIO DI SCRIPTING Regole della sintassi Parole chiave CAPITOLO 5 - TEST E UTILIZZO IN SCENARI APPLICATIVI AMBIENTE DI SVILUPPO E TEST VALIDAZIONE DEL SOFTWARE: AUTOMAZIONE DEI SERVIZI DI UNA SEGRETERIA UNIVERSITARIA Servizi implementati Considerazioni sui test III

5 INDICE 5.3 ULTERIORI SCENARI E PROSPETTIVE DI UTILIZZO Automazione burocratica Sistemi di Interactive Voice & Video Response e applicazioni nel campo della domotica CONCLUSIONI APPENDICE BIBLIOGRAFIA RINGRAZIAMENTI IV

6 Introduzione L o scenario attuale delle reti e dei servizi di telecomunicazione vede il processo della convergenza dei media in continua evoluzione, in una prospettiva di integrazione sinergica di settori, mercati e/o prodotti di diversa origine e provenienza e in una prospettiva di vantaggi che scaturiscono dall adozione di soluzioni tecnologiche convergenti (economicità, maggiore efficienza ed efficacia, accesso a nuovi servizi ed ad informazioni che costituiscono un patrimonio globale per tutti gli utenti). In tale contesto, le comunicazioni unificate e l integrazione dei flussi di informazione assumono un ruolo fondamentale. Con queste premesse, il presente lavoro di tesi ha avuto come obiettivo lo studio e la realizzazione di una piattaforma di Comunicazione Unificata, destinata alla convergenza di tecnologie di comunicazione eterogenee ed in particolare alla fornitura automatica di servizi tramite telefono: sistemi con tali funzionalità prendono il nome di Interactive Voice Response (IVR). Se fino a qualche anno fa le funzioni offerte da tali sistemi si limitavano alla capacità di recitare un set di messaggi preregistrati e l utente poteva interagire con l IVR esclusivamente tramite la tastiera telefonica, la tecnologia attuale mette a disposizione dell utente interfacce vocali bidirezionali, che garantiscono un interazione quasi naturale con tali sistemi. Le potenzialità degli attuali sistemi IVR permettono prima di tutto di ampliare le V

7 INTRODUZIONE modalità di accesso dell utente ai servizi, consentendo di trasferire su telefono servizi che oggi sono comunemente usufruibili via Web o tramite operatore, unendo quelli che sono i vantaggi della telefonia con tutte le caratteristiche che solo un calcolatore possiede. Infatti il telefono rimane ancora oggi per la maggior parte degli utenti lo strumento di comunicazione di più immediato utilizzo. L idea di base consiste nel trasformare il terminale telefonico in una sorta di telecomando universale, capace di accedere a servizi, nonché pilotare e controllare tutti i dispositivi interfacciati con le applicazioni verticali. Il lavoro che presenteremo consente di esplorare le principali possibilità che oggi si hanno nel campo dell automatizzazione dei servizi via telefono e, al contempo, di delineare le linee evolutive degli IVR. Al fine di valutare in modo pratico le soluzioni progettate, durante il lavoro di tesi è stato sviluppato un insieme di applicazioni software che implementano funzionalità destinate alla convergenza di canali di comunicazione eterogenei e necessarie a fornire una completa interfaccia vocale di interazione uomo-macchina; questo ha consentito di esaminare quali sono le problematiche da affrontare e trovare opportune soluzioni, nei molteplici aspetti delle tecnologie da impiegare, della presentazione e fruibilità delle interfacce vocali, e delle tematiche relative alla sicurezza di tali sistemi. In particolare il software realizzato vuole presentarsi come un alternativa ai complessi (e costosi) sistemi IVR oggi disponibili, che sia adatto a scenari di complessità non eccessiva: infatti, come emergerà dall analisi dello stato dell arte, i sistemi attuali sono poco idonei a scenari in cui costo e semplicità non sono elementi di secondaria importanza. Nell ottica di sfruttare le potenzialità della telefonia e allo stesso tempo di usufruire dei benefici apportati dalla convergenza All-IP, risulta naturale la scelta di fare ricorso alle potenzialità che oggi sono messe a disposizione dalla telefonia via Internet, ovvero il Voice Over IP (VoIP). Difatti il primo capitolo è dedicato alla telefonia via IP; in particolare verranno analizzati i principali protocolli utilizzati oggi in ambito VoIP. Nel secondo capitolo, al fine di delineare gli obiettivi dell architettura progettata, verrà approfondito il concetto di Comunicazione Unificata, termine con cui si fa riferimento all integrazione di servizi real-time di comunicazione quali, ad VI

8 INTRODUZIONE esempio, l instant messaging, la telefonia, la videoconferenza, con i mezzi di comunicazione in differita come la segreteria telefonica, , SMS e fax; dunque non si tratta di un singolo prodotto, ma di un architettura di sistemi telematici che si avvalgono di mezzi diversi raggiungibili attraverso un unica interfaccia comune. L elemento collante è un Knowledge Management System, ovvero un sistema che implementa l insieme di tecniche e logiche che consentono il trattamento e il processamento delle informazioni. Nel terzo capitolo, andremo ad esaminare in dettaglio i sistemi di Interactive Voice Response. L esame dello stato dell arte permette di evidenziare quali sono le capacità degli attuali IVR: i progressi nel campo delle scienze informatiche rendono oggi possibile l implementazione di interfacce vocali uomo-macchina (in inglese voice user interface) tramite le quali l utente può interagire in maniera sempre più naturale con il sistema di fornitura di servizi. Andremo quindi ad approfondire gli elementi di base dell interfaccia vocale, ovvero i sistemi di sintesi e di riconoscimento della voce umana; il sistema di riconoscimento necessita anche di strumenti che siano capaci di rendere il linguaggio umano in una forma interpretabile dalla macchina: per questo motivo verranno analizzate quali soluzioni possono essere adottate per garantire una comprensione semantica della voce umana da parte della macchina. L analisi dello stato dell arte evidenzia come già oggi sistemi IVR di complessità arbitraria possono essere realizzati. Se quindi sotto diversi aspetti i sistemi IVR evoluti sono già realtà, le problematiche principali nella realizzazione degli stessi risiedono nella complessità a livello di implementazione; complessità che si traduce in costi che possono relegare l utilizzo di tali sistemi solo in determinati contesti. L analisi sarà dunque utile per cogliere gli elementi indispensabili da andare a racchiudere in un sistema IVR che sia adeguato alla fornitura di servizi in scenari di bassa e media complessità. Analizzeremo infine quali sono le problematiche di sicurezza che vanno affrontate, sia dal punto di vista del sistema che distribuisce i servizi, sia per quanto riguarda la tutela degli utenti che ne usufruiscono. Il capitolo 4 è dedicato alla presentazione della piattaforma di comunicazione unificata con funzionalità di Interactive Voice Response che è stata realizzata. Questa consiste in un middleware destinato alla realizzazione di servizi IVR customizzabili, VII

9 INTRODUZIONE adatto a scenari di bassa o media complessità, implementando diversi elementi destinati sia alla fornitura di interfacce vocali (via telefono) e testuali (tramite SMS ed ) con l utente, sia alla connessione verso basi di dati e applicazioni verticali. Nel capitolo 5 verrà presentato il test dell applicazione, che consiste nella realizzazione di uno scenario destinato alla gestione di alcune funzionalità di una segreteria universitaria tramite la piattaforma realizzata; lo scenario è anche a dimostrazione di come servizi già accessibili via Web o tramite operatore possono essere resi accessibili via telefono e automatizzati tramite tali sistemi. Verranno poi presentati ulteriori scenari applicativi i quali mettono in evidenza quali sono le potenzialità di tali tecnologie, costituendo uno spunto verso la creazione di servizi che amplificano in maniera significativa le possibilità che il Web può offrire. VIII

10 Capitolo 1 Voice over IP I l VoIP, acronimo di Voice over IP, è una tecnologia che rende possibile effettuare una conversazione telefonica sfruttando una connessione Internet o un altra rete dedicata che utilizza il protocollo IP. Più specificamente con VoIP si fa riferimento all insieme dei protocolli di comunicazione di strato applicativo che rendono possibile tale tipo di comunicazione. Grazie a numerosi provider VoIP è possibile effettuare telefonate anche verso la rete telefonica tradizionale (PSTN). Dopo una panoramica sui vantaggi del VoIP, saranno presentati alcuni dei principali protocolli utilizzati in tale ambito; in particolare verrà approfondito il protocollo Inter Asterisk exchange (IAX, giunto oggi alla seconda versione), poiché è stato utilizzato nel software di Interactive Voice Response implementato in questo lavoro di tesi. Tale scelta è motivata dal fatto che, come verrà evidenziato, il protocollo IAX ben si adegua ad un sistema destinato a servire un notevole volume di chiamate contemporaneamente, garantendo in tali casi un impiego di banda inferiore rispetto ad altri protocolli quali SIP e H

11 CAPITOLO 1 VOICE OVER IP 1.1 Cenni storici La nascita del VoIP si fa risalire al 1995, quando alcuni appassionati informatici israeliani sperimentarono la prima comunicazione voce tra due computer. Nello stesso anno la tecnologia fu inserita in un software noto come Internet Phone Software (prodotto da VocalTec): per parlare da PC a PC era sufficiente un modem, una scheda audio, altoparlanti e microfono. Attraverso la compressione e digitalizzazione del segnale audio, la voce viaggiava lungo la rete internet sottoforma di pacchetti dati. All inizio la qualità audio era scarsa e certamente inferiore a quella delle tradizionali linee telefoniche, ma la tecnologia migliorò rapidamente. Allo stesso tempo, iniziarono i lavori che portarono alla definizione di standard e protocolli quali l H.323 (da parte dell ITU-T) e SIP (per cui l IETF ha rilasciato la prima specifica, con la RFC 2543, nel 1999). Nel 1998 furono introdotti i primi gateway di interconnessione per abilitare le chiamate da PC alle linee telefoniche tradizionali. Oggi il VoIP é diventato un enorme business sia per le compagnie telefoniche tradizionali sia per nuove aziende specializzate che offrono servizi dedicati a privati ed aziende. 1.2 Vantaggi rispetto alla rete telefonica tradizionale Il vantaggio principale di questa tecnologia sta nel fatto che essa elimina l obbligo di riservare la banda per ogni telefonata (commutazione di circuito), sfruttando l allocazione dinamica delle risorse, caratteristica intrinseca delle reti basate su IP (ovvero a commutazione di pacchetto). Vengono instradati sulla rete pacchetti di dati contenenti le informazioni vocali, codificate in forma digitale, e ciò solo nel momento in cui è necessario, cioè quando uno degli utenti collegati sta parlando. Fra gli altri vantaggi rispetto alla telefonia tradizionale, ricordiamo: un minore costo per chiamata, specialmente su lunghe distanze; minori costi delle infrastrutture: quando si è resa disponibile una rete IP nessun altra infrastruttura è richiesta; - 2 -

12 CAPITOLO 1 VOICE OVER IP la possibilità di accedere a nuove funzionalità avanzate; l implementazione di future opzioni non richiederà la sostituzione dell hardware esistente. Le conversazioni VoIP non devono necessariamente viaggiare su Internet, ma possono anche usare come mezzo trasmissivo una qualsiasi rete privata basata sul protocollo IP, per esempio una LAN all interno di un edificio o di un gruppo di edifici. I protocolli usati per codificare e trasmettere le conversazioni VoIP sono solitamente denominati Voice over IP protocols. Uno dei vantaggi di questa tecnologia è che permette di fare leva su risorse di rete preesistenti, consentendo una notevole riduzione dei costi in ambito sia privato che aziendale, specialmente per quanto riguarda le spese di comunicazione interaziendali e tra sedi diverse. Una rete aziendale, infatti, può essere sfruttata anche per le comunicazioni vocali, permettendo di semplificare l installazione e il supporto e di aumentare il grado di integrazione di uffici dislocati sul territorio, ma collegati tramite l infrastruttura di rete. Il consumatore privato, utilizzando un collegamento ad Internet a banda larga (ad alta velocità e sempre attivo), può effettuare e ricevere chiamate telefoniche, potendo contare su tariffe molto economiche, soprattutto per le chiamate internazionali. La tecnologia VoIP introduce inoltre nuove possibilità per l offerta del servizio telefonico, quali: eliminare la distinzione tra chiamate locali ed a lunga distanza, mantenere diversi numeri telefonici su un solo collegamento, salvare messaggi vocali sul proprio computer, permettere telefonate completamente gratuite tra utenti dello stesso fornitore. Il VoIP può offrire un significativo vantaggio per la tutela della privacy. Infatti, in molte implementazioni VoIP, il traffico vocale viaggia direttamente tra i terminali dei due utenti e non attraversa una struttura di centrali di commutazione, su cui si ha la possibilità di installare un sistema di intercettazione. Tuttavia questo non è sempre vero, talvolta per motivi tecnici e altre volte per le pressioni degli organi di polizia sui gestori di sistemi VoIP perché permettano l intercettazione delle chiamate VoIP

13 CAPITOLO 1 VOICE OVER IP Inoltre, utilizzando una connessione via Internet è possibile adottare una comunicazione sicura, con crittografia a chiave asimmetrica e firma digitale, che impediscono a terzi di intercettare la conversazione e manipolarla (a meno di non dover ricorrere ad una grande potenza di calcolo). 1.3 Architettura di una rete VoIP Esaminiamo quali sono gli elementi essenziali di una rete VoIP (una visione d insieme è riportata in Figura 1-1). Prima di tutto, sul lato utente, è necessario un terminale VoIP. Sono disponibili diverse soluzioni in proposito: telefoni VoIP dedicati (hardware), che si connettono ad una rete IP utilizzando tecnologie quali Ethernet e Wi-Fi; softphone, ovvero applicazioni software da istallare su PC equipaggiati con altoparlanti (o cuffie) e microfono. Ne costituisce un esempio il software sviluppato che presenteremo al capitolo ; anche un normale telefono analogico può essere utilizzato come terminale VoIP tramite l utilizzo di opportuni adattatori (detti ATA, Analog Telephone Adapter). Elemento collante di un architettura VoIP è un server IP-PBX, ovvero una centrale telefonica per uso privato (in inglese Private Branch exchange) implementata su software. Esistono diverse soluzioni sul mercato; particolarmente interessante è il server Asterisk PBX 1, utilizzato nelle fasi di test dell applicazione realizzata. Un server PBX consente inoltre l interconnessione con la rete telefonica tradizionale, utilizzando i gateway VOIP. Un gateway VOIP è un dispositivo che converte il traffico telefonico analogico in pacchetti dati per la trasmissione in una rete di dati. Sono utilizzati in due modi: per convertire le linee telefoniche tradizionali (PSTN) in entrata in VoIP: in questo modo, il gateway VoIP permette che le chiamate siano ricevute ed 1 Asterisk, il progetto e sviluppato e rilasciato da Digium sotto licenza GNU General Public License

14 CAPITOLO 1 VOICE OVER IP effettuate sulla rete telefonica regolare. In molti casi in ambito commerciale, è preferibile continuare ad utilizzare le linee telefoniche tradizionali poiché possono garantire una qualità di chiamata e una disponibilità migliore. Per collegare il sistema telefonico/pbx tradizionale alla rete IP: in questo modo il gateway VoIP permette che le chiamate siano effettuate tramite VoIP. Le chiamate possono in questo modo essere effettuate tramite un service provider VoIP, oppure nel caso di una società con diversi uffici, i costi delle chiamate tra uffici possono essere ridotti reindirizzando le chiamate via Internet. Softphone VoIP PSTN Server PBX PSTN Router Gateway VoIP Terminale VoIP (USB) Rete IP Terminale VoIP Figura Il server IP PBX è simile ad un proxy server: gli utenti, che possono utilizzare softphone oppure terminali VoIP basati su hardware, si registrano con il server IP PBX e, quando si desidera effettuare una chiamata, chiedono all IP PBX di stabilire la connessione. L IP PBX possiede una directory di tutti gli utenti e del loro indirizzo corrispondente: ciò permette di collegare una chiamata interna oppure di reindirizzare una chiamata esterna sia tramite un gateway VoIP oppure tramite un service provider VoIP

15 CAPITOLO 1 VOICE OVER IP 1.4 Protocolli ai livelli di rete, trasporto e applicazioni Elemento di base delle reti VoIP è lo stack protocollare TCP/IP, costruito secondo il paradigma della commutazione di pacchetto. Tralasciando la tecnologia utilizzata a livello fisico, l infrastruttura VoIP si poggia sul protocollo di rete IP. Per quanto riguarda il livello soprastante, ovvero il trasporto, vengono utilizzati i protocolli TCP e UDP. Infine, altro protocollo fondamentale (ma non essenziale, come vedremo ad esempio nel caso del protocollo VoIP IAX) è RTP, che consente di far fronte ai problemi tipici delle reti basate sulla commutazione di pacchetto Il protocollo IP Il protocollo IP si occupa dell istradamento dei pacchetti attraverso la rete. Un pacchetto IP (o meglio datagramma), è costituito da un intestazione (o header) e di una parte dati. Le caratteristiche di IP si possono così riassumere: è un protocollo inaffidabile (unreliable), nel senso che non offre garanzie sulla consegna dei pacchetti, i quali possono essere persi, duplicati o consegnati fuori sequenza, senza che il trasmittente e il destinatario ne siano avvisati. è un protocollo connectionless, ovvero privo di connessione; ciascun pacchetto viene trattato dalla rete in maniera indipendente rispetto a tutti gli altri. Ad esempio, in linea di principio, un datagramma potrebbe seguire cammini totalmente differenti per raggiungere la medesima destinazione. è un protocollo best-effort: fa del suo meglio per consegnare i pacchetti. IP si occupa delle funzionalità di routing e include un insieme di regole che i terminali rispettano nel processamento dei pacchetti, nella generazione dei messaggi di errore e nel decidere quali pacchetti scartare. Funzionalità quali il controllo di flusso, il controllo di errore, ritrasmissione e riordino dei pacchetti, vengono fornite da protocolli di livello superiore

16 CAPITOLO 1 VOICE OVER IP Il protocollo TCP Il Transmission Control Protocol è un protocollo di livello di trasporto, progettato per utilizzare i servizi del protocollo IP, che non offre alcuna garanzia in ordine alla consegna, al ritardo, all errore o alla perdita dei pacchetti, al controllo di flusso tra terminali e alla congestione di rete, e costruire così un canale di comunicazione affidabile tra due processi applicativi supplendo ai problemi di cui sopra. Elenchiamo di seguito le principali caratteristiche del TCP: Il canale di comunicazione è costituito da un flusso bidirezionale (full duplex) di byte; TCP è un protocollo orientato alla connessione, ovvero prima di poter trasmettere dati deve stabilire la comunicazione, negoziando una connessione tra mittente e destinatario, che viene esplicitamente chiusa quando non più necessaria; offre funzionalità di controllo d errore sui pacchetti pervenuti grazie al campo checksum; TCP garantisce che i dati trasmessi, se giungono a destinazione, lo facciano in ordine e una volta sola. Questo è realizzato attraverso vari meccanismi di acknowledgment e di ritrasmissione su timeout; possiede funzionalità di controllo di flusso tra terminali in comunicazione e controllo della congestione sulla connessione, attraverso il meccanismo della finestra scorrevole Il protocollo UDP L User Datagram Protocol, a differenza del TCP, è un protocollo di trasporto di tipo connectionless; non garantisce il riordino e la trasmissione dei pacchetti persi, funzionalità che sono demandate a livello applicativo. In compenso è molto rapido ed efficiente per le applicazioni leggere o time-sensitive. Per questo motivo è largamente impiegato nella trasmissione di dati multimediali (audio e video). Il protocollo UDP fornisce esclusivamente i servizi basilari del livello di trasporto, ovvero: - 7 -

17 CAPITOLO 1 VOICE OVER IP multiplazioni delle connessioni (tramite il meccanismo delle porte); verifica (opzionale) degli errori mediante checksum. Come abbiamo visto invece il TCP garantisce anche il trasferimento affidabile dei dati, il controllo di flusso e il controllo di congestione I protocolli RTP e RTCP Il Real-time Protocol è un protocollo di livello applicativo impiegato nella trasmissione di traffico sensibile ai ritardi: aggiunge alle informazioni dell UDP e dell IP altri dati, come ad esempio dati sulla sequenzialità e sulla cronologia dei pacchetti, consentendo al ricevitore la ricostruzione del flusso. Tali informazioni aiutano il ricevitore a fissare le impostazioni per mascherare problemi quali ritardo, jitter e perdita di pacchetti. Si tratta di un protocollo leggero, che offre supporto per applicazioni operanti in tempo reale, quali possono essere trasmissioni di audio e video. Più in dettaglio, tra i servizi offerti da RTP vi sono: l identificazione del payload type; la numerazione sequenziale; la marcazione temporale (timestamp); la monitorazione. RTP è basato sul protocollo UDP e viene usato in congiunzione con RTCP (RTP Control Protocol) che monitora la qualità del servizio e trasporta le informazioni riguardo ai partecipanti ad una sessione. RTCP è sufficiente per sessioni loosely controlled, ovvero in cui non c è un reale controllo dei partecipanti e setup della sessione, e non è necessario che tutti i requisiti di controllo siano soddisfatti. Per questo RTP può essere coadiuvato da un protocollo apposito per la gestione delle sessioni (come ad esempio SIP o H.323 nel caso di telefonia VoIP). I pacchetti RTP sono formati da un header di minimo byte seguiti da un payload che dipende dalla specifica applicazione. Nei successivi paragrafi, vedremo l impiego di RTP con protocolli specifici per il VoIP quali SIP e H.323. L altro protocollo esaminato, ovvero IAX, non utilizza RTP, ma implementa le sue - 8 -

18 CAPITOLO 1 VOICE OVER IP funzionalità a livello applicativo, consentendo in generale un risparmio di banda rispetto a SIP e H Principali protocolli di segnalazione e controllo in ambito VoIP Il seguente paragrafo vuole fornire una panoramica, non esaustiva, sui protocolli oggi maggiormente utilizzati nelle reti VoIP. Non scenderemo nei dettagli di ciascun protocollo; tuttavia spenderemo qualche parola in più sul protocollo IAX, poiché è stato utilizzato nell implementazione del client VoIP dotato di funzionalità IVR per fornitura di servizi che presenteremo nel capitolo, argomento chiave di questo lavoro di tesi, per l interconnessione con Asterisk: le proprietà di questo protocollo, appositamente sviluppato per l interconnessione di server PBX, ben si adeguano ad un software destinato a gestire un elevato volume di traffico. Inoltre le caratteristiche di IAX, protocollo giovane se paragonato agli altri, ne fanno oggi un ottimo concorrente dei più diffusi SIP e H Il protocollo SIP Il Session Initiation Protocol (SIP) è un protocollo di segnalazione, definito dall IETF, utilizzato per il controllo di sessioni di comunicazione destinate al trasporto di flussi multimediali (voce e video) su IP. Il protocollo può essere utilizzato per creare, modificare e terminare sessioni tra due o più parti (dove per modifica si intende la possibilità di cambiare gli indirizzi o le porte, invitare nuovi partecipanti, e aggiungere o terminare flussi multimediali). La specifica più recente di SIP è la RFC SIP è stato concepito come protocollo di livello applicativo, ed è quindi indipendente dal protocollo di trasporto: infatti può funzionare su TCP, su UDP, o su SCTP [1]. SIP è basato sullo scambio di messaggi in formato testuale, ed include molti elementi dell Hypertext Transfer Protocol (HTTP) e del Simple Mail Transfer Protocol (SMTP) [2], facendo ad esempio ricorso al paradigma richiesta/risposta - 9 -

19 CAPITOLO 1 VOICE OVER IP utilizzato da HTTP. Ogni transazione consiste in una richiesta da parte di un client che invoca una particolare funzione su un server, seguita da una risposta. I terminali SIP tipicamente utilizzano le porte TCP o UDP e per effettuare la connessione verso un server; in particolare la porta è utilizzata solitamente per il trasporto di dati criptati. SIP non soltanto trova applicazione nelle fasi di setup e terminazione di una chiamata (audio o video), ma viene anche impiegato in applicazioni di messaggistica istantanea. I flussi multimediali nelle applicazioni basate su SIP vengono trasportati mediante il Real-time Transport Protocol (RTP), mentre la definizione e negoziazione dei parametri da impiegare per i flussi multimediali (numeri delle porte, protocollo di trasporto, codec da impiegare) viene effettuata tramite il Session Description Protocol (SDP), le cui informazioni vengono incapsulate nell header dei pacchetti SIP. Esaminiamo adesso più in dettaglio quali sono gli elementi di una rete VoIP basata su SIP. Gli elementi fondamentali di SIP sono gli User Agent (UA). Ogni dispositivo VoIP che usa SIP fa girare una applicazione UA. Gli UA contengono un client UAC (User Agent Client), che inoltra le richieste, ed un server UAS (User Agent Server), che riceve le richieste e restituisce messaggi SIP di risposta. Essendo SIP un protocollo di tipo peer-to-peer, i ruoli di UAC e UAS sopravvivono soltanto entro la durata di una transazione. Ogni elemento della rete SIP, quale ad esempio un UA, è identificato tramite un URI (Uniform Resource Identifier), basandosi dunque sulla comune sintassi utilizzata per l identificazione dei servizi Web e degli indirizzi . Tipicamente gli URI SIP sono nella forma. Come avviene per l HTTP, l User Agent può rendere nota la sua identità (in termini del software e dell hardware utilizzato), specificando il campo User-Agent contenuto nell intestazione dei messaggi scambiati. In un architettura di rete SIP, sono solitamente presenti anche altri elementi di rete: infatti, anche se due terminali SIP potenzialmente possono comunicare senza l intervento di server (come abbiamo già detto SIP è prima di tutto un protocollo peer-to-peer), nei casi pratici questo

20 CAPITOLO 1 VOICE OVER IP approccio può risultare impraticabile. La RFC 3261 definisce infatti altri elementi di rete. Server Proxy: inoltra i messaggi tra gli UA coinvolti nella conversazione replicando in comportamenti dello UAS per il chiamante e dello UAC per il ricevente. È dunque un server intermedio: può rispondere direttamente alle richieste oppure inoltrarle ad un client, ad un server o ad un ulteriore proxy. Un proxy server analizza i parametri di instradamento dei messaggi e nasconde la reale posizione del destinatario del messaggio, essendo quest ultimo indirizzabile con un nome convenzionale del dominio di appartenenza. Invia richieste UAC UA UAC UAS Server Proxy Registrar Invia risposte UAS UA Figura 1-2 Architettura SIP con server Proxy. Server Redirect: fornisce allo UAC che lo interroga l indirizzo per andare a collegarsi con il destinatario del messaggio. Lo UAC riceve il nuovo indirizzo e rilancia la chiamata direttamente. Server Redirect Registrar UAC Invia richieste UAC UAS UA UA Invia risposte UAS Figura 1-3 Architettura SIP con Server Redirect

21 CAPITOLO 1 VOICE OVER IP Sia il Proxy che il Redirect hanno all interno un Registrar Server, che è un particolare server utile a registrare gli utenti VoIP: quando un utente è iscritto ad un dominio, invia un messaggio di registrazione del suo attuale punto di ancoraggio alla rete ad un Registrar Server. Il Registrar può anche risiedere in un server dedicato. Location Server: è un database contenente informazioni sull utente, come il profilo, l indirizzo IP o l URI. I messaggi di SIP per il controllo delle chiamate sono in formato testo, molto simili a quelli usati da HTTP per lo scambio di pagine web. I messaggi sono di richiesta e di risposta. Gli UAC inviano messaggi di richiesta. Questi vengono instradati fino a giungere agli UAS di destinazione i quali spediranno le risposte. I messaggi di richiesta SIP sono: INVITE: invita uno o più utenti a partecipare ad una sessione e negoziazione dei parametri di chiamata. ACK: conferma che l UAC ha ricevuto una risposta finale ad una richiesta. BYE: indica l abbandono della sessione da parte di un utente. CANCEL: annulla una richiesta. OPTIONS: Richiede informazioni sullo stato di un server, sui tipi di flussi di dati che può accettare e generare, sui metodi supportati. REGISTER: Registra l indirizzo di uno User Agent all'interno di un server. Le risposte, analogamente a HTTP, sono rappresentate da un codice di stato di tre cifre, di cui la prima identifica la tipologia di risposta: (1XX) Provisional: la richiesta è stata ricevuta, ma il server la sta ancora processando. (2XX) Success: la richiesta ha avuto successo. (3XX) Redirection: la richiesta deve essere smistata ad un nuovo indirizzo. (4XX) Request Failure: la richiesta non è andata a buon fine. (5XX) Server Failure: il server non riesce a processare la richiesta. (6XX) Global Failure: nessun server può elaborare la richiesta

22 CAPITOLO 1 VOICE OVER IP Nella seguente figura è riportato lo scambio di messaggi tra due terminali, dalla fase di setup alla chiusura della conversazione, passando ovviamente per l apertura dello stream RTP. Terminale A Terminale B Figura 1-4 Setup, instaurazione e chiusura di una chiamata in SIP tramite server proxy. A è il terminale chiamante, B il terminale chiamato

23 CAPITOLO 1 VOICE OVER IP Lo standard H.323 L H.323 è una raccomandazione dell ITU-T che definisce una serie di protocolli destinati all instaurazione di sessioni di comunicazione audio e video su reti a pacchetto, dove non è garantita la qualità del servizio (QoS), quali le reti IP [3] ; comprende diversi elementi rivolti alla fornitura in tempo reale di comunicazioni di tipo audio, video e dati. Lo standard H.323 definisce severe specifiche a livello di computer, equipaggiamento e servizi, nonché tutti gli aspetti della trasmissione della chiamata, dal suo stabilimento fino alle capacità di commutazione e disponibilità delle risorse di rete, sia per chiamate punto-punto che per conversazioni multipunto [4]. Include il protocollo H per la segnalazione, l H.245 per il controllo a livello di trasmissione, diversi codec audio (quali G.711, G.722, G.723, G.728, G.729) e video (come ad esempio H.261 e H.263), oltre a specifiche riguardanti il livello di trasporto. Una visione complessiva dello stack protocollare è riportata in Figura 1-5. In particolare i prodotti che vogliono essere conformi allo standard devono supportare obbligatoriamente G.711, RTP, RTPC, H.225.0, H.245 e Q.931. Figura 1-5 Stack protocollare dello standard H

24 CAPITOLO 1 VOICE OVER IP L architettura di rete basata su H.323 comprende diversi elementi (si veda Figura 1-6). Prima di tutto vi sono i terminali lato utente. Tutti i terminali conformi ad H.323 devono supportare almeno un codificatore audio, ovvero quello descritto nella raccomandazione G.711 (può essere sia l europeo A-law che l americano μ- law). Altre codifiche descritte nelle raccomandazioni G.723, G.726, G.728 e G.729 sono opzionali. I terminali possono gestire più canali audio contemporaneamente (utilizzando anche sistemi di codifica differenti). Il supporto al video è opzionale; nel caso in cui un terminale sia capace di offrire la codifica e decodifica video, dovrà essere conforme a raccomandazioni quali H.261 e H.263. MCU Rete Internet Terminale Gateway Rete Gatekeeper BES Figura 1-6 Architettura di una rete VoIP H.323 Oltre ai terminali, la raccomandazione H.323 prevede altri componenti, alcuni dei quali sono opzionali. Sono di seguito descritti. i gateway, dispositivi che forniscono l interoperabilità tra la rete H.323 e altre reti (inclusa la rete telefonica PSTN e altre reti non H.323, ad esempio SIP); un Multipoint Control Unit, o MCU, che si occupa della gestione delle chiamate in conferenza (multipunto); un gatekeepers (altro componente opzionale, ma spesso utilizzato [5] ) che fornisce numerosi servizi ai terminali, ai gateway e agli MCU. Questi servizi

25 CAPITOLO 1 VOICE OVER IP includono la registrazione dei terminali, la risoluzione degli indirizzi, l autenticazione degli utenti e il controllo della banda disponibile; se la rete prevede un gatekeepers, potrà essere presente anche un Back End Service (BES), che tiene traccia dei dati dei terminali (autorizzazioni, servizi e configurazioni). Ritornando alla Figura 1-5, possiamo notare che i protocolli che costituiscono H.323 si dividono in due categorie, a seconda del protocollo di trasporto su cui essi si poggiano: alcuni utilizzano TCP (quindi si poggiano su un canale reliable, ovvero a consegna garantita); altri invece utilizzano UDP (consegna non garantita). In particolare: RTP è utilizzato per la trasmissione in tempo reale di contenuti multimediali; RTPC è utilizzato per rilevare la qualità del servizio, fornire il controllo di sessione e le funzionalità di identificazione degli utenti. H viene utilizzato per la comunicazione con un gatekeeper. Q.931 costituisce il protocollo utilizzato per l instaurazione e l abbattimento di una chiamata, passando per le fasi di setup, connessione e rilascio. H.245 viene utilizzato per la negoziazione dei parametri da utilizzare durante una conversazione (ad esempio, per stabilire i codec da utilizzare). Una sessione VoIP H.323 può essere inizializzata sia tramite TCP che tramite UDP. Nel caso più semplice di instaurazione di una chiamata tra due terminali (senza cioè il passaggio per un gatekeeper), lo scambio dei flussi prevede la seguente logica: l instaurazione della chiamata viene inizializzata tramite Q.931 (nell esempio, passando per il TCP); interviene quindi H.245: vengono negoziati gli indirizzi e le porte utilizzati per far transitare il traffico multimediale vero e proprio; inizio dell invio di stream di dati RTP e di controllo RTCP. Questo scenario è quello riportato in Figura 1-7. Instaurata la chiamata, H.245 continua ad essere utilizzato per lo scambio di ulteriori informazioni di controllo

26 CAPITOLO 1 VOICE OVER IP Quello presentato è il modello di riferimento per istaurare una chiamata secondo la pila protocollare H.323 in presenza di terminali o gateway. Se l architettura di rete prevede anche la presenza di un gatekeeper, entra in gioco anche il protocollo H RAS, che prevede operazioni di registrazione dei terminali e la concessione o meno delle risorse per una chiamata. Terminale A Connessione TCP Inizio setup chiamata ALERTING Connessione di H.245 tramite host e porta specificata Terminale B Q.931 Connessione TCP Messaggi H.245 Apertura canale logico (RTCP su host e porta specificati) ACK Apertura canale logico (RTCP su host e porta specificati) ACK H.245 Stream RTP Stream RTP Istruzioni RTCP RTP Figura 1-7 Setup della chiamata in H.323 tra i terminali A (chiamante) e B (chiamato)

27 CAPITOLO 1 VOICE OVER IP Il protocollo IAX IAX è un acronimo che sta per Inter Asterisk exchange. È un protocollo adottato dal server PBX open source Asterisk, utilizzato per abilitare connessioni VoIP tra i server Asterisk e tra server e client che utilizzano lo stesso protocollo. IAX oggi è comunemente indicato come IAX2, la seconda versione del protocollo IAX. Il protocollo originale IAX è ormai obsoleto ed è disapprovato in funzione di IAX2, che è stato recentemente pubblicato come informational 2 RFC 5456 [6]. Di seguito, col termine IAX, sarà sottointeso il riferimento alla seconda versione del protocollo. IAX è un protocollo robusto e completo rimanendo al contempo semplice. Si tratta di un protocollo peer-to-peer destinato al trasporto sia della segnalazione che dei flussi multimediali [7]. È indipendente dal codec e dal numero di flussi quindi può essere usato in teoria per il trasporto di qualunque tipo di dato (caratteristica che certamente si rivelerà utile quando la videofonia sarà più diffusa). IAX utilizza un singolo flusso dati UDP (tipicamente sulla porta ) per comunicare tra i due sistemi, sia per la segnalazione di controllo che per il trasporto dei dati. Il traffico voce è trasmesso in banda, rendendo più semplice per IAX l attraversamento di un firewall: tali caratteristiche fanno sì che IAX possa lavorare più facilmente dietro una rete con NAT (i protocolli SIP o H.323 invece utilizzano dei flussi RTP per il trasporto dei contenuti multimediali). Il protocollo IAX supporta il trunking per trasportare su un singolo collegamento dati e segnali per più canali. Quando è attivo il trunking, più chiamate sono unite in un singolo insieme di pacchetti; quindi un singolo datagramma IP può trasportare informazioni relative a più chiamate riducendo l effettivo overhead senza creare ritardi addizionali, come illustrato in Figura 1-8. Questo è un vantaggio notevole per gli utilizzatori del VoIP dove le intestazioni IP occupano una grossa percentuale della larghezza di banda. Tali caratteristiche ben si adeguano alla realizzazione di un client VoIP, come quello proposto in questo lavoro di tesi, destinato a servire più chiamate simultaneamente, come avremo modo di approfondire nel successivo paragrafo. 2 RFC Informational: si tratta di un documento di tipo informativo; dunque non rappresenta una raccomandazione di sorta

28 CAPITOLO 1 VOICE OVER IP Call Number Host A Host B Call Number Porta UDP 4569 Rete IP Porta UDP 4569 Figura 1-8 Più chiamate vengono multiplexate in un unico flusso sulla well know port UDP ; il singolo stream di dati multimediali è identificato mediante un campo a bit: il call number. Ad una singola chiamata sono associati due call number, ovvero uno per ciascuna direzione. Il principale obiettivo del protocollo IAX fu infatti quello di minimizzare la larghezza di banda necessaria per la trasmissione dell informazione, prestando particolare attenzione al controllo, alle chiamate vocali individuali e al supporto nativo per l utilizzo trasparente su reti con NAT. La struttura di base del protocollo IAX permette di miscelare i segnali e più flussi di dati su un singolo flusso UDP tra due computer. Per ridurre l overhead, IAX fa uso di un protocollo binario: il protocollo SIP invece utilizza per le segnalazioni un protocollo basato su messaggi in formato testuale. Questo fa sì che la dimensione dei messaggi di segnalazione di IAX sia generalmente minore rispetto a SIP. Vediamo adesso con un esempio, come avviene lo scambio di messaggi (o frame, utilizzando la terminologia di IAX) tra due terminali IAX per l instaurazione e lo svolgimento di una chiamata, fino alla sua terminazione (si faccia riferimento alla Figura 1-9). Setup della chiamata Un terminale inizia la comunicazione inviando un messaggio di tipo New. A questo punto il terminale chiamato risponde con un messaggio di Ack per confermare la ricezione del messaggio. Il terminale chiamato notifica al chiamante di essere in stato di Ringing. In fine, il terminale chiamato accetta la chiamata con un messaggio di Answer (tali messaggi sono sempre

29 CAPITOLO 1 VOICE OVER IP accompagnati da messaggi Ack di conferma da parte del terminale chiamante). A questo punto la fase di setup della chiamata è conclusa. Scambio dei flussi audio In questa fase vengono scambiate due tipologie di pacchetti in entrambe le direzioni: M ed F. I flussi audio vengono trasportati mediante frame di tipo M (M-frame), che contengono un semplice header di appena byte. Allo scambio dei flussi multimediali si aggiungono delle frame di tipo F (Fframe), che includono informazioni di sincronizzazione. Vale la pena di sottolineare che si utilizza ancora lo stesso protocollo (UDP) che è utilizzato nei messaggi di segnalazione (per il setup e la terminazione della chiamata) evitando così problemi di tipo NAT sui router e sui firewall. Terminale A Terminale B NEW SETUP ACCEPT ACK RINGING ACK Terminale A Terminale B ANSWER TEARDOWN AUDIO ACK Frame di tipo F ed M HANGUP ACK Figura Scambio di messaggi durante la fase di setup della chiamata, fino alla sua terminazione (o teardown). Terminazione (o Teardown) della chiamata In questa fase il terminale che ha chiuso la chiamata, invia un messaggio di Hangup. L altro terminale, risponderà ancora con un Ack

30 CAPITOLO 1 VOICE OVER IP Come già anticipato, nel protocollo IAX, intervengono due tipologie di frame. Nel corso di una normale chiamata vocale, vengono istaurati due flussi di comunicazione, uno per ciascuna direzione. Ciascun flusso si compone di due tipologie di frame: frame di tipo M (o IAX Mini Frame), che possiedono un header limitato (appena byte), destinate ad esempio al trasporto dei flussi multimediali, e frame di tipo F (o Full Frame). Di seguito è analizzata la struttura delle due tipologie di frame. F-frame (o Full Frame) Le frame di tipo F (si veda Figura 1-10) sono le uniche per le quali è richiesto un trasporto di tipo affidabile: questo significa che il destinatario dovrà rispondere con un messaggio di Ack esplicito (oppure implicito, come l Accept visto precedentemente nella fase di setup). Il formato è il seguente: Figura 1-10 formato binario di una IAX Full Frame. Il significato di ciascun campo è riportato di seguito: F: è un singolo bit utilizzato per indicare se la trama è una Full Frame (e in tal caso ) o meno (e in tal caso ). Source Call Number: campo a bit che costituisce l identificativo associato ad uno stream dal lato del mittente della frame

31 CAPITOLO 1 VOICE OVER IP R: questo bit è posto a se si tratta di una prima trasmissione. In caso di ritrasmissione del pacchetto, sarà posto a. Le ritrasmissioni vengono eseguite allo scadere dei timeout. Destination Call Number: campo a bit che indica l identificativo univoco associato ad uno stream da parte della destinazione. Timestamp: campo a bit utilizzato per tracciare la sequenza temporale di ciascuna frame. Outbound Stream Sequence Number (OSeqno): campo a bit utilizzato dal terminale di destinazione per riordinare le media frame (ovvero frame che trasportano dati multimediali, di natura audio e video). Il suo valore viene incrementato progressivamente. Inbound Stream Sequence Number (ISeqno): simile al precedente OSeqno, ma utilizzato per tracciare l ordine delle media frame in ingresso. Precisamente viene indicato il valore atteso di ISeqno della prossima media frame attesa. Frame Type: identifica la classe del messaggio. Si faccia riferimento alla Tabella 1 per la lista delle possibili classi. C: è un singolo bit che determina come va interpretato il successivo campo Subclass: se C è posto ad, allora Subclass va interpretato come una potenza di 2, altrimenti verrà interpretato come valore senza segno a bit. Seguono i byte dati. M-Frame (o Mini Frame) Le frame di tipo M sono utilizzate per trasportare contenuti multimediali col minimo utilizzo di banda. La struttura è riportata in Figura In questo caso il bit F sarà posto a. Notare che il timestamp è a bit, contro i utilizzati nelle frame di tipo F: questo perché vengono riportati soltanto i bit di posizione più bassa dell intero timestamp a bit mantenuto dal terminale. Per il campo Source Call Number valgono le considerazioni già fatte per le frame di tipo F. Ai byte di header seguono i dati

32 CAPITOLO 1 VOICE OVER IP Figura 1-11 Struttura di una IAX Mini Frame. IAX prevede anche altre tipologie di frame, quali le meta frame e le meta trunk frame, destinate queste ultime al trasporto di dati multimediali nel caso di utilizzo della modalità trunk. Nel caso di meta trunk frame sarà presente un header fisso di byte, seguito da più subframe, ciascuna contenente un header di byte e la parte dati di dimensioni variabili. Vedremo in termini prestazionali cosa comporta l utilizzo delle meta trunk frame nel paragrafo successivo. La seguente tabella indica la corrispondenza tra valore di frame type e classe del messaggio. Valori di "Frame Type" Descrizione Tabella 1 Dettagli 0x01 DTMF Invio di segnalazione DTMF. Subclass contiene il DTMF inviato. 0x02 Dati voce In questo caso il campo Subclass indica il codec audio utilizzato. Per i dettagli, si faccia riferimento alla Tabella 2. 0x03 Dati video In questo caso il campo Subclass indica il codec video utilizzato. 0x04 0x05 0x06 Controllo di sessione Null Messaggio IAX di controllo Il valore in questione indica che la frame è destinata al controllo di sessione. Il campo Subclass indica lo specifico messaggio di controllo. Per i dettagli, si consulti la Tabella 3. Si tratta di messaggi destinati al controllo dei terminali IAX. Il campo Subclass specifica il tipo di messaggio di controllo. Per una lista dei principali messaggi di controllo, si consideri la Tabella 4. 0x07 Testo Utilizzato per l invio di messaggi di testo. 0x08 Immagine Il campo Subclass indica il formato di compressione utilizzato. 0x09 HTML

33 CAPITOLO 1 VOICE OVER IP Tabella 2 Valori di Subclass ( ) 0x0001 0x0002 0x0004 0x0008 0x0080 Descrizione: codec audio utilizzato nella conversazione G GSM FULL RATE G.711 u (μ-law) G.711 a (a-law) LPC10 0x0100 G.729 0x0200 0x0400 Speex ilbc Tabella 3 Valori di Subclass ( ) 0x01 0x02 0x03 0x04 0x05 0x08 0x0e Descrizione Hangup Ring Ringing Answer Busy Condition Congestion Condition Call Progress ( Valori di Subclass 0x01 ) Descrizione NEW Dettagli Inizializza una nuova chiamata Tabella 4 Valori di Subclass ( ) Descrizione Dettagli 0x10 REGREJ Registrazione rifiutata 0x02 PING Richiesta di Ping 0x11 REGREL Registrazione rilasciata 0x03 PONG Risposta al Ping 0x12 VNAK 0x04 ACK Acknowledgement 0x13 DPREQ 0x05 HANGUP Inizializza la chiusura della chiamata Richiesta di trasmissione audio/video Richiesta di validazione del numero chiamato 0x14 DPREP Risposta a DPREQ 0x06 REJECT Chiamata rifiutata 0x15 DIAL Composizione numero 0x07 ACCEPT Chiamata accetta 0x16 TXREQ 0x08 0x09 AUTHREQ AUTHREP Richiesta di autenticazione Conferma sull autenticazione 0x17 TXCNT Richiesta di trasferimento Connessione del trasferimento 0x18 TXACC Trasferimento accettato 0x0a INVAL Chiamata non valida 0x19 TXREADY Trasferimento pronto 0x0b LAGRQ Misura di ritardo 0x1a TXREL Trasferimento ultimato 0x0c LAGRP Risposta a LAGRQ 0x1b TXREJ Trasferimento rifiutato 0x0d REGREQ Richiesta di registrazione 0x1c QUELCH 0x0e REGAUTH Registrazione autenticata 0x1d UNQUELCH Blocca la trasmissione audio/video Riprende la trasmissione audio/video 0x0f REGACK Ack di registrazione 0x20 MWI In attesa di messaggio 0x21 UNSUPPORT Messaggio non supportato

34 CAPITOLO 1 VOICE OVER IP Compresi i meccanismi di segnalazione adottati dal protocollo IAX, possiamo adesso meglio analizzare le macchine a stati relative al comportamento dei terminali chiamante e chiamato: in Figura 1-12 sono evidenziate le transizioni di stato nei due casi in corrispondenza della segnalazione scambiata nella fase di setup della telefonata. Terminale A (chiamante) Final A B: HANGUP Auth B A: ACK A B: HANGUP B A: ACCEPT A B: ACK B A: AUTHREQ A B: AUTREP NULL A B: NEW Accept Wait B A: ACCEPT A B: ACK Accepted B A: REJECT A B: ACK B A: RINGING A B: ACK Connected B A: ANSWER A B: ACK Ringing Terminale B (chiamato) NULL Accept Rcvd Ringing Rcvd Connected A B: NEW B A: ACCEPT B A: RINGING B A: ANSWER A B: ACK A B: ACK A B: ACK New Rcvd Ringing Sent Answer Sent Figura 1-12 Macchine a stati relative alla fase di setup della chiamata tra i terminali A (chiamante) e B (chiamato). In particolare, nella macchina a stati riguardante il terminale A, viene evidenziata tramite le frecce più scure il setup della telefonata mediante autenticazione

35 CAPITOLO 1 VOICE OVER IP 1.6 IAX e trunking Il presente lavoro di tesi ha come obiettivo la realizzazione di un sistema IVR su VoIP, decentralizzato rispetto all IP-PBX; in tale contesto non è certamente irrilevante la minimizzazione della banda impiegata per il trasporto dei flussi multimediali. Sotto questo punto di vista può rivelarsi adeguato l utilizzo del protocollo IAX. Vediamo infatti di capire perché il protocollo IAX permette di sfruttare efficacemente la banda disponibile per trasmettere il massimo numero di canali possibile. Si può utilizzare IAX secondo due possibili configurazioni: trunk, no-trunk. Nella prima si ottimizza la segnalazione, trasmettendo in un singolo pacchetto IP/UDP i campioni relativi a più canali voce, mentre nella seconda i canali voce utilizzano pacchetti IP differenti. Se prendiamo come esempio una trasmissione con codec G.729, che ha sample period di, ovvero che trasmette il flusso vocale in gruppi di campioni di (e byte ciascuno), abbiamo che in un singolo pacchetto IP/UDP, con un header IAX di byte, e byte aggiuntivi per singolo canale voce, possiamo trasmettere decine di canali, con un limite non vincolante dato dall MTU 3 di rete, con solo byte aggiuntivi per ogni canale a partire dal secondo. In modalità no-trunk ogni singolo canale voce richiede byte di header IAX, e per ogni di campioni. Considerando quindi una lunghezza fissa dell header IP/UDP di bytes, ogni pacchetto trasmesso ha dimensione bytes, un risparmio rispetto l uso di RTP, che implica byte di overhead per pacchetto, ma sicuramente un overhead eccessivo rispetto IAX in modalità trunk. I seguenti grafici mettono a confronto le prestazioni di IAX, sia nelle modalità trunk, che no-trunk, con quelle di SIP, in termini di consumo di banda in uplink a livello di rete, a chiamata in corso, a parità di codec audio utilizzato 4. Viene tralasciato il confronto con H.323, in quanto l utilizzo della banda, nel corso della telefonata, è pressoché riconducibile a quello di SIP, dato che entrambi fanno uso di 3 MTU: Maximum Transmission Unit. Rappresenta la dimensione massima di un pacchetto che può essere inviato tramite uno specifico protocollo di rete. 4 Per la raccolta dei dati, è stato utilizzato il simulatore disponibile all indirizzo:

36 Utilizzo di banda a livello di rete (Kbps) Consumo di banda a livello di rete (Kbps) CAPITOLO 1 VOICE OVER IP RTP per il trasporto dei dati multimediali. Dai grafici possiamo notare che IAX consente di ridurre l impiego di banda rispetto a SIP anche in modalità no-trunk. In particolare, i benefici che si possono trarre dall utilizzo di IAX in modalità trunk sono tanto maggiori quanto maggiore è il numero di telefonate trasportate e quanto più basso è il rate del codec utilizzato: si confronti ad esempio il grafico relativo a G.711 con quello sulle prestazioni di G.729. Questo perché più basso è il rate del codec audio, maggiore sarà il peso dell header sull intero pacchetto. 2500,00 G.711 (64 Kbps) 2000, , ,00 500,00 0, SIP IAX (no-trunk) IAX (trunk) Chiamate Grafico 1 Confronto su impiego di banda a livello di rete per codec G.711 (rate 64 Kbps). 2000,00 G.722 (56 Kbps) 1500, ,00 500,00 SIP IAX (no-trunk) IAX (trunk) 0, Chiamate Grafico 2 Confronto su impiego di banda a livello di rete per codec G.722 (rate 56 Kbps)

37 Consumo di banda a livello di rete (Kbps) Utilizzo di banda a livello di rete (Kbps) CAPITOLO 1 VOICE OVER IP 1400, , ,00 800,00 600,00 400,00 200,00 0,00 G.726 (32 Kbps) SIP IAX (no-trunk) IAX (trunk) Chiamate Grafico 3 Confronto su impiego di banda a livello di rete con codec G.726 (codifica adaptative DPCM, con rate di 32 Kbps). 800,00 700,00 600,00 500,00 400,00 300,00 200,00 100,00 0,00 GSM (13 Kbps) SIP IAX (no-trunk) IAX (trunk) Chiamate Grafico 4 - Confronto su impiego di banda a livello di rete per codec GSM (ovvero codifica RPE-LTP in modalità Full Rate: il rate è in questo caso di 13 Kbps)

38 Utilizzo di banda a livello di rete (Kbps) Consumo di banda a livello di rete (Kbps) CAPITOLO 1 VOICE OVER IP 700,00 600,00 500,00 400,00 300,00 200,00 100,00 0,00 G.729 (8 Kbps) SIP IAX (no-trunk) IAX (trunk) Chiamate Grafico 5 - Confronto su impiego di banda a livello di rete per codec G.729 (rate 8 Kbps). 600,00 G (6,3 Kbps) 500,00 400,00 300,00 200,00 100,00 0, SIP IAX (no-trunk) IAX (trunk) Chiamate Grafico 6 - Confronto su impiego di banda a livello di rete per codec G (rate 6.3 Kbps). Infine bisogna ovviamente considerare l overhead di livello datalink, che dipende dal protocollo di trasmissione utilizzato (Ethernet, XDSL, ecc.)

39 CAPITOLO 1 VOICE OVER IP 1.7 Considerazioni sulla sicurezza in ambito VoIP Vediamo adesso come affrontare le problematiche relative alla sicurezza nella telefonia VoIP. Gli aspetti sulla sicurezza diventano particolarmente importanti nel momento in cui il VoIP diventa via di accesso a servizi. Bisogna infatti tenere presente che i pacchetti che transitano su una rete IP possono essere intercettati da utenti malevoli. Ciò rende indispensabile l adozione di opportune misure di sicurezza, che coinvolgono le diverse entità della rete (quali switch, gateway, router e firewall), come esposto in [8]. I firewall sono l elemento base di sicurezza nelle reti IP e solitamente sono la prima linea di difesa nella protezione di una rete. I firewall consentono di bloccare il traffico giudicato invasivo, secondo un set di regole opportunamente programmate. È opportuno dotare la rete di firewall progettati appositamente per il supporto di protocolli VoIP, capaci ad esempio di aprire in modo dinamico solo le porte necessarie per la durata della conversazione; una volta completata la chiamata, la porta si chiude automaticamente per garantire una maggiore sicurezza. Il NAT (Network Address Translation) è uno strumento che consente ai diversi terminali di una LAN di condividere lo stesso indirizzo IP pubblico, ma viola così il principio della comunicazione da qualsiasi host a qualsiasi host (any to any), contribuendo a rendere più difficoltose le fasi di setup delle chiamate nel caso di utilizzo di protocolli VoIP. Per far fronte a tali problematiche, è opportuno ricorrere a strumenti quali STUN (acronimo di Session Traversal Utilities for Network Address Translators): si tratta di un protocollo (definito nella RFC 5389 [9] ) e di un insieme di funzioni che permettono alle applicazioni in esecuzione su un computer di scoprire la presenza ed i tipi di NAT e firewall che si interpongono tra il computer e la rete pubblica. STUN permette a queste applicazioni di conoscere gli indirizzi IP e le porte con cui il dispositivo NAT li sta rendendo visibili sulla rete pubblica. STUN opera con molti NAT preesistenti e non richiede particolari comportamenti da essi. Come risultato, STUN assicura ad una grande varietà di applicazioni IP (quali, nel nostro contesto, i telefoni e i softphone VoIP) di lavorare attraverso le varie strutture NAT preesistenti. Un telefono o un software VoIP include solitamente un client STUN,

40 CAPITOLO 1 VOICE OVER IP che invierà una richiesta ad un server STUN. Il server riporterà al client STUN l indirizzo IP pubblico e la porta UDP che il dispositivo NAT (ad esempio un router) sta associando al client per il traffico entrante nella rete. Firewall, gateway e dispositivi analoghi possono certamente contribuire ad evitare compromissioni della rete. Un ulteriore livello di difesa è costituito dalla cifratura dei pacchetti IP, tramite ad esempio l utilizzo di IPSec o a livello di trasporto, utilizzando un RTP sicuro [8]. Tali misure di sicurezza possono però comportare dei peggioramenti in termini di QoS: in particolare la cifratura comporta l espansione della dimensione dei pacchetti (quindi un maggior impiego di banda trasmissiva) oltre all introduzione di ulteriore latenza nella trasmissione dei pacchetti. Ulteriori aspetti relativi alla sicurezza, ma esplicitamente legati ai sistemi IVR, saranno presi in esame nel paragrafo

41 Capitolo 2 Piattaforma avanzata per comunicazioni unificate e per la convergenza di sistemi verticali I l presente capitolo consente di andare a delineare gli obiettivi di questo lavoro, ovvero il concepimento di una piattaforma che consenta di far convergere sistemi di telecomunicazione eterogenei, al fine di poter trarre significativi benefici dalla pluralità degli stessi. La molteplicità di mezzi di comunicazione (quali telefono, posta elettronica, fax, SMS, Videoconferenza, ecc.) può non costituire un elemento positivo, se vi è una mancanza di coordinamento tra essi: in particolare le aziende possono risentire dell eccessiva scelta di canali di comunicazione. Da qui nasce l esigenza di definire un architettura per le Comunicazioni Unificate, ovvero un insieme di tecnologie capaci di unificare i diversi sistemi di comunicazione e di farli cooperare intelligentemente tramite un Knowledge Management System, ovvero una piattaforma nella quale sono definite le logiche necessarie al trattamento dell informazione proveniente dalle diverse sorgenti. In questo processo di convergenza, fondamentale è il ruolo dell Internet Protocol

42 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI 2.1 Introduzione Le nuove reti di comunicazione (NGN Next Generation Networks) presentano soluzioni architetturali ed impostazione logica che consentono una evoluzione dei servizi di telecomunicazione nella direzione della totale integrazione e convergenza dei media. Al contempo, l attuale ampia diffusione delle reti basate sul paradigma IP ha portato ad una situazione di fatto in cui il settore tecnologico delle telecomunicazioni e dell informazione vede da anni un processo evolutivo caratterizzato dalla progressiva digitalizzazione di tutti i tipi di informazione. La voce, le immagini e vari tipi di segnale e di media non sono altro che una diversa espressione di un segnale dati, ovvero una sequenza di bit. È naturale pensare che, una volta che l informazione è in un formato digitale, le varie tipologie di segnale, indipendentemente dalla sua sorgente, si possono trasportare sullo stesso sistema di comunicazione. Al contempo, è naturale pensare che, una volta che i vari servizi sono rappresentati in modo simile, gli stessi possono essere fruiti o distribuiti anche su differenti piattaforme di rete. Dalla digitalizzazione dell informazione, scaturisce, pertanto, la convergenza, intesa come la capacità di differenti piattaforme di rete di gestire servizi di tipo fondamentalmente simile, o l unificazione di apparecchiature di largo consumo (ad esempio telefono, televisione e computer). Per certi aspetti si può affermare che la convergenza delle telecomunicazioni e dell informazione è stata il sogno degli ingegneri per decine di anni, per i significativi vantaggi che ne derivano. L idea di integrare nella stessa rete varie tipologie di servizi non è certo un idea nuova: basti pensare allo sviluppo delle reti numeriche integrate nelle tecniche e nei servizi che si è avuto a partire dagli anni 60, sia a banda stretta che a banda larga, che nel mondo dei sistemi telefonici si proponevano l obiettivo di trasportare e trattare, in modo integrato, tutti i tipi di informazione. Per anni le reti ISDN sono state l unica vera soluzione tecnologica per far convergere, all interno di un unico sistema integrato, media quali voce, video e dati, pur nei limiti e con i vincoli che quella tecnologia consentiva

43 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI Successivamente è dilagata Internet. IP è visto come fattore abilitante per realizzare l interoperabilità di una grande varietà di tecnologie e di dispositivi, e quindi il fattore abilitante la convergenza di differenti tipi di media. È sotto gli occhi di tutti la convergenza di servizi telefonici su reti IP, sia con terminali fissi che con terminali mobili, equipaggiati con servizi avanzati fruibili anche in situazioni di mobilità o nomadicità. Il processo di convergenza è in continua evoluzione, in una prospettiva di integrazione sinergica di settori, mercati e/o prodotti di diversa origine e provenienza e in una prospettiva di vantaggi che scaturiscono dall adozione di soluzioni tecnologiche convergenti (economicità, maggiore efficienza ed efficacia, accesso a nuovi servizi ed ad informazioni che costituiscono un patrimonio globale per tutti gli utenti). L obiettivo finale è una completa convergenza delle tecnologie dei media, delle telecomunicazioni e dell informazione, con dispositivi e reti che consentono di soddisfare quello che appare un desiderio comune, e che quindi costituisce una tendenza determinata dal mercato: comunicare (e quindi fruire ed erogare servizi, accedere ad informazione) con anyone, anytime, anywhere e con anybody/anything. Una trasformazione tecnologica verso un sistema convergente presenta, in modo intrinseco, problemi di pianificazione e condivisione delle risorse. La convergenza, infatti, spinge attori diversi, che hanno operato in modo separato ed autonomo in settori diversi, ad operare in modo congiunto su dispositivi, su mezzi di comunicazione o su settori di mercato, e quindi a condividere regole e risorse. Sono necessarie pertanto delle regole, sia di tipo tecnico per rendere possibile l interoperabilità di sistemi diversi e l integrazione di dispositivi e servizi all interno di un sistema convergente, sia di tipo normativo, in modo da creare quadri normativi congiunti in settori che originariamente sono separati. Ci vogliono anche regole per evitare forti impatti sugli utenti, specialmente quando un cambio tecnologico ha impatto su un alta percentuale della popolazione, per far sì che nuove opportunità di mercato non siano discriminatorie e offrano a tutti i possibili attori pari opportunità. Ci vogliono regole per gestire le fasi transitorie di sviluppo, per evitare che un

44 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI transitorio troppo cruento verso una nuova tecnologia porti ad un insuccesso della stessa. La TV digitale terrestre e le comunicazioni su IP rientrano a pieno titolo tra le tecnologie che consentono una completa convergenza delle tecnologie dei media, delle telecomunicazioni e dell informazione. Entrambi presentano i vantaggi che derivano dall essere sistemi convergenti, dall avere ampi bacini di utenze, dalla disponibilità di erogare e fruire servizi interattivi raggiungendo tutti i segmenti della popolazione. Le soluzioni tecnologiche che supportano la telefonia su IP (VoIP) consentono di trasportare video, voce e dati su un unico supporto, implementando di fatto il concetto di servizi convergenti, anche se limitatamente ai servizi di telefonia base e a valore aggiunto. Da quanto sopra brevemente richiamato ne consegue che l Internet Protocol sarà il protocollo di riferimento per qualunque tipo di rete, e quindi quello su cui si basa la rete convergente. Al contempo, le reti di nuova generazione, anch esse basate su IP, consentono di diffondere in maniera più incisiva e ad un più ampio bacino di utenti il concetto di comunicazioni integrate e convergenti, superando i limiti delle attuali reti e delle reti tradizionali. Il nuovo modello di rete, infatti, implica una struttura che prescinde dall applicazione e fa uso di apparati dotati di caratteristiche multiservizio e flessibilità, in grado di concentrare le diverse tipologie di traffico e convogliarle su canali unici sia all interno di LAN che di WAN. Per questo si parla di reti convergenti. 2.2 Vantaggi delle reti convergenti e di nuova generazione Una rete convergente presenta vantaggi in termini di investimento e gestione operativa. Il primo vantaggio è legato al fatto che una sola infrastruttura di rete è in grado di supportare una pluralità di servizi e media; il secondo al fatto che si riduce il numero di risorse umane specializzate necessarie per gestire i vari servizi di telecomunicazione. Le reti di nuova generazione (NGN) sono state ideate per realizzare la convergenza dei servizi multimediali utilizzando un unico core completamente IP

45 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI e una rete di accesso a larga banda. Rete fissa, rete mobile e rete per servizi broadcast tendono, in questa nuova architettura di rete, ad un processo di integrazione sempre più ampio fino alla completa convergenza di tutti i servizi sotto il paradigma IP. Il concetto di rete di nuova generazione è un concetto che nasce per tener conto delle nuove realtà nel mondo delle telecomunicazioni quali: la crescita del traffico di tipo digitale, l utilizzo sempre maggiore di Internet, il bisogno generale di mobilità, la convergenza di reti e servizi, sia fissi che mobili. Le NGN sono solitamente costruite sul protocollo IP e per questo viene spesso utilizzato il termine All-IP per descrivere questa tipologia di reti. I servizi voce, dati e video vengono trasportati dalla rete dopo essere stati incapsulati in pacchetti IP. Il servizio diventa indipendente dalla rete e non ci sono più differenze tra reti fisse e mobili. Servizi voce, Internet, mail e video sono disponibili sia che ci si trovi in ambienti business che in ambienti residenziali, sia in ambienti di rete fissa che in mobilità. Le caratteristiche di base di una NGN possono essere sintetizzate nei seguenti punti: capacità di fornitura di ogni tipo di servizio (multimediale, dati, video, telefonico, mobile); funzioni relative al servizio separate da quelle dedicate al trasporto dell informazione; supporto di utenza mobile e nomadica (utenti che si connettono alle reti in siti diversi); indipendenza dai diversi tipi di rete di accesso. Con la convergenza All-IP si riesce ad ottenere: interconnessione ed integrazione sempre maggiore tra apparati ed architetture differenti, tramite standard consolidati. introduzione di nuovi terminali (Ip-phones, PDA, WiFi-phones), di adattatori e di gateway; nuovi servizi che portano verso un integrazione fisso-mobile; logica di rete in grado di supportare sicurezza dell informazione, qualità del servizio ed affidabilità

46 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI 2.3 Il sistema pubblico di connettività (SPC) L incremento di attenzione per le potenzialità della voce su Internet rappresenta per la Pubblica Amministrazione l occasione di sviluppare, sia al suo interno che nei confronti di cittadini e imprese, servizi e modalità organizzative ed operative più efficienti e integrate. Per questo infatti è stata posta attenzione nella progettazione e preparazione del Servizio Pubblico di Connettività (SPC) che, grazie anche alle numerose soluzioni tecnologiche messe a disposizione delle Pubbliche Amministrazioni, mira alla diffusione di servizi che consentano di aumentare la flessibilità operativa, la realizzazione di applicazioni e soluzioni condivise andando ad agire sempre più sui confini tra fisso e mobile, voce e dati, intranet e internet. Il SPC significa scambio di informazioni, servizi di comunicazione e servizi collaborativi, con banda garantita e con classi di servizio ben definite. Significa disponibilità di nodi di interscambio tra operatori di servizi di telecomunicazione diversi (mediante i QXN - Qualified Exchange Network). A tale rete si fa riferimento come Internet qualificata, per evidenziare il fatto che supera il concetto di best effort tipico della rete Internet. In sintesi la rete SPC è stata pensata per dare vita ad una infrastruttura IP in grado di sostenere qualsiasi tipo di applicazione della Pubblica Amministrazione: tiene conto, ad esempio, anche delle problematiche di sicurezza delle applicazioni e della rete. In questo contesto le potenzialità offerte dal VoIP sono enormi. Viene sfruttata la convergenza di una serie di strumenti che modificano radicalmente la modalità tradizionale di lavoro, moltiplicando la produttività individuale. Servizi diversi come telefono, rubrica, fax, posta elettronica con allegati, segreteria telefonica, sono tutti accessibili tramite un solo dispositivo fisso o mobile, consentendo una libertà di movimento e di operatività rilevante. Ne derivano tutta una serie di vantaggi, tra cui quelli legati alla de-materializzazione dei documenti cartacei

47 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI 2.4 La Comunicazione Unificata (CU) La naturale evoluzione della convergenza, dopo il VoIP, può essere rappresentata dalla comunicazione unificata. Vediamo bene cosa si intende con quest espressione. Nel lavoro, oggi, si dispone di molti mezzi di comunicazione: telefono d ufficio, messaggistica vocale, fax, posta elettronica, messaggistica istantanea, conferenze audio, conferenze video e Web. La varietà di scelte disponibili può sembrare un elemento positivo, ma al contrario spesso le aziende risentono dell eccessiva scelta di canali di comunicazione. Questo soprattutto è causato dal fatto che queste tecnologie non si riconoscono l un l altra. Per esempio, invece di ricevere un solo messaggio di posta elettronica, un lavoratore può ricevere un messaggio nella casella di posta vocale, uno di posta elettronica, uno tramite messaggistica istantanea, da parte di qualcuno che vuole contattarlo. E, in tutto questo, mentre si ha a disposizione un terminale per telefonia mobile aziendale. Questo problema è aggravato dalla sempre crescente mobilità dei lavoratori, che tendono ad operare in mobilità: in casa, in ufficio, in aeroporto o in varie situazioni di viaggio un accesso ad internet significa possibilità di proseguire nel proprio lavoro, e quindi è sempre più difficile sapere subito qual è il mezzo migliore per comunicare con un collega in un dato momento. La soluzione a questi problemi può essere rappresentata dalle Comunicazioni Unificate (CU), che rappresentano un insieme di tecnologie emergenti in grado di unificare i diversi metodi di comunicazione in uso per offrire capacità multimodali in grado di riconoscersi. Le diverse tecnologie si riconoscono e sfruttano le capacità offerte da ciascuna: i vari mezzi di comunicazione stanno diventando sempre meno distinti e si ha una sovrapposizione tra alcune delle capacità delle diverse tecnologie. Tutto questo è parte di una convergenza voluta tra i vari mezzi di comunicazione. Con le CU sarà possibile raggiungere una persona in qualsiasi momento e ovunque sia. Nelle CU, si può vedere come la telefonia assuma nuove forme, tra le quali:

48 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI Client CU: incorporato nei PC o nei telefoni tradizionali; utilizzano il protocollo PBX-IP per comunicare sfruttando la tecnologia VoIP. Applicazioni IP per telefonia: il telefono dell ufficio può diventare come un palmare grazie al quale si può accedere alla posta elettronica, al calendario e ai contatti. Sono anche possibili servizi di audio-videoconferenza e messaggistica istantanea. Telefoni wireless multimodo: sono in grado di passare automaticamente dalla modalità WiFi a quella CDMA o GSM e quindi di connettersi alla rete voce aziendale WiFi quando ci si trova in sede, ed alle reti mobili negli altri casi. In sostanza, con l introduzione delle comunicazioni unificate si può ridurre il numero di informazioni necessarie per aprire un canale di comunicazione con un amico o collega. Oggi per ciascun contatto si dispone di numeri separati per il telefono d ufficio, fax, messaggistica vocale, cellulare, ecc. Invece con le CU, questi vengono uniti nel numero unico di accesso e nell identità unica di uscita. Il primo rappresenta il numero tramite il quale sono accessibili tutti i canali di comunicazione e che consente di scegliere a seconda di cosa si desidera fare. A scegliere la tecnologia corretta tra quelle disponibili ci pensano la rete e gli endpoint. Con il concetto di identità unica di uscita si indica il fatto che, indipendentemente dal metodo utilizzato per comunicare, al chiamato corrisponde sempre lo stesso numero identificativo (corrispondente al numero unico di accesso), indipendentemente da quale sia il terminale o il client o il mezzo utilizzato nella comunicazione. Con le comunicazioni unificate, l utente può avere la possibilità di impostare delle semplici regole che stabiliscano dove devono essere inoltrate le chiamate in ingresso alla casella vocale, a un assistente reale, a un call center, o a qualsiasi altra destinazione

49 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI Telefonia e postazione utente Indipendentemente dalla propria localizzazione, si possono effettuare e ricevere chiamate, gestire le chiamate in corso e utilizzare funzionalità di telefonia avanzate, sempre mantenendo la stessa identità. Possiamo vedere tre modalità differenti: Solo Computer: il controllo della chiamata è consentito da un thick client o da un client basato sul Web, mentre della parte voce della chiamata se ne occupa il computer o un apposito sistema informatico, utilizzando il protocollo VoIP. Condiviso: le funzioni di controllo chiamate vengono condivise da un thick client o un client basato sul Web e dal telefono d ufficio, invece la voce è gestita dal telefono. Una chiamata entrante o uscente può essere gestita sia dal client che dal telefono. Qualsiasi telefono: si occupa del controllo della chiamata un thick client o un client basato sul Web, mentre la voce è mandata ad un telefono scelto dall utente Mobilità Con le comunicazioni unificate aumentano ancora le funzionalità apportate al concetto di mobilità. Infatti abbiamo già visto che vengono introdotti telefoni multibanda e multi-modalità, che permettono di passare dalla rete WiFi aziendale alla rete mobile, e viceversa. L uso di un client mobile permette di estendere le funzionalità PBX aziendali, come il trasferimento di chiamata e la conferenza, al dispositivo mobile. Con la messaggistica unificata si possono gestire i messaggi vocali dal client di posta elettronica e si può anche richiedere che i messaggi di posta elettronica siano letti mentre si accede ai messaggi vocali. Si può inoltre pensare di ricorrere al riconoscimento vocale per l utilizzo in mobilità, quando non è comodo o appropriato utilizzare il dispositivo, che può consentire l accesso in vivavoce alle chiamate e alle conferenze, alla posta elettronica ed alla messaggistica vocale

50 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI Interconnessione tra messaggistica vocale e messaggistica istantanea Nei sistemi di comunicazione odierna, i sistemi di messaggistica vocale sono completamente isolati, perché si hanno varie caselle (una per l ufficio, una per il cellulare, una per l abitazione), perdendo in parte l utilità del messaggio stesso; infatti non è possibile inoltrare o rispondere perché si usano sistemi e directory diversi. Invece per quanto riguarda la messaggistica istantanea non vi è interoperabilità tra i diversi fornitori del servizio. Alcuni programmi client riescono a comunicare con due o più di queste applicazioni, ma non hanno sviluppate capacità di gateway, fornendo quindi un servizio limitato. Si può pensare, quindi, ad un interconnessione tra questi due tipi di messaggistica. Si disporrebbe in questo modo di un unica casella per messaggi vocali che consentirebbe di avere un sistema unico di casella vocale accessibile da ovunque, invece di controllare singolarmente il telefono d ufficio, il cellulare o altro. Si può anche pensare a un infrastruttura unica per posta elettronica, messaggi di testo e casella vocale, che permetta di rispondere con messaggi vocali ai messaggi di posta elettronica, e con messaggi di posta elettronica ai messaggi vocali. Con la messaggistica unificata i messaggi di posta, quelli vocali ed i fax arrivano in un unica casella. I messaggi vocali appaiono in forma visiva su tutti i dispositivi (anche il cellulare). Si può disporre infine di un sistema di notifica in modo da mantenere l utente aggiornato in tempo reale. Le regole sono definite dall utente stesso e permettono di automatizzare l avvio di specifici eventi programmati. Per esempio si può decidere di richiedere l invio di un messaggio di notifica con le informazioni di richiamata, oppure si possono effettuare chiamate all utente per ricordare appuntamenti o riunioni

51 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI Conferenze, presence e disponibilità Con le comunicazioni unificate le conferenze audio e video assumono nuove funzionalità. Infatti i partecipanti alla conferenza potranno utilizzare qualsiasi dispositivo (cellulare solo audio, smartphone CU, computer, ecc.) ed è il sistema di conferenza stesso a chiamare organizzatori e partecipanti anziché aspettare che siano loro a richiedere, in modo da iniziare tutto tempestivamente. I calendari degli invitati vengono aggiornati automaticamente quando è organizzata una conferenza e gli organizzatori hanno la possibilità di controllare, in tempo reale, audio e video, in modo che la conferenza venga adattata alle capacità dei partecipanti. Passiamo adesso a due ulteriori funzionalità fornite dalle CU: la funzione presence e la disponibilità. La prima aiuta a determinare in anticipo, come contattare in modo veloce un collega e la seconda indica come e in che modo si può essere contattati. Nel momento in cui un utente accende il proprio dispositivo la rete si occuperà di registrarlo e di indicare la sua disponibilità a comunicare. Con la funzione di presence sarà comunicato agli altri utenti della rete se l interessato è online o offline, dove si trova (se nell ufficio o fuori), se è inattivo o sta condividendo un applicazione. Ci si può servire anche di un messaggio esplicito per indicare la presence. Si possono conoscere anche le modalità di comunicazione che sono accessibili al singolo utente. Con la disponibilità, invece, un utente anche se è online può decidere di non essere contattato, oppure di essere contattabile solo da determinate persone. Quindi non sempre la disponibilità dell utente dipende dallo stato reale, ma può dipendere anche dalle preferenze. L utente può inoltre informare il sistema del metodo di contatto preferito. Infatti se, per esempio, qualcuno chiama al telefono dell ufficio, la chiamata può essere inoltrata sul cellulare se quest ultimo è stato scelto come metodo preferito di contatto

52 Telefonia fissa Telefonia mobile fax messaggistica Automazione flussi documentali Domotica videosorveglianza CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI 2.5 Integrazione dei flussi di comunicazione Dopo la comunicazione unificata, l evoluzione della convergenza è rappresentata dall integrazione di tutti i flussi di comunicazione, tra i quali possono esserci anche quelli legati all automazione dei flussi documentali, all integrazione di informazioni relative alla geo-localizzazione, alla fruizione e diffusione di contenuti digitali, all integrazione di funzioni per domotica o videosorveglianza. Esiste infatti uno stretto legame tra sistema di comunicazione convergente e altri flussi informativi relativi a contenuti diversi (domotica, localizzazione, automazione documentale, ecc.) poiché le comunicazioni unificate possono costituire un substrato di trasporto su cui si basano tutti i servizi. Il protocollo di rete a cui ci riferiamo quando parliamo di reti convergenti e di comunicazione unificata, e che ci permette di integrare differenti tipologie di comunicazione, è l Internet Protocol (IP). La comunicazione unificata, oltre ad essere pensata per integrare tra loro i flussi di comunicazione più classici (come voce, video, dati e messaggistica), può essere utilizzata per aggiungere a questi anche altre tipologie di flussi, come per esempio quelli relativi alla domotica, alla sorveglianza e all automazione documentale, e può quindi permettere di trasportarli tutti tramite la rete IP. A livello architetturale, dal punto di vista logico si può fare riferimento alla figura seguente. Servizi a valore aggiunto Sottosistema VoIP Rete all-ip

53 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI Ogni singolo flusso di comunicazione è caratterizzato da un preciso e distinto protocollo. Ognuno di essi dovrà tuttavia essere in grado di comunicare con il protocollo sottostante che, in questo caso, è il SIP. Per questo la comunicazione unificata avrà il compito di fungere da intermediario tra essi e il SIP, in modo che quest ultimo sia in grado di gestire tutti i pacchetti provenienti da applicazioni diverse tra loro. La scelta di utilizzare questo protocollo permette agli utenti di accedere ai servizi desiderati tramite l utilizzo di svariati dispositivi (smartphone, PC, PDA, mobile phone, ecc.) e piattaforme. Lo stesso protocollo, inoltre, sarà utilizzato per identificare, profilare ed autorizzare l utente del servizio. Il funzionamento di questo protocollo è indipendente dal tipo di mezzi utilizzati e consente di unificare applicazioni diverse sulla stessa piattaforma, semplificando anche l interfaccia utente in maniera tale che i dipendenti possano comunicare facilmente, in qualsiasi momento e luogo, e con qualsiasi dispositivo. Con l utilizzo del protocollo SIP il cosiddetto telefono assume il ruolo centrale. Per esempio, citando il caso della domotica, tramite il telefono l utente potrebbe essere in grado di controllare dei dispositivi che oggi controlla tramite l utilizzo di un telecomando (un esempio potrebbe essere quello del cancello automatico). Oppure, pensando al caso dell automazione documentale, essendo ogni utente identificato da un numero di telefono, il trasferimento di un documento da un utente ad un altro potrà essere rappresentato da una semplice deviazione di chiamata. In questo modo è possibile essere a conoscenza del percorso effettuato dal documento. Inoltre, nel caso in cui venga aggiornato un determinato documento al quale si è interessati, oppure nel caso in cui ne venga aggiunto uno nuovo in un determinato archivio, si può pensare di far arrivare un messaggio nella casella vocale o nella posta elettronica o nel mobile dell utente, in modo da tenerlo continuamente aggiornato ed in modo che questo avvenga indipendentemente dalla sua localizzazione (ricordiamo che ad esso è associato un numero d accesso unico)

54 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI 2.6 Idea progettuale L idea progettuale entro cui si inserisce il presente lavoro consiste nella realizzazione di un innovativo prodotto per comunicazioni unificate, integrate e convergenti, che consente sia di erogare servizi di comunicazione a valore aggiunto, sia di integrare, mediante una piattaforma per servizi di comunicazioni unificate, applicazioni e sistemi verticali dedicati alla domotica, alla videosorveglianza, ecc. Il cuore del sistema che si intende realizzare è una piattaforma di Unified Communication che consente di disporre di strumenti e servizi di comunicazione idonei a supportare veloci ed efficaci scambi di informazione con tutte le modalità comunicative disponibili, anche in mobilità. Tale piattaforma, oltre a rendere disponibili agli utilizzatori i servizi di comunicazioni Voice over IP (VoIP), Unified Messaging, Videocomunicazione oneto-one, Videoconferenza any-to-any, Collaborative Working, Presence, Multimedia Content Distribution (MCD), costituisce il middleware, ovvero l intermediario tra applicazioni e sistemi verticali dedicati a settori specifici (videocontrollo, videosorveglianza, gestione di assett, reti di sensori, automazione flussi documentali, ecc.), in modo da adattare le diverse applicazioni alla modalità comune di trasmissione sulla rete (che si ipotizza essere una rete full-ip, sulla base delle premesse sopra riportate). Il sistema che si intende realizzare è pertanto una piattaforma in grado di integrarsi in ambienti esistenti o per la realizzazione di nuovi ambienti, basata sul principio che commutazione, trattamento, trasmissione di segnali digitali, provenienti o diretti a dispositivi diversi ed eterogenei, vengono effettuati da una piattaforma di comunicazioni unificate, che trattano i flussi informativi digitalizzati come se fossero segnali vocali, ed utilizzando i protocolli di segnalazione tipici della telefonia su IP come protocolli per integrare ed interfacciare protocolli dedicati ad ambienti eterogenei (sensori, domotica, controllo energetico, ecc). Inoltre, nella filosofia che sta alla base del sistema che si intende sviluppare, il terminale telefonico, sia che esso sia un tradizionale apparato o che sia un sofisticato softphone, costituisce una sorta di telecomando universale per pilotare e controllare tutti i dispositivi

55 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI interfacciati con le applicazioni verticali. Lo schema a blocchi del sistema che si intende realizzare è mostrato nella figura seguente. Security plane VoIP FAX MESSAGISTICA Videoconferenza Presence Videosorveglianza Assett management Audit energetico Sensors Networks Automazione flussi documentali Protocollo SIP-based PIATTAFORMA CU GATEWAY MULTICANALE RETE ALL-IP ALTRE RETI LEGACY Figura 2-1 Il cuore del dispositivo che si intende realizzare è un IP-PBX in cui sono implementate le funzioni di Unified Comunnication e che utilizza il protocollo SIP, opportunamente modificato, per consentire funzionalità avanzate di identificazione e profilazione dell utente, e per realizzare uno strato di adattamento tra i protocolli delle applicazioni verticali ed il sistema VoIP sottostante. I sistemi verticali vengono interfacciati ed integrati tramite la piattaforma di Comunicazione Unificata, sfruttandone tutte le funzionalità in modo integrato

56 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI Questi sistemi verticali sfruttano sia i servizi di comunicazione unificata messi a disposizione dalla piattaforma, sia l intelligenza messa a disposizione della piattaforma per effettuare il processamento delle informazioni prodotte dai sistemi verticali. Ad esempio, nel caso delle reti di sensori, ciascuno dei quali costituisce un centro di raccolta di informazioni o di monitoraggio e controllo, possono essere implementate le seguenti funzionalità: capacità di autoconfigurazione su rete IP e discovery automatico dei servizi di rete dati, mediante i quali controllare lo stato del device corrispondente allo specifico sensore acquisire dati in tempo reale e rilevare situazioni anomale nel valore o andamento dei dati, grazie alla storicizzazione dei dati e all analisi effettuata da un sistema di supporto alle decisioni. Nel caso di sistemi verticali che si interconnettono direttamente su rete IP, si terranno in considerazione varie tecnologie, dalla classica trasmissione di tipo ethernet su cavo a sistemi radio ad onde convogliate. Pur basandosi su protocolli IP, tenuto conto che la proliferazione di devices congiuntamente alla necessità di essere costantemente connessi alla rete sono da considerarsi le cause principali del bisogno di autoconfigurazione, verranno utilizzati, sviluppati o adattati protocolli di tipo a zero configurazione. Questi sono protocolli IP che non necessitano di alcuna configurazione manuale e di alcuna amministrazione di rete. Trovano una corretta applicazione nelle Home Network, dove si avverte infatti, l esigenza di aggiungere e rimuovere applicazioni e componenti in modo trasparente per l utente. Tuttavia, qualunque tipo di network venga realizzata si rende necessario garantire un adeguato livello di QoS. Ogni rete/protocollo è caratterizzato da differenti esigenze e quindi, da differenti metriche di QoS. Nel caso della rete di tipo domestico che si verrà a realizzare il problema della QoS deve essere affrontato tenendo presenti la suite di meccanismi che possono essere implementati a livello 2 dell architettura protocollare. L utilizzo di Virtual

57 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI Lan consente, infatti, di segmentare il traffico generato dai vari home devices in ottemperanza alle rispettive esigenze di trasmissione. Si utilizzeranno, pertanto, tecnologia link-local, che consentono: assenza di univocità a livello globale degli indirizzi IP e dei nomi logici, senza la necessità di effettuare il setup dei devices in una rete IP usando la tecnologia tradizionale, basata sull ausilio del DNS o DHCP; autodiscovery dei servizi disponibili in rete; allocazione di spazi per indirizzi multi cast. Sui dati che vengono acquisiti dai vari device, memorizzati nel sistema centrale di gestione e monitoraggio implementato all interno della piattaforma CU, verrà implementato un Knowledge Management System, ovvero un sistema che implementa l insieme di tecniche e logiche che permettono il trattamento delle informazioni acquisite ed il loro processamento, al fine anche di evidenziare dati interferenziali ed anomalie che precludono a criticità di funzionamento. L obiettivo del Knowledge Management è anche di tipo pragmatico, ovvero migliorare l efficienza delle informazioni mettendo in comune la conoscenza che ogni device ha acquisito. Verrà pertanto implementata una piattaforma per la classificazione e relativa certificazione di dati appartenenti a basi di dati di notevoli dimensioni, in modo da consentire di ottenere informazioni qualitativamente eccellenti per sostenere efficacemente i processi decisionali ed operativi. La considerazione di base dalla quale si è partiti è che è necessaria una visione precisa ed univoca di tutte le informazioni relative alle entità con le quali si relazionano, ma tali informazioni si basano spesso su dati gestiti da sistemi non omogenei, che presentano incongruità, errori di immissione ed errori dovuti a non corrette condivisione dei dati all interno dell azienda, al punto tale da non consentire di combinare e integrare tutte le informazioni correlate e quindi di disporre di una visione completa, impedendo di raggiungere gli obiettivi di efficienza ed efficacia che hanno motivato l implementazione delle applicazioni aziendali strategiche ed operative. Il sistema che verrà sviluppato è basato su interfacce di estrazione di informazioni dalle basi di dati delle quali è necessario, attraverso algoritmi basati su

58 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI reti di Bayes, interpretare lo stato della qualità delle informazioni e fornire delle indicazioni sulla base delle quali codificare la conoscenza degli stessi. Il sistema che si intende realizzare sarà accessibile mediante diversi canali di comunicazione. Di conseguenza saranno diverse le modalità di interattività e di operazioni possibili. Di fatto, i servizi di monitoraggio e controllo saranno servizi integrati convergenti, in un ottica di piena integrazione tra varie tipologie di comunicazione. Ciò consente non solo di implementare nuovi servizi nativamente convergenti, ma anche di fruire dei servizi di telecomunicazione in modo indipendente dalle condizioni in cui si trova l utente, mediante soluzioni architetturali e tecnologiche che abilitino la fruizione ubiqua di servizi e, ove possibile, con caratteristiche di sensitività al contesto. Nello schema logico del sistema che si intende implementare è stato indicato un security plane, che implementa funzionalità dedicate e specifiche orientate alla sicurezza del sistema e delle comunicazioni. La sicurezza è un aspetto fondamentale del sistema e riguarda tutti noi e qualsiasi tipo di informazione. Per la sicurezza di qualsiasi sistema è necessario proteggere le informazioni contenute al suo interno da qualsiasi minaccia che possa intaccarla o danneggiarla. È possibile mettere in sicurezza un sistema implementando procedure e processi sia a livello hardware che software. È interesse ormai di tutti i settori, da quello economico a quello tecnologico, proteggere tutte le informazioni che sono contenute al suo interno, sia in formato cartaceo che in formato elettronico. Il sistema che si intende implementare è caratterizzato da diversi elementi, chiamati information asset, che contengono un insieme di informazioni necessarie per il sistema e il suo mantenimento (per esempio possono essere database, software, ecc. ). Ciascun asset deve avere tre importante requisiti di sicurezza : Privacy, che consiste nella limitazione dell accesso alle risorse solamente ad un gruppo di persone autorizzate. Anche per il destinatario delle informazioni valgono le stesse restrizioni ed è, per questo motivo, necessario identificarlo per evitare una diffusione di informazioni

59 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI Integrità, che consiste nell evitare la manipolazione dei dati da quei processi o persone che potrebbero danneggiarli. In questo modo in un processo di comunicazione e di scambio dei dati, mittente e destinatario sono noti, in modo da evitare la perdita di dati. Disponibilità, che consiste nel limitare il ritardo nella consegna delle informazioni, in modo che il destinatario riceva le informazioni tempestivamente. Queste tre caratteristiche possono essere compromesse molto facilmente da minacce naturali, da virus e da individui malevoli, come gli hackers. È ovvio che mettere in sicurezza un sistema comporta dei costi aggiuntivi e non trascurabili; spese che verrebbero comunque recuperate poiché non si avrebbe né la perdita di informazioni molto importanti né i costi di ripristino del sistema in seguito ad un attacco. Per questo motivo quando si decide di investire per la sicurezza di un sistema si parla di beneficio netto atteso, che dipende dalla differenza delle probabilità di perdita dello stesso sistema sotto differenti condizioni. In particolare facciamo riferimento al sistema protetto, dove, cioè, sono stati fatti degli investimenti, e al sistema non protetto, dove non si è investito per preservare le informazioni. È chiaro che se la differenza fra queste due probabilità di perdita è positiva, l investimento effettuato è stato giusto ed ha permesso di preservare la privacy, l integrità e la disponibilità dell informazione. Con l evoluzione delle reti è aumentata la difficoltà nel proteggere e salvaguardare le informazioni contenute nel sistema. Infatti con le Next Generation Network, dove è possibile usufruire di servizi a banda larga con una garantita qualità del servizio, è possibile far convergere, e quindi trasportare, in una stessa rete diverse tipologie di servizi, quali voce, video e dati (triple play), o anche voce,video, dati e comunicazioni mobili (quadruple play) e il trasporto su IP. Non esiste quindi più una separazione tra diversi tipi di rete; il servizio, che può dunque essere di qualunque tipo, diventa indipendente dalla rete. Questo ovviamente è stato possibile anche grazie all interoperabilità con le reti già esistenti

60 CAPITOLO 2 PIATTAFORMA AVANZATA PER COMUNICAZIONI UNIFICATE E PER LA CONVERGENZA DI SISTEMI VERTICALI In tutti i sistemi ICT si rende particolarmente necessario, soprattutto in quest ultimo periodo, effettuare un analisi sui dati che essi sono in grado di gestire, vista la grande mole di informazioni che sono in grado di contenere. È indispensabile quindi un meccanismo di knowledge management, che permetta di coordinare e gestire tutte le risorse del sistema, consentendo di rilevare eventuali anomalie nel comportamento della rete, così da evitare guasti, frodi o diffusione di informazioni. Vista l integrazione e la convergenza dei vari mezzi su un unica rete, è indispensabile effettuare una accurata selezione sulla grande quantità di dati presente nella rete. Il knowledge management contribuisce anche all aumento della produttività, poiché la possibilità di condividere le risorse e le conoscenze sviluppate permettono ai lavoratori di incrementare la produttività. Quindi il knowledge management deve permettere di estrarre, strutturare, sviluppare e utilizzare le conoscenze per evitare di perdere risorse, aumentare la produttività e far acquisire alle risorse un maggior valore. Però non è solamente necessario effettuare una selezione dei dati, ma bisogna anche analizzarli ed aggregarli, secondo determinati criteri, in modo da essere utilizzati come supporto al processo decisionale. Il Security Plane è quindi un insieme di funzionalità rivolte ad implementare meccanismi di sicurezza ed ad analizzare, mediante la misura in tempo reale di dati di sistema, il livello di protezione del sistema ed ad effettuare analisi di rischio

61 Capitolo 3 Sistemi di Interactive Voice Response C on il presente capitolo, tramite un analisi dello stato dell arte, verrà offerta una panoramica sulle potenzialità degli attuali sistemi IVR, oltre ad un analisi di quelle che sono le problematiche da affrontare, soprattutto dal punto di vista della realizzazione delle interfacce vocali tra l utente e la macchina. Importanti enti di standardizzazione, quali il W3C, stanno puntando molto verso la realizzazione di standard destinati alla gestione e implementazione di tali interfacce vocali, al fine di garantire una più semplice interazione tra le diverse componenti software coinvolte in un sistema IVR. L analisi consente di capire come affrontare gli aspetti relativi alla comprensione grammaticale e semantica del linguaggio naturale da parte di un applicazione. Lo studio ha consentito di individuare soluzioni adeguate all implementazione del software IVR destinato alla fornitura di servizi in scenari di media complessità non soltanto dal punto di vista delle interfacce vocali, ma anche di sicurezza del sistema, pur rientrando in quei requisiti di semplicità di implementazione che sono alla base del progetto realizzato

62 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE 3.1 Introduzione ai sistemi di Interactive Voice Response Per Interactive Voice Response (IVR) si intende un sistema capace di recitare informazioni ad un utente chiamante interagendo tramite tastiera telefonica DTMF (Figura 3-1) oppure tramite comandi vocali. Più in dettaglio, un sistema IVR, di A B C * 0 # D Figura (DTMF) Dual-tone multifrequency: corrispondenza tra coppia di frequenze e valore per segnalazione inband. Si tenga presente che in ambito VoIP i DTMF vengono solitamente inviati tramite appositi messaggi di segnalazione (outband), poiché l utilizzo di codec vocali (come ad esempio il G.729) renderebbe impossibile una corretta decodifica [10]. In particolare il protocollo IAX ammette esclusivamente DTMF outband. solito, consente di recitare un insieme di messaggi preregistrati, recitare menu a scelta multipla, memorizzare dati introdotti da tastiera, mandare fax, interrogare sia database aziendali che sistemi CTI (Computer Telephony Integration). Ormai da diversi anni sono presenti sistemi che consentono di usufruire di servizi automatici via telefono: basti pensare che i primi call center automatizzati risalgono addirittura agli anni 70. Oggi le tecnologie IVR vengono tipicamente utilizzate nei servizi che comportano la necessità di servire un elevato volume di telefonate, consentendo di ridurre i costi e allo stesso tempo di fornire al cliente servizi di qualità sempre più alta. A ciò si aggiunge la possibilità da parte delle aziende di fornire i loro servizi 24 ore su 24. Solitamente i call center utilizzano i sistemi IVR per effettuare una segmentazione delle telefonate in arrivo: all utente ad esempio può essere data l opportunità di attendere il proprio turno per parlare con un operatore o scegliere un servizio automatizzato. Allo stato attuale i sistemi IVR più evoluti integrano il riconoscimento vocale, il quale consente di offrire un servizio al chiamante riconoscendo naturalmente il linguaggio parlato. I progressi nel campo dell interazione vocale tra uomo e macchina stanno velocemente modificando gli scenari e le prospettive di utilizzo di tali sistemi, fornendo modalità di interazione sempre più efficienti e funzionali [ ]

63 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE Come vedremo le potenzialità attuali fanno sì che questi sistemi possano costituire una via d accesso alternativa a servizi e applicazioni, che possono andare ad affiancarsi (o sostituirsi) al Web o ad un operatore reale. Dal punto di vista dell utente, prima di tutto tali sistemi possono aumentare la fruibilità dei servizi stessi; ma andando oltre è chiaro che la possibilità di accedere in maniera del tutto automatizzata a servizi mediante la comune telefonia (intesa qui sia come chiamata vocale o video, sia come invio e ricezione di SMS) può non soltanto migliorare le possibilità di accesso ad applicazioni esistenti, ma anche dare spazio a nuovi servizi. La semplice rete telefonica può diventare così il punto di accesso verso una vasta tipologia di servizi: se è vero che un potente strumento come il Web consente già di usufruire di usufruire di servizi, è evidente che il telefono resta comunque il mezzo di comunicazione più accessibile. In ogni caso non si possono che trarre benefici da una moltiplicazione delle vie di accesso ai servizi. Tali sistemi consentono dunque di sostituirsi, ove possibile, ad un interlocutore umano, coi vantaggi che solo un sistema di elaborazione può offrire, come ad esempio la possibilità da parte del sistema di servire più chiamate contemporaneamente, la disponibilità di accesso ai servizi 24 ore su 24, un accesso rapido ed efficiente ad informazioni. Si tenga presente che tali architetture possono essere bidirezionali, nel senso che non soltanto gli utenti possono usufruirne per accedere ai servizi, ma gli stessi servizi, opportunamente configurati, hanno la possibilità di consultare autonomamente gli utenti, per dar loro delle notifiche, o chiedere loro di prendere delle decisioni: questo elemento, non immediato nei servizi offerti via Web, amplifica enormemente le modalità d uso e gli scenari in cui i sistemi IVR possono essere inseriti. Per comprendere meglio le potenzialità dei sistemi IVR, si esamini lo scenario presentato in Figura 3-2. L utente ricorrendo ad un semplice telefono (e senza che sia richiesta l installazione di alcuna applicazione specifica), viene collegato ad un architettura middleware (in cui è implementato un Knowledge Management System), che costituisce l interfaccia di accesso a servizi e applicazioni

64 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE PSTN GSM VoIP. Il middleware costituisce un interfaccia di accesso vocale (Voice User Interface) o testuale automatizzata tramite la quale gli utenti, utilizzando la rete telefonica (che sia PSTN, GSM, VoIP o altro ancora) possono accedere a servizi e applicazioni. L interfaccia può anche essere bidirezionale, ovvero le stesse applicazioni possono usufruirne per consultare l utente quando necessario. Architettura IVR (o IVVR): convergenza voce video testo servizi applicazioni Knowledge Management System Servizi Dati e applicazioni Figura 3-2 Il terminale utente può essere un comune telefono connesso alla rete PSTN (o GSM, ISDN, ecc.) o un terminale VoIP. Se i servizi lo prevedono, anche SMS o e- mail possono essere utilizzati dall utente per usufruirne: SMS ed possono essere utilizzati per fornire interfacce testuali; le problematiche da affrontare sono minori rispetto alla gestione delle interfacce vocali ed inoltre possono contribuire a migliorare le possibilità di accesso da parte degli utenti. Il sistema potrà identificare il singolo utente mediante il suo numero di telefono (o numeri di telefono), che dunque possono costituirne automaticamente la firma. Questo ovviamente dipende anche dal grado di sicurezza, dunque dalla tipologia di servizi ai quali bisogna accedere: gli aspetti legati alla sicurezza verranno affrontati più avanti. Il fatto che l utente possa essere riconosciuto dal sistema,

65 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE implica anche che questo può indirizzare l utente verso determinati servizi cui egli può accedere, o ai quali può essere interessato. Il sistema stesso può essere in grado di guidare l utente (tramite messaggi vocali, testuali o menu video), facilitando l accesso ai servizi. La fornitura di servizi richiede la possibilità da parte dell applicazione di poter accedere ad una base di dati. I servizi dovranno essere facilmente configurati e l applicazione dovrà garantire una facile scalabilità per l integrazione con nuovi servizi e funzionalità. Gli ambiti di utilizzo sono sicuramente numerosi. Vediamone alcuni. Pubblica Amministrazione: si pensi alla possibilità di effettuare la compilazione o la consultazione di documenti oppure seguire l iter di una pratica, il tutto tramite una telefonata. Attività commerciali: sistemi IVR possono essere utilizzati per automatizzare la raccolta di ordinazioni, eseguire prenotazioni o per fornire informazioni ai clienti. Domotica: in tale contesto, il telefono può ad esempio consentire l interazione con le utenze elettriche o fungere da strumento di monitoraggio e controllo dell abitazione. Consultazione di archivi e gestione documentale, con conseguente dematerializzazione del cartaceo. Nei successivi paragrafi andremo ad analizzare quali sono le funzionalità oggi offerte dai sistemi IVR e quali sono le potenzialità: significativi sono gli sforzi che importanti enti di standardizzazione stanno facendo nei diversi ambiti che possono riguardare tali sistemi e, più in generale, nell interazione vocale uomo-macchina, primo su tutti il W3C (World Wide Web Consortium), segno evidente dell interesse che tali sistemi riscuotono

66 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE 3.2 Stato dell arte dei sistemi IVR L integrazione con sistemi di riconoscimento e sintesi vocali rende oggi possibile l implementazione di sistemi efficienti e a costi sempre più contenuti. I progressi tecnologici, in particolare in termini di interfacce vocali più efficienti, hanno portato ad una sempre maggiore diffusione degli IVR: le innovazioni nel campo delle scienze informatiche, unite alla disponibilità di elevate potenze di calcolo a costi decisamente ragionevoli, consentono oggi di mettere a disposizione dell utente sistemi che sono capaci di sostituirsi sotto molti aspetti all interazione con un operatore reale. Gli sforzi che i produttori di sistemi IVR oggi compiono, sono più che altro diretti verso una migliore resa dell impatto che l utente ha con essi: i sistemi di sintesi vocale vengono progettati per conferire un maggior grado di umanità alla voce sintetizzata (possono anche essere conferite delle emozioni al parlato sintetizzato) e i motori di riconoscimento vocale consentono di garantire un interazione quanto più naturale possibile. Come vedremo, i servizi più evoluti fanno anche uso di interfacce video full duplex, grazie anche alla maggiore diffusione lato utente di apparati mobili di terza generazione. Infatti molti produttori di IVR cominciano oggi a promuovere sistemi di IVVR (Interactive Voice & Video Response), in particolare rivolti alle reti di telefonia mobile. L evoluzione nel campo degli IVR sta subendo un rapido e continuo sviluppo: ne è testimonianza il fatto che il W3C ha prodotto degli standard destinati alla gestione automatica del flusso delle telefonate e all utilizzo delle interfacce vocali, come avremo modo di vedere nel corso di questo capitolo. Ci sono tuttavia diverse cause che ne limitano la diffusione. Nel momento in cui si vuole implementare un sistema automatico di accesso a servizi tramite telefonia, le difficoltà che oggi si possono incontrare sono per lo più di natura economica: allo stato attuale, anche facendo ricorso a potenti software di base, magari anche free, quale può essere l IP-PBX Asterisk, la realizzazione di un middleware che consenta un interazione tra utente e servizi comporta l utilizzo di diverse componenti hardware e software, legate, come avremo modo di vedere nel

67 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE corso di questo capitolo, da configurazioni complesse. Analizziamo ad esempio cosa implica la strutturazione di un servizio automatico su un software di Private Branch Exchange, quale Asterisk PBX. Asterisk fornisce il supporto a sistemi essenziali per la configurazione di tali servizi: possono essere configurati moduli di text-to-speech 5 e di speech-recognition (sia ricorrendo a soluzioni open 6 o gratuite, che di tipo proprietario). Tuttavia sarà necessario di volta in volta creare opportuni moduli che consentano l implementazione dei servizi desiderati, basati in molti casi su applicazioni XML. Se pure è possibile ricorrere all utilizzo di opportuni software che consentono di progettare graficamente la gestione del flusso di una telefonata, la messa a punto di servizi più complessi richiede comunque un laborioso intervento a livello di codice (si pensi ad esempio alla necessità di interrogare basi di dati). L architettura e la sua gestione diventano complesse, relegando l utilizzo di tali sistemi solo a determinati ambiti professionali. Non si tratta solo di problematiche di costi, tempi o difficoltà di implementazione, ma vi sono anche problematiche insite nel fatto di dover intervenire su di un sistema centralizzato, nelle fasi di sviluppo, test e manutenzione delle configurazioni, qual è appunto un server PBX che, per ovvie ragioni di sicurezza, dovrebbe essere accessibile ad un numero ridotto di utenti o, peggio ancora, che l utente potrebbe non avere a disposizione. Riassumendo, se le possibilità di implementare tali servizi sono allo stato attuale presenti, le difficoltà reali che si incontrano vanno individuate essenzialmente nei costi; questo si traduce in termini di limitazione di utilizzo degli IVR ad ambiti professionali. Andremo adesso ad analizzare più in dettaglio quali sono gli elementi che deve possedere un architettura destinata alla fornitura di servizi automatici via telefono. Tralasciamo per il momento gli aspetti legati ad un interazione di tipo 5 Un esempio di software di sintesi vocale integrabile con Asterisk è il gratuito Festival Speech Synthesis System, sviluppato presso il Centre for Speech Technology Research (CSTR) dell Università di Edimburgo ( 6 Per avere un idea della complessità che si possono riscontrare nell implementazione di un servizio telefonico che faccia uso delle funzionalità di speech-recognition, si consulti la seguente guida online, in cui è mostrata una possibile interazione tra Asterisk PBX e il software open source di speech-recognition CMU Sphinx (si consideri anche la nota 7 di pag. 63)

68 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE testuale col sistema (ovvero tramite SMS o ), in quanto le difficoltà maggiori da affrontare si hanno nell interazione vocale. Per un agevole interazione tra l uomo e la macchina, è richiesta l implementazione di opportuni sistemi di presentazione e interazione vocali, denominati Voice User Interface (VUI, in italiano interfaccia vocale utente), cui dedicheremo il successivo paragrafo. Nei sistemi IVR è opportuno ricorrere, ove possibile, all utilizzo di input quali i toni DTMF, che minimizzano il rischio di errore. Tuttavia in molte applicazioni l utilizzo delle VUI diventa assolutamente indispensabile. Ritornando allo schema che era stato presentato in Figura 3-2, ricordiamo che un sistema IVR con caratteristiche evolute dovrà garantire la possibilità di interagire con risorse quali basi di dati e applicazioni. L interoperabilità con servizi quali posta elettronica ed SMS costituisce inoltre una fonte di valore aggiunto per i servizi che si possono fornire. 3.3 La Voice User Interface Una Voice User Interface è lo strumento attraverso il quale un sistema di sintesi e riconoscimento del parlato può interagire con un utente, nello stesso modo in cui, quotidianamente, una persona comunica con altre persone. Il riconoscimento delle parole e dei comandi può in un certo senso essere associato al link delle tradizionali applicazioni Web. Come quando si clicca su un link o su un pulsante, il browser porta ad un altra pagina o compie una determinata operazione, così quando un comando vocale viene riconosciuto dal sistema, viene presentata all utente l informazione associata o viene svolta una determinata operazione. Tuttavia le problematiche da affrontare nella realizzazione di servizi IVR e quindi nell implementazione di VUI efficienti sono ben diverse rispetto a quelle che riguardano, ad esempio, la progettazione delle interacce grafiche (GUI, dall inglese Graphical User Interface) delle applicazioni. Nella tabella che segue si riporta un confronto schematico e sintetico delle principali differenze tra una GUI e una VUI, ponendo l attenzione su tre degli aspetti più importanti dal punto di vista dell utente: lo sforzo mentale, la navigazione e l accessibilità ai contenuti e la gestione degli errori

69 Gestione dell errore Navigazione e accesso ai contenuti Sforzo mentale CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE Tabella 5 Confronto tra interfacce grafiche e interfacce vocali. Graphical User Interface Voice User Interface Offrono spesso grandi quantità di informazioni, inoltre gli schemi di impaginazione e navigazione sono ricorrenti e ciò facilita l accesso diretto alle informazioni desiderate. È l utente a decidere per quanto tempo visualizzare un documento e leggere i contenuti, oppure se rileggere le informazioni, adattandosi perfettamente alle proprie esigenze. Comunemente fanno largo uso di barre di navigazione, collegamenti autodescrittivi, e tasti Avanti e Indietro che rendono semplice capire dove ci si trova e dove si può andare. Possono offrire grandi quantità di opzioni e contenuti sfruttando richiami permanenti sullo schermo (come barre di navigazione, icone o impaginazioni opportune) oltre a elementi visivi accattivanti (grafici, animazioni o colori). Se si sbaglia la navigazione si può sempre tornare indietro alla pagina in cui si è commesso l errore e cambiare la scelta. Per quanto riguarda gli errori di digitazione ci si può correggere come un comune editor di testi prima dell invio dei dati o comunque ritornando alla pagina precedente. Sono temporanee, nel senso che i messaggi ascoltati si dimenticano in fretta e la ripetizione è un processo difficoltoso e che comunque richiede del tempo. L informazione nelle applicazioni vocali è effimera esattamente come qualsiasi conversazione tra persone e, insieme al fatto che l interlocutore è solitamente distratto con lo sguardo, rende difficile comunicare grandi quantità di dati. Non è semplice ricordare la propria posizione nell applicazione: ascoltare la lenta lettura di un testo o la declinazione di opzioni offre maggiori occasioni di distrazione. È richiesta un attenta progettazione: la navigazione deve essere sempre coerente, elementare e chiara, altrimenti l utente perderà in breve l orientamento e navigherà alla cieca nel tentativo di trovare un menu che lo riporti dove desiderava. È difficile poi non leggere i contenuti non interessanti, date le limitate possibilità di controllo diretto. Gli errori non sono dovuti solo all utente, ma anche al sistema stesso che può interpretare erroneamente l eventuale input corretto. È necessario quindi che le applicazioni siano progettate per facilitare la correzione e minimizzare i rischi d errore. La tabella ci consente di comprendere quali sono le problematiche da affrontare nella progettazione e realizzazione delle interfacce vocali. La trasposizione su telefono dei servizi già usufruibili via Web, o l implementazione di nuovi servizi, richiede un attenta analisi delle modalità con cui bisognerà accedere ad essi, al fine di facilitare l interazione da parte dell utente e di minimizzare le possibilità di errore

70 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE L aspetto più critico di una VUI è difatti la user experience, ovvero l impatto dell utente col sistema. Quando si parla a qualcuno per la prima volta ci si aspetta che l interlocutore comprenda ciò che gli viene detto. Per ogni persona alla quale si rivolge la parola, non è necessario un training su cosa dire, quando parlare o quando stare in ascolto, ma semplicemente si assume di dialogare con una persona che utilizza lo stesso linguaggio e nello stesso modo. Questi processi comunicativi fanno parte naturalmente di tutti i linguaggi e di tutte le culture. Se gli attori di un dialogo seguono queste regole implicite della comunicazione verbale, allora ogni persona può facilmente comunicare con un altra. Una buona VUI dovrebbe quindi seguire queste regole comunicative di base, rendendo ovviamente la tecnologia trasparente all utente e creando un interazione tra la voce e i dati il più possibile naturale e vicino al dialogo quotidiano. Scendendo adesso nei dettagli implementativi, affinché l utente possa interloquire con un sistema IVR, si rende necessario l impiego di motori di sintesi e riconoscimento vocale. Di seguito, andremo ad analizzare nei dettagli questi elementi con le relative problematiche da affrontare; per ognuno vedremo quali sono i principali standard di gestione utilizzati e le soluzioni che abbiamo adottato con l intento di semplificare la configurazione di servizi IVR nell applicazione che presenteremo al capitolo Speech synthesis La sintesi vocale (in inglese speech synthesis) è la tecnica per la riproduzione artificiale della voce umana. Un sistema usato per questo scopo è detto sintetizzatore vocale e può essere realizzato tramite software o via hardware. I sistemi di sintesi vocale sono noti anche come sistemi text-to-speech (TTS) (in italiano: da testo a voce) per la loro possibilità di convertire il testo in parlato. Esistono inoltre sistemi in grado di convertire simboli fonetici in parlato [11]. Un sistema o motore di sintesi vocale è composto da due parti: un front-end e un back-end (Figura 3-3). La parte front-end si occupa della conversione del testo in simboli fonetici mentre la parte

71 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE back-end interpreta i simboli fonetici e li legge, trasformandoli così in voce artificiale. Figura 3-3 Front-end e back-end di un sistema TTS. Il front-end prevede due funzioni chiave: per prima cosa, viene eseguita un analisi del testo scritto per convertire tutti i numeri, le sigle e le abbreviazioni in parole per esteso (ad esempio, il testo viene convertito in due ). Questa fase di preelaborazione viene definita come normalizzazione o classificazione del testo. La seconda funzione consiste nel convertire ogni parola nei suoi corrispondenti simboli fonetici e nell eseguire l analisi linguistica del testo rielaborato, suddividendolo in unità prosodiche, ossia in proposizioni, frasi e periodi. Il processo di assegnazione della trascrizione fonetica alle parole è chiamato conversione da testo a fonema o da grafema a fonema (in inglese text-to-phoneme, TTP) [12]. Se le applicazioni di sintesi vocale hanno raggiunto già un notevole sviluppo, gli sforzi proseguono verso una resa migliore nell impatto con l utente: anche in questo campo il W3C si è impegnato con la realizzazione di standard (quali lo Speech Synthesis Markup Language, SSML [13] ) che forniscono un miglior controllo sulle applicazioni di sintesi, per garantire un funzionamento ottimale in contesti di tipo multilingua, e per poter conferire al parlato sintetizzato opportune caratteristiche di intonazione, enfasi, velocità e altro ancora. L esempio che segue, comporta la sintetizzazione della frase Hello World in inglese o in italiano (Ciao Mondo), enfatizzando la parola World (o Mondo):

72 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE 1 <?xml version="1.0" encoding="utf-8"?> 2 <speak version="1.0" xmlns=" 3 xmlns:xsi=" 4 xsi:schemalocation=" <p> 7 <s xml:lang="en-us"> 8 Hello <emphasis>world</emphasis>! 9 </s> 10 <s xml:lang="it-it"> 11 Ciao <emphasis>mondo</emphasis>! 12 </s> 13 </p> 14 </speak> Dal nostro punto di vista, ci limiteremo ad utilizzare le funzionalità di base offerte da un motore di sintesi, senza utilizzare linguaggi di markup intermedi. Questa scelta, volta alla semplificazione, può comunque rivelarsi non adeguata nell implementazione di scenari più complessi, che richiedono ad esempio la fornitura di servizi in ambito multilingua Speech recognition Il riconoscimento vocale (in inglese speech recognition) è il processo mediante il quale il linguaggio orale umano viene riconosciuto e successivamente elaborato attraverso un apposito sistema di riconoscimento vocale. Dal punto di vista software, sono disponibili diverse soluzioni gratuite e open 7. I moderni sistemi di riconoscimento vocale utilizzano algoritmi basati sui Modelli di Markov nascosti [14] o HMM (dall inglese Hidden Markov Model) eventualmente combinati con altre tecniche (ad esempio con reti neurali, da cui i modelli ibridi HMM-NN): si tratta di modelli statistici che generano in output sequenze di simboli. Illustriamo di seguito soltanto il principio di funzionamento di un sistema di riconoscimento vocale. 7 Di particolare interesse i progetti open CMU Sphinx ( motore gratuito di speech recognition realizzato presso la Carnegie Mellon University, e VoxForge ( un progetto distribuito che si occupa della costruzione dei modelli acustici in diverse lingue, incluso l italiano (tuttavia, nel momento in cui scriviamo questo lavoro, il modello acustico italiano non è stato ancora ultimato)

73 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE La voce umana può essere assimilata ad un processo stazionario entro brevi finestre temporali (tipicamente si considerano finestre, o frame, di ). Del segnale vocale ( [ ]), che assumiamo essere già stato campionato, viene computata la trasformata veloce di Fourier (FFT). Viene quindi applicata la trasformata coseno discreta (DCT) per decorrelare lo spettro. Si ottengono così i parametri cepstrali (dei quali vengono presi in considerazione solo quelli più significativi). Questa prima fase, illustrata in Figura 3-4, fornisce i parametri necessari all algoritmo di riconoscimento vocale. [ ] frame temporali [ ] Algoritmo di riconoscimento FFT DCT ( ) ( ) Figura 3-4 L algoritmo vero e proprio di riconoscimento vocale, oltre ai parametri cepstrali ottenuti, farà uso anche dell energia totale computata, delle variazioni temporali dei parametri cepstrali e delle variazioni delle variazioni, o parametri cepstrali differenziali. In figura abbiamo indicato con il vettore che costituisce l insieme di parametri estratti da ogni frame. L algoritmo di riconoscimento, in corrispondenza di un insieme di frame date da una sequenza di parole, fornirà in uscita la sequenza di parole stimata, massimizzando la probabilità a posteriori data da: ( ) ( ) dove la probabilità ( ) è data dal modello acustico, mentre la probabilità ( ) è calcolata dal modello linguistico [15]. Il modello acustico costituisce una rappresentazione statistica dei suoni che compongono ogni parola. In particolare in un modello acustico basato su HMM, si presuppone che le varie parole o fonemi evolvano entro un set discreto di stati, con una certa distribuzione di probabilità tra essi. La probabilità ( ) associata ad una sequenza di parole viene valutata ricorrendo ad un modello linguistico, che è un altro modello statistico. La ricerca della sequenza di uscita ottima di uscita (ovvero tale da massimizzare la probabilità a posteriori) avviene utilizzando l algoritmo di Viterbi

74 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE Un approccio alternativo agli HMM utilizzato per il riconoscimento vocale consiste nel Dynamic Time Warping (DTW), un algoritmo che consente di valutare la distanza (intesa come una misura di differenza) tra due sequenze o segnali: più precisamente permette di trovare una corrispondenza ottima tra due sequenze, attraverso una distorsione non lineare rispetto al tempo. Tale algoritmo si rivela particolarmente utile nel contesto del riconoscimento vocale, dovendo trattare sequenze per le quali un semplice confronto basato su compressione o espansione lineare non porterebbe a risultati soddisfacenti. Tuttavia oggi nei sistemi di riconoscimento vocale l approccio basato sui modelli di Markov nascosti è il più apprezzato. I software di riconoscimento vocale prevedono solitamente una fase preliminare di training, necessaria per addestrare il sistema all utilizzo da parte di un singolo utente. La fase di training è richiesta soprattutto per l utilizzo di tali software in modalità dettatura (oppure per l identificazione dell utente tramite riconoscimento dell impronta vocale, come vedremo alla fine di questo capitolo). Per quanto riguarda gli obiettivi del presente lavoro di tesi, è stato sufficiente addestrare il sistema di riconoscimento vocale a lavorare entro la banda telefonica, quindi con segnali vocali campionati a. Come vedremo, l applicazione che presenteremo consentirà l utilizzo di modelli linguistici applicabili dinamicamente, ma limitati; questo consente da un lato di evitare di sottoporre gli utenti ad una fase preliminare di training, oltre a minimizzare drasticamente la probabilità di errore del sistema Interpretazione grammaticale e semantica Il motore di riconoscimento vocale va integrato ad un sistema che sia capace di tradurre i comandi vocali in azioni eseguibili da un calcolatore: occorre quindi implementare un sistema vocale di interazione uomo-macchina. Gli approcci che possono essere intrapresi in questo senso sono molteplici. Si tenga presente che le considerazioni che faremo, valgono anche nel caso di interazione dell utente col sistema tramite testo (SMS, , ecc.)

75 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE I motori software di riconoscimento vocale possono essere utilizzati secondo due modalità: la più semplice prevede il riconoscimento di una o più parole tra un set definito di parole e frasi; questo avviene fornendo un modello linguistico limitato. L altra modalità è quella di dictation, ovvero riconoscimento entro un intero dizionario linguistico; questo avviene fornendo al sistema un completo modello linguistico. La prima modalità è certamente quella più semplice da gestire, anche perché abbassa drasticamente il rischio di incorrere in errori: in questo caso è possibile far corrispondere ad una frase, o meglio ancora, ad un set di frasi, una determinata azione. Questa strategia è quella che attualmente viene utilizzata dalla maggior parte dei software IVR che implementano il riconoscimento vocale, così come da quello presentato in questa tesi, consentono ad un utente di compiere operazioni e navigare all interno di menu, discriminando una particolare frase, o meglio ancora un insieme di parole chiave, all interno delle espressioni utilizzate. È importante che l utente non sia obbligato a pronunciare una sola frase prestabilita per compiere una certa operazione, perché questo limiterebbe la sua capacità di interazione col sistema. Ad esempio, anticipando lo scenario applicativo che proporremo nel capitolo, nell ottica di un sistema rivolto alla gestione di una segreteria universitaria, uno studente che vuole interagire via voce col software, alla domanda di quest ultimo «Cosa desidera fare?», nel caso in cui questi voglia prenotare un esame, potrebbe rispondere «Prenotare un esame!», oppure «Voglio prenotare un esame!», o tante altre frasi ancora (si faccia riferimento alla Figura 3-5). Le parole chiave in questo contesto sono «prenotare» (oppure «prenotazione») ed «esame»: queste infatti sono sufficienti per consentire un identificazione univoca da parte del sistema dell azione (o, più genericamente, del servizio) che lo studente vuole richiamare, andando ad immaginare un contesto in cui l azione «prenotare» può essere riferita anche ad altri elementi (un esempio potrebbe essere la prenotazione di un ricevimento con un docente, o di tanto altro ancora)

76 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE Voglio Prenotarmi per Storia contemporanea Prenotare Sostenere Voglio sostenere l esame di un esame di Letteratura inglese Letteratura francese Storia Moderna PRENOTAZIONE ESAME NOME MATERIA Figura 3-5 Il linguaggio dell utente, nelle sue molteplici espressioni, deve ricondurre a semplici espressioni univocamente comprensibili da un sistema di elaborazione. Se il sistema non riconosce il comando, può aiutare l utente indicando quali sono le azioni che egli può intraprendere, quindi avvicinarlo alla soluzione del problema. I comandi non interpretati possono eventualmente costituire una risorsa, in quanto il sistema potrebbe immagazzinarli, trascritti in formato testuale e, dietro intervento umano, essere introdotti nel sistema di riconoscimento; ritornando all esempio precedente, un comando non previsto del tipo «Sostenere un esame!», pur non essendo interpretabile dal sistema, potrebbe essere registrato, o meglio ancora, ricorrendo ad un sistema di dettatura, essere trascritto e successivamente inserito dal gestore del sistema tra le diverse opzioni vocali che riconducono all azione di prenotazione dell esame. In particolare, se si ricorre alla trascrizione testuale, si può anche eseguire una scrematura totalmente automatizzata delle frasi non interpretate (ovvero la frase verrà passata al vaglio del gestore del sistema dopo l ennesima occorrenza). Nell implementazione che proporremo, verrà utilizzata questa strategia, basandoci dunque sul riconoscimento di termini chiave. Tuttavia nella progettazione di sistemi più complessi, possono essere di ausilio adeguati strumenti, che consentono di dare opportune direttive al motore di riconoscimento vocale. Difatti il W3C ha definito degli appositi standard rivolti all interpretazione grammaticale e semantica dei risultati: rispettivamente lo Speech Recognition Grammar Specification (SRGS) [16] e il Semantic Interpretation for Speech Recognition (SISR) [17]. Ecco come si potrebbe presentare, in conformità all esempio precedente,

77 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE un modulo rivolto all interpretazione di una richiesta di prenotazione di un esame (includendo anche il nome della materia): 1 <?xml version="1.0" encoding="utf-8"?> 2 <grammar xmlns=" xml:lang="it" 3 xmlns:xsi=" 4 xsi:schemalocation=" version="1.0" mode="voice" tag-format="semantics/1.0" root="selezione"> 7 <rule id="selezione"> 8 <ruleref uri="#operazione"/> 9 <tag>out.operazione = new Object(); out.operazione.azione=rules.operazione.azione; 10 out.operazione.oggetto=rules.operazione.oggetto; 11 out.operazione.materia=rules.operazione.materia;</tag> 12 </rule> 13 <rule id="operazione"> 14 <ruleref uri="#azione"/> 15 <ruleref uri="#oggetto"/> 16 <ruleref uri="#materia"/> 17 <tag>out.azione=rules.azione; 18 out.oggetto=rules.oggetto; 19 out.materia=rules.materia;</tag> 20 </rule> 21 <rule id="azione"> 22 <one-of> 23 <item> 24 <tag>out="prenotazione";</tag> 25 <one-of> 26 <item>prenotare</item> 27 <item>voglio prenotarmi per</item> 28 <item>sostenere</item> 29 <item>voglio sostenere</item> 30 <!-- Possiamo inserire altre espressioni 31 che facciano riferimento all'azione prenotazione--> 32 </one-of> 33 </item> 34 <item> 35 <tag>out="annulla prenotazione";</tag> 36 <one-of> 37 <item>cancellare prenotazione per</item> 38 <item>voglio cancellare la prenotazione</item> 39 <item>annulla la prenotazione</item> 40 <item>voglio annullare la prenotazione</item> 41 <!-- Possiamo proseguire con altre espressioni

78 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE 42 che facciano riferimento all'azione di cancellazione 43 della prenotazione di un esame--> 44 </one-of> 45 </item> 46 </one-of> 47 </rule> 48 <rule id="oggetto"> 49 <one-of> 50 <item> 51 <tag>out="esame";</tag> 52 <one-of> 53 <item>l'esame di</item> 54 <item>esame</item> 55 <item>dell esame di</item> 56 <item>l'orale di</item> 57 <item>lo scritto di</item> 58 <!-- oppure altre espressioni --> 59 </one-of> 60 </item> 61 <!-- qui possiamo inserire altri oggetti: 62 ad esempio un ricevimento con un docente, ecc--> 63 </one-of> 64 </rule> 65 <rule id="materia"> 66 <one-of> 67 <item>storia moderna</item> 68 <item>storia contemporanea</item> 69 <item>letteratura inglese</item> 70 <item>letteratura francese</token></item> 71 <item>letteratura italiana</item> 72 <!-- e altre eventuali materie --> 73 </one-of> 74 </rule> 75 </grammar> In tal caso, non ci si limiterà a fornire al motore di riconoscimento vocale un semplice set di frasi entro cui discriminare le parole pronunciate dall utente, ma gli si fornisce già una struttura rivolta all interpretazione di una più complessa sintassi, potendo esso discriminare una frase tra una qualsiasi delle permutazioni possibili, in via del tutto automatizzata; il risultato dell interpretazione sarà una serie di opzioni che potranno essere facilmente tradotte in azioni interpretabili da una macchina. Ad esempio, all espressione dell utente «Voglio prenotarmi per l esame di letteratura italiana!», il motore di riconoscimento vocale produce in output:

79 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE 1 { 2 operazione: { 3 azione:"prenotazione", 4 oggetto:"esame", 5 materia:"letteratura italiana" 6 } 7 } Oppure, l espressione «Annulla la prenotazione dell esame di storia moderna!» genera in output: 1 { 2 operazione: { 3 azione:"annulla prenotazione", 4 oggetto:"esame", 5 materia:"storia moderna" 6 } 7 } In entrambi i casi il testo generato è formattato appositamente per una facile interpretazione da parte di una macchina. L applicazione che presenteremo, consente di discriminare una frase tra un set di espressioni impostate dinamicamente; la complessità viene sostanzialmente spostata sul lato database, che avrà un organizzazione del tipo operazione-sinonimi: questo consentirà di aggiungere altre espressioni che riconducono alla medesima operazione, agendo soltanto sul database, dunque senza la necessità di intervenire sulle configurazioni già realizzate. Questo approccio è piuttosto immediato, ma presenta dei limiti nel riconoscimento di sintassi più complesse. Le strategie che abbiamo presentato, se pure semplici da implementare, potrebbero essere ben presto superate grazie ai progressi che si stanno compiendo nel campo dell intelligenza artificiale. Rimangono infatti dei contesti applicativi in cui

80 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE gli approcci precedentemente descritti possono rivelarsi inadeguati. Si pensi ad applicazioni volte alla consultazione di vasti archivi documentali: un semplice menu basato sulla selezione di opzioni vocali non potrà essere sufficiente per garantire una rapida ed efficace navigazione tra i contenuti. Un impulso verso la realizzazione di interfacce vocali più efficienti e, per così dire, più intelligenti, potrebbe certamente venire dai progressi che, nel campo delle scienze informatiche, si stanno compiendo sulla comprensione semantica da parte dei calcolatori. Ne diamo alcuni accenni nel successivo paragrafo La strada verso la comprensione semantica: le ontologie Col termine ontologia, nel campo delle scienze informatiche, si intende una formale rappresentazione di un set di concetti, e delle relazioni esistenti tra questi concetti. Un ontologia, congiunta ad un insieme di istanze di classi (ovvero concetti), costituisce una base di dati. In realtà vi è una sottile linea che indica quando termina l ontologia e inizia la base di dati. Un ontologia definisce inoltre un vocabolario comune per l intercambio di informazione entro un certo dominio di informazioni, rendendo possibile l interpretazione da parte di un calcolatore dei concetti e delle relazioni che esistono tra essi. Le ontologie vengono create con l obiettivo di condividere il sapere comune sulla struttura delle informazioni tra persone o agenti software. Questi sforzi stanno già portando verso la nascita del Web semantico, ovvero la trasformazione del Word Wide Web in un ambiente dove ai documenti pubblicati (pagine, file, immagini, e così via) siano associati ad informazioni e dati (metadati) che specifichino il contesto semantico in un formato adatto all interrogazione, all interpretazione e, più in generale, all elaborazione automatica: quindi le applicazioni non si limiteranno a leggere i contenuti, ma potranno in un certo senso comprenderne il significato e le relazioni che esistono con altri contenuti. L evoluzione del Web in Web semantico è già iniziata con la definizione, da parte del W3C, dello standard Resource Description Framework (RDF), una particolare applicazione XML che standardizza la definizione di relazioni tra informazioni ispirandosi ai principi della logica dei predicati e ricorrendo agli strumenti tipici del

81 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE Web (quali gli URI) e dell XML (i namespace) [18]. Sono nati anche appositi linguaggi di interrogazione per basi di dati di tipo RDF, il cui esempio più importante è SPARQL, che il W3C ha reso raccomandazione ufficiale nel 2008 [19]. RDF è un linguaggio di Markup che nasce con l obiettivo di aggiungere meta informazioni alle risorse che vogliamo descrivere, fornendo uno strumento per l aggiunta di semantica alle risorse [20]. RDF costituisce dunque un potente strumento per modellare e descrivere domini di conoscenza. Mentre XML supporta l interoperabilità sintattica, RDF mira a fornire l interoperabilità semantica: RDF ha una struttura a grafo, i cui nodi rappresentano i concetti di un dominio di informazioni che vogliamo descrivere, e gli archi del grafo rappresentano le relazioni tra questi concetti. Possiamo cominciare a capire il perché RDF può diventare una valida risorsa, rendendo possibile l elaborazione delle risorse da parte di una macchina. RDF si basa sul concetto di triple: il soggetto, ovvero la risorsa da descrivere, il predicato (o proprietà) e l oggetto (affermazione). Meglio ancora, possiamo pensare a queste triple come archi etichettati tra due nodi: in questo modo l oggetto può giocare anche il ruolo di valore. Tuttavia RDF, da solo, non è sufficiente ad esprimere un dominio di conoscenza. Serve un altro strumento adatto ad esprimere le relazioni tra i concetti: ecco che interviene un altro linguaggio di Markup, OWL (Ontology Web Language). OWL consente di definire delle complesse relazioni tra le classi (o concetti) definiti da RDF (disgiunzione tra i concetti, vincoli, ecc.) consentendo dunque di esprimere un intera ontologia. È intuitivo che le applicazioni che stanno nascendo in questo campo, non potranno che portare benefici alle applicazioni IVR, consentendo un più immediato accesso ai servizi, in quanto sarà possibile conferire alle applicazioni quella componente intuitiva indispensabile per garantire un più facile accesso da parte degli utenti verso applicazioni e servizi di complessità arbitraria. Si pensi alla necessità di gestire una grande quantità di documenti, e di voler rendere possibile l accesso e una facile navigazione tra essi, ricorrendo solo all utilizzo della voce: l archivio di informazioni viene tradotto in termini di ontologia, rendendo possibile l accesso da parte dell applicazione ai dati

82 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE 3.4 Architettura IVR basata sugli standard W3C In questo paragrafo vengono esaminate le soluzioni proposte dal W3C per la realizzazione di sistemi di Interactive Voice Response. Prima di esaminare l architettura d insieme, è fondamentale introdurre due ulteriori applicazioni XML, ovvero il VoiceXML e il Call Control XML Lo standard VoiceXML VoiceXML (VXML) acronimo di Voice extensible Markup Language, definito dal W3C, rappresenta lo standard in formato XML per la creazione di dialoghi interattivi tra una persona e un computer. Il W3C ha rilasciato l ultima draft dell edizione 3.0 di VoiceXML nell agosto 2010 [21]. La piattaforma VoiceXML lavora in modo analogo ad un browser HTML: i documenti VoiceXML vengono scaricati da un server Web e interpretati e trasformati in voce da un Voice Gateway residente sul computer remoto (o eventualmente integrato in un server PBX 8 ). VoiceXML è un linguaggio progettato per realizzare sistemi di presentazione e interazione vocali, denominati Voice User Interface (VUI, in italiano interfaccia utente vocale), usando la linea telefonica per l accesso ai dati. VoiceXML permette la creazione di logiche di dialogo uomo-macchina in linguaggio naturale attraverso l integrazione con diverse tecnologie, tra cui: Dual-Tone Multi-Frequency (DTMF). Riconoscimento vocale. Sintesi vocale. Speaker Verification: ovvero possibilità di interazione con applicazioni che garantiscono l identificazione dell interlocutore tramite parametri biometrici. Video in streaming o preregistrati. Il linguaggio VoiceXML è espressamente concepito per operazioni e applicazioni orientate al Web: questo consente di produrre documenti VoiceXML 8 Per un integrazione tra Asterisk e moduli formattati secondo lo standard VoiceXML, si consulti la guida online Tuttavia l integrazione richiede l utilizzo di componenti di terze parti

83 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE anche in modo dinamico e interattivo con l utente, attraverso linguaggi server side (quali ASP, JSP, PHP, ecc.), così come avviene per le pagine Web. Vediamone il funzionamento (Figura 3-6): l utente si connette tramite il proprio telefono ad un IVR (che per semplicità possiamo pensare inglobato in un server PBX) attraverso la rete telefonica ordinaria (PSTN). L IVR (o Voice Gateway) svolge le seguenti funzioni: interpreta il documento VoiceXML; produce messaggi vocale attraverso un motore di sintesi; riceve ed interpreta i comandi dall utente (tramite la tastiera a toni, via DTMF o tramite comandi vocali, via riconoscimento vocale); dialoga con il server Web attraverso il protocollo HTTP. Il server web, una volta ricevute le richieste dal Voice Gateway, rende disponibili i documenti VoiceXML per la loro interpretazione e conversione in voce verso l utente finale. Figura 3-6 Architettura basata sullo standard VoiceXML. Segue un classico esempio Hello World! : l interpretazione di questa pagina VoiceXML da parte di un IVR compatibile con questo formato, fa pronunciare la frase Ciao Mondo! tramite un sistema integrato di sintesi vocale. 1 <?xml version="1.0" encoding="utf-8"?> 2 <vxml version="2.0" xmlns=" > 3 <form id="form"> 4 <block> 5 <prompt> 6 Ciao Mondo! 7 </prompt> 8 </block>

84 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE 9 </form> 10 </vxml> Il VoiceXML ha dunque il compito di guidare il sistema di sintesi e riconoscimento vocale. Nell ambito dei sistemi di Interactive Voice Response, va integrato con un altro formato, destinato invece a controllare il flusso della telefonata: il CCXML Il Call Control XML Il W3C ha definito anche altri standard strettamente correlati al VoiceXML: oltre ai già citati SRGS e SISR ricordiamo il Call Control extensible Markup Language (CCXML), usato per la gestione delle telefonate: permette di accettare una chiamata in entrata, effettuare una chiamata in uscita, terminare una chiamata e collegare più chiamate in conferenza (si tratta di una raccomandazione candidata ) [22]. Segue un esempio di gestione di una chiamata mediante CCXML ed integrazione con VoiceXML: in questo caso verrà accettata soltanto la telefonata proveniente dal numero (chiamate da altri numeri verranno rifiutate); verrà quindi richiamato ed eseguito un file VoiceXML (in questo esempio, : potrebbe essere il precedente Hello World! ), dopodiché la chiamata verrà terminata. 1 <?xml version="1.0" encoding="utf-8"?> 2 <ccxml version="1.0"> 3 <eventhandler> 4 <transition event="connection.connection_alerting" name="evt"> 5 <log expr="'l'identificativo del chiamante è ' + evt.calledid + '.'"/> 6 <if cond="evt.callerid == ' '"> 7 <accept/> 8 <else/> 9 <reject/> 10 </if> 11 </transition> 12 <transition event="connection.connection_connected"> 13 <log expr="'abbiamo risposto alla chiamata. Richiamiamo ora un VoiceXML.'"/> 14 <dialogstart src="'hello.vxml'"/> 15 </transition> 16 <transition event="dialog.exit">

85 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE 17 <log expr="'il VoiceXML è terminato con l'evento dialog.exit.'"/> 18 <disconnect/> 19 </transition> 20 <transition event="call.call_invalid"> 21 <log expr="'fine della chiamata!"/> 22 <exit/> 23 </transition> 24 </eventhandler> 25 </ccxml> Architettura IVR basata su VoiceXML e CCXML Possiamo adesso comprendere il funzionamento di un architettura IVR basata sugli standard proposti dal W3C: come mostrato in Figura 3-7, il software PBX-IVR (vediamoli per semplicità come un unico strato software) gestisce una chiamata, appoggiandosi ad un applicazione web che fornisce dinamicamente i file CCXML per la gestione del flusso della telefonate e contemporaneamente richiedendo ad una seconda applicazione web di generare il VoiceXML, dalla cui interpretazione verranno generati dinamicamente i flussi audio (o video, nel caso di servizi IVVR). Applicazione Web per la gestione della telefonata CCXML Applicazione Web per la gestione dei motori di sintesi e riconoscimento vocale VoiceXML HTTP HTTP Interprete CCXML Browser VoiceXML Sistema PBX/IVR Figura 3-7 Schematizzazione di un architettura IVR basata sugli standard W3C

86 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE In uno scenario ancora più completo, andrebbero considerate ulteriori applicazioni Web che forniscano documenti rivolti all interpretazione grammaticale e semantica (tramite i già citati SRGS e SISR). Questo approccio, su cui molto sta puntando il W3C, non è però universalmente apprezzato, soprattutto per quanto riguarda CCXML: molti produttori lamentano in particolare l impossibilità si sfruttare a pieno le potenzialità date dagli attuali PBX, e l eccessiva macchinosità di questa strategia 9. Tutto ciò a testimonianza del fatto che, nonostante la presenza di standard, siamo ancora lontani da un architettura IVR ben definita. Nell applicazione implementata, le componenti principali delle tecnologie e relativi standard esaminati sono rese accessibili mediante un linguaggio di scripting di uso certamente più immediato, ma di conseguenza limitato nelle funzionalità. Da una attenta visione del panorama attuale, è maturata l idea di realizzare un middleware che consenta di usufruire delle principali funzionalità che un attuale IVR di livello professione può fornire, ma volto a semplificarne la messa a punto di servizi e l accesso ad applicazioni. L architettura che verrà proposta nel capitolo 4 di questo lavoro di tesi avrà il vantaggio di poter essere decentralizzata rispetto al server PBX, oltre al fatto che consente di realizzare e modificare appositi moduli di gestione con un grado di difficoltà certamente inferiore a quello dei software PBX disponibili, ricorrendo ad un limitato set di istruzioni che forniscono già funzionalità di alto livello. In tale contesto ben si inquadra il VoIP: da un lato esso, consentendo un immediata integrazione tra un sistema di elaborazione e la normale linea telefonica, rende tali sistemi semplici ed economici da implementare, rendendo possibile la messa a punto e la fornitura di servizi interattivi anche da parte di società non specializzate (o addirittura in ambito domestico, come vedremo); non di meno, ne amplifica le possibilità di utilizzo e le funzionalità offerte. Infatti, l introduzione e diffusione di protocolli quali SIP, IAX e H.323, unite a sistemi di telefonia 3G, consentono di allargare gli scenari di utilizzo, non limitando più le comunicazioni 9 I6.NET propone ad esempio il sistema, che consente di sfruttare meglio le funzionalità fornite da software PBX quali Asterisk: per un confronto tra CCXML e si rimanda al seguente indirizzo web:

87 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE alle chiamate vocali, ma estendendone le capacità grazie ad altre tecnologie multimediali come la videofonia. Altri benefici provengono dal grado di sicurezza che un servizio di telefonia VoIP può garantire. 3.5 Sicurezza nei sistemi IVR Un aspetto di primaria importanza nell ottica di un sistema destinato alla fornitura di servizi automatici via telefono, consiste nell implementazione di opportune misure di sicurezza. Da questo punto di vista, molte delle problematiche da affrontare sono comuni a quelle che i sistemi destinati alla fornitura di servizi via Web già debbono affrontare, il che consente di ereditarne in parte le possibili soluzioni. Altre problematiche sono invece strettamente legate alla fornitura di servizi telefonici, e vanno affrontate caso per caso, richiedendo l implementazione di opportuni sistemi di sicurezza che siano proporzionali alla sensibilità dei servizi che si desidera offrire, e dei dati cui si può avere accesso o che possono essere scambiati dall utente col sistema Autenticazione dell utente Abbiamo detto che nella fornitura di servizi tramite sistemi IVR, il numero di telefono dell utente deve costituire in un certo senso la sua firma, il che richiede notevoli precauzioni. Prima di tutto, se per servizi rivolti ad esempio ad una semplice consultazione di un database possiamo accontentarci di verificare l utente mediante il numero di telefono ad egli associato, è chiaro che se pensiamo a servizi più critici, quale può essere l accesso a sistemi di gestione finanziaria, servizi bancari, dunque attività soggette a rischio, questa misura diventa già inadeguata. In tali contesti certamente sarà necessario richiedere all utente l immissione di una password. Ma rimangono aperte altre problematiche: se un utente malevolo riesce ad impadronirsi dell identità (ovvero il numero di telefono) dell utente, potrà tentare di accedere al sistema applicando ad esempio un attacco brute force: utilizzando un applicazione robot, egli potrà tentare di accedere al sistema mediante continui tentativi di

88 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE immissione di password. Queste problematiche vanno affrontate di volta in volta in funzione del grado di pericolosità che un accesso indesiderato al sistema può comportare. Ad esempio, il sistema potrà tollerare un valore massimo di immissione di password errate, superato il quale bloccherà l accesso per quell identificativo; potrebbe trattarsi di un blocco temporaneo, oppure che richieda una qualche operazione da parte dell utente per poter riavere accesso ai servizi via telefono. Una possibile soluzione consiste nell utilizzo di test di Turing, utilizzando dunque dei CAPTCHA 10 audio (alla stregua delle immagini CAPTCHA utilizzate nel Web per impedire ai bot l accesso a determinati servizi): ad esempio si può richiedere all utente di immettere una particolare sequenza numerica tramite DTMF, che va discriminata in un contesto audio disturbato, o che richieda un operazione (il sistema potrebbe ad esempio richiedere l immissione del risultato di una semplice operazione aritmetica). Altri sistemi di autenticazione più sofisticati possono essere basati sul riconoscimento di parametri biometrici, quali ad esempio l impronta vocale, tramite un processo di Speaker Recognition (riconoscimento del parlatore). Tali sistemi possono essere divisi in due categorie; i sistemi di Speaker Identification consentono di identificare un utente tra un gruppo di possibili utenti, mentre i sistemi di Speaker Verification 11 consentono di verificarne l identità [23]. Il processo di autentificazione tramite riconoscimento della voce prevede due fasi distinte: una fase di registrazione al servizio, che ha lo scopo di costruire e memorizzare l impronta vocale del parlatore; viene eseguita una volta sola, all inizio, semplicemente registrando alcune parole fatte pronunciare dall utente; una fase di verifica, che ha lo scopo di accettare o rifiutare la dichiarazione di identità; viene ripetuta ogniqualvolta sia richiesto l accesso al servizio. Essa 10 CAPTCHA: Completely automated public Turing test to tell computers and humans apart (ovvero Test di Turing pubblico e completamente automatico per distinguere computer e umani ). 11 Un esempio di motore di riconoscimento vocale dotato di funzionalità di Speaker Verification è prodotto da Loquendo, una delle principali società specializzate nella produzione di sistemi di sintesi e riconoscimento vocale; maggiori dettagli sul funzionamento del sistema di Speaker Verification prodotto da Loquendo sono disponibili all indirizzo:

89 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE consiste nel confrontare le caratteristiche della voce del parlatore che si sottopone all autenticazione con l impronta vocale precedentemente creata per tale identità. Inoltre le modalità di utilizzo sono di almeno due tipologie: Text-dependent: la verifica avviene in base ad un testo specifico, identico nelle fasi di verifica e autenticazione. Le applicazioni di tipo text-dependent sono solitamente basate sull impiego degli HMM. Text-prompted: la verifica avviene in base ad un testo generato dal sistema, diverso in ogni istanza di autenticazione che l utente deve ripetere. Tale modalità riduce il rischio di accesso fraudolento per mezzo di una registrazione. In questi casi si utilizzano modelli derivati dagli HMM (solitamente a mistura di gaussiane)[24]. Un sistema di identificazione del parlatore essenzialmente implementa un test di probabilità per discriminare due casi: la voce proviene dall utente accreditato oppure da un impostore. Tramite una fase di processamento, vengono estratte le caratteristiche dell impronta vocale dell utente che sta parlando. Tali caratteristiche sono comparate col modello acustico dell utente di cui si vuole verificare l identità e con i modelli acustici degli altri utenti. Dal confronto vengono ottenuti dei valori di probabilità (λ) che vengono confrontati con una soglia (θ), al fine di decidere se accettare o meno l utente (Figura 3-8). Impronta acustica utente accettato Processamento rifiutato Impronte acustiche altri utenti Figura 3-8 Schema di funzionamento di un sistema di Speaker Recognition

90 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE Altri sistemi di riconoscimento basati sui parametri biometrici possono essere implementati grazie alla possibilità di utilizzare il video trasmesso dall utente: con l introduzione di sistemi IVVR full-duplex, e allo stesso tempo con il supporto alla trasmissione di video a più alta definizione, il sistema di autenticazione potrebbe infatti essere basato sull analisi di ulteriori parametri biometrici, come ad esempio il riconoscimento facciale; si tenga presente che applicazioni che consentono il riconoscimento facciale mediante videotelefoni 3G sono già disponibili [25], come Figura Test di una applicazione di riconoscimento facciale mediante videotelefono 3G [25]. mostrato in Figura 3-9: dunque sistemi con un adeguato livello di sicurezza nell autenticazione dell utente, possono essere implementati anche senza ricorrere a terminali VoIP lato utente. Altre problematiche riguardano le tipologie di dati che l utente può scambiare col sistema; soprattutto nell ottica in cui è il sistema ad interrogare l utente, bisogna tener conto che dati sensibili (numeri di conti bancari, password di accesso ad altri sistemi, ecc.) non dovranno comunque essere richiesti dal sistema; il rischio non è soltanto rivolto ad una possibile intercettazione dei dati attraverso la rete (attacco di tipo man in the middle), ma ci riferiamo anche alla possibilità di intercettazioni ambientali: qualunque persona stia intorno a noi potrebbe sentirci quando utilizziamo il telefono. Gli utenti del servizio dovranno essere ben istruiti del fatto che determinati parametri non dovranno mai essere liberamente forniti, evitando così il rischio della proliferazione di attività illegali quali il vishing (termine con cui si fa riferimento all attività di phishing, tipica del Web, in cui il mezzo illegale di accesso alle informazioni da parte di un utente malintenzionato non sono le , ma chiamate effettuate via VoIP)

91 CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE Vulnerabilità e contromisure Al di là della possibilità di un accesso indesiderato al sistema, bisogna comunque confrontarsi con la problematica di stabilità: un architettura destinata alla fornitura di servizi automatici dovrà comunque essere resistente ad attacchi di tipo DoS (Denial of Service); si pensi ad esempio ad un utente malevolo che via software incominci ad inondare di richieste il terminale VoIP, simulando continuamente nuove chiamate, portando così al collasso la stabilità del servizio. Da questo punto di vista, possono essere adottate le strategie che già vengono applicate per la protezione contro il cosiddetto SPIT (Spam over Internet Telephony, ovvero Spam attraverso il VoIP): tecniche di protezione molto semplici possono essere adottate mediante la definizione di blacklist (viene impedito l accesso, in maniera temporanea o permanente, ad un utente che sta effettuando un numero spropositato di richieste al servizio, in base al suo identificativo o all indirizzo IP di provenienza) o di whitelist (con funzionamento complementare). Tuttavia tecniche di questo tipo si rivelano ormai insufficienti. Diverse sono le strategie proposte per la protezione contro lo SPIT; vediamone alcune. Alcune tecniche di protezione fanno uso dei feedback degli altri utenti [26][27] : si tratta di algoritmi che attribuiscono un valore di reputazione (User Reputation) all utente chiamante, utilizzando una funzione di inferenza bayesiana, prendendo in considerazione la sua storia passata: se il grado di reputazione è inferiore ad una certa soglia, la chiamata viene bloccata. Altri interessanti algoritmi sono basati sul greylisting: tali algoritmi possono essere più efficienti rispetto a quelli basati sulla User Reputation, poiché prendono in considerazione direttamente l attività di un utente, andando ad attribuire a questi un punteggio (un livello di grigio) [28]. Il server IP-PBX monitora l attività di un utente: il livello viene computato, ad esempio, in base alla frequenza di chiamate. Se la soglia di grigio è alta, è probabile che l utente in questione stia eseguendo un attività di SPIT e le chiamate di quell utente verranno bloccate. Il vantaggio rispetto all utilizzo di una blacklist è che il punteggio viene valutato dinamicamente: passato un certo quantitativo di tempo, il livello scende al di sotto del valore di soglia,

92 livello di grigio CAPITOLO 3 SISTEMI DI INTERACTIVE VOICE RESPONSE consentendo nuovamente all utente di riprendere l attività telefonica (fino ad un eventuale nuovo superamento della soglia), come mostrato in Figura La strategia gode dunque di una maggiore flessibilità rispetto alla rigida definizione di blacklist o whitelist. Sistemi di greylisting più sofisticati prevedono l utilizzo di soglie multiple, computate ad esempio in finestre temporali La chiamata è bloccata soglia tempo Figura 3-10 brevi e in finestre più lunghe, consentendo dunque di essere più reattivi nell individuazione dello SPIT nel breve periodo [28]. Nel caso di fornitura di servizi o attività che possono essere particolarmente soggette ad attività di SPIT, ancora una volta è possibile fare ricorso all utilizzo di test di Turing: CAPTCHA audio potrebbero essere utilizzati per validare un utente la cui attività, particolarmente intensa, ha messo in allarme il sistema. Un esempio di protezione del sistema tramite questa tecnica sarà presentato nel capitolo 5. Infine, nel caso in cui il VoIP sia il mezzo di accesso da parte dell utente al sistema IVR, o che lo stesso IVR sia implementato in un client VoIP (come nell architettura proposta), non vanno tralasciati gli aspetti di sicurezza legati alla telefonia Internet, trattati alla fine del primo capitolo. La configurazione da noi proposta prevede un IVR implementato su di un client VoIP, collegato ad Asterisk PBX tramite protocollo IAX. In tal caso, agendo sulla configurazione di Asterisk (capitolo 5), il collegamento può essere reso sicuro tramite la cifratura dei dati

93 Capitolo 4 Presentazione del middleware di convergenza con funzionalità IVR I n questo capitolo verrà presentato il software VoIP con funzionalità IVR che è stato sviluppato in questo lavoro di tesi. Di seguito verranno introdotte le funzionalità messe al disposizione dal software, che non riguardano soltanto la gestione delle chiamate vocali, ma permettono di far cooperare queste con funzionalità rivolte alla gestione di SMS ed , oltre a garantire l interoperabilità con un database o altre applicazioni: difatti il software consente di realizzare agevolmente vere e proprie interfacce vocali (nel caso delle telefonate) o testuali (nel caso di SMS e posta elettronica) verso un database o applicazioni esistenti. Il softphone è stato realizzato in linguaggio C# in ambiente.net: include diverse librerie e componenti (di tipo open source o gratuitamente distribuibili), che lo rendono non soltanto un client VoIP finalizzato alla gestione automatica di telefonate, ma anche un gateway GSM e un client di posta elettronica, con la possibilità di interagire con un database MySQL e altre applicazioni. Di seguito verranno presentate in maniera più dettagliata le sue funzionalità; verrà poi descritto il linguaggio di scripting creato appositamente per la realizzazione dei moduli atti alla gestione di diverse tipologie di servizi

94 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR 4.1 Obiettivi e funzionalità dell architettura proposta Il capitolo precedente ci ha fornito un ampia panoramica di quelle che sono le potenzialità degli attuali software per la fornitura di servizi interattivi via telefono; gli scenari applicativi in cui tali sistemi possono essere inseriti, a vantaggio sia degli utenti che dello stesso fornitore di servizi, sono estremamente ampi. Allo stesso tempo, abbiamo avuto modo di valutare quali sono nel panorama attuale le problematiche che possono quanto meno limitare la diffusione degli IVR: tali freni sono insiti nella complessità dell architettura necessaria a renderne possibile l implementazione, complessità che si traduce in termini di costi e che di conseguenza ne possono relegare l utilizzo a provider di una certa entità, o a chi, comunque, sia disposto ad affrontare tali costi. Ci sono diversi ambiti applicativi in cui tutto ciò diventa inaccettabile: si pensi alla diffusione di questi sistemi su scenari di più larga scala: ed esempio piccoli uffici e applicazioni nella domotica. In tali scenari è probabile che l accesso alla telefonia VoIP sia garantito da appositi provider, come illustrato in Figura 4-1. Internet VoIP provider Figura 4-1 IVR su client VoIP Da qui l idea di progettare un architettura volutamente semplice e user friendly, non dunque allo scopo di proporsi in contrasto a sistemi più avanzati, ma resa volutamente semplice e allo stesso tempo scalabile per poter costituire un alternativa di utilizzo in ambiti applicativi in cui le componenti costo e semplicità d uso non sono irrilevanti. L analisi di quelle che possono essere le esigenze di chi può voler mettere a punto dei semplici ma al contempo funzionali servizi IVR, si sono tradotte nell implementazione del software di seguito presentato, ovvero un client VoIP dotato di diverse funzionalità e connettività, che soddisfano l esigenza di unificazione delle comunicazioni e convergenza discussa nel capitolo

95 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR Una visione d insieme delle funzionalità implementate nel software e delle connettività supportate è mostrata in Figura 4-2. Server PBX Gateway GSM Database Server SMTP Motori di riconoscimento e sintesi vocale Moduli di configurazione dei servizi Applicazioni Figura 4-2 Visione d insieme dell architettura proposta: sono evidenziate le funzionalità di client VoIP (con connettività verso Asterisk PBX garantita dal protocollo IAX2), di connettività ad un database MySQL e verso un gateway GSM, oltre alle funzionalità di client di posta elettronica (tramite SMTP) e l interoperabilità con altre applicazioni. Il nucleo primario del software è costituito da un client VoIP che utilizza, come già anticipato, il protocollo IAX2: pur non trattandosi di una scelta obbligata, si è preferito ricorrere a questo protocollo perché le sue caratteristiche (ovvero supporto al trunking delle telefonate e overhead limitato) ben si inquadrano nell ottica di un software che debba gestire un notevole volume di telefonate. Dal punto di vista dell implementazione delle funzionalità di client VoIP, la scelta è caduta sulla libreria open source IAXClient 12 : il suo utilizzo ha richiesto l adozione di un apposito 12 IAXClient library, A lightweight cross platform IP telephony client using the IAX protocol, designed for use with the asterisk open source PBX., versione 2.1Beta3. Il progetto è accessibile all indirizzo:

96 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR wrapper in C# 13, per garantire l interoperabilità della libreria con il linguaggio e l ambiente.net. Il wrapper di base è stato modificato per essere adattato alla più recente versione della libreria IAXClient, la quale, se pur ancora carente sotto certi aspetti (in particolare non garantisce una buona gestione dell audio a basso livello), si è rivelata adeguata allo sviluppo di questo prototipo. Il software permette inoltre di interfacciarsi con un gateway GSM, per gestire l invio e la ricezione di SMS: è stata utilizzata a tal fine la libreria GSM Communication 14, che consente di utilizzare buona parte dei comuni telefoni cellulari come gateway (tramite connessione con cavo USB o seriale). Altra caratteristica importante è la gestione dei motori di sintesi e riconoscimento vocale; da questo punto di vista il framework.net fornisce già tutte le funzionalità necessarie all implementazione di sistemi di speech-recognition e text-to-speech 15. In particolare, per quanto concerne le funzionalità di speechrecognition, il software è capace di individuare una frase o una parola pronunciata dall utente, tra un set di frasi e parole che vengono impostate dinamicamente tramite il linguaggio di scripting (il software non consente dunque, per il momento, funzionalità di riconoscimento del dettato). L integrabilità del sistema con servizi già esistenti (di tipo Web ad esempio) è garantita poi dalla capacità del software di dialogare con database esistenti: come vedremo è infatti possibile accedere sia in lettura che in scrittura ad un database MySQL (si legga a tal proposito la nota 17 di pag. 96). È possibile configurare un client di posta elettronica per l invio di (tramite protocollo SMTP), che possono ampliare le possibilità di utilizzo del software. Infine il softphone consente di richiamare applicazioni esistenti. 13 Andre Azevedo, Using the Asterisk IAXClient library in C# - A C# wrapper for the Asterisk IAXClient library, disponibile all indirizzo: 14 Stefan Mayr, GSM Communication Library, disponibile online all indirizzo: 15 Microsoft Speech API 5.4: include i motori per le funzionalità di text-to-speech (TTS) e speech recognition (SR) liberamente ridistribuibili. Per quanto riguarda il motore di speech recognition, poiché la Speech API non supporta il modello acustico italiano, è stato utilizzato il modello acustico in lingua spagnola (il più simile all italiano tra quelli disponibili), senza che ciò abbia comportato problemi in fase di riconoscimento. La relativa documentazione è disponibile online all indirizzo:

97 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR Dal punto di vista del funzionamento interno, al fine di garantire una piena customizzazione e modularità dei servizi offerti, si è scelto di gestire il flusso di esecuzione di una chiamata mediante file di scripting; è stato necessario implementare un linguaggio dotato di proprie regole di sintassi e che allo stesso tempo è reso flessibile mediante la possibilità di utilizzo di variabili. I dettagli del linguaggio di scripting saranno esposti successivamente. Il software racchiude al suo interno un parser che interpreta i comandi contenuti nei file di script, esegue eventuali sostituzioni di variabili con i rispettivi valori e fa eseguire all applicazione l operazione desiderata. Terminata un operazione, il parser procede secondo la struttura dello script, andando a ricercare la successiva operazione da eseguire. Nel caso in cui l istruzione da eseguire prevede un input da parte dell utente, come ad esempio la digitazione di toni DTMF, oppure un input vocale, l esecuzione del parser viene interrotta; l esecuzione viene ripresa non appena riceve l input da parte dell utente, come schematizzato nella seguente figura. Moduli Preleva prossima operazione Processa operazione no necessita input? si Processa input utente Input utente (Voce o DTMF) Figura 4-3 Funzionamento del parser nel caso di gestione di una chiamata vocale

98 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR Apposite istruzioni, consentono di interrompere l esecuzione di uno script e proseguire l esecuzione delle istruzioni di un altro script. Considerazioni simili possono essere fatte per la gestione degli SMS in ingresso, con l ovvia semplificazione che in questo caso l input dell utente è unico, ovvero la ricezione del messaggio. Anche se il software rimane un prototipo, la sua struttura interna fa sì che nuove funzionalità possano essere introdotte con buona facilità. Inoltre, con modifiche non eccessive, il parser può essere adattato per utilizzare altri formati indipendenti dal linguaggio di scripting utilizzato (quali gli standard presentati nel precedente capitolo). Il passaggio per un linguaggio appositamente progettato si è reso necessario per consentire la realizzazione delle funzionalità e il loro test in maniera più flessibile; si tenga presente che gli standard discussi al capitolo 3 (VoiceXML, CCXML, ecc.) prevedono diverse funzionalità, che vanno ben oltre quelli che sono gli intenti di questa applicazione, e la cui eventuale conformazione avrebbero dilatato eccessivamente i tempi di sviluppo. Altre motivazioni, vanno individuate nelle limitazioni delle librerie utilizzate; ad esempio, la Microsoft Speech API, supporta il VoiceXML solo parzialmente (non consente ad esempio l individuazione dei toni DTMF, la quale funzione è implementata invece nella libreria IAXClient). Il softphone, che rimane pur sempre allo stato di prototipo, mette comunque a disposizione diverse funzionalità. La sua flessibilità lo rende comunque adatto a determinati ambiti di utilizzo, potendo funzionare indipendentemente da altre applicazioni Web, secondo l architettura basata su VoiceXML e CCXML che avevamo presentato a pag. 76. Inoltre è indipendente dall IP-PBX, il che lo rende un ottima alternativa in scenari in cui il fornitore di servizi IVR è fisicamente distaccato dal server PBX (perché ad esempio usufruisce del servizio VoIP fornito da un apposito provider)

99 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR 4.2 Interfaccia grafica e utilizzo del software In Figura 4-4 è presentata l interfaccia principale del middleware implementato Figura 4-4 Il softphone: visione della schermata principale (TabPanel Script). L utilizzo delle diverse componenti e funzionalità richiede prima di tutto la loro configurazione: è possibile accedere ad un ampio menu di configurazione mediante il tasto (4). Da tale menu (per i dettagli si considerino le figure 4-5, 4-6 e 4-7) si possono configurare i parametri relativi alla connessione al server Asterisk (indirizzo del server, parametri di autenticazione e registrazione) e dei codec audio 16 da utilizzare. Possiamo poi configurare le periferiche audio da utilizzare, i parametri relativi al motore text-to-speech, preferenze sulla registrazione dei messaggi vocali; sempre tramite (4) possiamo impostare i parametri relativi al client di posta elettronica (utilizza il protocollo SMTP), quelli relativi alla connessione al gateway GSM (porta COM da utilizzare) e le impostazioni di autenticazione e accesso al database MySQL. 16 Per una lista dei codec audio supportati dalla libreria IAXClient, si faccia riferimento alla Tabella 2 di pagina

100 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR a (a): questo menu è dedicato al setup dei parametri di connessione all IP-PBX; vengono inseriti i parametri di autenticazione, l indirizzo IP (o nome host) del server; è poi possibile specificare il codec audio da utilizzare e gli eventuali codec accettati (in questo caso sono possibili più selezioni). b (b): setup delle periferiche audio. Da utilizzare per il setup delle periferiche di input e output (ed un eventuale linea dedicata per la suoneria). È possibile impostare periferiche differenti nel caso in cui sia attiva la modalità di funzionamento IVR (nel caso in cui si lasci lavorare l applicazione in background) Figura 4-5

101 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR c (c): parametri del motore di sintesi vocale. Va selezionato un motore di sintesi, il volume e la velocità del parlato. In qualsiasi momento è possibile testare i parametri selezionati tramite l apposito pulsante. d (d): parametri per la registrazione di messaggi vocali. Va selezionata la periferica di acquisizione (in accordo con la selezione fatta in (b)), il campionamento e il valore della bit rate desiderata Figura 4-6

102 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR e (e): setup dei parametri di connessione al server di posta elettronica, per l invio di tramite SMTP (username, password, indirizzo IP o nome host, e la porta da utilizzare) e la porta COM da utilizzare per la connessione al gateway GSM. Per quanto riguarda la ricezione e invio di SMS, è possibile attivare la modalità debug. f (f): quest ultima schermata consente di specificare i parametri di connessione ad un server MySQL; vanno specificati i parametri di autenticazione, l indirizzo IP o nome host del server e il nome del database Figura 4-7

103 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR Per la gestione del gateway GSM, è possibile attivare la modalità debug, che consente di testare rapidamente le funzionalità di invio e ricezione degli SMS, emulandole tramite finestre di input e output. L utilizzo del softphone quale normale client VoIP è garantito dalla tastiera di composizione (2) e dall insieme di tasti funzione (3): in questo modo è possibile testarne le funzionalità nelle preliminari fasi di setup. La schermata sulla destra è dedicata alla configurazione e manutenzione dei moduli: questi, come vedremo, possono essere distribuiti su più file (con estensione, che vengono collocati di default nel percorso ) e possono essere rapidamente richiamati mediante il menu a scorrimento (6). Tramite il menu a scorrimento (11) viene selezionata la destinazione del modulo di ingresso: Voce se è destinato alla gestione di una telefonata in arrivo, oppure SMS se deve essere eseguito all arrivo di un messaggio dal gateway GSM. Lo script di lavoro viene visualizzato nel box (12), in cui per comodità verranno evidenziate le parole chiave, rendendo più agevole la stesura e il debug degli script. In qualsiasi momento può essere testata la validità dello script corrente, utilizzando il tasto (8). In caso di errore, verrà fornita una breve descrizione della linea di interruzione nel box (13). Lo script principale di accesso viene impostato mediante il tasto (10), sia per la parte voce che per la parte SMS (la destinazione va in ogni caso impostata tramite (11)): lo script verrà caricato solo se non sono presenti errori di sintassi. In un qualsiasi momento gli script impostati relativi alla gestione delle chiamate o degli SMS possono essere richiamate tramite (8). Impostati gli script, questi vanno messi in funzione; lo script principale di accesso ai moduli di gestione della chiamata telefonica va reso operativo mediante il tasto (1); per disattivare la gestione automatica delle chiamate, bisogna premere una seconda volta lo stesso tasto. Analogamente, l attivazione dei moduli di gestione degli SMS va impostata (o disattivata) tramite il tasto (5). Se i moduli di gestione degli SMS sono stati attivati, ma il sistema è in modalità debug (la quale è attivabile accedendo alla schermata di configurazione (4)), è possibile testare il funzionamento del sistema utilizzando il tasto (7)

104 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR 4.3 Il linguaggio di scripting Per la configurazione e customizzazione dei servizi, è stato realizzato un apposito linguaggio di scripting, basato su un numero ridotto di comandi che consentono di creare delle macro atte a gestire chiamate e messaggi in ingresso. Il linguaggio consente l utilizzo di variabili e array di variabili. Per semplicità di gestione, lo script può essere steso su più file di testo (come già detto, con estensione ): ogni file costituisce un modulo. La struttura può avere una complessità arbitraria, in quanto da un modulo è possibile accedere ad altri moduli. Facciamo notare che, nonostante la non interoperabilità con standard sviluppati in questo campo (come il VoiceXML e il CCXML) il linguaggio, se pur semplice, prevede già buona parte delle funzionalità previste dallo standard, oltre alla possibilità di cooperare con gateway GMS e altri servizi (database, SMTP e altre applicazioni), elementi che ben si prestano alla convergenza di sistemi verticali. Esempi completi di script strutturati su più moduli, sono disponibili in appendice alla tesi Regole della sintassi Il linguaggio prevede semplici regole. Ciascuna istruzione è contenuta in una singola riga di codice. Ogni script deve iniziare con la parola chiave SCRIPT, seguita dal nome dello script stesso. È possibile introdurre dei commenti: le linee dello script che incominciano con ; verranno infatti ignorate. Alle variabili, o array di variabili, è possibile assegnare qualsiasi nome, purché questo inizi col carattere speciale $. Sono previste due variabili di default: la variabile $numero contiene il numero di telefono della chiamata o SMS in ingresso; inoltre nel caso di SMS, la variabile $txt_sms contiene il testo del messaggio. Nel seguente sottoparagrafo sono riportate le funzioni implementate. Si tenga presente che le funzioni che riguardano sintesi e riconoscimento vocale non devono essere utilizzate se lo script è rivolto alla gestione degli SMS in ingresso

105 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR Parole chiave SCRIPT : ciascun modulo, deve iniziare necessariamente con questa parola chiave, seguita dal nome dello script. La parola chiave non va più utilizzata in altre parti dello script. DB_READ : consente di eseguire query su un database 17. Deve essere seguita dalla variabile che conterrà i dati risultanti dalla query (o un array di variabili, se la query prevede risultati multipli), e della query che si intende eseguire. La query può contenere a sua volta variabili. Ad esempio: DB_READ $nomi SELECT nome FROM studenti WHERE id_studente = $id DB_WRITE : con questa istruzione si possono eseguire inserimenti o modifiche sul database. L istruzione deve essere seguita dalla query da eseguire, che può anche contenere variabili. Ad esempio: DB_WRITE INSERT INTO prenotazioni (id_studente, id_esame) VALUES ( $id, $id_esame) Sia nel caso della DB_READ che della DB_WRITE sono ammesse tutte le funzionalità supportate da MySQL: l applicazione infatti si limita a sostituire nelle query il contenuto delle eventuali variabili presenti nello script. La verifica degli script tuttavia non tiene conto della validità della sintassi delle query, che è quindi demandata all utente. PLAY : questa istruzione consente di attivare il modulo text-to-speech, facendo sintetizzare ed eseguire il testo che la segue. Il testo può contenere anche variabili: in particolare, nel caso di array di variabili, l istruzione verrà automaticamente eseguita per ciascun valore. Ad esempio, per esporre un elenco di esami con le rispettive date, può essere utilizzata l espressione: PLAY L esame di $nome_esame, si terrà giorno $data_esame L istruzione PLAY presenta due varianti: PLAY_REC e PLAY_REC_MAIL. 17 Per utilizzare le operazioni di accesso in lettura (tramite la DB_READ) e scrittura (DB_WRITE) su un database MySQL, è necessaria l installazione sul sistema in cui si utilizza il softphone del Connector/Net (disponibile all indirizzo

106 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR PLAY_REC : il testo da eseguire in tal caso sarà preceduta da un etichetta (racchiusa tra doppi apici); dopo l esecuzione del testo, la conversazione verrà registrata su file audio. Ad esempio: PLAY_REC Messaggio per $nome Lascia un messaggio per $nome PLAY_REC_MAIL : come nel caso precedente, ma in questo caso la registrazione audio verrà inviata via all indirizzo inserito alla fine dell istruzione (o ad un insieme di indirizzi , se questi sono contenuti in un array): PLAY_REC_MAIL Messaggio per $nome Lascia un messaggio da inviare a $nome destinatario@example.com Sia l istruzione PLAY_REC che PLAY_REC_MAIL generano per ogni registrazione, oltre al file audio, un file XML (di default entrambi vengono salvati nel percorso ), contenente i dati della telefonata, al fine di garantire un facile utilizzo dei dati e della registrazione da parte di altre applicazioni. Segue un esempio di file XML generato (in questo caso relativo al file audio ): 1 <?xml version="1.0"?> 2 <MessaggioVocale xmlns:xsi=" xmlns:xsd=" 3 <id> </id> 4 <numeroditelefono>2002</numeroditelefono> 5 <data>12/04/2011</data> 6 <ora>22:38</ora> 7 <file>c:\iaxmanager\messaggi\ mp3</file> 8 < >destinatario@example.com</ > 9 <etichetta>messaggio per </etichetta> 10 <durata>00m:47s</durata> 11 </MessaggioVocale> I messaggi registrati tramite PLAY_REC e PLAY_REC_MAIL possono anche essere consultati tramite l applicazione, accedendo al pannello Registro (Figura 4-8) dal menu principale: in (1) viene riportato l elenco delle registrazioni; selezionata una registrazione, ne vengono forniti i dettagli in (2); i messaggi possono quindi essere ascoltati ed eventualmente cancellati

107 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR 1 2 Figura 4-8 Schermata principale (TabPanel Registro). RECO : questa istruzione consente di riconoscere un comando vocale pronunciato dall utente mediante il modulo di speech-recognition. La parola chiave deve essere seguita da una variabile che conterrà la frase riconosciuta, e da un insieme di frasi o parole, separate da virgole, che costituiscono le opzioni tra cui il motore di speech-recognition dovrà scegliere. Queste possono essere anche contenute in una o più variabili. Se ad esempio l utente deve scegliere una opzione tra un insieme di opzioni (singole parole o intere frasi) contenute nella variabile $opzioni_vocali, si utilizzerà la seguente sintassi: RECO $opzione_selezionata $opzioni_vocali Sostanzialmente vengono fornite al motore di riconoscimento vocale le alternative entro cui dover discriminare l espressione dell utente: ogni volta che viene invocata la funzione RECO, viene costruito un piccolo dizionario linguistico (si tratta di un modello linguistico limitato) e passato al motore di riconoscimento. L applicazione passerà alla successiva operazione da eseguire non appena il motore di riconoscimento vocale avrà individuato una delle opzioni; l opzione riconosciuta verrà inserita nella variabile passata come primo parametro. Il motore di riconoscimento vocale fornisce il risultato soltanto se il livello di confidenza del risultato è sufficientemente alto: ciò consente di abbassare drasticamente la

108 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR possibilità di errore nell individuazione della frase pronunciata, ma può rendere necessario da parte dell utente la pronuncia della frase più di una volta. DTMF : l istruzione DTMF consente di memorizzare in una variabile in formato stringa i toni DTMF immessi dall utente. Il comando è seguito da una costante numerica che rappresenta il numero minimo di toni da leggere e dal nome della variabile. Segue un esempio: DTMF 4 $dtmf_letti SELECTION, END_SELECTION : queste due parole chiave permettono di definire una struttura di controllo basata su un singolo tono DTMF eseguito dall utente, evitando così di ricorrere alle istruzioni DTMF e blocchi IF - END_IF, e agevolando dunque la creazione di menu di selezione. È possibile definire un blocco di default (mediante la parola chiave DEF: ). Segue un esempio di utilizzo: SELECTION 0: #: ; se viene premuto il tasto 0, esegue il seguente blocco di operazioni ; se viene premuto il tasto #, esegue il seguente blocco di operazioni DEF: ; in tutti gli altri casi, esegue il seguente blocco di operazioni END_SELECTION IF, END_IF : queste due parole chiave consentono di definire una struttura di controllo basata su alternative: sono supportati confronti di uguaglianza ( = ) o disuguaglianza (!= ) tra variabili e costanti, sia di tipo numerico che di tipo stringa. Opzionalmente, può essere inserito un blocco ELSE, che verrà eseguito nel caso in cui nessuna delle opzioni precedenti si sia verificata. Per le stringhe sono supportati anche confronti del tipo StartsWith (viene verificato che una

109 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR stringa inizi con la successiva stringa) ed EndsWith (al contrario, viene verificato che una stringa inizi termini con la successiva stringa). Più strutture IF possono essere annidate tra loro. Un esempio di utilizzo di questa struttura è riportato di seguito: IF $var = 0 ; se il contenuto di $var è uguale a 0, esegue il seguente blocco di operazioni $var = 1 ; se il contenuto di $var è uguale a 1, esegue il seguente blocco di operazioni ELSE ; in tutti gli altri casi, esegue il seguente blocco di operazioni END_IF GOTO : esegue un salto incondizionato alla linea di codice del medesimo script; la linea di codice va specificata come parametro. Ad esempio il seguente frammento di script eseguirà un salto alla linea 5: GOTO 5 LOAD : questa istruzione consente di caricare uno script e accedere ad esso. Va seguita dal nome dello script al quale accedere (senza estensione). L esecuzione riparte dalla prima riga dello script caricato, al quale verranno automaticamente passate tutte le variabili attualmente assegnate. Segue un esempio: LOAD script_secondario EXIT : l istruzione comporta l uscita dallo script di esecuzione corrente e il ritorno allo script dal quale è stato effettuato l accesso (tramite una precedente LOAD): l esecuzione riprende dall istruzione successiva alla LOAD utilizzata per effettuare l accesso. Ancora una volta verranno restituite tutte le variabili allo script di accesso. Si tenga presente che l uscita da uno script non viene mai eseguita in automatico alla terminazione dello script stesso: questo implica che l istruzione

110 CAPITOLO 4 PRESENTAZIONE DEL MIDDLEWARE DI CONVERGENZA CON FUNZIONALITÀ IVR EXIT va esplicitamente utilizzata per ritornare allo script chiamante. L utilizzo combinato delle istruzioni LOAD e EXIT è particolarmente indicato per la definizione di menu ad albero più complessi. SEND_SMS : l istruzione comporta l invio di uno o più SMS tramite il gateway (o l emulazione dell invio se il sistema è in modalità debug). Va seguita dal numero di destinazione e dal testo. Il testo può ospitare variabili; il numero di telefono può essere una variabile, oppure un array di variabili: in quest ultimo caso il messaggio sarà inviato a tutti i numeri contenuti nell array. Ad esempio: SEND_SMS $numeri_di_destinazione Hello! HANGUP : questa istruzione esegue la chiusura forzata di una telefonata in corso. Bisogna infatti considerare che la semplice terminazione di uno script non comporta la chiusura automatica di una telefonata. TRANSFERT : mediante questa istruzione la chiamata corrente viene trasferita al numero specificato come parametro. Può trattarsi di una costante o di un valore ospitato in una variabile. Ad esempio: TRANSFERT $numero_di_trasferimento RUN : consente di eseguire operazioni tramite interfaccia a riga di comando. Il comando può essere eventualmente costituito da variabili. Le istruzioni PLAY, PLAY_REC, PLAY_REC_MAIL, RECO, DTMF, SELECTION, END_SELECTION, HANGUP e TRANSFERT non vanno utilizzate negli script destinati alla gestione SMS. Si tenga presente che, anche se il linguaggio non prevede funzionalità destinate alla gestione e modifica delle variabili, queste, sia di tipo numerico, che di tipo stringa, possono essere implementate ugualmente mediante l ampia gamma di funzioni messe a disposizione da MySQL [29], ricorrendo all istruzione DB_READ

111 Capitolo 5 Test e utilizzo in scenari applicativi P asso successivo alla realizzazione del software, è stata la sua validazione tramite l implementazione di un completo scenario applicativo di test. Ciò ha consentito di testarne le funzionalità, individuarne i limiti e comprendere come questi possono essere affrontati; inoltre la teorizzazione di altri scenari di impiego consentirà di individuare ulteriori possibilità di sviluppo futuro dell applicazione. Gli scenari di seguito presentati consentono di meglio comprendere le potenzialità di tali sistemi: difatti le tecnologie IVR evolute, che fanno ampio uso di interfacce vocali sempre più funzionali ed intuitive, unite alle potenzialità offerte da altri servizi di comunicazione, quali SMS e posta elettronica, consentono di mettere a disposizione dell utente servizi a valore aggiunto che vanno ben oltre le possibilità offerte oggi dai servizi Web. Vedremo ad esempio alcuni scenari in cui lo stesso sistema, se necessario, potrà interpellare autonomamente gli utenti in maniera asincrona

112 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI 5.1 Ambiente di sviluppo e test Descriviamo di seguito la configurazione (hardware e software) utilizzata sia nelle fasi di sviluppo, quanto nelle fasi di test. In Figura 5-1 è riportato lo schema completo della configurazione di test; in particolare la regione chiara indica l hardware che è stato virtualizzato. Softphone MySQL Access Point (802.11b/g) Hardware virtuale IP-PBX Gateway GSM (via USB) Client VoIP SIP Figura 5-1 Sistema di base: notebook Sony Vaio VGN-NS11Z. Le specifiche principali sono: processore Intel Core 2 Duo T5800 ( ), memoria RAM operativo Microsoft Windows Vista Home Premium (, sistema bit, Service Pack ). Macchina virtuale con sistema operativo Microsoft Windows 7 Ultimate. Il sistema è stato utilizzato sia per il test del softphone con funzionalità IVR, quanto per ospitare il database MySQL. Alla macchina è stato riservato un quantitativo di memoria RAM di. Dal punto di vista software, il sistema di riconoscimento vocale (o meglio il suo modello acustico) è stato addestrato al funzionamento nella banda telefonica (frequenza di campionamento ). Il motore utilizzato (integrato nella Microsoft Speech API 5.4), impiegato nella funzione di riconoscimento vocale, non richiede una specifica taratura per l adattamento al modello vocale dell utente: questa caratteristica è importante per

113 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI un sistema IVR che deve servire diversi utenti; sarebbe infatti improponibile dover sottoporre tutti gli utenti del servizio ad una fase di training. Asterisk PBX: pacchetto di installazione AsteriskNOW, versione ( bit) 18. Il server è stato installato su macchina virtuale dedicata, alla quale sono stati riservati di memoria RAM. La configurazione, per il setup dei terminali VoIP (IAX e SIP) ha interessato i seguenti file: per la configurazione del client VoIP integrato nel software (il file consente in generale il setup dei terminali che utilizzano il protocollo IAX2). In questo caso abbiamo impostato come ID il valore (costituisce il numero di telefono). Abbiamo anche specificato il codec audio da utilizzare (gsm in questo caso, ovvero codifica RPE-LTP full rate a ); si tenga presente che nelle fasi di test è stato verificato il corretto funzionamento con tutti i codec audio elencati nella tabella 2 di pag. 24. Il collegamento è stato reso sicuro tramite la cifratura dei dati: difatti Asterisk (a partire dalla versione 1.2.4, con miglioramenti a partire dalle versioni x), prevede la possibilità di abilitare la cifratura dei dati. Dopo l avvenuta autenticazione (che in questo caso dovrà essere basata su MD5), i dati di controllo e i pacchetti voce possono essere criptati tramite l algoritmo AES128. Con la seguente configurazione è prevista autenticazione sicura mediante MD5 e cifratura dei dati mediante algoritmo AES128. La password utilizzata in fase di autenticazione è specificata tramite il parametro secret. Infine il supporto al trunking delle telefonate può essere attivato aggiungendo il parametro trunk=yes.... [2000] type=friend callerid=2000 auth=md5 secret=************ 18 Download disponibile all indirizzo

114 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI encryption=aes128 allow=gsm requirecalltoken=no host=dynamic context=test... per la configurazione dei terminali che utilizzano il protocollo SIP. In questo caso l identificativo che abbiamo dato è e come codec audio impostiamo ancora gsm.... [2002] type=friend callerid=2002 allow=gsm host=dynamic context=test... per la gestione del dialplan (ovvero del piano di chiamata ). Per una chiamata entrante verso un certo ID, vengono impostate le regole da seguire: la chiamata viene inoltrata al terminale di destinazione, di cui viene specificato anche il protocollo utilizzato; come seconda priorità, la chiamata viene chiusa.... [test] exten => 2000,1,Dial(IAX2/2000) exten => 2000,2,Hangup exten => 2002,1,Dial(SIP/2002) exten => 2002,2,Hangup

115 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI MySQL: pacchetto di installazione EasyPHP, versione 19. Include MySQL versione, oltre a PHP, Apache e PhpMyAdmin ; quest ultimo è stato utilizzato per la creazione e gestione del database di test. La struttura delle tabelle riguardanti l esempio successivamente proposto è riportata a pag L installazione è stata effettuata nelle stessa macchina virtuale in cui è stato testato il middleware. Telefono cellulare Nokia E51 20, utilizzato sia nel ruolo di gateway GSM, tramite collegamento USB, sia come terminale VoIP di test, usufruendo del client SIP integrato, con collegamento alla rete LAN in wireless tramite access point (standard IEEE ). 5.2 Validazione del software: automazione dei servizi di una segreteria universitaria Per testare le funzionalità del sistema, sono stati realizzati dei moduli finalizzati alla gestione automatica di alcuni servizi che solitamente vengono forniti da una segreteria universitaria. Di norma, servizi simili sono accessibili via Web: lo scenario che presentiamo vuole essere anche a testimonianza di come, con una non eccessiva difficoltà a livello di implementazione, servizi già esistenti possono essere resi accessibili tramite la comune rete telefonica PSTN, oppure tramite SMS, e gestiti in via del tutto automatica, mediante software come quello presentato in questo lavoro di tesi. Ovviamente le opportunità date dall impiego di tali tecnologie non solo migliorano l accessibilità a servizi già esistenti, ma possono costituire uno spunto per nuove funzionalità e servizi, oltre a conferire un notevole valore aggiunto a quanto già esiste. Difatti il Knowledge Management System implementato consente di armonizzare i diversi canali di comunicazione, moltiplicando le vie d accesso e velocizzando la diffusione delle informazioni tra gli utenti coinvolti. 19 Download all indirizzo 20 Per le specifiche tecniche, si consulti:

116 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI Servizi implementati Entriamo adesso nei dettagli di questo scenario. I servizi sono accessibili da parte degli utenti sia attraverso una normale telefonata, che tramite l invio di SMS: dal punto di vista dell implementazione, richiede qualche sforzo in più la costruzione dell interfaccia vocale; vi saranno problematiche differenti nel caso in cui vengano impiegati gli SMS. In entrambi i casi, in corrispondenza di azioni non valide, sarà possibile guidare l utente verso un corretto utilizzo del servizio. Ovviamente ciò rende necessaria prima di tutto la configurazione di due moduli: uno relativo alla gestione delle chiamate vocali, e un altro che si occuperà di gestire ed interpretare gli SMS in arrivo. Concentriamoci sulla gestione delle telefonate. All arrivo di una chiamata, scatta un controllo di sicurezza, destinato a prevenire un eventuale uso illecito dei servizi: viene consultato il database per verificare quante chiamate ha effettuato l utente nell ultima ora. Se queste superano una certa soglia, il sistema reagisce, vagliando l ipotesi che possa essere in atto un utilizzo illecito del servizio da parte di un robot telefonico: in tal caso per accedere ai servizi verrà richiesta l immissione di alcune cifre tramite DTMF. I valori di soglia sono differenti per le diverse utenze (ad esempio 20 accessi l ora per i docenti, 10 per gli studenti e 5 per utenti anonimi). Contemporaneamente il sistema si è occupato dell autenticazione degli utenti; consultando il database, in base al numero chiamante, si può identificare in maniera univoca l utente: è chiaro infatti che studenti e docenti devono essere indirizzati a diverse tipologie di servizi; inoltre ciascuno di essi avrà diritto di accesso verso funzionalità ben precise (ad esempio uno studente potrà avere accesso soltanto agli esami previsti dal suo corso di Laurea). Vogliamo però concedere la possibilità di usufruire dei servizi anche nel caso in cui la chiamata provenga da un numero non presente nel database (perché ad esempio l utente sta effettuando l accesso da un terminale differente rispetto a quello registrato): il sistema, non riconoscendo l utente, chiederà l immissione di una password numerica tramite toni DTMF. È ovvio che nel caso in cui il servizio da fornire richieda un maggiore livello di protezione, la password potrà comunque essere richiesta, indipendentemente dal riconoscimento dell utente dal numero di telefono chiamante (si pensi ad esempio a

117 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI servizi telefonici nell ambito di gestione di attività finanziarie), ma in questo scenario possiamo accontentarci di un identificazione tramite numero di telefono. Identificato l utente nel suo ruolo (studente o docente), il sistema lo indirizzerà di conseguenza verso i servizi cui egli può accedere. A seconda dei servizi, il sistema potrà identificare l operazione richiesta dall utente, partendo da una qualsiasi frase pronunciata, riscontrando in essa una determinata parola chiave («consulta», «prenota», ecc.) oppure una ben determinata frase (ad esempio il nome di una materia, o di un docente). Iniziamo dai servizi offerti allo studente: a questi vengono messi a disposizione i seguenti servizi. Accedere al modulo di gestione degli esami: la parola chiave che ne attiva l accesso è «esame», oppure «esami». Effettuato l accesso, il sistema chiederà cosa si desidera fare. Anche qui ci sono più possibilità: o Consultazione degli esami cui è prenotato: le parole chiave possono essere: «consulta» o «lista esami», ecc. Il sistema esporrà allo studente quali sono gli esami cui è prenotato con le rispettive date. o Prenotazione di un esame: le parole chiave di accesso possono essere «prenota», «prenotazione», «sostenere», ecc. A questo punto il sistema chiederà di pronunciare il nome della materia per il cui esame lo studente vuole prenotarsi (la scelta ovviamente potrà essere fatta soltanto tra le materie alle quali lo studente ha accesso, in base al suo corso di laurea), segnala a voce quali sono le date disponibili e di farne la selezione tramite DTMF. Ovviamente potrebbero essere gestiti in automatico tutti i vincoli desiderati (ad esempio, si potrebbe considerare un numero massimo di studenti per una certa data, e quindi escludere a priori la possibilità di effettuare una prenotazione per quel giorno, oppure impedire allo studente di prenotarsi più volte per lo stesso esame, anche se in date differenti). o Annullamento della prenotazione di un esame: le parole chiave che portano all accesso del modulo possono essere «annulla», «cancella», ecc. In tal caso il sistema fornisce localmente la lista delle prenotazioni, e chiede di selezionare tramite DTMF l esame da annullare. Per operazioni

118 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI rischiose è infatti comunque da preferire l utilizzo di toni DTMF, che garantisce di evitare ogni possibilità di errore (si tenga presente che il motore di riconoscimento vocale non è infallibile). Accedere al modulo di gestione dei ricevimenti coi docenti: le parole chiave che ne forniscono l accesso possono essere «ricevimento», oppure «ricevimenti». Effettuato l accesso, il sistema chiederà cosa si desidera fare. Ancora una volta si hanno molteplici possibilità: o Consultazione dei ricevimenti cui lo studente è prenotato: le parole chiave possono essere: «consulta» o «lista ricevimenti», ecc. Il sistema esporrà allo studente quali sono i ricevimenti cui è prenotato e per ognuno di questi la rispettiva data. o Prenotazione di un ricevimento: le parole chiave di accesso possono essere «prenota», «prenotazione» ecc. A questo punto il sistema chiederà di pronunciare il nome del docente, e ancora il cognome del docente. Successivamente chiederà di selezionare un giorno della settimana tra quelli che il docente mette a disposizione. Effettuata la prenotazione, che viene registrata nel database, il docente viene immediatamente informato tramite SMS (ma potrebbe anche essere una chiamata vocale). o Annullamento di un ricevimento: l accesso è fornito da parole chiave quali «annulla», «cancella», ecc. In tal caso il sistema chiede di indicare il nome e il cognome del docente col quale disdire il ricevimento, successivamente richiede conferma per annullare la prenotazione nella data indicata tramite DTMF. Anche in questo caso il docente viene informato tramite SMS. Accedere alle funzionalità di rubrica o notifica disponibilità: le parole chiave che portano all accesso del modulo possono essere «rubrica», «docente», ecc. Le funzionalità cui si ha accesso sono: o Consultazione della rubrica docenti: ancora una volta la parola chiave potrebbe essere «rubrica». Il sistema chiede di pronunciare il nome e il cognome del docente. Selezionato il docente, il sistema fornisce il

119 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI o o numero di telefono e viene anche data la possibilità di trasferimento diretto di chiamata, grazie ad una semplice conferma tramite DTMF. Invio messaggio vocale: l accesso è dato dalla frase «rubrica». Il sistema chiede di lasciare un messaggio vocale, che verrà recapitato via al docente selezionato per via vocale. Notifica di presenza: supponendo che lo studente non sia riuscito a contattare il docente, il sistema si occuperà di notificargli automaticamente la presenza del docente tramite SMS. Anche in questo caso verranno richiesti il nome e il cognome del docente. Veniamo adesso ai servizi messi a disposizione dei docenti: i servizi cui questi può accedere hanno modalità di accesso simili a quelle degli studenti, ma le funzionalità sono ovviamente differenti. Accedere al modulo di gestione degli esami: la parola chiave che ne attiva l accesso è «esame», oppure «esami». Effettuato l accesso, il sistema chiederà cosa si desidera fare. Le possibilità sono: o Consultazione degli appelli d esame di sua competenza già fissati: le parole chiave possono essere: «consulta» o «lista esami», e così via. Il sistema esporrà al docente quali sono gli esami che egli ha fissato, indicandone per ognuno la data e il numero di studenti prenotati. o Creazione nuovo appello d esame: le parole chiave di accesso possono essere ad esempio «nuovo», «nuovo esame». A questo punto il sistema chiederà di pronunciare il nome della materia per la quale deve essere fissata la data d esame. Successivamente chiede di immettere la data tramite DTMF. Potrebbero essere introdotti dei vincoli da parte del sistema (la data immessa non deve corrispondere ad un giorno festivo ecc). Gli studenti del corso di laurea cui compete la materia, verranno immediatamente avvisati della disponibilità del nuovo appello via SMS. o Modifica della data di un esame: le parole chiave che portano all accesso del modulo possono essere «modifica», oppure «data», ecc. In tal caso il sistema fornisce a voce la lista degli esami fissati, e chiede di selezionare

120 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI tramite DTMF l esame per cui si desidera modificare la data. Effettuata la selezione, chiede di immettere la nuova data. Gli studenti interessati, vengono informati della modifica tramite SMS. Accedere al modulo di gestione dei ricevimenti studenti: le parole chiave che ne forniscono l accesso possono essere «ricevimento», oppure «ricevimenti». Effettuato l accesso, il sistema chiederà cosa si desidera fare. I servizi forniti sono: o Consultazione dei ricevimenti per i quali vi sono studenti prenotati: le parole chiave possono essere: «consulta» o «lista ricevimenti», e altre ancora. Il sistema esporrà al docente quali sono le prenotazioni. o Annullamento di un ricevimento: l accesso è fornito da parole chiave quali «annulla», «cancella», ecc. In tal caso il sistema fornisce tramite voce sintetizzata la lista dei ricevimenti, e chiede di selezionare tramite DTMF quello da cancellare. Automaticamente lo studente viene informato tramite SMS. Accedere alle funzionalità di rubrica o notifica disponibilità: in questo caso le modalità di accesso e i servizi forniti sono gli stessi messi a disposizione degli studenti. Vengono però rese disponibili altre parole chiave di accesso, ad esempio «collega» invece di «docente». Proponiamo un dialogo di esempio: uno studente di nome Mario Rossi telefona per prenotarsi per l esame di Storia Contemporanea previsto per giorno 05/04/2011. IVR: «Salve Mario Rossi, cosa desidera fare? Può gestire gli esami, i ricevimenti, oppure accedere alla rubrica docenti.» Studente: «Voglio gestire gli esami.» IVR: «Gestione degli esami. Cosa desidera fare? Consultare gli esami cui è prenotato, prenotarsi ad un nuovo esame, oppure cancellare una prenotazione?» Studente: «Prenotare un esame.»

121 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI IVR: «Specificare il nome della materia per la quale prenotarsi tra Storia Moderna, Storia Contemporanea,» Studente: «Storia Contemporanea.» IVR: «Prenotazione per l esame di Storia Contemporanea. Per prenotarsi per l esame di giorno 05/04/2011 digitare 0, per prenotarsi per l esame di giorno 12/04/2011 digitare 1.» Studente: DTMF 0 IVR: «Per confermare la prenotazione per l esame di Storia Contemporanea di giorno 05/04/2011, digitare 1.» Studente: DTMF 1 IVR: «Prenotazione per l esame di Storia Contemporanea di giorno 05/04/2011 avvenuta con successo.» A questo punto l applicazione ritorna al menu principale, e lo studente può compiere altre operazioni. Concludiamo con una mappa concettuale che sintetizza i servizi forniti a studenti e docenti, che consente di evidenziare la natura ad albero del menu vocale di navigazione e lo scambio di informazioni con gli altri utenti cui ciascuna operazione può condurre (Figura 5-2). L utilizzo delle mappe concettuali tra l altro può essere un ottimo ausilio nella realizzazione di Voice User Interface particolarmente articolate e complesse, consentendo al progettista di individuare quali possono essere le parole chiave o le possibili frasi che devono ricondurre alle diverse operazioni, oltre a definire in maniera grafica le diverse sezioni dell albero che compongono il menu. Questo lavoro preliminare può agevolare la stesura del codice e l organizzazione dei diversi moduli che andranno a definire i servizi forniti. Nondimeno consente di individuare l organizzazione migliore dal punto di vista dell utente finale che dovrà beneficiare dei servizi

122 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI annulla Consultazione Prenotazione Ricevimenti Prenotazione Consultazione Esami Docenti Messaggio vocale Cancellazione Studente Rubrica Notifica disponibilità autenticazione Consultazione Nuovo Docente Modifica Esami Colleghi Consultazione annulla Ricevimenti Consultazione Figura 5-2 Mappa concettuale che sintetizza le funzionalità messe a disposizione a studenti e docenti nell esempio implementato. Sono indicate le parole chiave che portano a ciascuna operazione: si tenga presente che nell implementazione ciascuna parola chiave prevede più sinonimi che portano alla stessa operazione. A fianco di ciascuna operazione, è indicato tramite icona se l operazione comporta una notifica automatica per un docente o uno studente. Analoghi servizi vengono forniti tramite l invio di SMS. Le strategie da affrontare sono simili a quelle esaminate nella gestione dell interfaccia vocale, con alcune differenze: in un singolo messaggio di testo devono essere contenute tutte le informazioni che devono ricondurre in maniera univoca all operazione da effettuare. Svanisce dunque la struttura gerarchica del menu utilizzata per la gestione delle telefonate. In ogni caso dovrà essere fornito un messaggio di risposta all utente, per notificargli l esito dell operazione, positivo o negativo che esso sia. In particolare, in caso di errore (dati insufficienti o inconsistenti con le informazioni contenute nel

123 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI database), questo va segnalato all utente, in modo tale che questi possa essere guidato verso la sua risoluzione. Ad esempio, alla ricezione di un messaggio da parte di uno studente con scritto «prenotazione dell esame di storia contemporanea», il sistema, non potendo portare a termine l operazione di prenotazione, poiché nel messaggio non è specificata una data d esame, segnalerà con un messaggio di risposta l esito negativo dell operazione, riportando però quali sono le dati utili per quel determinato esame. E ancora, se ad esempio uno studente invia un messaggio con scritto «prenotazione dell esame di storia contemporanea di giorno 05/04/2011» e non sono previsti esami di quella materia nel giorno specificato, il sistema fornisce l elenco delle date disponibili per sostenere quell esame. Nella fornitura dei servizi via SMS, non è stata prevista la possibilità di accessi anonimi tramite password; inoltre non sono stati implementati meccanismi di limitazione degli accessi. Gli script realizzati per l implementazione dell esempio proposto sono riportati in appendice alla tesi Considerazioni sui test L implementazione completa dello scenario ha richiesto una quantità di codice non eccessiva: si tenga presente che la stessa realizzazione, che comporta la necessità di prelevare dinamicamente dati da un database, in un architettura basata su VoiceXML e CCXML (quale quella presentata a pag. 75), avrebbe richiesto sia l intervento sul server PBX, che lo sviluppo di più applicazioni Web. Nondimeno l architettura proposta ben adempie all obiettivo di realizzazione di una piattaforma destinata all unificazione delle comunicazioni: la possibilità di far cooperare canali di comunicazione eterogenei quali chiamate vocali, SMS e posta elettronica, ha consentito di implementare con poco sforzo servizi a valore aggiunto. In uno scenario di media complessità, dunque, una middleware che consente un accesso diretto a funzioni di alto livello, può essere preferibile rispetto ad architetture più complesse. Ovviamente queste ultime diventano una scelta obbligata nell implementazione di servizi più complessi: volendo ad esempio fornire servizi più articolati e in contesti multilingua, la realizzazione tramite il linguaggio di

124 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI scripting presentato risulterebbe allo stato attuale impossibile. Questi limiti tuttavia rientrano in quelle che sono le specifiche di progetto. Dal punto di vista del funzionamento lato utente, poco vi è da segnalare sulla gestione via SMS: poche parole chiave possono essere sufficienti per ricondurre in maniera univoca all operazione desiderata; in ogni caso si tenga presente che una migliore fruibilità dei servizi può essere garantita intervenendo soltanto sul database, senza dunque necessità di modifiche sui moduli esistenti. Qualche osservazione in più necessita invece la gestione delle interfacce vocali: il software può faticare nel riconoscimento di parole chiave particolarmente brevi: in questi casi può essere necessario ripetere la frase più di una volta. È invece molto raro che il motore di riconoscimento vocale sbagli nell interpretazione. Valgono poi le stesse considerazioni fatte sulla gestione tramite testo: arricchendo la corrispondenza operazione-sinonimi (dunque agendo esclusivamente sul database), è possibile migliorare l accessibilità dei servizi nei confronti dell utente: in un contesto di utilizzo reale, potrebbero essere gli stessi feedback degli utenti (derivanti dalla registrazione delle frasi che il motore di riconoscimento non è riuscito ad interpretare) che potrebbero essere utilizzati per arricchire il dizionario di termini chiave. È importante precisare che il software che è stato sviluppato, se pur funzionale, rimane sotto diversi punti di vista allo stato di prototipo: le problematiche relative al riconoscimento vocale sono da imputare al motore di riconoscimento utilizzato nei test. Certamente l applicazione andrebbe testata con altri motori di riconoscimento per trovare la soluzione ottimale. In ogni caso, se pure, come dimostra lo scenario applicativo di gestione di un sistema di segreteria universitaria, molte funzionalità complesse sono già implementabili, l integrazione del linguaggio di scripting con altri linguaggi più potenti e flessibili (PHP potrebbe essere un esempio), certamente conferirebbe all applicazione un più semplice utilizzo

125 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI 5.3 Ulteriori scenari e prospettive di utilizzo Lo scenario descritto e implementato nel precedente paragrafo voleva essere soltanto un esempio di quali sono i benefici che le tecnologie di comunicazione unificata e di integrazione tra telefonia e servizi possono apportare agli utenti oltre che agli stessi fornitori di servizi. Comprese quelle che sono le potenzialità dei sistemi IVR e IVVR, possiamo andare ad esaminare scenari più complessi, anche al fine di trarre spunti per ulteriori sviluppi futuri dell applicazione Automazione burocratica Sicuramente un campo in cui potrebbero rivelarsi utili tali tecnologie è quello dell automazione burocratica; difatti il tema dell automazione nella pubblica amministrazione è oggetto di una sempre più larga attenzione, sia all'interno delle strutture dello Stato, sia al di fuori di queste, nel mondo dei fornitori, della ricerca, degli studiosi di economia e organizzazione aziendale. La disponibilità di sistemi che in maniera totalmente automatizzata e asincrona possono interloquire con gli utenti dà spazio a molteplici idee. Prima di tutto la possibilità da parte dell utente di contattare un sistema capace di raccogliere e presentare dati in maniera del tutto automatizzata, migliora sensibilmente l accessibilità ai servizi a lui destinati. Sistemi IVR possono essere configurati per consentire all utente di compilare e depositare documenti, seguire lo stato di pratiche burocratiche: l utente viene univocamente identificato tramite il suo numero di telefono che, come abbiamo detto, ne costituisce il documento di identità. È necessario ribadire che per applicazioni particolarmente sensibili vanno intraprese misure di sicurezza adeguate. Il sistema può verificare in tempo reale la consistenza dei dati forniti dall utente, potendo intervenire tempestivamente, richiedendo ad esempio la verifica dei dati forniti. Il tutto coi benefici (in termini di velocità, disponibilità 24 ore su 24) che soltanto un sistema di elaborazione può fornire. Altre possibili funzionalità riguardano la gestione documentale. Dal punto di vista della consultazione di documenti, la navigazione entro archivi documentali potrebbe essere resa agevole mediante la trasposizione delle basi di dati in termini di

126 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI ontologie, consentendo dunque un agevole reperibilità delle informazioni su base semantica. IVR Consultazione Compilazione documenti Verificare lo stato di pratiche Richiesta dati utente Invio comunicazioni urgenti Richiesta provvedimenti/decisioni Figura 5-3 In uno scenario di automazione burocratica, non soltanto l utente potrebbe contattare il sistema, ma l IVR stesso può interrogare l utente, per richiedere dati e inviare comunicazioni. E ancora, entrando in uno scenario più complesso, il sistema stesso potrà, in maniera autonoma e asincrona, contattare l utente, per richiedere ad esempio la comunicazione di dati mancanti, notificare comunicazioni urgenti o richiedere che vengano prese delle decisioni. È evidente come i vantaggi siano non soltanto a beneficio della società o ente che fornisce tali servizi (si pensi ad esempio alla dematerializzazione dei documenti cartacei e alla riduzione dei costi delle strutture destinate alla fornitura dei servizi), ma anche dell utente finale: questi infatti può accedere tempestivamente alle informazioni desiderate, utilizzando di volta in volta il canale di comunicazione più opportuno (dunque non soltanto chiamata vocale, ma anche SMS, posta elettronica, ecc.)

127 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI Sistemi di Interactive Voice & Video Response e applicazioni nel campo della domotica Un ottimo spunto nell ambito di possibili sviluppi futuri dell applicazione, potrebbe consistere nell integrazione del supporto ad un interfaccia video bidirezionale (offerta lato utente dalla ormai comune telefonia 3G o da applicazioni VoIP). Tale supporto riguarda non solo la capacità di gestire periferiche video, ma anche la creazione di menu contestuali, sovrapposti al video, in modo tale che non sia richiesto all utente l utilizzo di alcun software aggiuntivo per usufruire di servizi IVVR. Seguendo l ottica del progetto attuale, tali menu potrebbero essere progettati 1 (opzione n 1) 2 (opzione n 2) 4 OK 5 6 Figura 5-4 Esempio di menù contestuale fornito da un sistema di IVVR: la presenza di un menù di navigazione, usufruibile tramite i comuni DTMF moltiplicherebbe le capacità di interazione dell utente. tramite funzioni standard che andrebbero integrate nel linguaggio di scripting. Oltre a dare spazio a nuovi servizi e funzionalità (la trasmissione del video utente può essere ad esempio utilizzata come misura di autenticazione, come già visto a pag. 81), la possibilità di usufruire di un menu di navigazione contestuale, tramite DTMF, amplificherebbe le capacità espressive e di interazione tra utente e sistema, come illustrato in Figura 5-4. Per comprendere l utilità dei servizi IVVR, presentiamo brevemente uno scenario di utilizzo in ambito di domotica, in un ottica in cui il telefono diventa uno strumento di controllo dell abitazione. In questo contesto diventa particolarmente utile un sistema di Interactive Voice & Video Response, che fornisce all utente non soltanto un interfaccia vocale per il controllo remoto degli apparati dedicati al confort, alla sicurezza e alle utenze elettriche, ma potendo egli usufruire anche del video, disporrà di un sistema di sorveglianza e monitoraggio remoto, come schematizzato in Figura 5-5. Tra l altro, pensando ad applicazioni

128 CAPITOLO 5 TEST E PRESENTAZIONE DI SCENARI APPLICATIVI nell ambito della domotica, ben si inquadra un software come quello sviluppato, ovvero modulare e totalmente decentralizzato rispetto ad un server PBX: in questo caso l accesso potrebbe essere fornito, tramite Internet, da un provider VoIP, e a ciascun apparato può essere dedicato un modulo di gestione da configurarsi con l IVVR, garantendo così una semplice scalabilità. Tramite l utilizzo di comandi vocali e DTMF, l utente ha la possibilità di interagire da remoto con le utenze elettriche e i sistemi dedicati al comfort (quindi controllare a distanza elettrodomestici, l impianto di condizionamento e riscaldamento ecc). L integrazione con un impianto di videosorveglianza garantisce la possibilità di avere un riscontro visivo con l abitazione: basterà utilizzare l interfaccia vocale per richiedere la visione dell ambiente desiderato. Il sistema IVVR stesso potrà contattare l utente, per notificare allarmi di vario tipo (possiamo andare dai rilevatori antifumo ai sensori volumetrici per il rilevamento di presenza): la disponibilità di un raffronto video fa sì che l utente possa avere un immediato riscontro sull allarme segnalato ed agire di conseguenza. Comfort Sicurezza SENSORE VOLUMETRICO RILEVATORE DI FUMO Utenze elettriche CONTATTI CONTROLLO ACCESSI PUNTI LUCE ELETTRODOMESTICI AUTOMATISMI Videosorveglianza TELECAMERE Sistema IVVR su VoIP VIDEOSERVER VIDEOCITOFONO Figura 5-5 Sistema di Interactive Voice & Video Response applicato in ambito di domotica: qui il telefono diventa un completo sistema di controllo della casa, mettendo a disposizione dell utente interfacce vocali e video. Interfaccia vocale e feedback video

Introduzione al VoIP

Introduzione al VoIP Introduzione al VoIP Cos è il VoIP (Voice over IP)? tecnica che consente la comunicazione telefonica attraverso Internet Reso possibile da prestazioni di accesso ad Internet in rapida crescita negli ultimi

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Lo scenario: la definizione di Internet

Lo scenario: la definizione di Internet 1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

Informatica per la comunicazione" - lezione 8 -

Informatica per la comunicazione - lezione 8 - Informatica per la comunicazione - lezione 8 - I multipli 1 KB (kilo) = 1000 B 1 MB (mega) = 1 mln B 1 GB (giga) = 1 mld B 1 TB (tera) = 1000 mld B Codifica binaria dei numeri Numerazione con base 10:

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Reti di Calcolatori. Il software

Reti di Calcolatori. Il software Reti di Calcolatori Il software Lo Stack Protocollare Application: supporta le applicazioni che usano la rete; Transport: trasferimento dati tra host; Network: instradamento (routing) di datagram dalla

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

Standard di comunicazione

Standard di comunicazione Standard di comunicazione Organizzato a livelli per ridurne la complessità e aumentarne la flessibilità il numero dei livelli e le loro funzionalità dipendono dal tipo di rete ogni livello formalizza un

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

Il VoIP nel mondo di Internet e l evoluzione del carrier telefonico. Relatore: Ing. Carrera Marco - Audit Technical Manager Switchward

Il VoIP nel mondo di Internet e l evoluzione del carrier telefonico. Relatore: Ing. Carrera Marco - Audit Technical Manager Switchward Il VoIP nel mondo di Internet e l evoluzione del carrier telefonico. Relatore: Ing. Carrera Marco - Audit Technical Manager Switchward Sommario 1) L evoluzione della comunicazione: dalla rete PSTN alla

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 200, ore 1.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

Receptionist 2.0. La soluzione semplice ed affidabile per il contact center

Receptionist 2.0. La soluzione semplice ed affidabile per il contact center Receptionist 2.0 La soluzione semplice ed affidabile per il contact center Il nostro Open Source ONC crede nell opportunità dell open source e ha basato due delle sue soluzioni full IP sulla piattaforma

Dettagli

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella Corso di Sistemi di Elaborazione delle informazioni Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella Una definizione di Rete Una moderna rete di calcolatori può essere definita come:

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 5

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 5 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II Lezione 5 Giovedì 19-03-2015 1 Intensità del traffico e perdita dei pacchetti La componente

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

Transmission Control Protocol

Transmission Control Protocol Transmission Control Protocol Franco Callegati Franco Callegati IC3N 2000 N. 1 Transmission Control Protocol - RFC 793 Protocollo di tipo connection-oriented Ha lo scopo di realizzare una comunicazione

Dettagli

Versione 1. (marzo 2010)

Versione 1. (marzo 2010) ST 763-27 - Soluzione tecnica di interconnessione per i servizi SMS e MMS a sovrapprezzo Allegato 1 - Linee guida per l interfaccia di accesso tra operatore telefonico ed il CSP Versione 1 (marzo 2010)

Dettagli

Allegato 3 Sistema per l interscambio dei dati (SID)

Allegato 3 Sistema per l interscambio dei dati (SID) Sistema per l interscambio dei dati (SID) Specifiche dell infrastruttura per la trasmissione delle Comunicazioni previste dall art. 11 comma 2 del decreto legge 6 dicembre 2011 n.201 Sommario Introduzione...

Dettagli

l'introduzione a Voice over IP

l'introduzione a Voice over IP Voice over IP (VoIP) l'introduzione a Voice over IP Voice Over IP (VoIP), noto anche come telefonia tramite Internet, è una tecnologia che consente di effettuare chiamate telefoniche tramite una rete di

Dettagli

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) PARTE 1 richiami SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) Parte 1 Modulo 1: Stack TCP/IP TCP/IP Protocol Stack (standard de facto) Basato su 5 livelli invece che sui 7 dello stack ISO/OSI Application

Dettagli

QoS e Traffic Shaping. QoS e Traffic Shaping

QoS e Traffic Shaping. QoS e Traffic Shaping QoS e Traffic Shaping 1 Introduzione In questa mini-guida illustreremo come configurare il FRITZ!Box per sfruttare al massimo la banda di Internet, privilegiando tutte quelle applicazioni (o quei dispositivi)

Dettagli

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8 Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8 Livelli di rete e architettura Client-Server Lez 12 architettura client-server 1 Scorsa lezione: comunicazione Gli utenti chiedono comunicazione

Dettagli

Centralino telefonico OfficeServ 7100

Centralino telefonico OfficeServ 7100 Centralino telefonico OfficeServ 7100 Samsung OfficeServ 7100 estende le gamma di soluzioni All-in-One anche alle piccole e medie imprese. Modularità Il design del sistema OfficeServ 7100 è basato su unico

Dettagli

SIMULAZIONE PROVA SCRITTA ESAME DI STATO. PER LA DISCIPLINA di SISTEMI

SIMULAZIONE PROVA SCRITTA ESAME DI STATO. PER LA DISCIPLINA di SISTEMI SIMULAZIONE PROVA SCRITTA ESAME DI STATO PER LA DISCIPLINA di SISTEMI L assessorato al turismo di una provincia di medie dimensioni vuole informatizzare la gestione delle prenotazioni degli alberghi associati.

Dettagli

Protocolli di Comunicazione

Protocolli di Comunicazione Protocolli di Comunicazione La rete Internet si è sviluppata al di fuori dal modello ISO-OSI e presenta una struttura solo parzialmente aderente al modello OSI. L'architettura di rete Internet Protocol

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Software Servizi Web UOGA

Software Servizi Web UOGA Manuale Operativo Utente Software Servizi Web UOGA S.p.A. Informatica e Servizi Interbancari Sammarinesi Strada Caiese, 3 47891 Dogana Tel. 0549 979611 Fax 0549 979699 e-mail: info@isis.sm Identificatore

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Manuale VoiSmartPhone

Manuale VoiSmartPhone Manuale VoiSmartPhone Prerequisiti... 2 Principali caratteristiche... 2 Avvio... 4 Funzionalità base... 5 Effettuare una chiamata... 5 Terminare una chiamata... 6 Rispondere ad una chiamata... 6 Messa

Dettagli

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall Firewall e NAT A.A. 2005/2006 Walter Cerroni Protezione di host: personal firewall Un firewall è un filtro software che serve a proteggersi da accessi indesiderati provenienti dall esterno della rete Può

Dettagli

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP

Dettagli

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1 Introduzione Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio Livello applicativo Principi delle applicazioni di rete 2-1 Pila di protocolli Internet Software applicazione: di

Dettagli

Sicurezza a livello IP: IPsec e le reti private virtuali

Sicurezza a livello IP: IPsec e le reti private virtuali Sicurezza a livello IP: IPsec e le reti private virtuali Davide Cerri Sommario L esigenza di proteggere l informazione che viene trasmessa in rete porta all utilizzo di diversi protocolli crittografici.

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

VoipExperts.it SkyStone - Introduzione

VoipExperts.it SkyStone - Introduzione VoipExperts.it SkyStone - Introduzione Autore : Giulio Martino IT Security, Network and Voice Manager Technical Writer e Supporter di ISAServer.it www.isaserver.it giulio.martino@isaserver.it Creatore

Dettagli

Manuale Utente MyFastPage

Manuale Utente MyFastPage Manuale MyFastPage Utente Elenco dei contenuti 1. Cosa è MyVoice Home?... 4 1.1. Introduzione... 5 2. Utilizzo del servizio... 6 2.1. Accesso... 6 2.2. Disconnessione... 7 2.3. Configurazione base Profilo

Dettagli

Reti di Calcolatori. Corso di Informatica. Reti di Calcolatori. Reti di Calcolatori. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Reti di Calcolatori. Corso di Informatica. Reti di Calcolatori. Reti di Calcolatori. Corso di Laurea in Conservazione e Restauro dei Beni Culturali Corso di Laurea in Conservazione e Restauro dei Beni Culturali Corso di Informatica Gianluca Torta Dipartimento di Informatica Tel: 011 670 6782 Mail: torta@di.unito.it Reti di Calcolatori una rete di

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

Dettagli

Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette:

Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette: Reti di Calcolatori una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette: condivisione di risorse (dati aziendali, stampanti, ) maggiore

Dettagli

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione Commutazione 05.2 Trasmissione di dati al di fuori di un area locale avviene tramite la Autunno 2002 Prof. Roberto De Prisco -05: Reti a di circuito Università degli studi di Salerno Laurea e Diploma in

Dettagli

Reti diverse: la soluzione nativa

Reti diverse: la soluzione nativa Reti diverse: la soluzione nativa Quando si deve trasmettere un messaggio attraverso reti diverse, per il mezzo fisico, per il protocollo di accesso o altro, a che livello si colloca la procedura di traduzione

Dettagli

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati.

Capire i benefici di una rete informatica nella propria attività. I componenti di una rete. I dispositivi utilizzati. LA RETE INFORMATICA NELL AZIENDA Capire i benefici di una rete informatica nella propria attività. I componenti di una rete I dispositivi utilizzati I servizi offerti LA RETE INFORMATICA NELL AZIENDA Copyright

Dettagli

Progettare un Firewall

Progettare un Firewall Progettare un Firewall Danilo Demarchi danilo@cuneo.linux.it GLUG Cuneo Corso Sicurezza 2006 Concetti introduttivi Come pensare un Firewall Argomenti trattati I Gli strumenti del Firewall Gli strumenti

Dettagli

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Tecnologie informatiche ACCESSO REMOTO CON WINDOWS Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Un esempio di tale servizio

Dettagli

Utilizzare 4CBOX come centralino significa avere un sistema all inclusive oltre a

Utilizzare 4CBOX come centralino significa avere un sistema all inclusive oltre a Utilizzare 4CBOX come centralino significa avere un sistema all inclusive oltre a IVR risponditore, VoiceMail e gestione delle code operatore. Utilizzare oltre alle tradizionali linee telefoniche, anche

Dettagli

SIEMENS GIGASET S450 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP

SIEMENS GIGASET S450 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP SIEMENS GIGASET S450 IP GUIDA ALLA CONFIGURAZIONE EUTELIAVOIP Gigaset S450 IP Guida alla configurazione EUTELIAVOIP Rev2-0 pag.2 INDICE SCOPO...3 TELEFONARE CON EUTELIAVOIP...3 CONNESSIONE DEL TELEFONO

Dettagli

Tecniche di Comunicazione Multimediale

Tecniche di Comunicazione Multimediale Tecniche di Comunicazione Multimediale Standard di Comunicazione Multimediale Le applicazioni multimediali richiedono l uso congiunto di diversi tipi di media che devono essere integrati per la rappresentazione.

Dettagli

Una Soluzione di NAT Traversal per un sistema di comunicazione VOIP per una PMI

Una Soluzione di NAT Traversal per un sistema di comunicazione VOIP per una PMI tesi di laurea Una Soluzione di NAT Traversal per un sistema di comunicazione VOIP per una PMI 2005-2006 relatore Ch.mo prof. Massimo Ficco correlatore Ch.mo prof. Giuseppe Cinque candidato Vincenzo Golia

Dettagli

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

Dettagli

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Sistemi operativi di rete (locale) In una LAN si vogliono condividere

Dettagli

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta auletta@dia.unisa.it

Dettagli

IL CENTRALINO VoIP. Schema progetto: Work-flow. Hydra Control

IL CENTRALINO VoIP. Schema progetto: Work-flow. Hydra Control IL CENTRALINO VoIP Molto più di un centralino, e soprattutto, un centralino in cui gli interni possono non avere una collocazione esterna all azienda, senza alcuna posizione fisica. Schema progetto: Work-flow

Dettagli

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet L' accesso sicuro da e verso Internet L' accesso ad Internet è ormai una necessità quotidiana per la maggior parte delle imprese. Per garantire la miglior sicurezza mettiamo in opera Firewall sul traffico

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

FRITZ!Box come centralino telefonico

FRITZ!Box come centralino telefonico FRITZ!Box come centralino telefonico 1 Introduzione In questa mini-guida illustreremo una panoramica su le principali funzionalità del centralino telefonico integrato nel FRITZ!Box 1 : Gestione dei propri

Dettagli

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

1) GESTIONE DELLE POSTAZIONI REMOTE

1) GESTIONE DELLE POSTAZIONI REMOTE IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Wildix CTIconnect Mobile: APP per Android. Guida Rapida

Wildix CTIconnect Mobile: APP per Android. Guida Rapida Wildix CTIconnect Mobile: APP per Android Guida Rapida Versione 30.04.2013 L applicazione CTIconnect Mobile Wildix vi permette di effettuare e ricevere le chiamate sul telefono con sistema operativo Android

Dettagli

Sperimentazione di tecniche VoIP di videoconferenza multiutente su piattaforme open-source

Sperimentazione di tecniche VoIP di videoconferenza multiutente su piattaforme open-source Università degli Studi di Firenze Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni Sperimentazione di tecniche VoIP di videoconferenza multiutente su piattaforme open-source

Dettagli

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Ata_NiAg02. Modulo Gestione Agenti

Ata_NiAg02. Modulo Gestione Agenti Ata_NiAg02 Modulo Gestione Agenti Il software NiAg02 consente alle aziende che utilizzano il software gestionale ATA di gestire in maniera totalmente automatizzata l acquisizione ordini e/o clienti dalla

Dettagli

Protocollo Informatico (D.p.r. 445/2000)

Protocollo Informatico (D.p.r. 445/2000) Protocollo Informatico (D.p.r. 445/2000) Ricerca veloce degli atti, archiviazione, fascicolazione ed inventario Inserimento semplice e funzionale Collegamento tra protocolli tramite la gestione dei fascicoli

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005 Si svolga il compito su questi fogli. Nel caso di domande a risposta aperta, lo spazio lasciato sul foglio

Dettagli

Firewall e Abilitazioni porte (Port Forwarding)

Firewall e Abilitazioni porte (Port Forwarding) Firewall e Abilitazioni porte (Port Forwarding) 1 Introduzione In questa mini-guida mostreremo come creare le regole sul Firewall integrato del FRITZ!Box per consentire l accesso da Internet a dispositivi

Dettagli

RETI DI COMPUTER Reti Geografiche. (Sez. 9.8)

RETI DI COMPUTER Reti Geografiche. (Sez. 9.8) RETI DI COMPUTER Reti Geografiche (Sez. 9.8) Riepilogo Reti lez precedente reti locali o LAN (Local Area Network): connette fisicamente apparecchiature su brevi distanze Una LAN è solitamente interna a

Dettagli

User. Belluno. Group. Soluzioni Linux per il VoIP. Soluzioni Linux per il Voip. Linux. Davide Dalla Rosa e Massimo De Nadal. Belluno, 27 novembre 2004

User. Belluno. Group. Soluzioni Linux per il VoIP. Soluzioni Linux per il Voip. Linux. Davide Dalla Rosa e Massimo De Nadal. Belluno, 27 novembre 2004 Soluzioni per il Voip ak_71@libero.it - maxx@digital-system.it, 27 novembre 2004, 27 novembre 2004 , 27 novembre 2004 Soluzioni per il Voip VoIP: Voice Over IP Tecnologia che permette la comunicazione

Dettagli

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6 GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1 Il Repeater 2 L Hub 2 Il Bridge 4 Lo Switch 4 Router 6 Gli apparati per l interconnessione di reti locali Distinguiamo i seguenti tipi di apparati:

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I La VPN con il FRITZ!Box Parte I 1 Introduzione In questa mini-guida illustreremo come realizzare un collegamento tramite VPN(Virtual Private Network) tra due FRITZ!Box, in modo da mettere in comunicazioni

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

VOIP CALL RECORDER VCR2

VOIP CALL RECORDER VCR2 VOIP CALL RECORDER VCR2 Networking review Abelya S.r.l. Via A. Stradella 137 00124 Roma 1 VoIP Recording VoIP (Voice over IP) è quella tecnologia in grado di offrire servizi voce su reti IP standard, sia

Dettagli

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Avviso di mancata consegna L avviso, emesso dal sistema, per indicare l anomalia

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Offerta Enterprise. Dedichiamo le nostre tecnologie alle vostre potenzialità. Rete Privata Virtuale a larga banda con tecnologia MPLS.

Offerta Enterprise. Dedichiamo le nostre tecnologie alle vostre potenzialità. Rete Privata Virtuale a larga banda con tecnologia MPLS. Dedichiamo le nostre tecnologie alle vostre potenzialità. Rete Privata Virtuale a larga banda con tecnologia MPLS. Servizi di Telefonia Avanzata e Internet a Larga Banda. Offerta Enterprise Enterprise

Dettagli

Reti commutate. Reti commutate. Reti commutate. Reti commutate. Reti e Web

Reti commutate. Reti commutate. Reti commutate. Reti commutate. Reti e Web Reti e Web Rete commutata: rete di trasmissione condivisa tra diversi elaboratori Composte da: rete di trasmissione: costituita da (Interface Message Processor) instradamento rete di calcolatori: computer

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello rete in Internet Il protocollo

Dettagli

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti

Dettagli

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Dettagli

Protocollo Informatico (D.p.r. 445/2000)

Protocollo Informatico (D.p.r. 445/2000) Protocollo Informatico (D.p.r. 445/2000) Ricerca veloce degli atti, archiviazione, fascicolazione ed inventario semplice e funzionale Collegamento tra protocolli tramite la gestione dei fascicoli e visualizzazione

Dettagli

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica). Topologia delle reti Una RETE DI COMPUTER è costituita da un insieme di elaboratori (NODI) interconnessi tra loro tramite cavi (o sostituti dei cavi come le connessioni wireless). Rete Point-to-Point:

Dettagli

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008 Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome: Corso di laurea e anno: Matricola:

Dettagli

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti 20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1

Dettagli

Voce su IP e Telefonia su IP

Voce su IP e Telefonia su IP Voce su IP e Telefonia su IP Mario Baldi Politecnico di Torino mario.baldi[at]polito.it staff.polito.it/mario.baldi VoIP - 1 M. Baldi: see page 2 Nota di Copyright Questo insieme di trasparenze (detto

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

Introduzione alla consultazione dei log tramite IceWarp Log Analyzer

Introduzione alla consultazione dei log tramite IceWarp Log Analyzer Introduzione alla consultazione dei log tramite IceWarp Log Analyzer L Analizzatore di Log è uno strumento che consente un'analisi statistica e logica dei file di log generati dal server. Lo strumento

Dettagli

Fatti Raggiungere dal tuo Computer!!

Fatti Raggiungere dal tuo Computer!! Fatti Raggiungere dal tuo Computer!! Presentazione PcBridge è il modo rivoluzionario di accedere al proprio computer in qualsiasi momento e da qualsiasi luogo. Inserendo la penna usb OUT, Pcbridge permette

Dettagli

Esercitazioni di Tecnologie e Servizi di Rete: Voice over IP (VoIP)

Esercitazioni di Tecnologie e Servizi di Rete: Voice over IP (VoIP) 1 Esercitazioni di Tecnologie e Servizi di Rete: Voice over IP (VoIP) Esercizio 1 Data la cattura riportata in figura relativa alla fase di registrazione di un utente SIP, indicare: 1. L indirizzo IP del

Dettagli

Verifica scritta di Sistemi e Reti Classe 5Di 26.11.2015

Verifica scritta di Sistemi e Reti Classe 5Di 26.11.2015 Verifica scritta di Sistemi e Reti Classe 5Di 26.11.2015 Una azienda specializzata nella fornitura di servizi Internet quali hosting, housing, email, file server, in pratica un ISP (Internet Service Provider)

Dettagli

SOLUZIONE Web.Orders online

SOLUZIONE Web.Orders online SOLUZIONE Web.Orders online Gennaio 2005 1 INDICE SOLUZIONE Web.Orders online Introduzione Pag. 3 Obiettivi generali Pag. 4 Modulo di gestione sistema Pag. 5 Modulo di navigazione prodotti Pag. 7 Modulo

Dettagli

Il CRM per la Gestione del Servizio Clienti

Il CRM per la Gestione del Servizio Clienti Scheda Il CRM per la Gestione del Servizio Clienti Le Soluzioni CRM aiutano le aziende a gestire i processi di Servizio e Supporto ai Clienti. Le aziende di Servizio stanno cercando nuove modalità che

Dettagli