| en los acuerdos de confidencialidad los cuales son parte de las | | políticas internas de Palosanto Solutions S. A. | | Si Ud. está viendo este archivo y no tiene autorización explícita | | de hacerlo, comuníquese con nosotros, podría estar infringiendo | | la ley sin saberlo. | +----------------------------------------------------------------------+ | Autores: Gladys Carrillo B. <*****@*****.**> | +----------------------------------------------------------------------+ $Id: paloSantoInstaller.class.php,v 1.1 2007/09/05 00:25:25 gcarrillo Exp $ */ $elxPath = "/usr/share/elastix"; require_once "{$elxPath}/libs/paloSantoDB.class.php"; require_once "{$elxPath}/libs/paloSantoModuloXML.class.php"; require_once "{$elxPath}/libs/misc.lib.php"; // La presencia de MYSQL_ROOT_PASSWORD es parte del API global. define('MYSQL_ROOT_PASSWORD', obtenerClaveConocidaMySQL('root')); class Installer { var $_errMsg; function createNewDatabase($path_script_db, $sqlite_db_path, $db_name) { $comando = "cat {$path_script_db} | sqlite3 {$sqlite_db_path}/{$db_name}.db"; exec($comando, $output, $retval); return $retval; } function createNewDatabaseMySQL($path_script_db, $db_name, $datos_conexion) { $root_password = MYSQL_ROOT_PASSWORD; $db = 'mysql://*****:*****@localhost/'; $pDB = new paloDB($db); $sPeticionSQL = "CREATE DATABASE {$db_name}";
/** * Función para construir un DSN para conectarse a varias bases de datos * frecuentemente utilizadas en Elastix. Para cada base de datos reconocida, se * busca la clave en /etc/elastix.conf o en /etc/amportal.conf según corresponda. * * @param string $sNombreUsuario Nombre de usuario para interrogar * @param string $sNombreDB Nombre de base de datos para DNS * @param string $ruta_base Ruta base para inclusión de librerías * * @return mixed NULL si no se reconoce usuario, o el DNS con clave resuelta */ function generarDSNSistema($sNombreUsuario, $sNombreDB, $ruta_base = '') { require_once $ruta_base . 'libs/paloSantoConfig.class.php'; switch ($sNombreUsuario) { case 'root': $sClave = obtenerClaveConocidaMySQL($sNombreUsuario, $ruta_base); if (is_null($sClave)) { return NULL; } return 'mysql://*****:*****@localhost/' . $sNombreDB; case 'asteriskuser': $pConfig = new paloConfig("/etc", "amportal.conf", "=", "[[:space:]]*=[[:space:]]*"); $listaParam = $pConfig->leer_configuracion(FALSE); return $listaParam['AMPDBENGINE']['valor'] . "://" . $listaParam['AMPDBUSER']['valor'] . ":" . $listaParam['AMPDBPASS']['valor'] . "@" . $listaParam['AMPDBHOST']['valor'] . "/" . $sNombreDB; } return NULL; }
/** * Función para construir un DSN para conectarse a varias bases de datos * frecuentemente utilizadas en Elastix. Para cada base de datos reconocida, se * busca la clave en /etc/elastix.conf o en /etc/amportal.conf según corresponda. * * @param string $sNombreUsuario Nombre de usuario para interrogar * @param string $sNombreDB Nombre de base de datos para DNS * * @return mixed NULL si no se reconoce usuario, o el DNS con clave resuelta */ function generarDSNSistema($sNombreUsuario, $sNombreDB) { global $elxPath; require_once "{$elxPath}/libs/paloSantoConfig.class.php"; switch ($sNombreUsuario) { case 'root': $sClave = obtenerClaveConocidaMySQL($sNombreUsuario); if (is_null($sClave)) { return NULL; } return 'mysql://*****:*****@localhost/' . $sNombreDB; case 'asteriskuser': $sClave = obtenerClaveConocidaMySQL($sNombreUsuario); if (is_null($sClave)) { return NULL; } else { return "mysql://*****:*****@localhost/' . $sNombreDB; } } return NULL; }
| El acceso a este documento está restringido según lo estipulado | | en los acuerdos de confidencialidad los cuales son parte de las | | políticas internas de Palosanto Solutions S. A. | | Si Ud. está viendo este archivo y no tiene autorización explícita | | de hacerlo, comuníquese con nosotros, podría estar infringiendo | | la ley sin saberlo. | +----------------------------------------------------------------------+ | Autores: Gladys Carrillo B. <*****@*****.**> | +----------------------------------------------------------------------+ $Id: paloSantoInstaller.class.php,v 1.1 2007/09/05 00:25:25 gcarrillo Exp $ */ require_once "paloSantoDB.class.php"; require_once "paloSantoModuloXML.class.php"; require_once "misc.lib.php"; // La presencia de MYSQL_ROOT_PASSWORD es parte del API global. define('MYSQL_ROOT_PASSWORD', obtenerClaveConocidaMySQL('root', '/var/www/html/')); class Installer { var $_errMsg; function Installer() { } function addMenu($oMenu, $arrTmp) { //verificar si tiene que crear un nuevo menu raiz $parentId = isset($arrTmp['parent']) ? $arrTmp['parent'] : ""; $link = isset($arrTmp['link']) ? $arrTmp['link'] : ""; $order = isset($arrTmp['order']) ? $arrTmp['order'] : "-1"; $tag = isset($arrTmp['tag']) ? $arrTmp['tag'] : ""; $menuid = isset($arrTmp['menuid']) ? $arrTmp['menuid'] : ""; if ($parentId == "") {
/** Retorna un array de extensiones de la PBX no utilizadas como callback extensions. */ public function getUnusedExtensions() { // Consultar todas las extensiones disponibles $sPwdFreepbx = obtenerClaveConocidaMySQL('asteriskuser'); if (is_null($sPwdFreepbx)) { $this->errMsg = 'No se puede leer clave DB para FreePBX'; return NULL; } // BUG del framework: para asteriskuser se devuelve un array if (is_array($sPwdFreepbx)) { $sPwdFreepbx = $sPwdFreepbx['valor']; } $dsn = "mysql://*****:*****@localhost/asterisk"; $dbFreepbx = new paloDB($dsn); if ($dbFreepbx->connStatus) { $this->errMsg = 'No se puede conectar a DB para FreePBX'; return NULL; } $extensiones = array(); $recordset = $dbFreepbx->fetchTable('SELECT data FROM sip WHERE keyword = "Dial" UNION ' . 'SELECT data FROM iax WHERE keyword = "Dial"', TRUE); if (!is_array($recordset)) { $this->errMsg = 'No se pueden consultar extensiones en FreePBX - ' . $dbFreepbx->errMsg; return NULL; } foreach ($recordset as $tupla) { $extensiones[$tupla['data']] = $tupla['data']; } $dbFreepbx = NULL; // Quitar de la lista las extensiones ya registradas $listaAgentes = $this->getAgents(); if (!is_array($listaAgentes)) { return NULL; } foreach ($listaAgentes as $agente) { $k = $agente['type'] . '/' . $agente['number']; if (isset($extensiones[$k])) { unset($extensiones[$k]); } } return $extensiones; }