In deze post laten we zien hoe je de Agent dynamisch kunt signalering dat de besprekstijd te lang wordt. In ons voorbeeld kijken we feitelijk naar de totale tijd dat de call op het scherm van de Agent staat. We zouden ook de meetwaarde kunnen aanpassen zodat alleen naar Live gesprekstijd wordt gekeken, of naar een ander meetwaarde, gesprekstijd is echter een veel gevraagde signalering.
Doordat CallPro voor de belscripts gebruik maakt van standaard HTML en javascript is het vrij eenvoudig om dit in een belscript in te bouwen. We maken hiervoor gebruik van een timer op het browser document object om een javascript functie op te roepen.
// Initialisatie: Wacht 5 seconden om het script de tijd te geven om zich volledig te initialiseren
var oTimer = window.setTimeout("Timer()", 5000);
Vervolgens maken we een javascript functie “Timer()” die de gesprekstijd in de gaten houdt. Hiervoor gebruiken we het CallPro objectmodel dat vanuit javascript kan worden gebruikt.
function Timer()
{
// Gebruik het CallPro objectmodel om de begintijd voor dit gesprek op te halen
var loScript = goCallPro.GetScript();
var loDialer = loScript.oDialer;
var loAttempt = loDialer.oDialAttempts;
// We gebruiken WaitBeginDate omdat het script hier ook "page refresh safe" mee wordt
var date = new Date(loAttempt.WaitBeginDate);
ScriptStartTime = date.getTime();
// Nu halen we nog de huidige tijd op
var date = new Date();
var ScriptNowTime = date.getTime();
// En bepalen we of het gesprek al te lang duurt
if(ScriptNowTime - ScriptStartTime > 90 * 1000)
{
// Ja, geef nu de signalering
$("div#ScriptTitleZone_CallHistoryTile>div").addClass("CallTooLong");
}
else
{
// Nee, reschedule nu de timer voro de volgende controle
oTimer = window.setTimeout("Timer()", 5000)
}
}
In dit voorbeeld wordt aan de “CallHistory” tile een extra CSS class toegekend die middels ene CSS animatie een signalering geeft. Hiervoor is de volgende CSS nodig:
<style>
.CallTooLong {
animation-name: calltoolong;
animation-duration: 3s;
animation-iteration-count: infinite;
}
@keyframes calltoolong {
0% {background-color:transparent; }
25% {background-color:red; }
75% {background-color:red; }
100% {background-color:transparent; }
}
</style>
Het eindresultaat ziet er dan als volgt uit als de signalering wordt geactiveerd.
Met dit code voorbeeld is het zeer eenvoudig om alternatieve controle te maken. De timer zorgt ervoor dat elke X seconden een javascript functie wordt uitgevoerd. Wat we in deze functie doen is aan ons, dat hoeft niet perse signalering te zijn. Ook de wijze van signalering ligt niet vast en zelfs de meetwaarde die we controleren kan wordne aangepast.
agent signaleringCSS animatiegesprekstijd signaleringScripting
Of als je de signalering wilt doen op basis van de duur van de wrapuptijd.
function Timer()
{
// Gebruik het CallPro objectmodel om de begintijd voor dit gesprek op te halen
var loScript = goCallPro.GetScript();
var loDialer = loScript.oDialer;
if(loDialer.dialingstate==4)
{
// We zitten in de wrapup fase
var loAttempt = loDialer.oDialAttempts;
// We gebruiken het begin van de wrapup fase
var date = new Date(loAttempt.GetWrapupDate());
ScriptWrapupTime = date.getTime();
// Nu halen we nog de huidige tijd op
var date = new Date();
var ScriptNowTime = date.getTime();
// En bepalen we of de wrapup al te lang duurt
if(ScriptNowTime - ScriptWrapupTime > 60 * 1000)
{
// Ja, geef nu de signalering
$("div#ScriptTitleZone_CallHistoryTile>div").addClass("CallTooLong");
}
else
{
// Nee, reschedule nu de timer voor de volgende controle
oTimer = window.setTimeout("Timer()", 5000)
}
}
else
{
// Nee, reschedule nu de timer voor de volgende controle
oTimer = window.setTimeout("Timer()", 5000)
}
}