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

Programacion

  • Soporte de Teclas de Función en PocketPC

    Hace unos días desarrollando una aplicación de toma de inventarios para una empresa requerí usar una terminal MC1000 de Symbol Technologies, la cuál de fábrica trae un sistema operativo Windows CE 4.2, Windows CE es una plataforma para dispositivos móviles desarrollado por la empresa Microsoft.
    Debido a que la terminal portátil MC1000 no tiene una pantalla táctil(touchscreen) fué requerido implementar teclas de función para la ejecución de diversas funciones dentro de la aplicacion, no hubo mayor problema en desarrolar la parte de la aplicación para ser usada mediante teclas de función, el detalle fué cuándo requerí probar rápidamente la aplicación ya que en ese instante no contaba físicamente una terminal MC100 por lo que quise probar en mi PDA una HP iPaq RX3715 la cuál contiene un sistema operativo Pocket PC 2003 Second Edition, el cuál es diferente a WindowsCE, empezando porque PocketPC no trae teclas de función mientras que Windows CE si, ni en las últimas versiones de PocketPC no se ven teclas de función, por lo que no me quedó más que buscar en internet una solución que me permitiera cargar un teclado en la PDA que soportara teclas de función, para mi suerte pude encontrar un teclado virtual para pocketpc llamado Euro Keyboard.
    Lo interesante de Euro Keyboard es que es una aplicación desarrollada bajo la filosofía del Software Libre lo que indica que tanto el binario asi como el código fuente de la aplicación estan disponible para su descarga en este caso sin ningún costo, por lo que sin dudarlo lo bajé de Source Forge y pasé a instalarlo a mi PDA tal como se puede ver en el screenshot.
    Al hacer la prueba de mi aplicación usando esta utilería no tuve mayor problema al usar las teclas de función(F1, F2, F3.. ) en mi iPaq con PocketPC tal como debería operar en una terminal MC1000 con Windows CE.
    Por si alguien pudiera serle práctica esta utilería les paso el URL del proyecto Euro Keyboard en SourceForge para que pueda probarlo o mejor aún mejorarlo ! face-wink.png
    http://eurokbd.sourceforge.net/
  • Printing with Zebra Technologies RW-420 Printer and Symbol Motorola MC70 Mobile Terminal using Bluetooth connections..

    Today I was programming an application using the Compact Framework 2.0 with Visual Studio .Net 2005. I needed to print using the bluetooth connection between a Symbol MC70 Terminal and a Zebra RW-420 Printer and searching libraries in System.IO.Serial I can't found nothing interesting, then I remember that OpenNetCF released a Serial Library as Open Source, without think more I went to the OpenNetCF Site to get the Source Code of the library and build with VS .Net 2005 to obtain the dlls and add the reference to my project.
    The URL of the Serial Library is :
    http://www.opennetcf.com/FreeSoftware/OpenNETCFIOSerial/tabid/252/Default.aspx
    Then using the library I make a light class to print CPCL Code in Zebra RW 420.
    The Bluetooth connection between the RW420 and MC70 was successfully, Creating a Serial Com Port in ther mobile terminal with Windows Mobile 2005. Only I need Label Vista for Zebra to configure the properties of serial port of the mobile printer.
    If anyboy have any problem using RW420 printer, I put the code of my class, only you will need add the class in a namespace:
        class Zebra
        {
            OpenNETCF.IO.Serial.Port Serial;
            string status;
             string status_error;
            string receive_data;
            public Zebra() {
                status = "";
                status_error = "";
                 receive_data = "";
            }
                   
                    public Boolean OpenPort(string portName)
                    {
                StatusClean();
                OpenNETCF.IO.Serial.HandshakeNone portSettings = new OpenNETCF.IO.Serial.HandshakeNone();
                            Serial = new OpenNETCF.IO.Serial.Port(portName, portSettings);
                            Serial.DataReceived += new OpenNETCF.IO.Serial.Port.CommEvent(dataReceived);
                            Serial.RThreshold = 1;
                            Serial.InputLen = 30;
                            Serial.SThreshold = 1;
                            Serial.Settings.BaudRate = OpenNETCF.IO.Serial.BaudRates.CBR_57600;
                            Serial.Settings.Parity = OpenNETCF.IO.Serial.Parity.none;
                            Serial.Settings.StopBits = OpenNETCF.IO.Serial.StopBits.one;
                            Serial.Settings.ByteSize = 8;
                            if (!Serial.IsOpen)
                            {
                                    try
                                    {
                                            Serial.Open();
                                            status = "Port opened";
                                            return true;
                                    }
                                    catch (Exception ex)
                                    {
                                            status_error = "Error in port opening";
                                            return false;
                                    }
                            }
                            else
                            {
                                    return true;
                            }
                    }
                   
            /// <summary>
            /// Close Serial Port
            /// </summary>
                    public void ClosePort()
                    {
                StatusClean();
                try
                {
                    status = "Serial Port closed successfully";
                    Serial.Close();
                }
                catch {
                    status_error = "Seial Port not closed";
                }
                    }
                    /// <summary>
                    /// Send a string to the Serial Port
                    /// </summary>
                    /// <param name="cmd"></param>
                    public void SendCmd(string cmd)
                    {
                StatusClean();
                if (Serial != null)
                            {
                                    if (Serial.IsOpen)
                                    {
                                            try
                                            {
                                                    Serial.Output = StrToByteArray(cmd);
                                            }
                                            catch (Exception ex)
                                            {
                                                    status_error = ex.Message.ToString();
                                            }
                                    }
                            }
                            else
                            {
                                    status_error = "Port is not opened";
                            }
                    }

                   
                    /// <summary>
                    /// Allow to know the incoming string from serial port
                    /// </summary>
                    /// <param name="s"></param>
                    /// <param name="e"></param>
                    public void ReceivedData(object s, EventArgs e)
                    {
                            byte[] inputData = new byte[30];
                            inputData = Serial.Input;
                            string displayString = Encoding.ASCII.GetString(inputData, 0, inputData.Length);
                            receive_data += displayString;
                    }
                    //________________________
                   
                    /// <summary>
                    /// Convert  a string to byte array
                    /// </summary>
                    /// <param name="str"></param>
                    /// <returns></returns>
                    public static byte[] StrToByteArray(string str)
                    {
                            System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
                            return encoding.GetBytes(str);
                    }
                   
            /// <summary>
            /// Clean the status properties
            /// </summary>
            private void StatusClean(){
                status_error = "";
                status_error = "";
                status = "";
            }

     
    You can call the class from an event, for example:
    //Create the property in your class
    private Zebra ZebraPrinter;
    // call to the constructor
    ZebraPrinter = new Zebra();
    //And execute the OpenPort Method given the Serial Port of your Connection
    if (ZebraPrinter.OpenPort("COM4") == true) {

    //If the connection is successfully then send the string to Serial Port
    ZebraPrinter.SendCmd("! 0 200 200 800 1\r\nLABEL\r\nCONTRAST 0\r\nTONE 0\r\nSPEED 3\r\nPAGE-WIDTH 240\r\nBAR-SENSE\r\nTEXT90 4 3 36 288 .88\r\nTEXT90 5 2 163 273 SWEATSHIRT\r\nVBARCODE UPCA 2 1 45 139 576 04364503284\r\nTEXT90 7 0 191 511 043645032841\r\nTEXT90 5 0 4 524 COMPARE AT\r\nTEXT90 4 0 30 508 $ 30.00\r\nTEXT90 5 0 115 575 ZD-180-KL\r\nTEXT90 5 2 119 269 ALL COTTON\r\nTEXT90 7 0 114 389 01/17/98\r\nTEXT90 0 0 208 173 EA00-732-00560\r\nTEXT90 5 0 82 519 ELSEWHERE\r\nBOX 189 358 217 527 1\r\nPRINT\r\n");
       }
    //Close the POrt when you finish to send data to the Zebra Printer
    ZebraPrinter.closePort();
     
    The code is very simple, but it works and save many time and work ..
    My English suck.. but I need to practice it...
  • Generando Codigos de Barras con PHP

    Hace algunos años desarrollando una aplicación web de cotizaciones, pedidos y facturación en la empresa dónde trabajaba, requerí en ese tiempo generar códigos de barras automáticamente en la creación de los documentos de facturas, pedidos y cotizaciones desde la aplicación web que desarrollé con PHP.
    En ese tiempo pude encontrar una Clase de PHP interesante que generaba códigos de barras de forma automática usando las librerías de PHP, por lo que no tarde en descargarlo e implementarlo dentro del sistema que estaba programando.
    Aquí muestro un demo con Ajax para mostrar el uso de esta Clase para generar códigos de barras automáticamente, el demo también puede observarse en esta url http://phylevn.mexrom.net/barcode/:





    Demo para Generar Codigos de Barras usando Ajax


    Capture un Texto en el campo de edición y presione el botón Generar Código para crear el código de barras usando la Clase de generación de Código de Barras

    Texto


    Codigo de Barras Generado

    Tipos de Códigos de Barras soportados por la librería :
  • Codabar
  • Code11
  • Code128
  • Code39
  • Code93
  • EAN13
  • EAN8
  • Interleaved 2of 5
  • MSI
  • Postnet
  • Standard 2 of 5
  • UPCA
  • UPCE
  • UPC
  • Esta clase permite rápidamente generar códigos de barras de manera fácil y simple y puede adaptarse a cualquier sistema desarrollado en PHP usando las librerías de GD2 para la creación de los gráficos por lo que es necesario configurar PHP para que haga uso de la extensión GD2.
    La clase de PHP puede encontrarse en la siguiente URL http://www.phpclasses.org/browse/file/10768.html&upsid=184979762863
    Cabe mencionar que esta clase solo implementa codígos de barras lineales, existen otras clases en PHP que implementan códigos de barras bidimensionales como los PDF-417, MaxiCode, Aztec pero en este caso esta fuera del alcance de la clase que hago mención.
    Es importante dar a conocer que esta clase es libre siempre y cuándo su uso no sea comercial, en caso de que se desarrolle una aplicación comercial que haga el uso de esta librería entonces es necesario ir al sitio de los creadores en http://other.lookstrike.com/barcode/purchase.php5 y obtener una licencia comercial.
  • Microsoft libera el código fuente completo para Emulador de Windows CE & Pocket PC

    Bajando unas librerías para del desarrollo de una aplicación en OpenNetCF doy por casualidad con una nota en un blog de MSDN dónde comentan que hace más de un año Microsoft liberó el código fuente completo del Emulador de Windows CE y Pocket PC, el código fuente completo al parecer puede compilarse directamente desde el Visual Studio 2005, de tal forma que con este emulador ya no hará falta tener físicamente el dispositivo para probar las aplicaciones desarrolladas para esta plataforma de dispositivos móviles y asi probar nuestros desarrollos dentro del Emulador directamente.
    El código fuente del Emulador de Windows CE y Pocket PC puede obtenerse desde la siguiente URL
    http://www.microsoft.com/downloads/details.aspx?FamilyID=FAA8C81D-7316-4461-A0ED-6C95B261DDCD&displaylang=en
    .
  • Conectar una Terminal Portátil vía GPRS a una red VPN usando Software Libre.

    Este no es un HowTo, mucho menos un tutorial, solo es una referencia rápida de como implementar una conexión VPN entre dispositivos móviles con Windows Mobile 2003 o 5.0 a traves de redes GPRS.
    Debido a la falta de compatibilidad entre los Appliances de seguridad y conexiones VPN existentes en el mercado para con los dispositivos móviles y despues de haber intentado varias soluciones que no tuvieron éxito, me puse a investigar una solución que pudiera permitir algunas terminales portátiles conectarse a un servidor VPN para lo cuál tuve suerte de encontrar OpenVPN.
    OpenVPN es una solución VPN fácil y rápida de implementar aparte de ser muy segura y con muchas características configurables que le permiten adaptarse a cualquier escenario planteado, pero lo importante es que permite conexión desde dispotivos móviles bajo la plataforma de Windows Mobile y es una solución Open Source lo que indica que no es necesario pagar un licenciamiento adicional por cada conexión o servidor implementado.
    La versión de OpenVPN como servidor puede obtenerse libremente desde la siguiente dirección http://www.openvpn.org.
    La implementación del servidor OpenVPN se realizó bajo la plataforma de Ubuntu Linux Server y para lo cuál se siguió el siguiente HowTo para su implementación en el servidor : http://openvpn.net/howto.html
    En la parte móvil se usó una terminal portátil Symbol MC70 con conexión GPRS habilitada con el proveedor de Movistar. En la terminal portátil de Symbol desarrollé una aplicación que contiene un sistema para generar cotizaciones en línea, generación de pedidos, control de inventarios y facturación electrónica, para lo cuál era necesario acceder remotamente a un servidor de MS SQL Server para extraer la información de la base de datos que son alrededor de 20 tablas con un global de 50,000 registros apróximadamente y almacenar esa información en una base de datos local dentro de la terminal portátil MC70 y así operar en modo batch para despues solo enviar la información capturada al servidor remoto usando la conexión GPRS a traves de una conexión segura VPN.
    Para poder hacer la conexión a la base de datos era necesario tener una conexión VPN segura, se intentó conectar al appliance que se tiene instalado en las instalaciones del cliente, pero por cuestiones de incompatibilidad la conexión no se pudo realizar usando los mecanismos de VPN estándares de Windows Mobile, por lo que recurrimos a una solución OpenSource la cuál ha resultado bastante eficaz y con la cuál estamos operando en estos momentos.
    El cliente OpenVPN para dispositivos móviles puede obtenerse de la siguiente dirección http://ovpnppc.ziggurat29.com/ovpnppc-files.htm su uso e implementación dentro de la términal portátil es fácil pero el sitio de OpenVPN cuenta con un forum por si pudiera presentarse un problema durante su instalación y configuración.
  • SQL-Ledger Un poderoso ERP Libre para las Empresas Mexicanas

    Despues de escuchar en el ENLi la interesante charla del Ing. Jesus Vázquez Contreras sobre sql-ledger un ERP basado en la filosofía del Software Libre y liberado bajo la Licencia GPL y despues de recordar un primer contacto con este fabuloso ERP me interese en probar todos los beneficios que pudieran darle a cualquier empresa que requiera desde un Punto de Venta, pasando por un completo sistema de control de inventarios hasta un sistema de contabilidad para una pequeña y mediana empresa, entre otras cosas, por lo qué este domingo a pesar de un sin fin de pendientes que aun no terminó, me dispuse instalarlo en mi lap para empezar a probarlo e irlo conociendo.
    Recuerdo que mi primer contacto con este ERP fué hace un par de años cuándo lo conocí, haciendo una búsqueda por internet di con el en SourceForge, recuerdo que intenté implementarlo en una máquina de la anterior empresa dónde trabajaba, ahí usaban SAE y la contadora quería migrar a un sistema más robusto, en ese entonces conociendo las características de sql-ledger le pasé un documento con sus características, pero algo pasó que no generó encantó y decidieron por una actualización de SAE, por lo cuál dejé en el aire continuar y aprender de este proyecto.
    Al principio pensé que la instalación de sql-ledger sería complicada ya que sus requerimientos se salen de lo estándar de cualquier aplicación web, (por lo general cualquier aplicación web es Apache, PHP y MySQL) pero en este caso sql-ledger se sale de este esquema, usando Perl como lenguaje de programación y Postgres como base de datos, combinado con Apache, Perl:face-smile-big.png BI y Latex(Opcional), que desde mi punto de vista estos requerimientos me parecen muy razonables ya que le brindan mucho mayor estabilidad a la aplicación para su uso en entorno de producción real como lo es su uso en cualquier empresa con un considerado número grande de usuarios.
    A Grosso Modo la instalación de SQL_ledger consta de bajar los fuentes de postgres, previamente descargar las librerías de readline, compilar postgres, crear el usuario default de postgres, instalar apache con un apt-get install apache2 basta, descargar las librerias DBI, dbd-pg, latex igual con un apt-get es más que suficiente, verificar la versión de perl -v revisando que sea superior a la version 5, ya con estos requerimientos se esta listo para poder configurar sql-ledger, solo habría que echarle un vistazo al archivo README.html que viene dentro del paquete de los fuentes de sql-ledger y seguir paso a paso las instrucciones de instalación y de configuración de sql-ledger, ojo para la instalación de postgres ver el archivo INSTALL, la configuración de sql-ledger solo hay que entrar al admin, dar de alta la base de datos y crear los usuarios con los permisos correspondientes.
  • Para ver las características de sql-ledger acceder a esta URL

    http://sql-ledger.com/cgi-bin/nav.pl?page=features.html&title=Features
  • Información de dónde descargar y como instalar sql-ledger puede verse desde esta URL

    http://sql-ledger.com/cgi-bin/nav.pl?page=source/index.html&title=Download
  • Un documento interesante publicado en Linux Journal sobre sql-ledger, está en ingles pero vale la pena leerlo.
    http://www.linuxjournal.com/article/7290
    Creo que es una alternativa ya muy avanzada para cualquier empresa mexicana, desde la tienda de la esquina que requiere controlar sus inventarios o tener su punto de venta, hasta una empresa mediana que va tirándole a grande.
    Y lo mejor de todo, es Software Libre !! face-wink.png
  • OpenNetCF ahora más libre..!

    Buscando unas librerías para compresión y descompresión de archivos para dispositivos móviles que use hace tiempo para un proyecto, entro de nuevo al sitio de OpenNetCF para descargarlas, pero antes de hacer la descarga de la librería noto que OpenNetCF se pasa de la licencia Shared Source (que usa mayormente Microsoft en sus proyectos dónde libera código fuente) a una licencia más abierta como es la MIT la cuál es simple de entender y es mucho más permisiva que la anterior.
    Por lo comentado en el sitio de OpenNetCF el cambio de licenciamiento será paulatino esto debido a la exigencia de la comunidad y también debido ante los reclamos de la comunidad en el evento MEDC ‘06 según lo que entiendo en este post del blog de la comunidad de OpenNetCF.
  • CONEXSOFT 2007

    Al parecer por lo que puedo observar en el sitio del CONEXSOFT en http://fisep.tecserdan.edu.mx:1352/conexsoft07/default2.aspx todo ya está listo.
    El CONEXSOFT es un evento que se realiza por segunda vez en la Ciudad de Puebla, este evento conjunta Exposiciones, Conferencias y Talleres sobre diversas tecnologías con el fin de impulsar y fomentar el interes por parte de académicos y empresarios en el Estado de Puebla hacia la modernización y uso de nuevas tecnologías. Este año se enfocará a una de las nuevas Tecnologías Móviles y emergentes en el mercado mundial que engloba todo lo que es "La Movilidad" y que en la actualidad ya está siendo considerada aquí en México un factor muy importante en el proceso de negocios de las empresas, tan es así que en este año por experiencia personal los proyectos de movilidad han crecido exponencialmente en comparación de años anteriores.
    Este evento se llevará a cabo los días 9 y 10 de Octubre en la Ciudad de Puebla.
    Tuve la oportunidad de ser invitado a este evento como conferencista y para dar 2 talleres. Mi conferencia hablará sobre Herramientas de Software Libre para dispositivos móviles, en este caso no me enfocaré solo a una tecnología, si no más bien intentaré dar a conocer la gama de opciones que se tienen de herramientas de Software Libre para desarrollar todo un proyecto empresarial, que va desde la implementación de servidores, seguridad en las comunicaciones remotas, bases de datos para dispositivos móviles, herramientas de programación e incluso el porqué usar un sistema operativo libre cómo linux en un dispositivo móvil.
    Los talleres serán algo parecido, por el poco tiempo disponible de igual forma no me enfocaré a una tecnología, si no más bien como implementarlas y el porqué, mostrando un uso práctico de manera global para que cada asistente pueda tomar nota y despues pueda implementar lo que su imaginación y conocimiento logre.
    Al parecer la asistencia al evento es libre por lo cuál si desean asistir les recomiendo que se registren en la siguiente URL:
    Registro Conferencias: http://fisep.tecserdan.edu.mx:1352/conexsoft07/RegConferencias.aspx
    >Registro Talleres: http://fisep.tecserdan.edu.mx:1352/conexsoft07/RegTalleres.aspx
    Conferencias:
    Lista de Conferencias: http://fisep.tecserdan.edu.mx:1352/conexsoft07/ProgAnalco.htm
    Talleres:
    Lista de Talleres: http://fisep.tecserdan.edu.mx:1352/conexsoft07/Talleres1.htm
    Crítica Personal: A mi gusto el sitio del evento no me gusta, pudieron haber elegido algun CMS junto con una herramienta de software libre como YACOMAS para la divulgación, captura de usuarios y lista de conferencias y talleres lo que hubiera hecho más fácil su navegación, uso e incluso administración, pero bueno.. solo un comentario a título personal.
    Saludos y espero poder salularlos por ahí.
    Phylevn.
    P.D. Por cierto ya se acerca el Encuentro Nacional de Linux y al parecer también habrá charlas muy interesantes
    Actualización:


    Pueden obtener el material de la charla que presenté en la siguiente URL:
    Herramientas de Software Libre Para Dispositivos Móviles
  • Publicación sobre SQLite en la revista de Software Guru


    Hace unos días salió a circulación la revista de Software Guru correspondiente al mes de Septiembre y Octubre.
    En esta ocasión tuve la oportunidad de poder colaborar con la revista con un artículo sobre SQLite, una base de datos libre que puede ser empotrada en dispositivos móviles y que prácticamente puede usarse en cualquier plataforma, aún no hay una referencia electrónica sobre mi artículo en el sitio, solo de forma impresa en la revista, pero pongo a su disposición material que previamente he subido en este blog y que me ha servido como parte de algunas conferencias que he dado.
  • Un análisis sobre diversas bases de datos para dispositivos móviles
  • Un comentario muy interesante del Robert Simpson el creador de la librería ADO Net para SQLite que puede ser usada en los entornos de desarrollo de Visual Studio .Net de Microsoft
  • Material de la conferencia que di en la Facultad de Ingeniería de la UNAM en el marco del CONSOL(Congreso Nacional de Software Libre)
  • Script de PHP que permite importar datos de un CSV a una base de datos de SQLite
    Información de la revista de Software Guru
    SG es la única revista en México dedicada al desarrollo de software. Gracias a su enfoque técnico, neutral y orientado a la práctica, desde la publicación de su primer ejemplar en Octubre del 2004, se ha convertido en la revista preferida por los profesionistas de software en México. La revista SG es una publicación bimestral, tiene un tiraje de 12 mil ejemplares con circulación a nivel nacional.
  • ¿ Como configurar Festival en Asterisk ?

    Festival es una excelente herramienta qe funciona en Linux, Festival permite a diversas aplicaciones en linux traducir texto a voz, conceptualmente podemos decir que festival es un framework para desarrollar diversas aplicaciones de voz, entre sus ventajas es que se pueden configurar diversos plugins y uno de ellos es asignar un estilo de pronunciación para convertir los textos a voz, esto quiere decir que la pronunciación puede ser en ingles, español, alemán o el idioma que sea y el género que exista para esos idiomas, esto solo configurándolo en Festival.
    Festival junto con Asterisk se convierte en una herramienta muy poderosa ya que con estas 2 grandes aplicaciones de Software Libre se pueden desarrollar múltiples aplicaciones junto con los AGIs de Asteisk, de tal forma que podemos crear un AGI en el cuál nuestros clientes puedan llamar a nuestras oficinas y asterisk conmute las llamadas de tal forma que por ejemplo en la extensión 301 tengamos una aplicación en el cual se le pida a nuestros clientes su login y passwords y de tal forma consultar una base de datos y regresarles el status de su orden, pedidos u otra información pero con voz ya que festival se encargaría de hacer la lectura obtenida de la base de datos y regresarla por el canal de voz al usuario mediante Asterisk.
    A continuación muestro el procedimiento de configuración de Festival para integrarlo en Asterisk
    #INSTALANDO
    #Verificar que se tiene instalado la versión de festival
        dkpg -s festival
    #si no está instalado instalarlo con Apt-Get
        sudo apt-get install festival festival-dev
    #instalamos los parlantes en español e ingles
    sudo apt-get install festvox-ellpc11k festvox-kallpc16k festvox-kallpc8k festvox-kdlpc8k
    #CONFIGURANDO FESTIVAL  
    #Editar el archivo siguiente:
       sudo emacs /etc/init.d/festival
    #Buscar lo siguiente:
        #! /bin/sh
        # /etc/init.d/festival
        #
        # Init script for starting Festival as a system-wide server process.
        #
        # Written by David Huggins-Daines <dhd@cepstral.com>
        # Comment out the next line to start a Festival server at boot time.
        exit 0
        # NOTE: Not just anybody can connect to your server; the list of allowed
        # hostnames is a regexp. Check /usr/share/festival/festival.scm for more
    y comentar
        #exit 0
       
    #Guardar el archivo con CTRL+S  CTRL+G
    #Editar el siguiente Archivo
       sudo emacs  /etc/festival.scm
    #Y agregar lo siguiente:
    ;; set spanish voice (comment the following 2 lines to use british_american)
    ;; (language_spanish)
    (set! voice_default 'voice_el_diphone)
    ;;; Command for Asterisk begin
    (define (tts_textasterisk string mode)
    "(tts_textasterisk STRING MODE)
    Apply tts to STRING.  This function is specifically designed for
    use in server mode so a single function call may synthesize the string.
    This function name may be added to the server safe functions."
    (utt.send.wave.client (utt.wave.resample (utt.wave.rescale (utt.synth
    (eval (list '
    Utterance 'Text string))) 5) 8000)))
    ;;; Command for Asterisk end
    #Guardar el archivo
    #Editar el archivo de configuración de festival para asterisk
    sudo emacs /etc/asterisk/festival.conf
    #y dentro del archivo poner lo siguiente:
    [general]
    host=localhost
    port=1314
    festivalcommand=(tts_textasterisk "%s" '
    file)(quit)\n
    #Guardar el archivo
    #Editar el archivo /etc/asterisk/phpagi.conf y verifica que las rutas sean correctas
    [festival]
    #directorio donde se encuentra la aplicacion text2wave
    text2wave=/usr/bin/text2wave
    #directorio donde se colocaran los archivos temporales
    tempdir=/var/lib/asterisk/sounds/tmp/
    #Guardar el archivo
    #Editar el archivo siguiente
    sudo emacs /etc/asterisk/extensions_custom.conf
    #y agregar lo siguiente
    include => festival-demo
    [festival-demo]
    exten => 111,1,Answer
    exten => 111,2,Festival(Probando la voz en español para festival con asterisk)
    exten => 111,3,Hangup  
    #Guardar el archivo
    #EJECUTANDO
    #Parar Asterisk, en este caso como se está usando freepbx pararlo con el siguiente comando
        sudo amportal stop
    #Reiniciar Festival
        sudo /etc/init.d/festival start
    #verificar que festival se haya iniciado como servidor
    ps aux | grep festival
    #debería regresar algo como esto
    nobody   16339  0.0  1.1  56576 22920 ?        Ss   00:26   0:00 /usr/bin/festival --server
    #Iniciar Asterisk
    sudo amportal start
    #PROBANDO
    #Desde una extensión del conmutador de VoIP marcar la extensión 111
    #Al llamar a la extensión deberían de escuchar una voz robotizada del texto que escribieron, solo es cuestión de ajustar un poco la velocidad de lectura, y lo agudo de la voz en festival, así como cambiar el idioma de lectura.
    #Si pueden abrir la consola de asterisk podrían ver algo como esto al llamar a la extensión
    en voz
    Accepting AUTHENTICATED call from XXX.XXX.XXX.XXX:
           > requested format = ulaw,
           > requested prefs = (),
           > actual format = ulaw,
           > host prefs = (ulaw|alaw),
           > priority = mine
        -- Executing [111@from-internal:1] Answer("IAX2/204-3", "") in new stack
        -- Executing [111@from-internal:2] Festival("IAX2/204-3", "Probando la voz en español para festival con asterisk") in new stack
      == Parsing '/etc/asterisk/festival.conf': Found
        -- Executing [111@from-internal:3] Hangup("IAX2/204-3", "") in new stack
      == Spawn extension (from-internal, 111, 3) exited non-zero on 'IAX2/204-3'
        -- Executing [h@from-internal:1] Macro("IAX2/204-3", "hangupcall") in new stack
        -- Executing [s@macro-hangupcall:1] ResetCDR("IAX2/204-3", "w") in new stack
        -- Executing [s@macro-hangupcall:2] NoCDR("IAX2/204-3", "") in new stack
        -- Executing [s@macro-hangupcall:3] GotoIf("IAX2/204-3", "1?skiprg") in new stack
        -- Goto (macro-hangupcall,s,6)
        -- Executing [s@macro-hangupcall:6] GotoIf("IAX2/204-3", "1?skipblkvm") in new stack
        -- Goto (macro-hangupcall,s,9)
        -- Executing [s@macro-hangupcall:9] GotoIf("IAX2/204-3", "1?theend") in new stack
        -- Goto (macro-hangupcall,s,11)
        -- Executing [s@macro-hangupcall:11] Hangup("IAX2/204-3", "") in new stack
      == Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'IAX2/204-3' in macro 'hangupcall'
      == Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'IAX2/204-3'
        -- Hungup 'IAX2/204-3'
    #Si no les funciona o tienen algun otro error repitan el procedimiento.
    #Con esto ya están casi listos para empezar a desarrollar AGIs con PHP, Perl Java o el lenguaje que más les acomode.
     
  • 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