Versions Compared

Key

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

...

  • nome_parametro: descrizione breve del parametro obbligatorio
  • <nome_parametro>: descrizione breve del parametro opzionale
  • ContactID: ID del contatto (telefonico/chat). Vi viene passato nella callback che avete registrato per mezzo del metodo AGENTDESKTOP.WIDGET.bindContactCallback/multimediale). Identifica in modo univoco ciascun contatto in gestione sulla postazione operatore.

Anchor
_Toc426725958
_Toc426725958
Anchor
_Toc450223125
_Toc450223125
Gestione Contatto

Funzione

Descrizione

AGENTDESKTOP.CONTACT.MakeCall

(

String DestinationNumber, String

<ResourceType>

<ResourceType>, String

<ServiceID>

<ServiceID>, String

<CallProfileID>

<CallProfileID>, String

<CallData>)

<CallData>

Effettua una chiamata telefonica.

AGENTDESKTOP.CONTACT.Hangup

()
Abbatte

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>)

ContactID

Risponde ad un contatto in ingresso/fase di accettazione sulla postazione operatore.

AGENTDESKTOP.CONTACT.OfflineEnd

(

String ContactID

)

Esce dallo stato

Offline

offline (After Call Work) di un contatto


AGENTDESKTOP.CONTACT.HangupByContactID(String ContactID)

Abbatte la chiamata telefonica con l'ID del contatto specificato

e termina la fase di gestione del contatto stesso.

AGENTDESKTOP.CONTACT.OfflineEnable

(

String ContactID,

boolean bActive)

Boolean Active

Abilita/Disabilita pulsante di

OFFLINE

offline presente sulla toolbar principale.

AGENTDESKTOP.CONTACT.SetCallData

(

String ContactID, String CallData

)

Setta

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.

StartRecording(

SetCallData("2d-5e5fbc28@B2BUAEP.enghouse.com", "CUSTOMERID=12345");

AGENTDESKTOP.CONTACT.StartRecording

String ContactID, String

<CallRecorders>

<CallRecorders>, String

<CallData>)
Inizia registrazione chiamata telefonica

<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>)

<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:

  • "" (stringa vuota oppure parametro omesso): il parametro Destination conterrà un numero di telefono:
    AGENTDESKTOP.CONTACT.Transfer_Direct("2d-5e5fbc28@B2BUAEP.enghouse.com", "0227070001");
  • 1.3.6 (Agent) : il parametro Destination conterrà un identificativo di un operatore:
    AGENTDESKTOP.CONTACT.Transfer_Direct("2d-5e5fbc28@B2BUAEP.enghouse.com", "agent1@acd.enghouse.com", "1.3.6")
  • 1.3.1 (Interni) : il parametro Destination conterrà l'identificativo di un interno in uso da parte di un operatore:
    AGENTDESKTOP.CONTACT.Transfer_Direct("2d-5e5fbc28@B2BUAEP.enghouse.com", "80102@B2BUAEP.enghouse.com", "1.3.1")
  • 1.3.10 (Servizi): il parametro Destination conterrà l'identificativo di un servizo configurato sul sistema Contact:
    AGENTDESKTOP.CONTACT.Transfer_Direct("2d-5e5fbc28@B2BUAEP.enghouse.com", "SURVEY@sm.enghouse.com", "1.3.10")

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.

Anchor
_Toc426725959
_Toc426725959
Anchor
_Toc450223126
_Toc450223126
Gestione WIDGET

Funzione

Descrizione

AGENTDESKTOP.WIDGET.getToken

()

Restituisce il token ottenuto dalla login

SSO

Single Sign On di EasyCIM

AGENTDESKTOP.WIDGET.getTokenOneShot

()

Restituisce il token OneShot ottenuto dalla login

SSO

Single Sign On di EasyCIM

AGENTDESKTOP.WIDGET.getContainerID

()

Restituisce l'

ID

identificativo del WIDGET

AGENTDESKTOP.WIDGET.bindContactCallback(javascript function

callback

)

Effettua la bind di una

vostra

propria funzione javascript al fine di ricevere le notifiche sui contatti in gestione.

AGENTDESKTOP.WIDGET.unbindContactCallback(javascript function

callback

)

Effettua la unbind della vostra funzione

AGENTDESKTOP.WIDGET.bindWidgetDataCallback(function callback)

Effettua la bind di una vostra funzione 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  (o paradossalmente anche a se stessi se si specifica il proprio ID)

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:
dd/mm/yyyy – hh:mm:ss

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

...

WIDGET

...

...

Esempio di gestione di un evento CTI

Gli 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",
"event": "connectionstarted",
"event": "POPUP":
{
"event": "POPUP",
"eventPrevious": "connectionstarted",
"id": "1d-56cc5ff0@B2BUAGW1.reitek.com",
"uuid": "4fdab7ad-9cc5-42f2-b5cc-7a1def99ff8a",
"chat_id": "",
"type": "inbound",
"media_type": "telephony",
"content_type": "live",
"content_description": "",
"job_type": "inbound",
"job_state": "scheduled",
"service": "DefaultEnqueue",
"ani": "2270701",
"dnis": "225727113",
"queue": "QUEUE25",
"reason": "",
"primary_call": "",
"isACD": true,
"missed": false,
"other_id": "",
"startTime": 1456825081117,
"endTime": null,
"duration": "",
"startTime_hold": null,
"contactTimer": null,
"PopupShown": true,
"PopupShowing": true,
"PopupProposedShown": false,
"isChatStarted": false,
"connectionStarted": true,
"invite": false,
"join": false,
"dialing": false,
"ringing": false,
"hold": false,
"established": false,
"transferred": false,
"connectionCleared": false,
"partyChanged": false,
"held": false,
"retrieved": false,
"dataChanged": true,
"jobScheduled": true,
"jobStarted": false,
"jobFinished": false,
"jobProposed": false,
"jobSuspended": false,
"CallData": [
{
"name": "EC_MACROACTIVITY",
"value": "DEFAULT_INB"
},
{
"name": "CTHISTORY_1_Q",
"value": "QUEUE25@acd.reitek.com"
}
]
},
"event": "datachanged",
"event": "jobchanged",
"event": "ringing",
"event": "established",
"event": "jobstarted",
"event": "datachanged",
"event": "connectioncleared",
"event": "jobchanged", --> inizio stato offline, gestione acw da parte dell'operatore (proprietà "job_state": "offline")
"event": "jobfinished",
"event": "DELETE"

.
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).

...

Anchor
_Toc426725963
_Toc426725963
Anchor
_Toc450223130
_Toc450223130
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

Anchor
_Toc426725964
_Toc426725964
Anchor
_Toc450223131
_Toc450223131
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.
Title: titolo della finestra
Testo: contenuto della finestra (formato HTML)
Icon: Icona di Font Awesome nel formato fa fa-XXX fa-2x
Timeout: numero di secondi di visualizzazione. 0 per tenerlo fisso sullo schermo, liberamente chiudibile dall'utente.

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.
url: percorso del documento da integrare
width: larghezza in pixel della dialog
heigth: altezza in pixel della dialog

AGENTDESKTOP.ALERT.CustomDialogClose()

Chiude la finestra di dialogo custom aperta

Anchor
_Toc426725965
_Toc426725965
Anchor
_Toc450223132
_Toc450223132
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

Anchor
_Toc426725966
_Toc426725966
Anchor
_Toc450223133
_Toc450223133
Gestione chat

Funzione

Descrizione

AGENTDESKTOP.CHAT.SendText(String Text)

TODO

AGENTDESKTOP.CHAT.GetEvents(String ContactID)

Restituisce array contenente lista di eventi per l'ID del contatto specificato

Anchor
_Toc426725968
_Toc426725968
Anchor
_Toc450223134
_Toc450223134
Finestre di dialogo

Funzione

Descrizione

AGENTDESKTOP.UI.bindModalCallback(function callback)

Effettua la bind di una

vostra

propria funzione al fine di

gestire gli

essere notificati sugli eventi relativi all'apertura/chiusura di finestre di dialogo in AgentDesktop

AGENTDESKTOP.UI.unbindModalCallback(function callback)

Effettua la unbind della vostra funzione


AGENTDESKTOP.UI.triggerModalCallback(String param)

Scatena la vostra funzione di cui avete fatto la bind con bindModalCallback()