示例#1
0
文件: index.php 项目: hardikk/HNH
function _moduleContent(&$smarty, $module_name)
{
    //include module files
    include_once "modules/{$module_name}/configs/default.conf.php";
    include_once "modules/{$module_name}/libs/paloSantoMissedCalls.class.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'];
    // cdr connection
    $dsn = generarDSNSistema('asteriskuser', 'asteriskcdrdb');
    $pDB_cdr = new paloDB($dsn);
    // call_center connection
    $pDB_callcenter = new paloDB($arrConf['cadena_dsn']);
    $pDBACL = new paloDB($arrConf['elastix_dsn']['acl']);
    if (!empty($pDBACL->errMsg)) {
        return "ERROR DE DB: {$pDBACL->errMsg}";
    }
    $pACL = new paloACL($pDBACL);
    if (!empty($pACL->errMsg)) {
        return "ERROR DE ACL: {$pACL->errMsg}";
    }
    //actions
    $action = getAction();
    switch ($action) {
        case 'call2phone':
            $content = call2phone();
            break;
        default:
            $content = reportMissedCalls($smarty, $module_name, $local_templates_dir, $pDB_callcenter, $pDBACL, $pACL, $arrConf, $pDB_cdr);
            break;
    }
    return $content;
}
示例#2
0
function _moduleContent(&$smarty, $module_name)
{
    //global variables
    global $arrConf;
    //folder path for custom templates
    $local_templates_dir = getWebDirModule($module_name);
    //conexion resource
    $pDB = new paloDB($arrConf['elastix_dsn']['elastix']);
    //return array("idUser"=>$idUser,"id_organization"=>$idOrganization,"userlevel"=>$userLevel1,"domain"=>$domain);
    global $arrCredentials;
    //actions
    $accion = getAction();
    switch ($accion) {
        case 'saveNew':
            $content = saveContact($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        case "saveEdit":
            $content = editContact($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        case 'uploadImageContact':
            $content = uploadImageContact($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        case 'deleteContacts':
            $content = deleteContacts($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        case 'uploadCSV':
            $content = uploadCSV($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        case 'templateContact':
            $content = templateContact($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        case "getImageExtContact":
            $content = getImageExtContact($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        case "getImageTmp":
            $content = getImageTmp($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        case "call2phone":
            $content = call2phone($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        case "transfer_call":
            $content = transferCALL($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
        default:
            $content = reportContact($smarty, $module_name, $local_templates_dir, $pDB, $arrConf);
            break;
    }
    return $content;
}
示例#3
0
文件: index.php 项目: hardikk/HNH
function _moduleContent(&$smarty, $module_name)
{
    //include elastix framework
    include_once "libs/paloSantoGrid.class.php";
    include_once "libs/paloSantoValidar.class.php";
    include_once "libs/paloSantoConfig.class.php";
    include_once "libs/misc.lib.php";
    include_once "libs/paloSantoForm.class.php";
    include_once "libs/paloSantoACL.class.php";
    //include module files
    include_once "modules/{$module_name}/configs/default.conf.php";
    include_once "modules/{$module_name}/libs/paloSantoAdressBook.class.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);
    $smarty->assign('MODULE_NAME', $module_name);
    //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'];
    $pConfig = new paloConfig("/etc", "amportal.conf", "=", "[[:space:]]*=[[:space:]]*");
    $arrConfig = $pConfig->leer_configuracion(false);
    $dsn_agi_manager['password'] = $arrConfig['AMPMGRPASS']['valor'];
    $dsn_agi_manager['host'] = $arrConfig['AMPDBHOST']['valor'];
    $dsn_agi_manager['user'] = '******';
    //solo para obtener los devices (extensiones) creadas.
    $dsnAsterisk = generarDSNSistema('asteriskuser', 'call_center');
    $pDB = new paloDB($arrConf['dsn_conn_database']);
    // address_book
    $pDB_2 = new paloDB($arrConf['dsn_conn_database2']);
    // acl
    $pDB_customer = new paloDB($arrConf['cadena_dsn']);
    // address_book
    $action = getAction();
    $content = "";
    switch ($action) {
        case "new":
            $content = new_adress_book($smarty, $module_name, $local_templates_dir, $pDB_customer, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
            break;
        case "cancel":
            header("Location: ?menu={$module_name}");
            break;
        case "commit":
            $content = save_adress_book($smarty, $module_name, $local_templates_dir, $pDB_customer, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk, true);
            break;
        case "edit":
            $content = view_adress_book($smarty, $module_name, $local_templates_dir, $pDB_customer, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk, true);
            break;
        case "show":
            $content = view_adress_book($smarty, $module_name, $local_templates_dir, $pDB_customer, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
            break;
        case "save":
            $content = save_adress_book($smarty, $module_name, $local_templates_dir, $pDB_customer, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
            break;
        case "delete":
            $content = deleteContact($smarty, $module_name, $local_templates_dir, $pDB_customer, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
            break;
        case "call2phone":
            $content = call2phone($smarty, $module_name, $local_templates_dir, $pDB_customer, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
            break;
        case "transfer_call":
            $content = transferCALL($smarty, $module_name, $local_templates_dir, $pDB, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
            break;
        default:
            $content = report_adress_book($smarty, $module_name, $local_templates_dir, $pDB_customer, $pDB_2, $arrLang, $arrConf, $dsn_agi_manager, $dsnAsterisk);
            break;
    }
    return $content;
}
示例#4
0
文件: index.php 项目: hardikk/HNH
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;
}