function _moduleContent(&$smarty, $module_name) { //include module files include_once "modules/{$module_name}/configs/default.conf.php"; include_once "modules/{$module_name}/libs/paloSantoOverall_setting.class.php"; require_once "modules/{$module_name}/libs/JSON.php"; //include file language agree to elastix configuration //if file language not exists, then include language by default (en) $lang = get_language(); $base_dir = dirname($_SERVER['SCRIPT_FILENAME']); $lang_file = "modules/{$module_name}/lang/{$lang}.lang"; if (file_exists("{$base_dir}/{$lang_file}")) { include_once "{$lang_file}"; } else { include_once "modules/{$module_name}/lang/en.lang"; } //global variables global $arrConf; global $arrConfModule; global $arrLang; global $arrLangModule; $arrConf = array_merge($arrConf, $arrConfModule); $arrLang = array_merge($arrLang, $arrLangModule); //folder path for custom templates $templates_dir = isset($arrConf['templates_dir']) ? $arrConf['templates_dir'] : 'themes'; $local_templates_dir = "{$base_dir}/modules/{$module_name}/" . $templates_dir . '/' . $arrConf['theme']; //conexion resource $pDB = new paloDB($arrConf['cadena_dsn']); $pACL = new paloACL($arrConf['elastix_dsn']['acl']); //actions $action = getAction(); switch ($action) { case "update": $content = updateNotification($pDB); break; case 'refresh': $content = refreshNotification($pDB); break; case "update_rate": $content = updateRate($pDB, $pACL); break; case 'refresh_rate': $content = refreshRate($pDB, $pACL); break; default: // view_form $content = viewFormOverall_setting($smarty, $module_name, $local_templates_dir, $pDB, $arrConf); break; } return $content; }
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', 'refresh_rate'))) { $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': manejarSesionActiva_checkStatusmanejarSesionActiva_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; case 'refresh_rate': $sContenido = refreshRate(); 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; }