Пример #1
0
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;
}
Пример #2
0
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;
}