Dynamische signalering in het belscript voor te lange gesprekstijden

Johan

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.

1 Comment

  1. Johan Bennink
    12 July, 2017

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

More great articles

Versiebeheer voor belscripts

Een belscript is niet veel meer dan een html pagina die tekst en uitleg geeft over de campagne. Het belscript…

Read Story

Extra opties voor belopdrachtstatussen

Ook de belopdrachtstatus instellingen krijgen enkele extra opties in de aankomende release v4.30 van CallPro. Als via het belscript het…

Read Story

Excel import gaat in de fout

Recent kreeg ik een vraag van een klant waarom CallPro kolommen met inhoud "1+3" niet kon importeren. Bij navraag bleek…

Read Story
Arrow-up