Beispiel #1
0
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;
}
Beispiel #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', '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;
}