Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Configurazione di un  Widget

Per poter essere caricato in AgentDesktop, il Widget deve prima essere configurato in AgentDesktop Manager. Esistono due sezioni distinte dove configurare un nuovo Widget sulla base che si voglia creare un Widget di primo livello o si voglia averlo a disposizione singolarmente su ciascun contatto in gestione all’interno del Widgetdi sistema Multi-Contatto.

...

Figura 3 - La abilitazione di un Widget

Integrazione della libreria SDK all’interno del Widget

Per consentire la comunicazione bidirezionale della propria web-application con AgentDesktop è necessario caricare la libreria di sviluppo AgentDesktop SDK:

...

  • Gestione dei Tab/Schede dei singoli Widget di AgentDesktop (AGENTDESKTOP.TAB),

  • Visualizzazione di finestre/pannelli informativi custom (AGENTDESKTOP.ALERT),

  • Controllo dei Widget, registrazione di proprie callback per la notifica di eventi (AGENTDESKTOP.WIDGET),

  • Gestione dei Contatti, effettuare chiamate, eseguire trasferimenti (AGENTDESKTOP.CONTACT),

  • Gestione dello stato e della schedulabilità di un operatore (AGENTDESKTOP.AGENT),

  • Gestione di un contatto di tipologia chat, invio di un messaggio testuale (AGENTDESKTOP.CHAT),

  • Gestione e notifica degli eventi relativi all'apertura/chiusura delle finestre di dialogo in AgentDesktop (AGENTDESKTOP.UI).

Eventi e notifiche

Gli eventi notificati da AgentDesktop verso l'SDK hanno una struttura JSON, in cui la proprietà "event" descrive l'evento stesso. Nel corso della gestione di un contatto telefonico, chat o multimediale la integrazione dovrà aspettarsi una sequenza di notifiche di eventi che identificheranno le fasi di vita del contatto stesso.

Gli eventi si distinguono tra eventi legati al media telefonico/chat ed eventi legati alla schedulabilità o stato logico dell’operatore loggato.

Eventi sul media

Nome Evento

Descrizione

CONNECTIONSTARTED

Segnala l’impegno del media telefonico al fine di gestire un contatto

RINGING

Il media telefonico sta squillando

DIALING

Il media telefonico sta componendo una numerazione uscente

DATACHANGED

Uno o più CallData associati al Contatto ha cambiato valore

ESTABLISHED

In un contatto telefonico o chat indentifica il momento in cui cliente ed operatore vengono messi in comunicazione

HELD

La chiamata in gestione sul media telefonico è stata messa in attesa

RETRIEVED

La chiamata in gestione sul media telefonico è stata tolta dalla attesa

CONNECTIONCLEARED

Il contatto è stato terminato facendo concludere la fase di gestione online

Eventi ACD

Nome Evento

Descrizione

JOBSCHEDULED

Segnala che l’operatore è stato schedulato dal sistema per gestire un contatto

JOBCHANGED - Setup

Identifica la fase di ingaggio dell’operatore. In AgentDesktop viene proposto il POPUP Accetta/Rifiuta

JOBSTARTED - Online

E’ iniziata la fase Online del contatto. Operatore e cliente sono stati messi in comunicazione.

JOBCHANGED - Offline

Identifica l’inizio della fase di gestione Offline (After Call Work) del Contatto a seguito della chiusura della telefonata

JOBFINISHED

Identifica il termine della gestione di un Contatto e la conclusione dell’eventuale stato di Offline del contatto (After Call Work)

L’evento “POPUP”

L’evento POPUP non corrisponde a nessuna segnalazione SIP/CTI relativa al Contatto e a nessun cambio di stato logico dell’Operatore bensì è evento «artificiale» generato da AgentDesktop.
POPUP è generato internamente da AgentDesktop ed identifica con certezza l'ingresso e quindi la presa in gestione di un contatto sulla postazione comunicando di conseguenza ad una integrazione da quale istante temporale è possibile eseguire alcune operazioni come la contestualizzazione del contenuto del proprio Widget.

Eventi Operatore

Nome Evento

Descrizione

LOGGEDIN

L’operatore è disponibile per ricevere contatti compatibilmente allo stato del media (libero/occupato) e ai Gruppi di lavoro associati

PAUSE

L’operatore è entrato nello stato di pausa generica. Non verrà schedulato su nessuna tipologia di contatto

PAUSESUBSTATE [1701]

L’operatore è entrato in un sottostato di pausa. A fianco viene riportato il codice del sottostato

FORCED

L’operatore è entrato in Pausa Forzata a seguito di una mancata risposta per timeout ad un contatto

LOGGEDOUT

L’operatore si è sloggato da AgentDesktop in modo esplicito o chiudendo il browser

Struttura JSON dell’evento

L’oggetto che descrive l’evento notificato verso le integrazioni dispone di una serie di proprietà che descrivono la natura dell’evento stesso ed i dati significativi del contatto:

Nome Proprietà

Descrizione

Valori possibili

event

Nome simbolico dell’evento che identifica la sua appartenenza alla tipologia di risorsa che lo ha generato (media, operatore, sistema CTI)

stringa

id

Identificativo CT7 del contatto

stringa

uuid

Identificativo univoco del contatto

stringa

chat_id

Identificativo interno della chat (Vivocha o CTLive)

stringa

type

tipologia del contatto

inbound | outbound | callTask | internal

media_type

tipologia del media, canale telefonico, chat o multimediale

telephony | chat | channel

content_type

categorizzazione  di un  contatto multimediale con media_type=”channel”

email | object

content_description

Informazioni aggiuntive sul contatto multimediale (channel). Per esempio per una email può contenere l’oggetto o subject.

stringa

job_type

Indica se il contatto è gestito dal sistema CTI e la sua tipologia

inbound | manual | outbound | previewAgent | previewQueue | predictive

job_state

Identificato lo stato del contatto in gestione dal CTI

online | offline

service

Per una chiamata schedulata dal sistema identifica il servizio di accodamento

stringa

ani

Chiamante

stringa

dnis

Chiamato

stringa

queue

Gruppo di lavoro dove è stato accodato il Contatto prima di essere assegnato all’operatore

stringa

reason

Esito di fine chiamata

 

isACD

Indica se è un contatto gestito dal sistema CTI oppure un job manuale (chiamata manuale uscente , chiamata tra interni)

boolean

startTime

TimeStamp di quando il contatto ha ricevuto l’ESTABLISHED (in conversazione, online)

timestamp in numero di millisecondi a partire dalla Unix Epoch

endTime

TimeStamp di quando il contatto ha ricevuto l’evento di CONNECTIONCLEARED  (fine conversazione, offline)

timestamp in numero di millisecondi a partire dalla Unix Epoch

offlineStartTime

TimeStamp di quando il contatto ha iniziato la fase Offline o AfterCallWork

timestamp in numero di millisecondi a partire dalla Unix Epoch

offlineEndTime

TimeStamp di quando il contatto ha completato la fase di Offline o AfterCallWork. Coincide con la ricezione dell’evento JOBFINISHED.

timestamp in numero di millisecondi a partire dalla Unix Epoch

Requisiti per l’integrazione di un Widget

La possibilità di integrazione di un applicazione web all'interno di AgentDesktop utilizzando i Widget è soggetta ad alcune requisiti.

X-Frame-Options

Molti amministratori di sistema impostano alcune protezioni di sicurezza all’interno della pagine che costituiscono la loro web-application o CRM con l’intento che le loro pagine web non possano essere utilizzate da altre applicazioni e caricate in elementi come frames/iframes al fine di essere servite da pagine provenienti da altri domini non autorizzati. Questa tecnica solitamente è denominata "framesniffing".
A titolo di esempio viene riportata una configurazione relativa ad IIS per la abilitazione del'header "X-Frame-Options" e consentire il caricamento della propria web-app all’interno di un Widget di AgentDesktop:

...

Le altre due opzioni di configurazione possono essere: SAMEORIGIN o DENY.

Controllo della TOP window

Alcune applicazioni web verificano se sono incluse in un iframe, in qual caso cercano di ricaricarsi sostituendo la pagina principale.
Un esempio di questo codice è come segue:

...