Convenzioni
Di seguito le convenzioni utilizzate nella descrizione delle funzioni.
- nome_parametro: descrizione breve del parametro obbligatorio
- <nome_parametro>: descrizione breve del parametro opzionale
- ContactID: ID del contatto (telefonico/chat/multimediale). Identifica in modo univoco ciascun contatto in gestione sulla postazione operatore.
Gestione Contatto
Funzione | Descrizione |
---|---|
AGENTDESKTOP.CONTACT.MakeCall String DestinationNumber, String <ResourceType>, String <ServiceID>, String <CallProfileID>, String <CallData> | Effettua una chiamata telefonica. |
AGENTDESKTOP.CONTACT.Hangup String <ContactID> | Conclude la fase online di un contatto telefonico o chat. |
AGENTDESKTOP.CONTACT.HangupByContactID String ContactID | Conclude la fase online del contatto avente come identificativo il valore del parametro "ContactID" |
AGENTDESKTOP.CONTACT.Hold String ContactID | Mette o riprende dallo stato di attesa una chiamata telefonica. |
AGENTDESKTOP.CONTACT.Answer String ContactID | Risponde ad un contatto in ingresso/fase di accettazione sulla postazione operatore. |
AGENTDESKTOP.CONTACT.OfflineEnd String ContactID | Esce dallo stato offline (After Call Work) di un contatto e termina la fase di gestione del contatto stesso. |
AGENTDESKTOP.CONTACT.OfflineEnable String ContactID, Boolean Active | Abilita/Disabilita pulsante di offline presente sulla toolbar principale. |
AGENTDESKTOP.CONTACT.SetCallData String ContactID, String CallData | Imposta una variabile di CallData associata al contatto. Le variabili di CallData consentono di memorizzare sul singolo contatto dei dati personalizzati nel formato chiave=valore. AGENTDESKTOP.CONTACT.SetCallData("2d-5e5fbc28@B2BUAEP.enghouse.com", "CUSTOMERID=12345"); |
AGENTDESKTOP.CONTACT.StartRecording String ContactID, String <CallRecorders>, String <CallData> | Richiede la registrazione della chiamata telefonica. E' possibile specificare l'identificativo di un Registratore configurato sul sistema CTI. |
AGENTDESKTOP.CONTACT.StopRecording String ContactID, String <CallRecorders> | Interrompe la registrazione in corso della chiamata telefonica. |
AGENTDESKTOP.CONTACT.PlayDTMF String DTMF | Riproduce uno o più toni DTMF sulla chiamata in corso. AGENTDESKTOP.CONTACT.PlayDTMF("1#"); |
AGENTDESKTOP.CONTACT.Transfer_Direct String ContactID, String Destination, String ResourceType | Richiede il trasferimento diretto di una telefonata. Come destinazione del trasferimento è possibile specificare una delle seguenti tipologie di risorsa: ResourceType:
|
AGENTDESKTOP.CONTACT.Transfer_Consultation String ContactID, String DestinationNumber, String ResourceType, String CallProfileID, String CallData | Richiede il trasferimento con consultazione di una telefonata. La telefonata del cliente in linea verrà messa in attesa e l'operatore verrà automaticamente rediretto verso la chiamata di consultazione con la numerazione specificata nel parametro DestinationNumber. |
AGENTDESKTOP.CONTACT.Transfer_Complete String ResourceType, String <CallData> | Viene richiesto il completamento della chiamata di consultazione ed il trasferimento della telefonata verso il destinatario della consultazione. |
AGENTDESKTOP.CONTACT.Transfer_Complete_Conference String ResourceType | Viene richiesto il completamento della chiamata di consultazione mediante la instaurazione di una conference a tre partecipanti: cliente in linea, operatore che ha gestito la telefonata e destinatario della consultazione. |
Gestione WIDGET
Funzione | Descrizione |
AGENTDESKTOP.WIDGET.getToken | Restituisce il token ottenuto dalla login Single Sign On di EasyCIM |
AGENTDESKTOP.WIDGET.getTokenOneShot | Restituisce il token OneShot ottenuto dalla login Single Sign On di EasyCIM |
AGENTDESKTOP.WIDGET.getContainerID | Restituisce l'identificativo del WIDGET |
AGENTDESKTOP.WIDGET.bindContactCallback(javascript function) | Effettua la bind di una propria funzione javascript al fine di ricevere le notifiche sui contatti in gestione. |
AGENTDESKTOP.WIDGET.unbindContactCallback(javascript function) | Effettua la unbind della vostra funzione |
AGENTDESKTOP.WIDGET.bindWidgetDataCallback(function function) | Effettua la bind di una propria funzione javascript al fine di ricevere le notifiche relative alla ricezione di dati custom da un altro Widget |
AGENTDESKTOP.WIDGET.unbindWidgetDataCallback(function callback) | Effettua la unbind della vostra funzione |
AGENTDESKTOP.WIDGET.sendDataToWidget String destinationWidgetID, String data | Invia dei dati custom ad un altro WIDGET identificato nel parametro destinationWidgetID (o paradossalmente anche a se stessi se si specifica il proprio ID) E' possibile inviare anche dati strutturati come array ed oggetti anche se è fortemente raccomandato convertirli in formato stringa mediante l'utilizzo dell'istruzione JSON.stringify. |
AGENTDESKTOP.WIDGET.addCustomMenu(JSON String menu) | Inserisce un menu contestuale sul TAB di selezione del proprio WIDGET. Vedi sintassi JSON (vedi 9.4.1) |
AGENTDESKTOP.WIDGET.enableCustomMenuItem(String ItemID, boolean [true/false]) | Abilita/Disabilita una singola voce di menu nel TAB di selezione del WIDGET |
AGENTDESKTOP.WIDGET.LOG(String testo) | LOG: Scrive una propria stringa nel log applicativo di AgentDesktop situato in %appdata%\Reitek\Contact\BrowserPlugin |
AGENTDESKTOP.WIDGET.bindWidgetFocusCallback(function callback) | Effettua la bind di una vostra funzione al fine di notificare al Widget la selezione dell'utente e la conseguente ricezione del Focus sul proprio Tab. |
AGENTDESKTOP.WIDGET.unbindWidgetFocusCallback (function callback) | Effettua la unbind della vostra funzione |
AGENTDESKTOP.WIDGET.Reload(String < JumpToWidget>) | Ricarica Widget |
AGENTDESKTOP.WIDGET.triggerContactCallback( String param) | Scatena la vostra funzione di cui avete fatto la bind con bindContactCallback() |
AGENTDESKTOP.WIDGET.triggerWidgetDataCallback (String param) | Scatena la vostra funzione di cui avete fatto la bind con bindWidgetDataCallback() |
AGENTDESKTOP.WIDGET. triggerWidgetFocusCallback(String param) | Scatena la vostra funzione di cui avete fatto la bind con bindWidgetFocusCallback() |
AGENTDESKTOP.WIDGET.receiveDataFromWidget (String senderWidgetID, String data) | Riceve dei dati custom ad un altro WIDGET |
AGENTDESKTOP.WIDGET.GetTimeStamp() | Restituisce stringa contenente data e ora attuale nel formato: |
AGENTDESKTOP.WIDGET.getLanguage | Restituisce la lingua utilizzata in AgentDesktop. Esempio: "it", "en". |
AGENTDESKTOP.WIDGET.activateCustomMenuItem(String itemID, param) | Permette di attivare la voce del menu contestuale con id itemID sul TAB di selezione del proprio WIDGET |
Esempio di gestione di un evento CTI
InteGli eventi notificati da AD verso l'SDK hanno una struttura JSON, in cui la proprietà "event" descrive l'evento stesso.
Come esempio, osserviamo la sequenza di eventi notificati alla ricezione di un contatto inbound telefonico.
Tra di essi, una particolare attenzione si deve prestare verso l'evento di POPUP (del quale viene riportato il JSON completo) che determina il primo momento utile di presa in carico di un contatto da parte dell'operatore.
"event": "jobscheduled", |
.
Un eventuale integratore, dopo aver importato l'SDK (<script type="text/javascript" src="./agentdesktop_widget.js"></script>), dovrebbe effettuare la bind della funzione di callback:
AGENTDESKTOP.WIDGET.bindContactCallback(WidgetContactCallback);
Questa funzione può essere definita per intercettare e gestire certi titpi di eventi:
function WidgetContactCallback(jQuery_eventType, data) {
try {
var DataObj = null;
DataObj = JSON.parse(data);
if (DataObj.event == "AGENT:LOGGEDIN") {
// Operatore Loggato
}
if (DataObj.event == "AGENT:PAUSE") {
// Operatore in Pausa
}
if (DataObj.event == "POPUP") {
if (DataObj.isACD == true) {
// Gestione chiamata ACD, non manual
if (DataObj.type == "inbound") {
// Gestione chiamata inbound
}
if (DataObj.type == "outbound") {
// Gestione chiamata outbound
}
}
}
} catch (err_WidgetContactCallback) {
}
}
In particolare, la proprietà "media_type" indica il canale su cui sta viaggiando il contatto (telephony, chat, channel), la proprietà "type" indica la tipologia della chiamata (inbound, outbound, calltask), la proprietà "job_type" descrive la natura del contatto (manual/non manual), la proprietà "job_state" descrive lo stato in cui si trova il contatto (scheduled, setup, online, offline).
Si noti la differenza tra gli eventi che sono pura segnalazione SIP (connectionstarted, ringing, established, connectioncleared,…) da quelli che sono job, cioè che arricchiscono la segnalazione e fanno capire che l'operatore sta gestendo un contatto gestito dal Sistema (isACD = true) (jobscheduled, jobchenged, jobstarted, jobfinished).
Esempio di log
La loggata avrà il seguente formato:
"14/01/2015 - 14:57:52 [ID WIDGET] " + testo
Gestione TAB
Funzione | Descrizione |
AGENTDESKTOP.TAB.Badge(String Badge) | Imposta il Badge all'interno del Tab di selezione del WIDGET. Se stringa vuota il Badge viene cancellato |
AGENTDESKTOP.TAB.Focus() | Sposta la selezione sul TAB del proprio WIDGET |
AGENTDESKTOP.TAB.Home() | Sposta la selezione sul TAB di HOME di AGENTDESKTOP (il primo) |
AGENTDESKTOP.TAB.Add(String ID, String Title, String URL, String Icon) | Permette di inserire voci di menu all'interno di un TAB |
AGENTDESKTOP.TAB.Remove(String ID) | Rimuove voce di menu con ID specificato dal TAB |
AGENTDESKTOP.TAB.GoTo(String ID) | Sposta la selezione sul TAB del WIDGET con l'ID specificato |
Finestre informative
Funzione | Descrizione |
AGENTDESKTOP.ALERT.Notify(String Title, String Text, String Icon, Integer Timeout) | Visualizza una finestra informativa specificando anche un tempo di visualizzazione. |
AGENTDESKTOP.ALERT.CustomDialog(String URL, Integer width, Integer heigth) | Apre una finestra di dialogo custom ridimensionabile e trascinabile a piacere all'interno di AD. La finestra non può essere chiusa tramite interfaccia. |
AGENTDESKTOP.ALERT.CustomDialogClose() | Chiude la finestra di dialogo custom aperta |
Gestione stato operatore
Funzione | Descrizione |
AGENTDESKTOP.AGENT.PauseSubStateFilter(String filter) | Permette di aggiungere un sottostato di pausa |
AGENTDESKTOP.AGENT.PauseSubState(String SubStateCode) | Richiede sottostato di pausa indicato dal codice |
AGENTDESKTOP.AGENT.Login() | Richiede stato disponibile per operatore |
AGENTDESKTOP.AGENT.Pause() | Richiede stato di pausa per operatore |
AGENTDESKTOP.AGENT.getAgentID() | Restituisce l'ID dell' operatore |
AGENTDESKTOP.AGENT.getMediaID() | Restituisce l'ID del media |
AGENTDESKTOP.AGENT.getAgentState() | Restituisce lo stato in cui si trova l'operatore |
Gestione Chat CTLive
Funzione | Descrizione |
---|---|
AGENTDESKTOP.CHAT.SendText String Text | Invia un messaggio testuale verso la chat in gestione all'interno del Tab/Scheda corrente del Widget MultiContatto |
AGENTDESKTOP.CHAT.GetEvents String ContactID | Restituisce un array contenente lista di eventi intercorsi per l'identificativo della chat specificato dal parametro ContactID |
Finestre di Dialogo/Informative
Funzione | Descrizione |
---|---|
AGENTDESKTOP.UI.bindModalCallback(function javascript) | Effettua la bind di una propria funzione al fine di essere notificati sugli eventi relativi all'apertura/chiusura di finestre di dialogo in AgentDesktop |
AGENTDESKTOP.UI.unbindModalCallback(function javascript) | Effettua la unbind della vostra funzione |