Hagamos que México crezca..

Prefiere el consumo de lo Hecho en México

Visitantes








Conversación

  • Samantha Santin: ola me pueden ayudar con lo basico para un examen de linux , estoy en 10 mo de basica , por favor , gracias  
  • alexandra: hola...tengo problemas para configurar las llamadas y crear los troncales....uso elastix 2.0.3 con asterisk 1.6...y soy nueva en esto..puedo relizar llamadas dentro de una misma oficina, pero no puedo sacarlas fuera, es decir locales e internacionales...necesito asesoria...gracias  
  • Ben: Welcome to visit www.vogue4biz.com and www.seekjersey.com! Wholesale Jordan Shoes and NFL/NHL jerseys!New Arrival ! Free Shipping !
    Consequently, a Avirex jacket variety evolved into winner fashion4biz already in the market, mainly with their variety of air travel puma shoes women jackets which in turn for the most part mimics those of journey outdoor jackets put on around WWII. Due to its results, Avirex make have in addition enhanced by jackets to other common attire outlines including t shirts, hoodies, along with jeans.
    A great number of completely new attire lines also gained plenty of celebrity inside entertainment world. To its captivating pattern in addition to level of quality attire, Avirex includes received its own head connected with celebrity followers which include: Ruben Travolta, Will certainly Henderson, Puffy Hair combs, Chad Good ole', Shaquille O'Neal, Busta Rhymes,, puma shoes ladies Sylvester Stallone, Missy Elliott, Eminem, Nas, All 5, Procedure Guy,, Make Nubian, Lmost all Awesome L, David Cena, as well as Georgio Armani. Start off your individual from suppliers avirex company by www.vogue4biz.com
    Avirex regarding todayIn women s puma shoes 2008, this Avirex make has been bought in 3 entire ladies puma shoes suede puma shoes world districts, United states of america, European countries puma shoe sale along with The japanese. A brand new owner of Avirex brand in the us cat puma shoes can be Draw Ecko Corporation. According to a lot of people, each one districts possess their own libraries regarding Avirex garments range. Not really a pair of parts get identical types associated with outfits. His or her just likeness is with their particular usage of brand.
    Even puma ladies shoes so, the availability associated with flight handling outdoor jackets were quit afterwards that year. In line with Mark, all of Avirex printed government and timeless apparel had been discontinued along with used a new Clymans firm, Cockpit U . s .. Start out your own from suppliers avirex company by Sevenwholesale.com.  
  • Fernando Hernández: Hey! Ya no estan disponibles los posts sobre facturación electrónica en México, podrías pasarme el tutorial o la clase en php? Por favoooor. Gracias  
  • daniel nuñez: buenas soy de venezuela y tengo una duda yo lo que quiero es hacer una iso debian que tenga todos los paquetes necesarios completos y programas como synaptis fortran java los pluging de video y sonido ya instalados osea que tenga todo lo necesario instalado pero sin que sea una instalacion con un cd netinst, es posible ?  
  • Cesar villegas: Buenas!!! oye no tienes programado algún curso?  
  • Urbano: Hola soy de Argentina.
    Desde hace un tiempo tengo instaldo Asterbilling SL y me parece un rpoyecto útil e interesante. Ahora me compré un AT 530 con la intension de pasar la tarifa al telefono pero seguramente algo estoy haciendo mal ya que despues de configurar el script con los datos del AMI; MySQL y ejecutar el comando que indica el manual.. no pasa nada, todo sigue igual y no se muestra la tarifa en la pantalla del telefono. Tal vez deba configurar algo tambien en el telefono.. la verdad no se, es que tampoco soy un experto en la materia. Les dejo algunos datos que talvez sean utilespara que me puedan ayudar: Tengo Elastíx 2.0.3 con Asterisk 1.6; FreePBX 2.7.0.3; A2Billing 1.8.1; Astercc 1.4 y Asterbilling SL. Espero que me puedan ayudar; desde ya muchas gracias.  
  • kike: Oye filein.. necesito una cotización de unas FxO para analógicas porfa..
    saludos  
  • cristy: hola por favor tengo problemas para conectar agi con asterisk me sale un error de broken pipe, sabes de que se trata???  
  • Jose: Heyu como podria funcionar con el CM15?
    Gracias  

Escribe el código Captcha que estás viendo

Software Libre

  • Arreglando el tamaño de las fuentes en Ubuntu Linux

    Hace tiempo tenía un problema en el inicio de sesión de mi computadora con Ubuntu Linux, el detalle es que las letras se veían demasiado grandes, que solo 2 ó 3 renglones ocupaban toda la pantalla y no daba cuál era el error, pero como no me afectaba mucho ya que por default al iniciar sesión el cursor se coloca en el login y password, pues solo tecleaba mi login y mi contraseña, entraba a KDE y todo normal..
    Pero hace unos días quise instalar NetBeans 6.5 y al ejecutar el instalador lanzaba una ventana gráfica que igual me mostraba las letras muy grandes de tal forma que solo la palabra Next me ocupaba toda la ventana, y cuándo quería leer las condiciones para aceptarlas no podía, por lo que me puse a buscar cuál era el error de las benditas fuentes grandotototas y encontré la respuesta en el siguiente blog:
    http://www.vicente-navarro.com/blog/2007/10/27/los-dpi-en-pantalla-en-windows-y-linux/
    El detalle fué que los DPI estaban mal configurados en mis gestor de inicio de sesión KDM, para esto lo único que tuve que hacer fué editar el siguiente archivo:
    /etc/kde3/kdm/kdmrc
    Y en el valor ServerArgsLocal
    Agregar al final
    -dpi 100
    de tal forma que quedó así
    ServerArgsLocal=-nolisten tcp -dpi 100
    Con esto ya asigné los DPI(Dots Per Inch) al servidor X Windows, con esto ya resolví mi problema de las letras GRANDOTOTOTAS en el inicio de sesión y ya pude instalar NetBeans 6.5 con todos los plugins para empezar a usarlo en vez de Eclipse.
  • Método rápido para agregar sentencias de escape a datos capturados en PHP

    Leyendo hace unos días sobre los 25 errores más graves de la programación web en http://www.sans.org/top25errors/#cat1, veo que uno de los primeros es no validar datos de entrada y de ahí que pueda darse la inyección de código, inyección sql, ejecución de comandos sobre el servidor entre otras cosas..
    Una forma rápida de evitar la inyección de código es crear sentencias de escape sobre los datos capturados, esto para que no se pueda crear una finalización de consulta sql, por ejemplo:
    En php para validar un login y password es muy común hacer esto:
    " select * from users where login=\"$_POST[login]\" and password=md5($_POST[\"password\"]) "
    Si no validamos los datos de entrada aquí estuviera un posible error y agujero de seguridad para inyección sql, por lo que el primer paso que se me ocurre rápidamente es agregar sentencias de escape tal como en el siguiente código..
       function escapeInputData($_array){
            //echo count($_array);
            foreach(array_keys($_array) as $key){
                    if(is_array($_array[$key])){
                            $_array[$key] = escapeInputData($_array[$key]);
                    }else{
                            $_array[$key] = addslashes($_array[$key]);
                    }
            }
            return $_array;
        }
     
    Este código se tendría que llamar al principio de cada archivo php que use variables por POST o GET, de tal forma que su uso sería
    $_POST = escapeInputData($_POST);
    $_GET = escapeInputData($_GET);
    Con esto estamos procesando los valores de POST y GET y les agregamos sentencias de escape cuándo asi lo amerite..
  • Tutorial de Como Instalar la ultima version de Asterisk PBX 1.4.23.1 con soporte de DAHDI y FreePBX 2.5.1 en Ubuntu Server

    Tutorial de como instalar la última versión de Asterisk PBX 1.4.23.1 y el administrador web FreePBX 2.5.1 para crear un conmutador de Voz sobre IP Open Source con soporte de IVRs, DISA, Fax Virtual, Grupos de Marcación, Marcación por Horarios, Troncales VoIP, DAHDI, Correos de Voz, Grabación de llamadas, Ruteo de llamadas entrantes y salientes entre otras muchas características de este gran magnífico conmutador de VoIP Asterisk y la mancuerna perfecta FreePBX para su administración desde una aplicación web.
    #Procedimiento para Instalar Asterisk VoIP en Ubuntu Server
    # Servidor:                        Ubuntu Server 8.04 TLS
    # Conmutador de VoIP :    Asterisk asterisk-1.4.23.1
    # Admninistrador Web  :    FreePBX 2.5.1
    #Cambiamos el password de root despues de instalar Ubuntu Server
    ~$ sudo passwd root
    #Actualizamos el repositorio de Ubuntu
    ~$ sudo apt-get update
    #Lo primero que instalamos es un servidor SSH para que podamos conectarnos desde cualquier parte
    ~$ sudo apt-get install --yes openssh-server ssh openssl
    #Creamos un directorio dónde descargaremos los archivos necesarios para la instalación
    ~$ mkdir asterisk
    ~$ cd asterisk
    #   Instalar librerias para acceso via SSH
    sudo apt-get install --yes openssl libssl-dev ssh
    #    librerías de compilación de software, sirve para compilar Asterisk
    sudo apt-get install --yes gcc make g++
    #    verificar que versiones de kernel tengo instalado en el servidor
    uname -a
    #   el comando me regresa algo como esto
    Linux CloudVooxServer 2.6.27-7-generic #1 SMP Fri Oct 24 06:42:44 UTC 2008 i686 GNU/Linux

    #          Buscar las fuentes del kernel con las versiones instaladas en el server  2.6.17
    apt-cache search 2.6.27-7-generic
    #           Instalamos los encabezados para el kernel 2.6.17 especificos para el procesador (linux-headers-2.6.17-10-generic , linux-source-2.6.17 , linux-image-2.6.17-10-generic )
     sudo apt-get install --yes  linux-headers-2.6.27-7-generic linux-source-2.6.27 linux-image-2.6.27-7-generic
    #          Instalamos algunas utilerias de linux, Lynx es un navegador web de texto, nmap es sniffer depuertos, emacs es un editor de textos potente aunque puedes usar editor instalado ya en Ubuntu y sencillo de usar
    sudo apt-get install --yes nmap lynx emacs21
    #          Festival son paquetes para el manejo de texto a voz en diversos Idiomas, y funcionará con asterisk para hacer aplicaciones de texto a voz
    sudo apt-get install --yes festival festival-dev
    #          Librerias para poder usar la consola de asterisk
    sudo apt-get install --yes ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev
    #          Librerias de compresion para Asterisk
    sudo apt-get install --yes zlib1g zlib1g-dev
    #         librerias requeridas por el servicio web de FreePBX
    sudo apt-get install --yes bison bison-doc libxml2 libxml2-dev libtiff4 libtiff4-dev
    #        librerias requeridas por el servicio web de FreePBX
    sudo apt-get install --yes libasound2 libgsm1 libltdl7 libpq5 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev mpg123
    #          En caso que se vaya a usar una tarjeta sangoma, se requiere instalar flex para que funcione el driver wanpipe
    sudo apt-get install --yes flex
    #         Librerias requeridas por Asterisk para el manejo de ayuda y de extraccion de archivos del CVS
    sudo apt-get install --yes subversion curl doxygen
    #         librerias requeridas por el servicio web de FreePBX
    sudo apt-get install --yes libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl
    #Si desean incorporar envios de SMS desde Asterisk
    sudo apt-get install libgnokii3 libgnokii3-dev  gnokii  gnokii-common gnokii-cli gnokii-smsd  gnokii-smsd-mysq
    #         Servidor web para FreePBX
    sudo apt-get install --yes apache2
    #         Librerias requeridas por el servicio web de FreePBX
    sudo apt-get install --yes php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl ph5-gd php-db
    #         Base de datos para el CDR y FreePBX
    sudo apt-get install --yes mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev

    #****Instalacion conjunta*******
    sudo apt-get install --yes openssl libssl-dev ssh  &&
    sudo apt-get install --yes gcc make g++ &&
     sudo apt-get install --yes  linux-headers-2.6.27-7-generic linux-source-2.6.27 linux-image-2.6.27-7-generic &&
    sudo apt-get install --yes nmap lynx emacs21 &&
    sudo apt-get install --yes festival festival-dev &&
    sudo apt-get install --yes ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev &&
    sudo apt-get install --yes zlib1g zlib1g-dev &&
    sudo apt-get install --yes bison bison-doc libxml2 libxml2-dev libtiff4 libtiff4-dev &&
    sudo apt-get install --yes libasound2 libgsm1 libltdl7 libpq5 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev mpg123 &&
    sudo apt-get install --yes flex &&
    sudo apt-get install --yes subversion curl doxygen &&
    sudo apt-get install --yes libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl &&
    sudo apt-get install --yes apache2 &&
    sudo apt-get install --yes php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db &&
    sudo apt-get install --yes mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev
    #****Instalacion conjunta*******
    #   despues de instalar MySQL probablemente nos pedira una configuracion como la siguiente
       2. Configurar como Internet Site
       3. localhost.localdomain
             
           
    ****        
             2da Parte.. Compilacion e Instalacion de Asterisk 1.4 + FreePBX
       
    **        
    #    creamos un repositorio local para almacenar los archivos fuente de asterisk
    mkdir ~/asterisk
    cd asterisk
    #   Comenzamos a obtener los archivos y los almacenamos en el directorio creado requeridos para Asterisk
    #   Obtenemos los archivos para Asterisk 1.4, ir al directorio http://asterisk.org/downloads y descargar los archivos de la version 1.4
    #asterisk-perl
    wget http://www.cpan.org/modules/by-category/25_Bundles/Asterisk/asterisk-perl-0.10.tar.gz
    #sox
    wget http://superb-east.dl.sourceforge.net/sourceforge/sox/sox-14.2.0.tar.gz
    #lame
    wget http://internap.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz
    #freepbx
    wget http://mirror.freepbx.org/freepbx-2.5.1.tar.gz
    #asterisk
    wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.23.1.tar.gz
    #sounds
    wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-gsm-current.tar.gz &&
    wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-gsm-current.tar.gz  &&
    wget http://downloads.digium.com/pub/telephony/sounds/asterisk-moh-freeplay-gsm.tar.gz
    #DAHDI
    wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz &&
    wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz
    #addons
    wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz
    #libpri
    wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
    #spandsp
    wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.3.tgz
    #obtenemos func_devstate.c
    wget http://svn.digium.com/view/asterisk/trunk/funcs/func_devstate.c?revision=81784&view=co&pathrev=81784
    mv http://svn.digium.com/view/asterisk/trunk/funcs/func_devstate.c?revision=81784&view=co&pathrev=81784 func_devstate.c
    ###**Descarga conjunta****
    wget http://www.cpan.org/modules/by-category/25_Bundles/Asterisk/asterisk-perl-0.10.tar.gz  &&
    wget http://superb-east.dl.sourceforge.net/sourceforge/sox/sox-14.2.0.tar.gz &&
    wget http://internap.dl.sourceforge.net/sourceforge/lame/lame-398-2.tar.gz &&
    wget http://mirror.freepbx.org/freepbx-2.5.1.tar.gz &&
    wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.23.1.tar.gz &&
    wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-gsm-current.tar.gz &&
    wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-gsm-current.tar.gz  &&
    wget http://downloads.digium.com/pub/telephony/sounds/asterisk-moh-freeplay-gsm.tar.gz &&
    wget http://downloads.digium.com/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz &&
    wget http://downloads.digium.com/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz &&
    wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz &&
    wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz &&
    wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.3.tgz
    ###**Descarga conjunta****

    #     Instalamos el manipulador de Sonidos para Asterisk
            cd /usr/src/ &&
            sudo tar -xvzf ~/asterisk/lame-398-2.tar.gz &&
            cd lame-398-2 &&
            sudo ./configure --prefix=/usr --sysconfdir=/etc  &&
            sudo make && sudo make install
    #     Instalamos SOX, utileria para manejar los archivos de sonido en Asterisk
            cd /usr/src/ &&
            sudo  tar -xzvf ~/asterisk/sox-14.2.0.tar.gz &&
            cd sox-14.2.0 &&
            sudo ./configure &&
            sudo make && sudo make install
    #     Instalamos el gateway entre Asterisk y FreePBX
            cd /usr/src/ &&
            sudo tar -xzvf ~/asterisk/asterisk-perl-0.10.tar.gz &&
            cd asterisk-perl-0.10 &&
            sudo perl Makefile.PL &&
            sudo make all &&
            sudo make install
           
    #     Instalamos SpanDSP/softfax y parchamos asterisk
            cd /usr/src/ &&
            sudo tar -xzvf /home/cloudvoox/asterisk/spandsp-0.0.3.tgz &&
            cd spandsp-0.0.3 &&
            sudo  ./configure &&
            sudo make && sudo make install
           
    #Agregar el directorio  /usr/local/lib/ al LD_LIBRARY_PATH y también al archivo /etc/ld.so.conf y despues correr ldconfig
            sudo emacs /etc/ld.so.conf
                    include  /usr/local/lib/
            sudo ldconfig
    #     Instalamos FreeBX el Administrador Web de Asterisk, aqui podemos tambien instalar la version 2.2.1 en vez de la 2.1.1
            cd /usr/src &&
            sudo tar -xzvf ~/asterisk/freepbx-2.5.1.tar.gz &&
            cd freepbx-2.5.1/    
    #    Comenzamos a instalar la Base de Datos para el Administrador Web FreePBX y para los CDR.
    #    Iniciacilizacion de la implementacion de Bases de Datos en Mysql para Asterisk
    #   Accedemos a MySQL si no han configurado su 4st3r1sk de root mysql, solo presionar Enter
    mysql -u root -p
       ENTER
       show databases;
       use mysql ;
       show tables;
       select * from user;
    #   Creamos las bases de datos  para FreePBX y para el CDR, cambiamos los 4st3r1sk de root y creamos un usuario para Asterisk
       
       update user set 4st3r1sk = 4st3r1sk("4st3r1sk") where user = "root";
       create database asteriskcdrdb;
       create database asterisk;
       grant all privileges on asteriskcdrdb.* to asterisk@localhost identified by "4st3r1sk";
       grant all privileges on asterisk.* to asterisk@localhost identified by "4st3r1sk";
       flush privileges;
       exit;
    #   Pasamos el esquema y la informacion de los scripts de bases de datos por default de FreePBX
            mysql -u asterisk -p4st3r1sk asterisk < /usr/src/freepbx-2.5.1/SQL/newinstall.sql &&
            mysql -u asterisk -p4st3r1sk asteriskcdrdb < /usr/src/freepbx-2.5.1/SQL/cdr_mysql_table.sql
    #   Termina la implementacion de Bases de Datos en Mysql para Asterisk
    #   creacion del usuario y grupo que manejara los procesos de asterisk
    sudo groupadd asterisk
    sudo useradd -c "Asterisk PBX" -d /var/lib/asterisk -g asterisk asterisk
    sudo mkdir /var/run/asterisk
    sudo chown asterisk:asterisk /var/run/asterisk
    #   Cambiamo el usuario propietario de Apache ,para guardar presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c
    sudo emacs /etc/group
    www-data:x:33:asterisk
    #   editamos el archivo de apache
    sudo emacs /etc/apache2/envvars
    #en emacs para buscar, presionar Ctrl+s y  cambiar de www-data a asterisk
    export APACHE_RUN_USER=www-data
    export APACHE_RUN_GROUP=www-data
    #   por
    export APACHE_RUN_USER=asterisk
    export APACHE_RUN_GROUP=asterisk
    #   guardamos para guardar es presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c
    #   cambiamos los permisos para el directorio de sesiones de PHP
      sudo chown -R asterisk /var/lib/php5
    #   edicion de php para aumentar el tama?o de archivos que se suben al servidor web
            sudo emacs /etc/php5/apache2/php.ini
                    default_charset = "utf8"
                   
                    magic_quotes_gpc = off
                    upload_max_filesize = 32M
                    max_execution_time = 300
                    max_input_time = 300
                    memory_limit = 128M
           
    #   creamos un directorio para la instalacion de los paquetes de Asterisk
      sudo mkdir /usr/src/asterisk
      cd /usr/src/asterisk
    # libreria o drivers para tarjetas line PRI en caso de que se usen tarjetas de ese tipo
        sudo tar -xzvf ~/asterisk/libpri-1.4-current.tar.gz  
    #  librerias o drivers para tarjetas ZAPTEL  en caso de que se usen tarjetas digium
       sudo tar -xzvf ~/asterisk/dahdi-linux-current.tar.gz  && ~/asterisk/dahdi-tools-current.tar.gz  
    #   El PBX Asterisk
       sudo tar -xzvf ~/asterisk/asterisk-1.4.23.1.tar.gz        
    #   utilerias de asterisk(cdr, rep music on hold. etc)
       sudo tar -xzvf ~/asterisk/asterisk-addons-1.4-current.tar.gz
    #   archivos de IVR por default
        sudo mkdir sounds &&
        cd sounds &&
        sudo tar -xzvf ~/asterisk/asterisk-core-sounds-en-gsm-current.tar.gz &&
        sudo tar -xzvf ~/asterisk/asterisk-moh-freeplay-gsm.tar.gz &&
        sudo tar -xzvf ~/asterisk/asterisk-extra-sounds-en-gsm-current.tar.gz
    #   Iniciamos la compilacion de las librerias PRI (aunque no se usaran)
       cd /usr/src/asterisk &&
       cd /usr/src/asterisk/libpri-1.4.9/  &&
       sudo make & sudo make install
    #   Compilamos las librerias de DAHDI
       cd /usr/src/asterisk/dahdi-linux-2.1.0.3/ &&
       sudo make clean &&
       sudo make &&  sudo make install
       
       cd  /usr/src/asterisk/dahdi-tools-2.1.0.2/ &&
       ./configure &&
       sudo make &&
       sudo make install  &&
       sudo make config
    # compilacion de Asterisk
       cd /usr/src/asterisk/asterisk-1.4.23.1 &&
       sudo cp ~/asterisk/func_devstate.c apps/func_devstate.c &&
       sudo make clean &&
       sudo ./configure &&
       sudo make &&  sudo make install &&
       sudo make samples &&  sudo make progdocs
    # compilacion de Utilerias de Asterisk
       cd /usr/src/asterisk/asterisk-addons-1.4.7 &&
       sudo ./configure  &&
       sudo make && sudo make install &&
       sudo make samples
    #       reiniciamos el servidor web apache
            sudo /etc/init.d/apache2 restart
    #     creamos directorios temporales para asterisk
            sudo mkdir /var/lib/asterisk/tmp  &&
            sudo chown -R asterisk:asterisk /var/lib/asterisk/tmp
    #   Editamos el archivo de configuraci?n de Asterisk
            sudo emacs /etc/asterisk/asterisk.conf
           
    #   Y editamos la siguiente línea para que quede de la siguiente forma
            ASTRUNDIR => /var/run/asterisk
            RUNASTERISK=/var/run/asterisk
    #    continuamos con la instalacion de FreePBX
           cd /usr/src/freepbx-2.5.1/
           sudo pear install db
           sudo pear install mdb2
    #en caso de que no se pueda hacer la instalación automática de pear-db, descargar el paquete e instalarlo manualmente sudo pear install db.17.0.0.tgz
    #wget http://download.pear.php.net/package/DB-1.7.13.tgz
             
            sudo mkdir /var/www/asterisk/ &&
            sudo mkdir /var/www/asterisk/cgi-bin &&
            sudo chown -R asterisk:asterisk /var/www/asterisk
    # Ejecutamos el script de asterisk antes de instalar freepbx
            sudo asterisk start
    #Obtenemos la IP del servidor
            ifconfig | grep "inet"
    #Ejecutamos el script de instalacion y configuracion de asterisk, si existe una configuracion previa de FreePBX, eliminar el archivo en/etc/amportal.conf
    sudo ./install_amp
    #La instalacion de Asterisk pedira los siguientes valores
    Enter your USERNAME to connect to the 'asterisk' database:
     asterisk
    Enter your 4st3r1sk to connect to the 'asterisk' database:
     4st3r1sk
    Enter the hostname of the 'asterisk' database:
     localhost
    Enter a USERNAME to connect to the Asterisk Manager interface:
     asterisk
    Enter a 4st3r1sk to connect to the Asterisk Manager interface:
     4st3r1sk
    Enter the path to use for your AMP web root:
    /var/www/asterisk
    Enter the IP ADDRESS or hostname used to access the AMP web-admin:
     192.168.10.129
    Enter a 4st3r1sk to perform call transfers with the Flash Operator Panel:
    4st3r1sk
    Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]?
     extensions
    Enter directory in which to store AMP executable scripts:
    /var/lib/asterisk/bin
    Enter directory in which to store super-user scripts:
    /usr/sbin
    /etc/amportal.conf writtenAssuming new install, --install-moh added to command line
    OK
    Reading /etc/amportal.conf..OK
    Checking for /etc/asterisk/asterisk.conf..OK
    Reading /etc/asterisk/asterisk.conf..OK
    Using asterisk as PBX Engine
    Checking for Asterisk version..Checking for selinux..OK
    Connecting to database..OK
    Checking current version of AMP..2.3.0beta1
    Installing new FreePBX files..OK (328 files copied, 0 skipped)
    Configuring install for your environment..OK
    Setting permissions on files..OK
    Checking for upgrades..0 found
    Checking framework.. already at 2.3.0beta1.0
    Checking core.. already at 2.3.0beta1.2
    Generating AMP configs..
    Generating Configurations.conf, (if Asterisk is not running, you will get an error
    In case of error, start Asterisk and hit the red bar in the GUI to generate the Configuraions.conf files
    Checking for PEAR DB..OK
    Checking for PEAR Console::Getopt..OK
    Running module install.php and install.sql scripts
    Checking for /etc/amportal.conf..OK
    Reading /etc/amportal.conf..OK
    Reading /etc/asterisk/asterisk.conf..OK
    Connecting to database..OK
    Connecting to Asterisk manager interface..Mon, 02 Jul 2007 02:02:25 -0500 - Unable to connect to manager 127.0.0.1:5038 (111): Connection refused
    FAILED
    [FATAL] Cannot connect to manager interface
    Generating AMP configs..OK
    Restarting Flash Operator Panel..op_server.pl: no process killed
    OK
    Please update your modules and reload Asterisk by visiting http://192.168.1.4/asterisk/
    #***
    #* Note: It's possible that if you click the red 'Update Now' bar BEFORE *
    #* updating your modules, your machine will start dropping calls. Ensure *
    #* that all modules are up to date BEFORE YOU CLICK THE RED BAR. As long *
    #* as this is observed, your machine will be fully functional whilst the *
    #* upgrade is in progress.                                               *
    #***
    #Probablemente la primera vez envie un error como este [FATAL] Cannot connect to manager interface,debido que aun no se ha ejecutado Asterisk para que escuche en el pueto de AMI
    #    si marcara otro error ./installamp revisar usuarios de base de datos, librerías de php y de mysql, reiniciar apache y peardb, php-db
    #    en caso de que tuviera un error al ejecutar FreePBX para reconfigurarlo previamente elimine el archivo de configuracion en /etc/amportal.conf
    #Despues de que se haya instalado freepbx, creamos un enlace dinámico en el directorio root del servidor web, esto para que se pueda ver el panel desde el menú de freepbx en nuetro conmutador
            cd /var/www
            sudo ln -s /var/www/asterisk/panel /var/www/panel
            sudo ln -s /var/www/asterisk/recordings /var/www/recordings
            sudo chown asterisk.asterisk /var/www/
    #   creamos la carpeta donde se almacenaran los sonidos del IVR y configuramos los permisos para el directorio de Asterisk
              sudo mkdir /var/lib/asterisk/sounds/custom &&
              sudo chown -R asterisk:asterisk /var/lib/asterisk/
             
    #Creamos el directorio para almacenar los archivos grabados
            sudo mkdir  /var/lib/asterisk/recordings
            sudo chown -R asterisk.asterisk  /var/lib/asterisk/recordings
             
    #   Editamos el siguiente archivo /etc/amportal y cambiamos la siguiente linea AUTHTYPE=none a database, esto para que pida autenticación de administración de usuarios
            sudo emacs /etc/amportal.conf
                    AUTHTYPE=database
           
    #guardamos y ejecutamos el siguiente comando
            sudo /usr/src/freepbx-2.5.1/apply_conf.sh
    # Si al ejecutar amportal enviara un error parecido  "error: Bad fd number", entonces editamos el archivo /usr/sbin/safe_asterisk y cambiamos la primera linea de /bin/sh a /bin/bash
    # Si al ejecutar amportal enviara un error parecido  "/op_server.pl: not found", entonces editamos el archivo /var/www/asterisk/panel/safe_opserver  ó /var/www/asterisk/safe_opserver  y cambiamos la primera linea de #!/usr/bin/env sh a #!/usr/bin/env bash
    #Editamos el siguiente archivo y modificamos la siguiente línea
            sudo emacs /etc/default/asterisk
                    RUNASTERISK=yes
           
    #   ejecutamos amportal
            sudo amportal stop
            sudo amportal start
    #   verificamos que efectivamente se haya ejecutado correctamente y deberiamos ver algo parecido
            ps aux
            asterisk  2380  0.0  0.1   3852   724 pts/1    S    16:53   0:00 /bin/bash /usr/sbin/safe_asterisk -U asterisk -G asterisk
            asterisk  2387  0.0  1.8  19376  8388 pts/1    Sl   16:53   0:00 /usr/sbin/asterisk -f -U asterisk -G asterisk -vvvg -c
            asterisk  2419  0.0  0.1   1756   500 pts/1    S    16:53   0:00 sh /var/www/asterisk/panel/safe_opserver
            asterisk  2420  0.1  1.8  11076  8356 pts/1    S    16:53   0:00 /usr/bin/perl -w /var/www/asterisk/panel/op_server.pl
    #   Abrir en un navegador de preferencia Firefox la direccion del servidor Asterisk por ejemplo que el servidor corra en una IP 192.168.1.4
            http://192.168.1.76/asterisk/
    #Introducimos el login y password (4st3r1sk) configurado:
    asterisk
    4st3r1sk
    #Ahora tenemos habilitado El conmutador de Voz Sobre IP Asterisk
    #Y el administrador Web de Asterisk FreePBX.
    #Descargar modulos de administracion de Asterisk.
     
     
     
     #
    ***Instalando voces en español*****#
     cd ~/asterisk &&
     sudo wget http://www.voipnovatos.es/voces/voipnovatos-core-sounds-es-gsm-1.4.tar.gz  &&
     sudo wget http://www.voipnovatos.es/voces/voipnovatos-extra-sounds-es-gsm-1.4.tar.gz &&
     cd /var/lib/asterisk/sounds/ &&
     sudo mkdir es &&
     cd es &&
     sudo tar -xzvf ~/asterisk/voipnovatos-core-sounds-es-gsm-1.4.tar.gz &&
     sudo tar -xzvf ~/asterisk/voipnovatos-extra-sounds-es-gsm-1.4.tar.gz &&
     mv es/* . &&
     rm -rf es &&
     mv digits/es/* digits &&
     mv dictate/es/* dictate &&
     mv phonetic/es/* phonetic &&
     mv letters/es/* letters &&
     mv followme/es/* followme &&
     mv silence/es/* silence
     #***Instalando voces en español*******#
     
     
  • SJCall un Softphone para Firefox desarrollado por SJLabs

    SJPhone desarrollado por la empresa SJ Labs fué uno de los primeros Softphones gratuitos que salieron hace algunos años, estos softphones son compatibles con el protocolo SIP por lo que no hay problemas para usarlos con Asterisk.
    Los Softphones lo que permites es hacer llamadas vía VoIP, por lo que desde una página web es posible llamar a un teléfono de casa, a un celular ó a otro teléfono IP.
    Ahora me encuentro con que SJLabs saco hace tiempo un Softphone compatible con Firefox aunque este Softphone solo funciona para versiones 2.0.0.X y anteriores de Firefox pero no dudo que pronto haya una versión FireFox 3.0, lo interesante de este Softphone es que es posible tener un Telefono IP desde nuestro navegador, por lo que permitiría a diversos usuarios remotos instalarlo sin tantas pegas en el navegador.
    Para tenerlo funcionando solo basta instalar la extensión firefox y se puede hacer desde la siguiente URL:
    https://addons.mozilla.org/es-ES/firefox/addon/2589
  • Los 25 Errores de Programación Web más peligrosos..

    Hace unos días leyendo un blog sobre seguridad informática vi un post sobre los 25 errores de programación web más peligrosos, artículo que me llamó mucho la atención por lo cuál pongo aquí la liga original por si alguien quiere verificarlo
    http://www.sans.org/top25errors/#cat1
    En esta página clasifican a los errores de 3 formas
  • Interacción entre componentes de forma insegura (9 Errores)
  • Administración de recursos riesgoso( 9 Errores)
  • Defensa porosa.(9 Errores)
    Interacción entre componentes de forma insegura (9 Errores)
  • CWE-89: Falla en la preservación de la estructura de sentencias SQL (Aka Inyeccción SQL)
  • CWE-20: Validación de entrada de datos inadecuada
  • CWE-116: Escape y codificación de salida inadecuada
  • CWE-79: Falla para la presenvación de la estructura de páginas web(Aka Cross Scripting)
  • CWE-78: Falla en la presevación de Comandos del Sistema Operativo.
  • CWE-319: Transmisión de datos sensibles en texto plano.
  • CWE-352: Falsificación de peticiones de sitios web.
  • CWE-362: RaceCondition
  • CWE-209: Mensajes de errores nulos
    Administración de recursos riesgoso( 9 Errores)
  • CWE-119: Falla en las reglas de operación de los límites de los buffers de memoria
  • CWE-642: Control Externo de Estado de Datos críticos
  • CWE-73: Control Externo de nombre ó rutas de archivo.
  • CWE-426: Busqueda de rutas no confiables.
  • CWE-94: Falla en el control de generación de código (Aka Inyección de código)
  • CWE-494: Descarga de código sin verificación de integridad.
  • CWE-404: Inapropiado recurso de cierre ó liberación
  • CWE-665: Inapropiada inicialización.
  • CWE-682: Cálculos incorrectos.
    Defensa porosa.(9 Errores)
  • CWE-285: Inapropiado control de accesos(Autorización)
  • CWE-327: Uso de Algoritmos ya rotos ó criptografía riesgosa.
  • CWE-259: Contraseñas sencillas
  • CWE-732: Asignación de permisos inseguros para asignación de recursos críticos.
  • CWE-330: Uso de insuficiente valores aleatorios.
  • CWE-250: Ejecución con privilegios innecesarios.
  • CWE-602: Refuerzo de la seguridad del cliente desde el servidor.
    El artículo es muy interesante y ayuda a tener una visión de los errores que cometemos muchas veces por falta de experiencia o por una profesionalización más especializada en el arte de la programación.
    La idea de mostrar estos errores aquí en mi blog es irlos desmenuzando uno a uno para entenderlos, descubrilos y dar una posible solución.
  • Usando las Voces en español que liberó Nucleum para Asterisk

    Acabo de probar el set de voces que la empresa Nucleum liberó para Asterisk, un detallazo de Juán Carlos Huerta y la empresa para la cuál trabaja... Con esto ya es grato escuchar voces en español para asterisk mexicanizados.
    Para poder poner Asterisk a español mexicano solo basta descargar el siguiente archivo de la página de Nucleum:
    http://nucleum.com.mx/extras/asterisk-sounds-1.4-Hombre.tar.gz
    De ahí ir al directorio dónde se encuentran los archivos de sonidos de Asterisk
    cd /var/lib/asterisk/sounds
    Y a continuación solo descomprimir los archivos de sonido
    sudo tar -xzvf asterisk-sounds-1.4-Hombre.tar.gz
    Esto creará un directorio asterisk-sounds
    Lo importante está en asterisk-sounds/sounds/
    Ahí se verán los siguientes directorios
    dictate digits es letters phonetic
    Copiar todos los directorios a /var/lib/asterisk/sounds
    Por alguna razón no me funcionó poner los directorios debajo del directorio /var/lib/asterisk/sounds directamente, ya que haciendo esto al configurar el sistema de Asterisk a español los mensajes del IVR si me los manda en español, pero las letras, números y demas me los sigue diciendo en ingles, por lo que tuve que modificar el path original de como vienen en el paquete a la siguiente forma:
    Copiando los directorios como vienen en el paquete proveído por Nucleum al directorio sounds quedaŕian de la siguiente manera:
  • /var/lib/asterisk/sounds/
  • /var/lib/asterisk/sounds/es
  • /var/lib/asterisk/sounds/letters/es
  • /var/lib/asterisk/sounds/phonetic/es
  • /var/lib/asterisk/sounds/dictate/es
  • /var/lib/asterisk/sounds/digits/es
    El detalle del asterisco cuándo configuro en sip_general_additional.conf la opción de
    language=es
    Los IVR en español que están bajo el directorio /var/lib/asterisk/sounds/es funcionan, el detalle es que los números, letras y demás me los sigue dando en ingles.
    Para esto lo que hice fué mover los directorios siguientes
  • /var/lib/asterisk/sounds/letters/es => /var/lib/asterisk/sounds/es/letters
  • /var/lib/asterisk/sounds/phonetic/es => /var/lib/asterisk/sounds/es/phonetic
  • /var/lib/asterisk/sounds/dictate/es => /var/lib/asterisk/sounds/es/dictate
  • /var/lib/asterisk/sounds/digits/es => /var/lib/asterisk/sounds/es/digits
    Ya con esto mi sistema de Asterisk quedó completamente en español.
    Igual y mi configuración estaba mal que no reconoció el path que usa Nucleum, pero ya moviendo los directorios debajo del directorio /var/lib/asterisk/sounds/es ya ahora si todos los IVRs son en español..
    Gracias por la contribución..
  • Entrevista a Guillermo Campos Hazan el Lídel del Proyecto SuperWaba y Ahora Total Cross por Gerardo Cabero.

    Pongo a continuación una entrevista que me envío y que realizó Gerardo Cabero del grupo SuperWaba de Argentina al creador del proyecto SuperWaba y ahora el renovado TotalCross hablo de Guillermo Campos Hazan.
    Nota de Gerardo Cabero:
    Desde hace mucho tiempo queria entrevistar a Guillermo Campos Hazan , lider del los proyecto TotalCross y Superwaba, hace un par de dias tube la oportunidad de poder realizarle una entrevista. En ella nos cuenta que es TotalCross, cuales son los principales ventajas sobre Superwaba , y nos deja entrever cual fueron los impulsante para el nuevo cambio de modelo de negocio. En lo personal a sido muy gratificante haber podido entrevistar a Guich pueso que llevo muchos años trabajando con Superwaba ....Espero que la entrevista sea de sus agrado un Fuerte Abrazo a Todos
    Gerardo Antonio Cabero
    Gerardo Cabero : @Nos podrias decir tu nombre ? Y como comenzaste en el mundo de las aplicaciones Moviles? ¿Como Nace Superwaba ?
    Guillerme C. Hazan: Mi nombre es Guilherme Campos Hazan. El apodo proviene de las iniciales del nombre de pila. La historia de como mi inicie con SuperWaba se puede leer aquí:
    http://www.clubepda.com.br/SuperWaba1.htm
    Gerardo Cabero : @ Sabemos que dentro de poco des largar una nuevo SDK para el desarrollo Movil, pero hay mucha gente que no conoce el nuevo producto ¿Que es TotalCross ? Y cuales son Sus Ventajas ? y cual es la diferencias ante Superwaba ?
    Guillerme C. Hazan: SuperWaba procedia de otro proyecto de software libre. Lamentablemente, después de 7 años de software libre, llega a la conclusión de que el modelo de venta de suscripciones es insostenible: o bien mudabamos el modelo o cerrabamos las puertas. Sin embargo, incluso con permiso escrito del autor de WABA, el Rick Wild, a nuestro juicio, el deseo de cambiar el modelo.
    Despues de haber realizado un master en PUC-Río de lenguajes de programación, el resultado de mi tesis fue la especificación utilizada en el desarrollo de TotalCross.
    "TotalCross, portanto, nao é apenas um novo SDK, mas sim, principalmente, uma nova maquina virtual, codificada a partir do ZERO absoluto""
    El TotalCross, por lo tanto, no es sólo un nuevo SDK, es sobre todo una nueva máquina virtual, fue codificada a partir de CERO, es decir, que "escribí la primera línea de código, sin mirar nada de la VM SuperWaba.". Se trato de un trabajo intenso que duró 2 años. Confieso que al día de hoy, ver todo el trabajo, ver que todo funcione bien, me hace sentir muy satisfecho, porque a veces pensé que no podía con el proyecto. En TotalCross han tratado de resolver todos los problemas que se sabía que existía en la máquina virtual de WABA, no sólo de funciones, sino también de ingeniería de software, la codificación, la división del código y así sucesivamente.
    Gerardo Cabero : @De manera corta y sencilla, cuáles son las ventajas de TotalCross antes de la SuperWaba?
    Guillerme C. Hazan: El TC resolverá todos los problemas que los usuarios tenían en SuperWaba. Todo es simple, completa y, sobre todo, robusto, no tolerar el fracaso.
    Gerardo Cabero : @ Con la inmiente lanzamiento de TotalCross, Como Afectara a la aplicaciones echas en Superwaba ? Existira Forma de Migrar la misma al nuevo soporte ?
    Guillerme C. Hazan: Hay una herramienta llamada tc.tools.SW2TC que convierte el 90% de los programas. El resto debe hacerse por el desarrollador
    Gerardo Cabero : @ Por que se eligio el nombre de TotalCross ? ¿Con que sorpresas nos econtraremos en el SDK De TotalCross ?
    Guillerme C. Hazan: TotalCross quiere decir: totalmente de desarrollo de plataforma cruzada. O bien, totalmente multiplataforma. Es seguro que el programa se ejecute sin modificaciones en todas las plataformas soportadas, siempre que este correctamente escrito, tal como se describe en la documentación.
    Gerardo Cabero : @ ¿Nos podrias comentar un poco sobre la nuevas caracterista de la VM y de
    las Librerias incluidas en SDK?
    Guillerme C. Hazan: El VM es un "registro basado en máquina virtual", es decir, la opcodes son como si se tratara de un ensamblador de computadoras de hoy, en colaboración con los solicitantes de registro, y no en la pila como en Java. El. Clase Java se convierten en nuestros "ensamblador" durante Desplegar, todo muy rápidamente. Nuestro. Clase se comprimen, y la tabla de constantes (constante piscina) se reparte entre todos. Esto hace que la AP archivos de hasta 1 / 4 el tamaño original de Java.
    En cuanto a la SDK, tiene todo lo que los usuarios siempre soñó. Puedo citar, por ejemplo, las clases de árbol, FileChooser, MultiListBox, serversocket, Registro (para acceder al Registro de Windows y Palm), Gráfico (skins, línea, columna), pizarra (para recoger firmas), Slider, ScrollContainer, Edit con máscara, Button con texto E imagen. Y multi-tareas Multihilos.
    Uno de los principales cambios en TotalCross en relación con SuperWaba , no permita al desarrollor cometer cualquier tipo de error, se trata de despedir a una excepción. Esto es válido para parámetros no válidos, o de otros tipos de errores que pueden ocurrir en el SDK, o el nativo de la biblioteca.. Asi tambien todas las clases están empaquetados en un único archivo, TCBase.tcz, que se encuentra actualmente en 310Kb (en SuperWaba, que más o menos 1 Mface-glasses.png .
    Gerardo Cabero : @ ¿Qué nivel de dificultad tiene el SDK, como si la parte que gestiona los gráficos? ¿Cuáles son los nuevos dipositvos que soportaran?
    Guillerme C. Hazan: Hemos intentado hacer coincidir los nombres estándar de Java, y también corregir los nombres de las clases y métodos. Para un usuario SuperWaba, puede dar una buena lectura a la documentacion (que está siendo reescrito), identificar las nuevas clases y nuevas características de las clases mayores. Es esperctacular face-smile.png
    La parte gráfica fue también completamente reescrita, ahora se emula correctamente los gráficos de las resoluciones de 8, 16, 24 y 32 bpp en los distintos dispositivos. Un color, que anteriormente era designado por la clase color, ahora sólo es un int, que mantiene el color en el RRGGBB. La clase color es ahora sólo una clase con herramientas útiles tales como la oscuridad, más brillante, y así sucesivamente.
    La clase imagen sólo admite archivos JPEG PNG y en el dispositivo, y PNG, JPEG, BMP (ahora con 24bpp) y GIF en el escritorio. En el momento de desplegar, el BMP y GIF se convierten automáticamente a PNG. Para el desarrollador, es todo transparente. Por lo tanto, por la práctica "new imagen (" imagen.gif ")," este archivo se convertirá a desplegar en PNG y el momento de leer vm "imagen.gif" en el dispositivo, que ya se ha cargado correctamente la "imagem.png" convertidos. Es decir que no es necesario realizar mezclas extrañas de codigo. Los Gif seran correctametne traducidos .
    Por último, las fuentes de caracteres están ahora con las esquinas redondeadas (antialiasing), lo que los hace mucho más hermoso la aplicacion en el dispositivo. Debido a que, también, las pantallas ya hechas al SuperWaba debe "mover un poco" cuando se cargan en TotalCross. La fuente predeterminada es ahora utilizado para Tahoma, que tiene una ancho un poco más cerca de las antiguas fuentes de SuperWaba (es decir, es ahora cosa más en la pantalla). Otra innovación importante es el apoyo de diversos tamaños de fuentes, el 8-22, normal y en negrita. Así, usted puede cambiar el tamaño de la voluntad en los programas.
    El TotalCross trabaja sobre Palm OS, Windows CE (2.x-6.x), BlackBerry y iPhone. Queremos portalo para Symbian y Android (a inicios) en 2009.
    Gerardo Cabero : @ ¿Cuántos desarrolladores estarán involucrados en la creación de TotalCross? ¿Cual fue la parte mas complicacada durante el desarrollo del SDK?
    Guillerme C. Hazan: Durante la fase más crítica, fuimos 7 personas. Actualmente, somos 4. Creemos que con la puesta en marcha, podemos aumentar el equipo de nuevo. Lo más difícil fue la creación de threads preemptivas. Incluso pense en dejarlo. En última instancia, la solución es terriblemente simple: un soporte a los therard en mentodos de 30 líneas de código para cada plataforma.Un soporte para la concurrencia, también generó un gran dolor de cabeza el recolector de basura, el cual tuvo que ser cambiado alrededor de 6 veces hasta que paso todas las condiciones de los entornos.
    Gerardo Cabero : @ Para los que no conocen ¿Que es LiteBase ?, ¿Funciona de la misma forma de PDBdriver ? ¿o es una evolucion del mismo?
    Guillerme C. Hazan: El Litebase 1.x ya está en el mercado tiene 2 años. La diferencia en la version 2.0 ahora soporta joins simples, de palabras compuestas, blob y varchar (en realidad, todos los caracteres son ahora varchar). Sin embargo, se ha utilizado al rededor de 4 meses para liberar un prodcuto más estable. Ahora, por ejemplo, "antes era posible corromper a un índice" (esto ocurre cuando no hay registro o memoria ),
    pero ahora se advierte al usuario atravez de un una excepción para el cual reconstrulle el índice cuando se reinicia la aplicación. Con esto la base de datos no sera dañada en ningun modo, solo a ser que el dipositivo tenga una falla de hardware.
    Gerardo Cabero : @ ¿Desde el punto de vista comercial, cual es razón por la que optar por cambiar el Modelo de negocio? y la forma de distribución de la máquina virtual? ¿Cuál será el precio de la máquina virtual?
    Guillerme C. Hazan: El modelo de suscripción anual, aprobado en 2005 no se conviertan en lo posible, por dos razones. La primera de ellas, la mayoría de los usuarios que compraron un abono sólo una vez. La segunda, que una empresa como Itaipu Binacional paga lo mismo que José, propietario de una pescaderia en una esquina . En otras palabras, no era posible crecer como empresa. si no se cambiaba de modelo, o se deberían de cerras las puertas, puesto que ese modelo era solvéntale. Los que discrepan, que abran un negocio y traten de sobrevivir en las suscripciones; va invariablemente a morir de hambre (Traducción Adaptada) "Quem discordar disso, que abra uma empresa e tente viver de subscricoes; vai invariavelmente morrer de fome."
    Ahora, el SDK se distribuirá gratuitamente en forma plena (con todas las características), y el usuario tendrá la licencia vm sólo cuando el producto se pone en producción. El vm se cargará el PDA. El cliente compra un nr x licencias, y cada vez que un VM se instala en un nuevo PDA, debe estar habilitado en nuestro servidor. El PDA luego recibir un archivo de activación. Este archivo sólo será válida para una pda. Si al sufrir el pda un Had-reset, puede ser reactivado de forma gratuita, o copiando de nuevo el archivo para la PDA, que es el acceso a nuestro servidor. El SDK es vm acompaña a la versión de prueba, que aparece en una popup y también está limitado por el tiempo (80 horas de uso). Después de esto, usted puede hacer una hard-resert en el dispositivo y ejecutar otro 80 horas, esto es permitido por nosotros, sin violación de la licencia.
    Para las grandes empresas (más de 10.000 dispositivos), donde existe un sistema de dispositivos de control de auditoría externa, podemos eliminar la fase de activación, y todas regidas por contrato.
    Gerardo Cabero : @ Uno de los principales problemas que hemos tenido con SuperWaba, es el
    la falta de capacitación y certificación en español, en este nuevo giro de 360 Grados, que está dando el proyecto incorporarán ¿Si el sistema de formación y Certificación?
    Guillerme C. Hazan: Esperamos poner en el aire una WEB de formación en línea durante 2009. y Un programa de la certificación , es un paso natural a segir.
    Gerardo Cabero : @ ¿Cual es la Fecha mas proxima de lanzamiento del SDK TotalCross?
    Guillerme C. Hazan: Tal vez la 2 ª semana de enero, la más probable es la 3 ª semana de enero de 2009.
    Gerardo Cabero : @ Una pregunta a Futuro, ¿Es Posible que en algún momento un SDK TotalCross comunitario o Lite, tal como exite Superwaba comunitaria?
    Guillerme C. Hazan: El SDK es total y completamente libre. La diferencia ahora es la vm. Cuando alguien es la concesión de licencias del producto, que gana sólo nuevos VMS, y no un nuevo SDK. El SDK es el mismo que antes.
    Gerardo Cabero : @ ¿Como vez el futuro de TotalCross frente al J2me , Android ? Cuales son
    los Obstaculos por vencer a corto plazo?
    Guillerme C. Hazan: El problema no es Android, el TotalCross será portado a él. En cuanto a la JME, ellos tienen la api, y nostros tenemos la nuestra. El mercado es muy grande, hay espacio para todos.
    Gerardo Cabero : @ Hablemos un poco de la comunidad, papel de la comunidad latinoamericana hacer contribuciones a los proyectos SuperWaba y / o TotalCross? Y como Argentina se posiciona frente al resto de los países de los países de habla hispana?
    Guillerme C. Hazan: Bueno, ya que al cambiar el modelo de negocio en 2005, la comunidad casi a desaparecido. Todas las contribuciones han cesado. Esperamos que con este nuevo modelo la comunidad a de resurgir. Tenemos también un gran interés en el fomento de asociaciones con universidades, de modo que los estudiantes se formen en las nuevas tecnologías.
    Gerardo Cabero : Finalmente me gusta el agradecerte que Allas dado un poco de usted tiempo para impugnar un par de preguntas, que en este último sabemos ocupado el período demasiado francamente creo que agradecemos Para Finalizar algunas palabras para la Comunidad de Superwaba Argentina y SuperWaba - Latino ...
    Guillerme C. Hazan: Tratar de corregir los errores del pasado con nuestro nuevo producto. Espero que la gente entienda que somos una empresa y no un Zen comunidad que vive la base de Santo Daime Cha. face-smile.png Todo el esfuerzo de organizar una nueva máquina virtual de costo miles de horas de arduo trabajo, la privación de los fines de semana, vacaciones, y el estar con la familia. Nuestro objetivo es entregar a la comunidad y un sólido producto que permite a la gente entrar en el mundo de la tecnologia movil se más agradable posible.
    Quiero hacer un llamado a la comunidad, una vez más, a contribuir con el proyecto. Las clases son de código abierto y estan escritas en el lenjuge Java, por lo que siempre es posible mejorar lo que se hace. No se olvide de leer todo lo que está escrito en www.totalcross.com
  • Free does not mean Open Source...

    Leyendo la página web de Red5 que es un proyecto Open Source que funciona como servidor de Aplicaciones Flash, hay un documento que habla de la diferencia de Free y Open Source.



    http://osflash.org/free_does_not_mean_open_source



    Free en el idioma anglosajón puede tomar 2 acepciones, Free de Libre.. ó Free de Gratis, cómo en cerveza gratis.



    El documento me gustó porque aclara la diferencia que hay entre Free y Open Source, ya que actualmente hay una diferencia interna entre algunos líderes del Software Libre como Richard Stallman y otros que apoyan al Open Source.
    Básicamente el documento comenta lo siguiente:

    "Free" Refiere a si un desarrollador de una pieza de software requiere ó no remuneración económica( Ej. dinero) por ello. Si el desarrollador(Individuo, Compañía, etc) no quieren dinero ó alguna otra forma de compensación financiera por su software,entonces ese software se dice que es "free" de Gratuito. No implica si el código fuente es abierto ó cerrado.



    Cuándo nos referimos a una pieza de software(aplicación), usualmente nos referimos a los binarios. Estos son los programas de computadora que al final se entregan compilados. En computación moderna, los desarrolladores escriben sus programas(aplicaciones/software) en lenguajes de Alto-Nivel que son entonces compilados dentro de un código que la computadora pueda entender. El código inicial escrito por el programador es llamado "código fuente". Esto es la propiedad intelectual del desarrollador y el ó ella puede escoger si quiere liberar su código fuente separadamente de la aplicación/programa/software misma.



    Si el desarrollador escoge liberar el código fuente de su aplicación, la aplicación se dice ser "Fuente Abierta" ó "Código Abierto" (Open Source). Indicando que el código fuente está disponible para descarga, escrutinio público, mejoramiento, etc. Una aplicación puede ser de Código Abierto (Open Source) y no ser "Free"( de Gratis). Los dos conceptos en el idioma anglosajón no están relacionados (Free y Open Source)



    Pro lo tanto, una aplicación puede ser alguna de las siguientes cosas (ó combinacion de ellas):


  • Free de Gratis, Código Cerrado
  • Free de Libre ó Gratis, Código Abierto
  • Comercial, Código Cerrado
  • Comercial, Código Abierto.



    No es inusual ver una aplicación siendo ofrecida bajo licencias duales (Incluso más que 2 licencias).




    Espero no haber confundido más, pero la idea básicamente es comentar que una aplicación puede ser de código abierto pero no gratis.. muchos piensan que por ser de código abierto tiene que se gratuito hasta el soporte.. así como también que una aplicación sea gratis no significa que pueda entrar a modificar el código..
  • TotalCross 1.0 beta 4 disponible para descarga

    Revisando la página de http://www.SuperWaba.com veo que ya es posible descargar la primera versión beta de Total Cross.

    Total Cross es un entorno de desarrollo para dispositivos móviles tales como WindowsCE, WindowsMobile, PocketPC, PalmOS, BlackBerry, Symbian y próximamente Android e iPhone. Su antecesor SuperWaba tenía una versión libre para la comunidad por lo que imagino que TotalCross seguirá con esta filosofía, algo que interesante a TotalCross es LiteBase que es una parte propietaria del proyecto pero que permite integrar bases de datos empotradas al código mediante sentencias SQL, lo que amplia su potencial de TotalCross, aparte que TC está rediseñado desde cero con respecto a su antecesor SuperWaba.
    Auguro mucho éxito para TotalCross más con la venida de nuevas tecnologías móviles. Se anuncia que para mediados de enero del 2009 ya estará disponible un release de TotalCross asi que creo que valdrá la pena repasar esta tecnología y ver si es posible sacar provecho de ella,
  • ¿Cómo utilizar los servicios de DynDNS ?

    Algunos amigos me han preguntado como publicar su sitio web usando su propio internet y su máquina como servidor de páginas web para publicar su blog, alguna página o hacer sus pininos con esto de la programación web, les he comentado sobre como hacerlo con DynDNS. y por ello público este post para comentar a grandes rasgos como publicar sitios webs usando las IP Públicas Dinámicas que nos proveen el servicio de Prodigy, eGo o algun otro proveedor de internet.
    Lo básico
    Antes hay que comenzar con lo básico saber que es una IP Pública y una IP Privada, pero antes de eso
    ¿Qué es una IP?
    IP significa "Internet Protocol", qué es el mecanismo que usan las computadoras para poder identificarse en internet y en una red local.
    Una IP es cómo un número de teléfono por ejemplo, para poder llamar a la casa de mis padres a Oaxaca marco su número telefónico, al igual que para poder marcar a mis conocidos aquí en el D.F. igual marco un número de celular ó fijo el cuál es único y no se repite, igual es una IP es un número con el cuál las computadoras se conectan entre si en internet, solo que también aparte de tener ese número las computadoras también tienen nombres que nos ayudan a recordar de manera más fácil que los números, asi por ejemplo podemos identificar gmail.com, phylevn.binniza.com, mozilla.org, OpenOffice.org de tal forma que es más fácil aprendernos los nombres ó dominios que los números de IP.
    Una IP está conformado por 4 números de 8 bits. 8 bits es la representación binaria de un número de 0 hasta 255. Por lo tanto en las ips podemos tener números como:
  • 75.126.179.110 para una ip pública
  • 192.168.1.1 para una ip privada por ejemplo
    ¿Qué es una IP Pública y que es una IP Privada ?
    IP Pública
    Volviendo al ejemplo de los teléfonos, una IP Pública es una dirección que puede accederse directamente desde cualquier parte de internet, al igual que un número de teléfono puede marcarse desde cualquier casa, ciudad ó pais, entonces podemos entrar a SourceForge por su nombre http://www.sourceforge.net ó por su IP 216.34.181.60.
    IP Privada
    Una IP Privada es una dirección de uso interno en una red local, por ejemplo en un cybercafé, en una oficina, en tú casa, las IP que regularmente usan tús máquinas son IPs privadas. Estas IP no pueden accederse directamente desde internet, usando el ejemplo del teléfono una IP Privada sería como un número de extensión por ejempo el 5055, 1012, etc. las extensiones no pueden marcarse directamente desde otra casa, ciudad ó pais, primero se marca el número y despues la extensión. Por lo que una IP Privada se puede repetir en otras redes locales pero no en la misma, al igual que una extensión no se repite en la misma oficina, pero en otras empresas seguro pueden estar usando la misma numeración de extensiones.
    ¿Qué es una IP Dinámica?
    Las IP Dinámicas pueden ser usadas tanto en IP Públicas como fijas, una IP Dinámica es una dirección que alguien nos asigna automáticamente al conectarnos a una red, esta dirección puede ir cambiando cada vez que nos conectemos a internet, o por ejemplo en el caso de los routers ó modems de Infinitum, Ego o de algún otro proveedor cada vez que lo reiniciemos estaría cambiando de dirección, volviendo al ejemplo de los teléfonos es como si dijéramos que cada que conéctaramos el teléfono a la línea nos cambiara de número telefónico.
    Para el caso de una IP Dinámica cambiar de IP constantemente no representa problema a que si cambiáramos de número telefónico todos los días, esto porque a nuestras PC nadie se conecta directamente, pues nosotros somos los que nos conectams a paginas wes, messenger, chat, y otros servicios y al conectarnos abrimos un canal de comunicación.
    Pero que pasa si quisiéramos que alguien se conectara directamente a nuestra máquina en algún momento ? entonces si sería un caos eso de que nuestra IP cambiara todos los días, al igual que si alguien quisiera llamarnos y nuestro número cambiara.
    ¿Como permitir que se conecten a nuestra máquina si tengo una IP Dinámica ?
    Supongamos el siguiente caso:
    Tenemos un router módem (2Wire) de Infinitum que nos dá la IP Pública 189.181.154.37, Para saber qué IP Pública usa tú router entra a http://www.tuip.info, pues cada vez que entras a una página de internet se registra la IP Pública del router a traves del cuál sales a internet, no tú IP Privada.
    Ese router lo tenemos en la casa en dónde hay 4 máquinas con las siguientes IP privadas:
    Máquina IP Privada
  • A 192.168.1.90
  • B 192.168.1.101
  • C 192.168.1.103
  • phylevnMobile 192.168.1.176
  • router 192.168.1.254
    Lo que quiero hacer es que desde cualquier parte de internet puedan entrar a una página web que tengo instalada en la máquina de PhylevnMobile.
    Si alguien teclea en alguna otra parte de internet directamente en la barra de direcciones de su navegador firefox192.168.1.176 probablemente vea un error, ya que es una IP privada que en este caso uso dentro de mi red local.
    Para que alguien pueda acceder a mi página web desde otra parte de internet primero tendría que decirle al router que cuándo alguien pregunte por el puerto 80 lo mande a mi dirección IP, volviendo al ejemplo telefónico para con los números telefónico y las extensiones, para que alguien de fuera pueda entrar a una extensión, entonces el agente externo marca al número telefónico de la empresa y el que redirecciona la llamada es el conmutador, que en este caso análogamente es el caso de un router para con las IP y Puertos.
    ¿Qué es un puerto ? ¿Porqué el puerto 80?
    Las máquinas aparte de tener direcciones IP, tiene puertos, un puerto es la forma de acceder a un servicio de una computadora, por ejemplo para bajar archivos, para poder enviarle un mensaje en el chat, para ver páginas web que hay en la máquina, para poder ver una cámara conectada a la PC, para poder apagar la computadora desde otra máquina, etc., los ejemplos que estoy mencionando coloquialmente se llaman servicios, porque son los que sirve la computadora a otras computadoras.
    Entonces el puerto 80 es el puerto estándar para brindar servicios web a otras computadoras, igualmente puede usarse algún otro puerto pero vámonos por la fácil face-smile.png .
    Entonces para poder mostrar al mundo mi página web colocada en mi computadora, tengo que decirle al router que cuándo alguien pregunte por el puerto 80 lo mánde a la IP de mi máquina de phylevnMobile que tiene la IP 192.168.1.176.
    Para esto usando el más común de los routers los 2Wires de Prodigy Infinitum, bastaría con ir a la dirección IP 192.168.1.254 que es la IP default del servicio de Prodigy para el router.
    Seleccionar Bloqueo de Intrusos->Configuración del bloqueo de intrusos
    Pedirá un password que es la clave WEP del router.
    En la página en dónde dice Seleccionar una computadora, seleccionaremos el nombre de nuestra máquina, en este caso phylevnMobile. -esto no es muy práctico, prefiero otros routers como los que usan el firmware dd-wrt dónde de un mismo paso indico la IP local, el puerto remoto y a que puerto local irá, pero en fin sigamos-
    Seleccionamos abajo del listado de aplicaciones de la página la opción que dice :
    Agregar una nueva aplicación definida por el usuario
    Y nos aparecerá una nueva página dónde daremos los siguientes datos:
  • Nombre de aplicación: Servicio Web local
  • Protocolo: TCP -Generalmente es TCP salvo algunos casos se usa UDP(VPNs, Streaming, etc) -
  • Puerto (o intervalo): De: 80 A:80 -Aqui decimos el puerto externo que usaremos, generalmente es el mismo que el interno, a menos que tengamos ya apartado el puerto 80 para otra máquina, si ya se definió un puerto no es válido repetirlo-
  • Tiempo de espera del protocolo (segundos): 86400
  • Asignar al puerto de host: 80-Aqui introducimos el puerto que usa internamente nuestro servicio en este caso 80, pero por ejemplo si es un VNC 5900, un FTP 21,un SSH 23, etc.
  • Tipo de Aplicación: Ninguno
  • Y para finalizar presionamos el botón que dice Agregar Definición y esperar unos segundos.
  • Despues de presionar el botón al final de la página se mostrará el servicio agregado:
    Protocolo Puerto (o intervalo) Puerto de host Tiempo de espera (seg.)
    TCP 80 80 86400
  • Presionamos el botón atras y volveremos a la página de configuración del sistema de bloqueo de intrusos
  • Seleccionar Permitir aplicaciones individuales y escogemos del listado Servicio Web Local y presionamos el botón agregar para pasarlo al listado de aplicaciones alojadas.
  • Presionamos el botón Aceptar y veremos una página como la que sigue:
    Configuración actual: Personalizada
    Dispositivo Aplicaciones permitidas
    PhylevnMobile Servicio Web Local 192.168.1.64
    Si la damos ver detalles veremos algo como lo siguiente:
    Configuración actual: Personalizada
    Dispositivo Aplicaciones permitidas Tipo de aplicación Protocolo Números de puerto IP Pública
    PhylevnMobile Servicio Web Local - TCP 80 189.181.154.37
    Con esto ya cualquiera puede acceder desde internet a nuestra página local introduciendo la IP 189.181.154.37 en su Navegador Web de FireFox.
    Peroooooooooo
    189.181.154.37 es una IP Dinámica, ¿ Que pasa si al rato cambia de IP el router ? obviamente ya no podrían entrar nuestros amigos con la IP que les dimos ó igual entrarían al servicio de alguna otra máquina que no sería la nuestra, porqué ya no es nuestra IP.
    Para resolver esto usaremos el servicio de DynDNS.org
    ¿Qué es lo que hace DynDNS.org?
    DynDns lo que hace es darle un nombre a tú máquina, por ejemplo phylevnmobile.dyndns.org
  • Dónde dyndns.org es el nombre global del servicio.
  • phylevnmobile es el nombre que elegirías y que no debería ser usado por otros usuarios de dyndns.org.
    Ya con el nombre ó subdominio asignado, entonces usando alguna de las herramientas de DynDNS cada vez que la IP de tú máquina cambie entonces DynDNS.org redireccionara tú subdominio a la nueva IP.
    Por ejemplo hoy amaneciste con la IP.
    189.181.154.37 DynDNS apuntará phylevnmobile.dyndns.org a esa IP, entonces cuándo alguien entré a phylevnmobile.dyndns.org irá a 189.181.154.37.
    Si mañana cambiá tú IP a 189.181.150.42, DynDns nuevamente redireccionará tú subdominio phylevnmobile.dyndns.org a la ip 189.181.150.42, y asi sucesivamente.
    De tal forma que en internet entrarán a traves de phylevnmobile.dyndns.org a tu página sin importar que todos los días tú IP Pública cambié.
    ¿Cómo me registro en DynDNS?
    Muy fácil..
    Vé a Dyndns.org y selecciona "create account".
    Da tus datos de registro y despues de eso confima el registro dandole click a la url que te llega al correo que diste.
    Válidate en el servicio de DynDNS con tu login y password y ve a:
    Services->DNS Services->Dynamic DNS(DDNS)->Manage Hosts->Add New HostName
    Y ahí te pedirá los datos para crear tú dominio dinámico:
  • Hostname: phylevnMobile -puedes poner el que gustes-, selecciona igual el servidor de tú gusto
  • WildCard: Seleccionalo si quieres tener subdominios.
  • Service Type: Host with Ip Address
  • IP Address: Pon aquí tú IP Pública abajo del text box mostrará tú ip pública. También la puedes conocer a traves de http://www.tuip.info
  • Mail Routing: Para este ejemplo no aplica, pero es útil en otros casos.
  • Solo Presionar el botón Create host para guardar los cambios.
  • Con esto ya tendríamos configurado el servicio DDNS, para verificar solo basta hacer un ping a phylevn.dyndns.org ó al dominio creado, y veremos que al hacer ping nos responderá nuestra IP Pública.
    Con esto ya pueden acceder desde internet usando por ejemplo el dominio phylevn.dyndns.org.
    Ahora solo faltaría ver como actualizar la IP en DynDNS cada vez que el router cambie de IP, para esto DynDNS provee algunas herramientas:
    https://www.dyndns.com/support/tools/
    En otros routers ya incorporan el protocolo DDNS que es compatible con DynDNS y solo es necesario dar el login y password de DynDNS.
    Espero haya servido de algo la explicación que aqui pongo, cualquier duda escribanlo aquí abajo como comentario.
  • Emblemas

    Energizado por Jaws Project
    Soporta RSS2
    Energizado por Software Libre
    Energizado por Mozila Firefox
    Energizado por Ubuntu Linux
    Energizado por PHP
    Energizado por Apache Web Server
    Energizado por MySQL
    Energizado por SQLite
    atom

    ¿ Where The Hell Am I ?

    Mi Flickr







    Aquí Mis Mejores Fotos

    Eventos

    Encuesta

    ¿Que medio de comunicación usas más ?

    Comentarios Recientes