vtigerossez/include/js/asterisk.js
2013-01-30 21:51:28 -05:00

50 lines
1.6 KiB
JavaScript

/**
* this file will poll the vtiger_asteriskincomingcalls table
* for any incoming calls
*
* the variable ASTERISK_POLLTIME denotes the number of milli-seconds after which the crm gets polled
* the variable ASRERISK_DIV_TIMEOUT denotes the number of milli-seconds after which the incoming call information div times out (i.e. hidden)
*/
function _defAsteriskTimer(){
var asteriskTimer = null;
var ASTERISK_POLLTIME = 5000; //vtigercrm polls the asterisk server for incoming calls after every 3 seconds for now
var ASTERISK_INCOMING_DIV_TIMEOUT = 15; //the incoming call div is present for this number of seconds
function AsteriskCallback() {
var url = "module=PBXManager&action=PBXManagerAjax&file=TraceIncomingCall&mode=ajax&ajax=true";
new Ajax.Request(
'index.php',
{
queue: {position: 'end', scope: 'command'},
method: 'post',
postBody:url,
onComplete: function(response){
popupText = trim(response.responseText);
if(popupText != '' && popupText != 'failure'){
var div = popupText;
Popup_vtiger = _defPopup();
Popup_vtiger.content = div;
Popup_vtiger.displayPopup(Popup_vtiger.content,ASTERISK_INCOMING_DIV_TIMEOUT);
}
}
}
);
}
function AsteriskRegisterCallback(timeout) {
if(timeout == null) timeout = ASTERISK_POLLTIME;
if(asteriskTimer == null) {
AsteriskCallback();
asteriskTimer = setInterval(AsteriskCallback, timeout);
}
}
return {
registerCallback: AsteriskRegisterCallback,
pollTimer: ASTERISK_POLLTIME
};
}
AsteriskTimer = _defAsteriskTimer();
AsteriskTimer.registerCallback(AsteriskTimer.pollTimer);