Registrazione Chiamate
Introduzione
Gli strumenti di registrazione delle chiamate telefoniche messi a disposizione da #phones permettono appunto di registrare le chiamate di tipo inbound e di tipo outbound, infine di salvarle, su file wave. Esistono due tecniche di attivazione della registrazione: la prima comprende la realizzazione di un driver di PhoneBar personalizzato e consente un'ampia libertà di implementazione ed utilizzo; mentre la seconda, quella che verrà trattata all'interno del presente documento, prevede l'utilizzo di un dispositivo già predisposto: l'AudioRecordingManager.
AudioRecordingManager
L'AudioRecordingManager è un servizio base del Messenger. In quanto tale, può essere configurato in due modi:
- attraverso il Call Designer
- oppure attraverso il Messenger Configurator; questo metodo è noto come Compatibility Mode.
La scelta del metodo dipende in particolare dal modo in cui viene gestito il call flow.
Configurazione di AudioRecordingManager attraverso il Call Designer
Il Call Designer mette a disposizione un nuovo tipo di blocchetto, appartenente alla categoria dei blocchetti di sistema, di tipo AudioRecordingManager. Il nuovo blocchetto è visibile all'interno della tool-box del Call Designer, in particolare nella sezione Base Messenger services.
Nell'immagine, evidenziato in rosso, è illustrato il comando posto all'interno della tool-box del Call Designer che permette di creare un call flow contenente il blocchetto AudioRecordingManager. Per creare un nuovo blocchetto, è sufficiente trascinare la voce AudioRecordingManager della tool-box del Call Designer nel workspace del Call Designer nel modo descritto in Creare un servizio base del Messenger.
Infine, per comprendere il processo di creazione di un call flow con il Call Designer, consultare #phones Client: Call Designer tutorial.
Le operazioni consentite dall'AudioRecordingManager
Una volta creato il blocchetto, è necessario modificare le proprietà al fine di impiegarlo nel modo ritenuto coerente col proprio call flow. Per fare ciò è sufficiente premere col tasto destro del mouse nella parte superiore del blocchetto (raffigurato nell'immagine precedente) e selezionare la voce Properties.
Come visibile nell'immagine precedente, le funzionalità messe a disposizione dal blocchetto AudioRecordingManager sono:
Start Recording
Indica a LightHouse di attivare la registrazione per la chiamata in corso. Questo comando accetta solo un parametro che permette di specificare il nome, completo di path, del file wave nel quale salvare la nuova registrazione.
Nota: il path indicato viene valutato da LightHouse che esegue la registrazione, quindi deve essere raggiungibile dal LightHouse. Può essere un path relativo (al folder in cui si trova l'eseguibile di LightHouse), oppure assoluto (anche di rete).
Nell'immagine, il nome del file deve essere inserito nel campo File name.
ATTENZIONE! il primo blocchetto AudioRecordingManager di un call flow, deve essere sempre impostato su Start Recording; se fosse scelta qualunque altra opzione, cioè Stop recording, Set recording mute state o Append cue sheet, AudioRecordingManager verrebbe posto in uno stato non valido.
Stop recording
Indica a LightHouse di fermare la registrazione. Per questo comando è possibile specificare nei parametri il path in cui spostare il file wave registrato. Se tale parametro viene lasciato vuoto, allora il file wave viene lasciato nel luogo indicato nel comando Start Recording. In questo caso il path è relativo al server dove risiede il Messenger.
Nell'immagine, il nome del file deve essere inserito nel campo Destination folder.
Set recording mute state
Questo comando permette di escludere dalla registrazione:
- il canale audio del chiamante (remoto)
- il canale audio dell'operatore
- oppure entrambi.
Ciò può essere utile ad esempio per non registrare eventuali fasi in cui viene chiesta la password del chiamante. Oltre ad escludere dalla registrazione i canali audio, il blocchetto permette di specificare un cue sheet, con testo configurabile, da appendere al file wave. Così è possibile individuare il punto della registrazione in fase di riascolto.
Nell'immagine:
- Mute Tx Channel (IVR): permette di escludere il canale IVR.
- Mute Rx Channel (Remote Party): permette di escludere la voce del chiamante.
- Append cue sheet: permette di specificare il testo del cue sheet da applicare al file wavel
Append cue sheet
Indica a LightHouse di aggiungere un cue sheet, al file wave, in corso di registrazione; il testo è configurabile.
Nell'immagine, il testo del cue sheet deve essere inserito nel campo Cue sheet entry.
Il call flow
Un blocchetto AudioRecordingManager può essere posto in qualunque punto del call flow, tuttavia è opportuno ricordare che il primo blocchetto AudioRecordingManager, cioè quello che avvia la registrazione, ovunque esso sia, deve essere sempre impostato su Start Recording. In caso contrario verrebbe posto in uno stato non valido, le cui conseguenze sono descritte nel paragrafo Invalid state.
Come tutti gli altri blocchetti del Call Designer, AudioRecordingManager possiede dei port che permettono di costruire un call flow; per maggiori dettagli consultare Connessioni tra i blocchetti.
Per tutte le 4 opzioni, indicate nel paragrafo Le operazioni consentite dall'AudioRecordingManage, si possono configurare i seguenti port di uscita:
- Success: se la richiesta di avvio del comando Start Recording viene eseguita con successo, viene invocato il blocchetto successivo.
- Failure: se la richiesta di avvio del comando Start Recording non viene ha successo, è invocato il blocchetto successivo.
- Invalid state: se lo stato del servizio AudioRecordingManager non è valido, tipicamente a causa di un errore di configurazione oppure per le ragioni esposte nel paragrafo Avvio di una registrazione all'inizio del call flow, viene invocato il blocchetto successivo. Siccome questo port viene usato in alcune circostanze particolari, l'argomento Invalid state è stato approfondito nel paragrafo omonimo Invalid state.
Nell'immagine precedente è raffigurato un ipotetico call flow, elaborato col Call Designer in grado di registrare una chiamata a partire dal suo inizio; su di esso vanno fatte alcune importanti osservazioni.
- Se la richiesta di avvio della registrazione viene eseguita con successo (port Success), il servizio successivo è costituito dal blocchetto VoiceMenu.
- Se la richiesta di avvio della registrazione non viene eseguita con successo (port Failure), allora il servizio successivo è costituito dal primo blocchetto PlayMessage.
- Se per errore AudioRecordingManager fosse stato impostato su Stop recording, allora verrebbe invocato il port Invalid state, e con esso il secondo blocchetto PlayMessage.
- Infine AudioRecordingManager è preceduto da un blocchetto PlayMessage: è necessario al fine di garantire una corretta gestione del canale IVR]; per maggiori dettagli consultare il paragrafo Avvio di una registrazione all'inizio del call flow.
Il blocchetto AudioRecordingManager può essere inserito in qualunque punto di un call flow, elaborato col Call Designer. Ma si ricorda che il suo comportamento dipende dalle impostazioni descritte nella sezione Le operazioni consentite dall'AudioRecordingManager.
ATTENZIONE: quando di intende registrare una telefonata a partire dal suo inizio, AudioRecordingManager, call flow, andrebbe collocato per primo; tuttavia ciò potrebbe avere delle conseguenze capaci di bloccare la registrazione, pertanto in queste circostanze devono essere seguite le indicazioni contenute nel paragrafo Avvio di una registrazione all'inizio del call flow.
Avvio di una registrazione all'inizio del call flow
Se si desiderasse registrare la chiamata a partire dal suo inizio, AudioRecordingManager andrebbe posto all'inizio del call flow. Tuttavia è opportuno sottolineare che tra il momento in cui il canale IVR] viene effettivamente impegnato dalla chiamata e il momento in cui LightHouse riceve la notifica dell'evento e pone il canale IVR in stato di conversazione, possono trascorrere alcuni attimi di ritardo provocati dall'infrastruttura di rete. In linea di massima ciò non ha alcun effetto reale, ma nel caso di una registrazione con AudioRecordingManager, LightHouse potrebbe ricevere una richiesta (Start Recording) per un canale IVR formalmente non ancora in conversazione. Per gestire questo caso, LightHouse non può far altro che rispondere con un messaggio che pone il blocchetto AudioRecordingManager in uno stato non valido Invalid state. Quindi per prevenire ed eliminare del tutto la possibilità che ciò avvenga, è buona norma far precedere AudioRecordingManager da un altro blocchetto di tipo PlayMessage contenente un secondo di silenzio.
Invalid state
Un caso tipico di Invalid state è quello citato all'inizio del paragrafo Il call flow. Infatti in un call flow il primo blocchetto AudioRecordingManager deve essere sempre impostato su Start Recording; in caso contrario si avrà un Invalid state. Ma la condizione Invalid state si può realizzare anche in altre circostanze; un esempio su tutti: la chiusura della registrazione può avvenire in due occasioni:
- conclusione della chiamata
- inserimento di un secondo blocchetto AudioRecordingManager impostato su Stop recording.
Il secondo caso tipicamente si realizza all'interno di call flow complessi, ossia in presenza di servizi di vario genere. Ad esempio se il secondo blocchetto AudioRecordingManager fosse stato impostato per errore su Start Recording invece che su Stop recording, LightHouse rileverebbe un'incoerenza nel dispositivo, di conseguenza il secondo blocchetto AudioRecordingManager verrebbe posto in Invalid state.
In altre parole, Invalid state è necessario al fine di "intercettare" e governare eventuali errori nella configurazione del call flow, oppure per gestire fallimenti che non rientrano tra quelli previsti da Failure. In ultima analisi, il port Invalid state è in grado di garantire un'uscita ordinata e controllata del call flow.
Configurazione di AudioRecordingManager in Compatibility Mode
Il Compatibility Mode prevede l'utilizzo del Messenger Configurator ed è un metodo considerato obsoleto. Per maggiori dettagli, consultare Creazione e configurazione del call flow (obsoleto). La configurazione del servizio base del Messenger di tipo AudioRecordingManager prevede un wizard le cui finestre ripropongono quanto descritto in Le operazioni consentite dall'AudioRecordingManager.
Il wizard
La prima finestra del wizard permette di impostare il comportamento del servizio base del Messenger:
- Avvia registrazione: corrisponde a Start Recording;
- Interrompi registrazione: corrisponde a Stop recording;
- Imposta canale audio da registrare: corrisponde a Set recording mute state;
- Aggiungi cue sheet: corrisponde a Append cue sheet.
Le finestre successive dipendono dalla scelta fatta.
La finestra viene visualizzata soltanto se è stata selezionata l'opzione Avvia registrazione; come in Start Recording, il nome del file deve essere inserito nel campo Nome del file.
Questa finestra viene visualizzata soltanto se è stata selezionata l'opzione Interrompi registrazione; come in Stop recording, deve essere indicato il folder di destinazione del file wave contenente la registrazione.
Questa finestra viene visualizzata soltanto se è stata selezionata l'opzione Imposta canale audio da registrare; come in Stop Set recording mute state, possono essere indicati i canali da escludere e il testo del cue sheet da associare al nuovo file.
Questa finestra viene visualizzata soltanto se è stata selezionata l'opzione Aggiungi cue sheet; come in Append cue sheet, deve essere indicato il testo del cue sheet da associare al nuovo file.
Infine questa finestra viene visualizzata alla fine del ciclo di configurazione. Essa possiede le stesse funzioni descritte nel Il call flow e permette di definire i servizi da attivare nelle diverse circostanze:
- Servizio successivo se richiesta eseguita con successo: se il comando Avvia registrazione viene eseguito con successo, viene invocato il blocchetto successivo.
- Servizio successivo se richiesta fallita: se il comando Avvia registrazione fallisce, viene invocato il blocchetto successivo.
- Servizio successivo se richiesta non valida: consultare il paragrafo Invalid state.
Soltanto se è stata selezionata l'opzione Aggiungi cue sheet, come in Append cue sheet, deve essere indicato il testo del cue sheet da associare al nuovo file.