function viewFormConference($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $credentials)
{
    global $arrPermission;
    $error = "";
    $action = getParameter("action");
    $id_conf = getParameter("id_conf");
    if ($action == "view" || getParameter("edit") || getParameter("save_edit")) {
        if (!isset($id_conf)) {
            $error = _tr("Invalid conference");
        } else {
            $domain = getParameter('organization');
            if ($credentials['userlevel'] != 'superadmin') {
                $domain = $credentials['domain'];
            }
            $pConf = new paloConference($pDB, $domain);
            $Conf = $pConf->getConferenceById($id_conf);
            if ($Conf == false) {
                $error = $pConf->errMsg;
            } else {
                $Conf["confno"] = $Conf["ext_conf"];
                $smarty->assign("CONFNO", $Conf["ext_conf"]);
                if (!empty($Conf["startTime"]) && $Conf["startTime"] != "1900-01-01 12:00:00") {
                    $smarty->assign("SCHEDULE", "on");
                    $Conf["schedule"] = "on";
                }
                if (getParameter("save_edit")) {
                    $Conf = $_POST;
                } else {
                    if (!empty($Conf["startTime"]) && $Conf["startTime"] != "1900-01-01 12:00:00") {
                        $elap = strtotime($Conf["endtime"]) - strtotime($Conf["startTime"]);
                        $Conf["start_time"] = substr($Conf["startTime"], 0, -3);
                        $Conf["duration"] = floor($elap / 3600);
                        $Conf["duration_min"] = floor(fmod($elap, 3600) / 60);
                    }
                    $Conf["record_conf"] = empty($Conf["recordingformat"]) ? 'no' : $Conf["recordingformat"];
                    //adminopts
                    preg_match_all("/^aAs(i){0,1}(r){0,1}(M\\(([[:alnum:]_]+)\\)){0,1}(G\\((.*)\\)){0,1}\$/", $Conf["adminopts"], $match);
                    $Conf["moderator_options_1"] = empty($match[1][0]) ? "off" : "on";
                    $Conf["moderator_options_2"] = empty($match[2][0]) ? "off" : "on";
                    if (empty($match[3][0])) {
                        $Conf["moh"] = "";
                    } else {
                        $Conf["moh"] = $match[4][0];
                    }
                    if (empty($match[5][0])) {
                        $Conf["announce_intro"] = "";
                    } else {
                        $Conf["announce_intro"] = $Conf["intro_record"];
                    }
                    //useropts
                    preg_match_all("/^(i){0,1}(m){0,1}(w){0,1}(r){0,1}(M\\(([[:alnum:]_]+)\\)){0,1}(G\\((.*)\\)){0,1}\$/", $Conf["opts"], $matchu);
                    $Conf["user_options_1"] = empty($matchu[1][0]) ? "off" : "on";
                    $Conf["user_options_2"] = empty($matchu[2][0]) ? "off" : "on";
                    $Conf["user_options_3"] = empty($matchu[3][0]) ? "off" : "on";
                    $Conf["user_options_4"] = empty($matchu[4][0]) ? "off" : "on";
                }
            }
        }
    } else {
        if ($credentials['userlevel'] == 'superadmin') {
            if (getParameter("create_conference")) {
                $domain = getParameter('organization_add');
                //este parametro solo es selecionable cuando es el superadmin quien crea la ruta
            } else {
                $domain = getParameter('organization');
            }
        } else {
            $domain = $credentials['domain'];
        }
        $pConf = new paloConference($pDB, $domain);
        $domain = $pConf->getDomain();
        if (empty($domain)) {
            $error = _tr("Invalid Organization");
        } else {
            $smarty->assign("SCHEDULE", "on");
            //para que se muestren los destinos
            if (getParameter("create_conference")) {
                $Conf["schedule"] = "off";
                $Conf["duration"] = "1";
                $Conf["duration_min"] = "0";
                $Conf['start_time'] = date("Y-m-d H:i", strtotime(date("Y-m-d H:i") . " + 5 minutes"));
            } else {
                $Conf = $_POST;
            }
        }
    }
    if ($error != "") {
        $smarty->assign("mb_title", _tr("ERROR"));
        $smarty->assign("mb_message", _tr("Invalid Action"));
        return reportRG($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials);
    }
    $arrRecording = $pConf->getRecordingsSystem($domain);
    $arrForm = createFieldForm($arrRecording, $pConf->getMoHClass($domain));
    $oForm = new paloForm($smarty, $arrForm);
    //permission
    $smarty->assign("EDIT_CONF", in_array('edit_conf', $arrPermission));
    if ($action == "view") {
        $oForm->setViewMode();
    } else {
        if (getParameter("edit") || getParameter("save_edit")) {
            $oForm->setEditMode();
        }
    }
    $smarty->assign("REQUIRED_FIELD", _tr("Required field"));
    $smarty->assign("CANCEL", _tr("Cancel"));
    $smarty->assign("APPLY_CHANGES", _tr("Apply changes"));
    $smarty->assign("SAVE", _tr("Save"));
    $smarty->assign("EDIT", _tr("Edit"));
    $smarty->assign("DELETE", _tr("Delete"));
    $smarty->assign("CONFIRM_CONTINUE", _tr("Are you sure you wish to continue?"));
    $smarty->assign("MODULE_NAME", $module_name);
    $smarty->assign("id_conf", $id_conf);
    $smarty->assign("USERLEVEL", $credentials['userlevel']);
    $smarty->assign("ORGANIZATION_LABEL", _tr("Organization Domain"));
    $smarty->assign("ORGANIZATION", $domain);
    $smarty->assign("announce", _tr("Announce Join/Leave"));
    $smarty->assign("record", _tr("Record"));
    $smarty->assign("listen_only", _tr("Listen Only"));
    $smarty->assign("wait_for_leader", _tr("Wait for Leader"));
    $htmlForm = $oForm->fetchForm("{$local_templates_dir}/new.tpl", _tr("Conference"), $Conf);
    $content = "<form  method='POST' style='margin-bottom:0;' action='?menu={$module_name}'>" . $htmlForm . "</form>";
    return $content;
}
function reloadAasterisk($smarty, $module_name, $local_templates_dir, &$pDB, $arrConf, $credentials)
{
    $showMsg = false;
    $continue = false;
    /*if($arrCredentiasls['userlevel']=="other"){
          $smarty->assign("mb_title", _tr("ERROR"));
          $smarty->assign("mb_message",_tr("You are not authorized to perform this action"));
      }*/
    $idOrganization = $credentials['id_organization'];
    if ($credentials['userlevel'] == "superadmin") {
        $idOrganization = getParameter("organization_id");
    }
    if ($idOrganization == 1) {
        return reportRG($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials);
    }
    $query = "select domain from organization where id=?";
    $result = $pDB->getFirstRowQuery($query, false, array($idOrganization));
    if ($result === false) {
        $smarty->assign("mb_title", _tr("ERROR"));
        $smarty->assign("mb_message", _tr("Asterisk can't be reloaded. ") . _tr($pDB->errMsg));
        $showMsg = true;
    } elseif (count($result) == 0) {
        $smarty->assign("mb_title", _tr("ERROR"));
        $smarty->assign("mb_message", _tr("Asterisk can't be reloaded. ") . _tr("Invalid Organization. "));
        $showMsg = true;
    } else {
        $domain = $result[0];
        $continue = true;
    }
    if ($continue) {
        $pAstConf = new paloSantoASteriskConfig($pDB);
        if ($pAstConf->generateDialplan($domain) === false) {
            $pAstConf->setReloadDialplan($domain, true);
            $smarty->assign("mb_title", _tr("ERROR"));
            $smarty->assign("mb_message", _tr("Asterisk can't be reloaded. ") . $pAstConf->errMsg);
            $showMsg = true;
        } else {
            $pAstConf->setReloadDialplan($domain);
            $smarty->assign("mb_title", _tr("MESSAGE"));
            $smarty->assign("mb_message", _tr("Asterisk was reloaded correctly. "));
        }
    }
    return reportRG($smarty, $module_name, $local_templates_dir, $pDB, $arrConf, $credentials);
}