function _moduleContent(&$smarty, $module_name) { global $arrConf; global $arrLang; require_once "modules/agent_console/libs/elastix2.lib.php"; require_once "modules/agent_console/libs/paloSantoConsola.class.php"; require_once "modules/agent_console/getinfo.php"; require_once "modules/agent_console/libs/JSON.php"; require_once "modules/{$module_name}/configs/default.conf.php"; require_once "modules/{$module_name}/libs/queue_waiting2.class.php"; // Directorio de este módulo $sDirScript = dirname($_SERVER['SCRIPT_FILENAME']); // Se fusiona la configuración del módulo con la configuración global $arrConf = array_merge($arrConf, $arrConfModule); /* Se pide el archivo de inglés, que se elige a menos que el sistema indique otro idioma a usar. Así se dispone al menos de la traducción al inglés si el idioma elegido carece de la cadena. */ load_language_module($module_name); // Asignación de variables comunes y directorios de plantillas $sDirPlantillas = isset($arrConf['templates_dir']) ? $arrConf['templates_dir'] : 'themes'; $sDirLocalPlantillas = "{$sDirScript}/modules/{$module_name}/" . $sDirPlantillas . '/' . $arrConf['theme']; $smarty->assign("MODULE_NAME", $module_name); // Incluir todas las bibliotecas y CSS necesarios generarRutaJQueryModulo($smarty, $module_name); $sAction = ''; $sContenido = ''; $sAction = getParameter('action'); $oPaloConsola = new PaloSantoConsola(); switch ($sAction) { case 'checkStatus': $sContenido = agent_monitoring_checkStatus($module_name, $smarty, $sDirLocalPlantillas, $oPaloConsola); break; case 'queueWaitingStatus': $sContenido = queue_waiting_checkStatus($module_name, $smarty, $sDirLocalPlantillas, $oPaloConsola); break; case 'show_call_history': $sContenido = refreshCallHistory(); break; case "viewNote": $sContenido = viewNote(); break; case "viewDelivery": $sContenido = viewDelivery(); break; default: $sContenido = agent_monitoring_HTML($module_name, $smarty, $sDirLocalPlantillas, $oPaloConsola); break; } $oPaloConsola->desconectarTodo(); return $sContenido; }
function manejarSesionActiva($module_name, &$smarty, $sDirLocalPlantillas) { $sAction = ''; $sContenido = ''; $sAction = getParameter('action'); if (!in_array($sAction, array('', 'checkStatus', 'agentLogout', 'hangup', 'break', 'unbreak', 'transfer', 'confirm_contact', 'schedule', 'saveforms', 'call2phone', 'addCustomer', 'addNote', 'addDelivery', 'viewDelivery', 'addExternalNote', 'viewNote', 'show_call_history', 'update_customer', 'callOut', 'checkDeliveryPermission', 'viewCustomer', 'disableDelivery', 'enableDelivery', 'changePassword'))) { $sAction = ''; } // Se verifica si el agente sigue logoneado en la cola de Asterisk $sAgente = $_SESSION['callcenter']['agente']; $sExtension = $_SESSION['callcenter']['extension']; $oPaloConsola = new PaloSantoConsola($sAgente); $estado = $oPaloConsola->estadoAgenteLogoneado($sExtension); if ($estado['estadofinal'] != 'logged-in') { // Se marca el final de la sesión del agente en las tablas de auditoría $oPaloConsola->logoutAgente(); $_SESSION['callcenter'] = generarEstadoInicial(); } switch ($sAction) { case 'checkStatus': $sContenido = manejarSesionActiva_checkStatus($module_name, $smarty, $sDirLocalPlantillas, $oPaloConsola, $estado); break; case 'hangup': $sContenido = manejarSesionActiva_hangup($oPaloConsola); break; case 'agentLogout': $sContenido = manejarSesionActiva_agentLogout($oPaloConsola); break; case 'break': $sContenido = manejarSesionActiva_agentBreak($oPaloConsola); break; case 'unbreak': $sContenido = manejarSesionActiva_agentUnBreak($oPaloConsola); break; case 'transfer': //$sContenido = manejarSesionActiva_agentTransfer($oPaloConsola); $sContenido = agentTransfer($oPaloConsola); break; case 'viewDelivery': $sContenido = view_delivery(); break; case 'viewCustomer': $sContenido = view_customer(); break; case 'confirm_contact': $sContenido = manejarSesionActiva_confirmContact($oPaloConsola, $estado); break; case 'schedule': $sContenido = manejarSesionActiva_scheduleCall($oPaloConsola); break; case 'saveforms': $sContenido = manejarSesionActiva_saveForms($oPaloConsola, $estado); break; case 'call2phone': $sContenido = call2phone(); break; case 'addCustomer': $sContenido = addCustomer(); break; case 'addNote': $sContenido = addNote(); break; case 'addExternalNote': $sContenido = addExternalNote(); break; case 'viewNote': $sContenido = viewNote(); break; case 'addDelivery': $sContenido = addDelivery(); break; case 'checkDeliveryPermission': $sContenido = checkDeliveryPermission(); break; case 'disableDelivery': $sContenido = disableDelivery(); break; case 'enableDelivery': $sContenido = enableDelivery(); break; case 'changePassword': $sContenido = changePassword(); break; case 'update_customer': $sContenido = update_customer_HTML($sDirLocalPlantillas); break; case 'callOut': $sContenido = callOut_HTML($sDirLocalPlantillas); break; case 'show_call_history': $sContenido = refreshCallHistory(); break; default: if ($estado['estadofinal'] != 'logged-in') { // Para agente no logoneado, se redirecciona a la página de login Header('Location: ?menu=' . $module_name); $sContenido = ''; } else { $sContenido = manejarSesionActiva_HTML($module_name, $smarty, $sDirLocalPlantillas, $oPaloConsola, $estado); } break; } $oPaloConsola->desconectarTodo(); return $sContenido; }