Configurabilità del servizio Voic in Asterisk Università degli studi di Pisa Facoltà di Ingegneria Laurea specialistica in Ingegneria Informatica Relatori: Luigi Rizzo Marco Avvenuti Candidato: Gabriele Montori
Sommario Obiettivo: configurabilità dellapplicazione Voic per il software Asterisk Descrizione del funzionamento di un servizio di Voic Descrizione delle modifiche introdotte nella Voic di Asterisk Risultati e conclusioni
Il servizio Voic Che cosa è una Voic Distinzione tra utente e proprietario Lutente deposita messaggi vocali Il proprietario: –configura il servizio Voic –interagisce con la propria casella tramite il telefono
Voic lato utente Depositare messaggi in caso di destinatario: –Non connesso –Non disponibile –Attualmente occupato Risponditore automatico
Voic lato proprietario Possibilita' di configurazione del funzionamento del servizio Interazione con la segreteria: le voci guida dei menu' e le opzioni disponibili Operazioni a disposizione del proprietario sui messaggi presenti: –Riproduzione, eliminazione, inoltro, salvataggio –Reply, Callback –Servizi di personalizzazione
Obiettivo Scopo dellestensione: –Configurabilità della struttura dei menù e dei loro contenuti in opposizione alla staticita' dell'attuale servizio presente in Asterisk
Descrizione del lavoro svolto Introduzione di un file di configurazione per il funzionamento della voic La realizzazione dell'estensione ha portato all'introduzione per l'applicazione di: –Verifica dinamica della disponibilità delle opzioni nei menù –Creazione di un set di istruzioni per la navigazione tra menù –Raggruppamento delle operazioni del modulo in funzioni richiamabili tramite file di configurazione
Il file di configurazione [menu1] init = play('welcome') default = play('error') 1 = IF(${MSG_SELECTED}),play_msg(current) 2 = IF($(NOT_LAST_MSG)),play_msg(next) 3 = jump(IF(${MSG_SELECTED}),menu2,menu3) 4 = call(menu4) 5 = exit() [menu2] init = play('instr_menu2') 1 = save_to(WORK),jump(menu1) 2 = save_to(FAMILY),jump(menu1) [menu3] init = play('instr_menu3') 1 = change_folder(NEW),jump(menu2) 2 = change_folder(OLD),jump(menu2) [menu4] init = play('instr_menu4') 1 = return(1) 2 = IF(${MSG_SELECTED}),reply()
Il file di configurazione (2) Le azioni di init e di default Le voci di menu' sono realizzate con la funzione – play('file') Le istruzioni di salto permettono di muoversi tra menu' – call(),jump(),return() Le funzioni di modulo sono le operazioni svolte dalla voic – play_message(),change_folder(),save_to()
Le entry delle sezioni menù Associazioni tra comando impartito e operazioni da eseguire Sono composte da –Pattern –Condizioni (opzionali) –Lista di azioni pattern = IF(conditions),actions
Pattern Rappresenta l'input immesso dall'utente mediante la tastiera telefonica Algoritmo di ricerca longest match [menu_esempio_pattern] 1 = azione1, = azione2, = azione3, = azione4,... pattern = IF(conditions),actions
Entry condizionate Abilitazione di una entry Dinamicità delle opzioni disponibili: pattern = IF(conditions),actions [menu_entry_condizionate] 1 = IF(condizione1),azione = IF(condizione2),azione2,... 1 = IF(condizione3),azione3,... 1 = IF(condizione4),azione4,...
Entry condizionate (2) Condizioni che possono essere verificate sono di due tipi: –Variabili di canale –Funzioni di dialplan
Entry condizionate (3) Sono associate alla chiamata corrente Sono state aggiunte variabili di canale per supportare il funzionamento della Voic [menu_variabili_canale] 1 = IF(${MSG_SELECTED}),... Le variabili di canale
Entry condizionate (4) Routine di Asterisk messe a disposizione per eseguire operazioni runtime Varie tipologie di funzioni disponibili Esempio di utilizzo pattern = IF(VMCOUNT(${VM_ID}, OLD)),... Le funzioni di dialplan
Le azioni Lista composta da una o piu' azioni Le possibili azioni sono: –Funzionalità del modulo: le operazioni di una casella vocale –Routine di dialplan: funzioni di ogni tipo inerenti ad un pbx –Istruzioni di salto: navigazione tra menù pattern = IF(conditions),actions[, action,...]
Le azioni (2) Riproduzione file sonori: –play() Operazioni sui messaggi –play_msg() –forward_msg() –delete(), undelete() Le funzionalita' del modulo
Le azioni (3) Gestione delle directory di lavoro: –change_folder(), save_to() Risposte ai messaggi –callback(), reply() –Operazioni esterne: –dialout(), leave_mess() Le funzionalita' del modulo
Le azioni (4) Permettono di muoversi tra i menù Tipologie di salto: con o senza memoria Le disponibili realizzate sono: –call(menu) –return(n) –jump(condition,menu1,menu2) Le istruzioni di salto
Conclusioni Realizzazione di un servizio configurabile dal punto di vista di funzionamento e dal punto di vista di organizzazione delle strutture dei menù Possibile impiego come alternativa a soluzioni esistenti Possibile utilizzo al di fuori del contesto della semplice Voic