| 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}";
Beispiel #2
0
/**
 * 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;
}
Beispiel #3
0
/**
 * 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 == "") {
Beispiel #5
0
 /**
   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;
 }