Transfer Property
Introduzione
Le Transfer Property sono variabili utilizzate per trasferire dati da un servizio del Messenger ad un altro. Dal punto di vista dell'utente, tuttavia le transfer property assumono la forma di coppie formate dal nome della proprietà seguito dal valore ad essa assegnato. Le transfer property possono essere utilizzate soltanto dai servizi del Messenger appartenenti alla stessa campagna di #phones. Esistono due tipi di transfer property:
Le Transfer Property di Sistema
Le transfer property di sistema sono create dal Messenger e alcune possono ricevere soltanto dei valori specifici, ossia compresi all'interno di un arco ben definito.
Transfer Property | Valore | Descrizione |
---|---|---|
__CallerParty | Numero di telefono | Contiene il numero del chiamante se disponibile dalla rete pubblica. E' il numero che #phones passa nel CallData ExternalParty. |
__CalledParty | Numero di telefono | Contiene il numero composto dal chiamante, ma è disponibile solo con schede di flusso e se la centrale lo mette a disposizione. |
__CallMediaType | 1 = audio 2 = @Phones 5 = video | Specifica il tipo di chiamata in corso. |
__RecognizeResult__ | vvpMaxNonSilence = 4 vvpMaxSilence = 3 vvpRunTimeError = -1 vvpStopped = 1 vvpTermDigit = 2 vvpTimeOut = 6 vvpEngineUnavailable = 18 vvpNotRecognized = 19 | Contiene l'esito dell'ultima operazione di riconoscimento vocale (ASR). |
_ASR_Source | ASR DTMF | Indica la modalità di riconoscimento: ASR o DTMF. |
__CallForwardingResult__ | 0: se l'operazione è andata a buon fine | Esito del CallForwarding. |
__CallForwardingCallGuid__ | GUID | Contiene la GUID della chiamata outbound emessa a seguito della richiesta di CallForwarding. |
__CallForwardingCallID__ | CallID | Contiene la CallID di #phones della chiamata outbound emessa a seguito della richiesta di CallForwarding. |
__CallForwardingCallResult__ | Numero intero | Se la chiamata outbound fallisse, riporta la causa dell'errore (Codice fallimento). |
__CallForwardingCallProtocolSpecificCause__ | Numero intero | Se la chiamata outbound fallisse, la transfer property riporta la causa dell'errore connessa al protocollo usato (Cause di disconnessione SIP, Cause di disconnessione ISDN). |
__CallForwardingReportingError__ | 0: operazione eseguita 1: operazione fallita | Il CallForwarding può salvare l'esito dentro un database. Contiene il risultato dell'operazione di salvataggio dentro il database. |
Le transfer property di sistema tipicamente sono in sola lettura, vengono create e valorizzate dal Messenger e sono usate all'interno dei servizio del Messenger, siano essi i servizi base del Messenger o i servizi del Messenger personalizzati.
Esempio
Ipotizziamo un servizio di #phones, creato con il Call Designer, concepito per acquisire un codice alfanumerico immesso dall'utente del contact center. Il codice alfanumerico può essere fornito in due modi differenti:
- tramite tastiera
- o in forma vocale
Il servizio di #phones deve essere in grado di individuare il meccanismo appropriato di acquisizione, ossia toni DTMF o ASR.
Nell'immagine precedente è raffigurato un grafo nel quale è presente una campagna di #phones contenente due blocchetti (ossia due servizi del Messenger):
Poiché si tratta di un esempio, il port "Failure" del blocchetto GetAlfaNumCode si limita ad eseguire un servizio contenuto nel blocchetto PlayBack, il quale di fatto recita un messaggio ed esce.
Il blocchetto GetAlfaNumCode è concepito per identificare un codice fornito dall'utente del contact center. Questo codice può essere inserito attraverso la tastiera telefonica (toni DTMF) oppure l'utente del contact center può letteralmente recitarlo (ASR). A seconda del segnale individuato, il blocchetto GetAlfaNumCode, all'interno della transfer property di sistema _ASR_Source, registra un valore che indica appunto il tipo di riconoscimento effettuato; il valore della transfer property _ASR_Source potrà dunque assumere uno dei seguenti valori:
- DTMF: se il riconoscimento è stato effettuato tramite i toni DTMF
- ASR: se il riconoscimento è stato effettuato tramite l'ASR.
In un secondo momento, la transfer property di sistema _ASR_Source, valorizzata dal blocchetto GetAlfaNumCode, viene passata al blocchetto successivo, che nell'esempio illustrato è appunto il blocchetto UserSwitch. Quest'ultimo utilizza il valore della transfer property _ASR_Source per selezionare il port di output:
- se DTMF (tono DTMF): verrà usato il port denominato DTMF
- se ASR (ASR): verrà usato il port denominato ASR.
Per comprendere questo comportamento è necessario aprire la finestra Proprietà del blocchetto UserSwitch, come raffigurato nell'immagine seguente.
Nella scheda Tipo Oggetto impostare il tipo oggetto con Transfer Property: si attiva la scheda Transfer Property .
Nella scheda Transfer Property selezionare la transfer property della quale si intendono utilizzare i valori; in questo caso la transfer property di sistema _ASR_Source.
Affinché il blocchetto UserSwitch operi correttamente, è necessario inserire i port che intendiamo usare.
Nella scheda Associazioni occorre associare il valore contenuto nella transfer property di sistema _ASR_Source a un port specifico. Come illustrato nell'immagine seguente, i due valori possibili della transfer property, ossia DTMF e ASR, contenuti nella colonna Valore, sono associati al port corrispondente indicato nella colonna Port.
Il risultato di questa operazione è visibile nel blocchetto UserSwitch raffigurato nell'immagine all'inizio di questo paragrafo.
Le Transfer Property Personalizzate
Le transfer property personalizzate sono delle transfer property create dall'utente; ma come le transfer property di sistema, possono essere usate in tutti i servizi del Messenger: servizi base o servizi personalizzati. Ciò che differenzia le transfer property tra loro, è la definizione del nome. Quello delle transfer property di sistema è definito dal sistema stesso, come i loro valori, mentre il nome delle transfer property personalizzate è imposto dall'utente.
Esempio
Immaginiamo un servizio di #phones, creato tramite il Call Designer, concepito per leggere dei dati dalla tabella di un database e trasferirli dentro una transfer property personalizzata.
Il servizio di #phones, rappresentato nell'immagine, contiene la campagna di #phones TP-Custom, la quale si compone dei seguenti blocchetti:
- SetStoreProperty
- UserSwitch
- PlayMessage (blocchetto PlayError)
Ipotizziamo un database contenente la tabella Clienti caratterizzata dai seguenti campi:
- IDCliente: identificativo univoco del cliente
- CampoNome: nome del cliente
- CampoCognome: cognome del cliente
- CampoPriorita: ipotetica priorità del client (per esempio cliente VIP), che ammette i valori "1", "2" o "3".
Il blocchetto SetStoreProperty interroga la tabella del database di cui sopra e, tramite il valore della chiave IDCliente, ottiene un record con i valori CampoNome, CampoCognome e CampoPriorita; questi dati vengono salvati nelle transfer property personalizzate Nome, Cognome, Priorita.
Il blocchetto UserSwitch legge la transfer property Priorita, generata nel punto precedente, ed in base al suo valore, seleziona il port di uscita:
- se Priorita è uguale ad 1: Op1
- se Priorita è uguale ad 2: Op2
- se Priorita è uguale ad 3: OpX.
Il blocchetto PlayMessage (PlayError) si attiva soltanto se si verifica un errore con SetStoreProperty; in tal caso il blocchetto recita un messaggio ed esce (port di output Err).
Descrizione della configurazione
Il blocchetto SetStoreProperty
Nella finestra Proprietà del blocchetto SetStoreProperty, cliccare sulla scheda Sorgente/Destinazione e selezionare il tipo di oggetto Campo di un DB via ODBC.
Si attiva la scheda ODBC.
All'interno della sezione Database sono stati inseriti i valori di connessione del nostro ipotetico database, nonché il nome della tabella Clienti. Nella parte inferiore, nell'area Criterio di ricerca record, è stato inserito il nome del campo IDCliente, ossia il campo con la chiave univoca del singolo cliente, e l'identificativo del nostro cliente (nell'esempio 12345) nel campo Valore da cercare.
Affinché i dati ottenuti attraverso l'interrogazione del database siano salvati dentro le transfer property, è necessario che nella scheda Operazione sia stata selezionata l'opzione Salva il contenuto di una Transfer Property come indicato nella figura seguente.
Nella scheda Associazioni si imposta l'associazione tra i valori ricavati dai campi CampoNome, CampoCognome e CampoPriorita della tabella Clienti e le transfer property personalizzate. Nella figura seguente è visibile una tabella: nella colonna Property sono indicate le transfer property personalizzate Nome, Cognome, Priorita, mentre nella colonna Valore sono indicati i campi del database ad esse associate.
Per creare una nuova property personalizzata e per associarla al campo del database, premere il pulsante Nuovo per effettuare nuovi assegnazioni.
Il blocchetto UserSwitch
Per poter usare le transfer property personalizzate occorre impostare anche la configurazione tramite la finestra Proprietà del blocchetto UserSwitch.
Nella scheda Tipo oggetto, selezionare Transfer Property.
Quindi nella scheda Transfer Property occorre selezionare una delle transfer property personalizzate definite nel blocchetto SetStoreProperty, in questo caso la transfer property personalizzata Priorita, ossia quella che contiene il valore da utilizzare per la selezione del port di uscita.
Nella scheda Associazioni avviene l'associazione tra il port ed il valore contenuto nella transfer property personalizzata Priorita.
Come riportato nell'immagine seguente, a sinistra nella colonna Valore sono elencati i valori possibili di Priorita; invece a destra, nella colonna Port, sono elencati i port di uscita del blocchetto.