Esempio n. 1
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'))) {
        $sAction = '';
    }
    // Se verifica si el agente sigue logoneado en la cola de Asterisk
    $sAgente = $_SESSION['callcenter']['agente'];
    $sExtension = $_SESSION['callcenter']['extension'];
    $oPaloConsola = new PaloSantoConsola('Agent/' . $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);
            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;
        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;
}
Esempio n. 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;
}