It allows to retrieve the call information
onDialingNumber
It retrieves the manual call information so the user can set a disposition for the call.
/**
* @description Manual dialing data
* @event onDialingNumber
* @param {JSON} callOutData {callout_id:uint, call_id:int, phoneNumber:String, camID:uint }
*/
function onDialingNumber(message) {
console.log("onDialingNumber", message);
document.getElementById("calloutTxt").value = message.callout_id;
document.getElementById("camIdTxt").value = message.camID;
document.getElementById("callIdTxt").value = message.call_id;
printToConsole("Calling " + message.phoneNumber + "...");
}
Call data
When the user receives a call, the method GetLastCallData returns this data structure.
/**
* @description Datos de la llamada en curso
* @param {json} callData {DNIS:String, IsQueueCall:bool, cal_key:String, callOut_id:Number, call_id:Number, cam_id:Number,
* contactData:Array, holdTime:bool, phoneNumber:String, port:int, wrapUpTime:int, typeCall:int, wrapUpTime: int }
* @example
* {
* DNIS: "",
* IsQueueCall: false,
* cal_key: "",
* callOut_id: 118,
* call_id: 110,
* cam_id: 1,
* contactData: ["Dato1","Dato2","Dato3","Dato4","Dato5"],
* holdTime: true,
* phoneNumber: "2005",
* port: 13,
* typeCall: 2,
* waitingTime: 0,
* wrapUpTime: 35
* }
*/
function onCallRecieved(callData) {
printToConsole("onCallRecieved");
console.log("onCallRecieved ", callData);
document.getElementById("dnisTxt").value = callData.DNIS;
document.getElementById("queuedTxt").value = callData.IsQueueCall;
document.getElementById("calKeyTxt").value = callData.cal_key;
document.getElementById("calloutTxt").value = callData.callOut_id;
document.getElementById("callIdTxt").value = callData.call_id;
document.getElementById("camIdTxt").value = callData.cam_id;
document.getElementById("data1Txt").value = callData.contactData[0];
document.getElementById("data2Txt").value = callData.contactData[1];
document.getElementById("data3Txt").value = callData.contactData[2];
document.getElementById("data4Txt").value = callData.contactData[3];
document.getElementById("data5Txt").value = callData.contactData[4];
document.getElementById("holdTxt").value = callData.holdTime;
document.getElementById("phoneTxt").value = callData.phoneNumber;
document.getElementById("portTxt").value = callData.port;
document.getElementById("callTypeTxt").value = callData.typeCall;
document.getElementById("wrapupTimeTxt").value = callData.wrapUpTime;
}
Last call data
The method GetLastCallData retrieves the data of the last call made from both inbound or outbound calls.
Note Inbound calls = 1 and Outbound calls= 2
/**
* @description Obtener los datos ultima llamada
* @example {
* call_id:1, cam_id:1, cal_key:"", callOut_id:0, DNIS:"1009",
* typeCall:1, //1 ACD
* IsQueueCall:0, holdTime:15, phoneNumber:"11078510", port:1, wrapUpTime:15,
* contactData:null
* }
* @example
* {
* DNIS: "",
* IsQueueCall: false,
* cal_key: "",
* callOut_id: 118,
* call_id: 110,
* cam_id: 1,
* contactData: ["Dato1","Dato2","Dato3","Dato4","Dato5"],
* holdTime: true,
* phoneNumber: "2005",
* port: 13,
* typeCall: 2,
* waitingTime: 0,
* wrapUpTime: 35
* }
* @fires CORE_APIEvents#onError estado invalido
* @link GetLastCallData
* @tutorial CallInformation
*/
function getLastCallData() {
let arrayx = nuxibaIntegration.GetLastCallData();
if (arrayx) {
console.log("getLastCallData", arrayx);
let arrayCallData = arrayx.contactData;
arrayx.call_id ? document.getElementById("callIdTxt").value = arrayx.call_id : document.getElementById("callIdTxt").value = "";
arrayx.IsQueueCall ? document.getElementById("queuedTxt").value = arrayx.IsQueueCall : document.getElementById("queuedTxt").value = "";
arrayx.cam_id ? document.getElementById("camIdTxt").value = arrayx.cam_id : document.getElementById("camIdTxt").value = "";
arrayx.holdTime ? document.getElementById("holdTxt").value = arrayx.holdTime : document.getElementById("holdTxt").value = "";
arrayx.DNIS ? document.getElementById("dnisTxt").value = arrayx.DNIS : document.getElementById("dnisTxt").value = "";
arrayx.phoneNumber ? document.getElementById("phoneTxt").value = arrayx.phoneNumber : document.getElementById("phoneTxt").value = "";
arrayx.cal_key ? document.getElementById("calKeyTxt").value = arrayx.cal_key : document.getElementById("calKeyTxt").value = "";
arrayx.port ? document.getElementById("portTxt").value = arrayx.port : document.getElementById("portTxt").value = "";
arrayx.typeCall ? document.getElementById("callTypeTxt").value = arrayx.typeCall : document.getElementById("callTypeTxt").value = "";
arrayx.wrapUpTime ? document.getElementById("wrapupTimeTxt").value = arrayx.wrapUpTime : document.getElementById("wrapupTimeTxt").value = "";
arrayx.callOut_id ? document.getElementById("calloutTxt").value = arrayx.callOut_id : document.getElementById("calloutTxt").value = "";
if (arrayCallData.length === 5) {
arrayCallData[0] ? document.getElementById("data1Txt").value = arrayCallData[0] : document.getElementById("data1Txt").value = "";
arrayCallData[1] ? document.getElementById("data2Txt").value = arrayCallData[1] : document.getElementById("data2Txt").value = "";
arrayCallData[2] ? document.getElementById("data3Txt").value = arrayCallData[2] : document.getElementById("data3Txt").value = "";
arrayCallData[3] ? document.getElementById("data4Txt").value = arrayCallData[3] : document.getElementById("data4Txt").value = "";
arrayCallData[4] ? document.getElementById("data5Txt").value = arrayCallData[4] : document.getElementById("data5Txt").value = "";
}
}
}
Update last call data
On the agent screen, there are 5 fields that the user can fill up with aditional information, to save that information into the database you will need the calloutId which can be obtained by the methods: onDialingNumber, onCallRecieved, the method GetLastCallData and of course, the 5 fields to update,
function onClickUpdateCallData() {
console.log("onClickUpdateCallData");
let callOutID, data1, data2, data3, data4, data5;
callOutID = document.getElementById("calloutTxt").value;
data1 = document.getElementById("data1Txt").value;
data2 = document.getElementById("data2Txt").value;
data3 = document.getElementById("data3Txt").value;
data4 = document.getElementById("data4Txt").value;
data5 = document.getElementById("data5Txt").value;
nuxibaIntegration.updateCallData(callOutID, data1, data2, data3, data4, data5);
}