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

  • Como montar una red inalambrica de largo alcance con DD-WRT y un Linksys WRT54G .

    Hace unos días estando en Lerdo de Tejada, Veracruz -lugar dónde hacen un arroz a la tumbada muy sabroso-, un amigo me preguntó si conocía de algunos equipos que sirvieran como repetidores inalámbricos, es decir ellos tienen una conexión de intenet de 4 mbps y la querían compartir con varios amigos que están extendidos a los largo de la población, lo que se me ocurrió comentarles rápidamente en base a mi experiencia es que adquirieran Access Points que sirvieran como bridges y que al mismo tiempo pudiera funcinar en modo AP.
    Hace tiempo trabajando en una empresa conocí alguno de estos equipos y me tocó configurarlos, los llamados Wireless Switchs, los cuáles tienen Access Ports en vez de Access Points y la configuración es centralizada, estos Access Ports entre sus características es que pueden configurarseles varios ESSID, si no mal recuerdo tenían la opción de meterles hasta 4 ESSID en algunos lo que permitia hacer repetidores inalámbricos, lo malo solo era el costo pues una solución de esta no costaba en ese entonces menos de $ 1,000.00 dólares.
    Por lo que una solución como la mencionada anteriormente no era viable para estos amigos que querían realizar una función plenamente con fines de entretenimiento, por lo que regresando aqui a México, D.F., saque un router WRT54G que tenía por ahí empolvándose, previamente ya le había metido el firmware de DD-WRT, la versión 0.23 que salió hace más de un par de años, pero desde entonces no había actualizado el firmware en este equipo, por lo que dándome una vuelta en el sitio de DD-WRT vi que ya tienen la versión 0.24 con su Service Pack 1, por lo que ni tardo ni perezoso la bajé para instalársela.
    Antes ya había tenido conocimiento de Redes MESH y WDS(Wireless Distribution System), pero no lo había llevado a la práctica, por lo que despues de bajar la versión 0.24 de DD-WRT pude ver que el AP WRT54G en la configuración del Wireless ya permite trabajar en modo repetidor y modo bridge, por lo que quise hacer una prueba la cuál consiste en lo siguiente:
    Conectar el router Linksys en modo repetidor a un Access Point 2Wire Infinitum que está en alguna parte del edificio dónde vivo.
    Aqui es importante usar el mismo ESSID, Canal y llave WEP ó WPA que tiene el Access Point "padre" por así decirlo, de forma que hay que conectar el WRT54G como cualquier cliente inalámbrico con la salvedad que en la configuración hay que decirle que está trabajando en modo repeater bridge y no en modo AP o Cliente(ver figura de abajo).
    Posteriormente agregar una interfaz virtual inalámbrica en el Router, esto hará que se vea un AP más al gestionar las redes inalámbricas y de ahí poder conectarnos.
    Despues solo basta ir a la parte de Wireless->Wireless Security->Virtual Interfaces wl0.1 SSID [phylevn.mexrom.net]
    Para poder configurar la parte de seguridad de la red inalámbrica.
    Ya que quede todo esto hay que guardar las configuraciones y aplicarlas.
    Despues solo ir a la parte de Status y ver como está la parte inalámbrica ahí debería verse como el WRT54G se conecta en este caso al 2Wire Infinitum y también como un cliente se conecta a la interfaz virtual del WRT54G que trabaja en modo AP.
    Configuración del WRT54G en modo repetidor y también configurando la interfaz virtual del WRT54G.
    Agregando Interfaz vitual inalámbrica
    Gestionando las conexiones realizadas por el WRT54G, en este caso ya conectado al 2Wire Infinitum y también se observa como un cliente se conectó a la red inalámbrica phylevn.mexrom.net que es la interfaz virtual del WRT54G.
    Trabajando el Repetidor inalámbrico en WRT54G
    Lo interesante de todo esto es que se realiza en un par de minutos, sin gastar tantos pavos que con soluciones propietarias como las de Symbol Technologies ahora Motorola.
    Solo resta agradecerle a la comunidad de desarrollo de DD-WRT y al Open Source en general por permitir esto y muchas cosas más. face-smile.png
  • Insertando, Eliminado, Actualizando y Listando Datos usando AJAX con PHP, CSS, Javascript y ODBC

    Pongo en http://files.mexrom.net código PHP para ejemplificar el uso de Ajax, el código muestra operaciones básicas como son Insercion, Actualización, Borrado y Listado de Datos sobre alguna Base de Datos haciendo uso de ODBC.
    Para obtener el código entrar al siguiente url:
    http://files.mexrom.net
  • Login:invitado
  • Password:invitado
    Acceder al directorio Ajax_demo y descargar el archivo ajax_demo.zip
    Descomprimir el código de ajax_demo.zip en algún directorio del servidor web.
    Posteriormente se requiere crear la tabla siguiente:
    CREATE TABLE USUARIOS (
       CLAVE_USUARIO VARCHAR(10),
       NOMBRE VARCHAR(120),
       LOGIN VARCHAR(10),
       PASSWORD VARCHAR(10),
       ZONA VARCHAR(10),
       FECHA_CONEXION VARCHAR(10),
       HORA_CONEXION VARCHAR(10),
       STATUS VARCHAR(1),
       ADMIN VARCHAR(1),
       PRIMARY KEY (CLAVE_USUARIO)
    )
     
    Esta tabla puede crearse en cualquier manejador de base de datos que tenga un conector ODBC, de tal forma que será necesario crear una conexión ODBC a la base de datos dónde se creo la tabla.
    Posteriormente solo habilitar el soporte ODBC en PHP, en caso de que se use Wamp Server en el ícono de Wamp Server ubicado en la barra de tareas de Windows seleccionar PHP->PHP Extensios->PHP_PDO_ODBC.
    Ya que se tenga habiltado el soporte ODBC, entonces entrar al archivo conexion.php y cambiar los valores de conexión ODBC para acceder al servidor de Base de Datos.
    Con esto ya es posible probar las bondades de Ajax.
    Dar de alta manualmente un usuario con el valor de admin = *(asterisco) para poder acceder a la aplicación
    Ó descomentar la línea 17 del archivo index.php
    Espero le pueda servir a alguien, cualquier duda pongan un comentario.
  • Administrador de Descargas para Linux

    Hace algunas semanas adquirí una cuenta de Rapidshare.com, el cuál es un servicio que te permite descargar infinidad de archivos sin límite de descarga y con un ancho de banda bastante rápido, por lo que decidí aprovecharlo para obtener algunos archivos, en Windows he usado Free Download Manager, pero en el caso de Linux el gestor de descargas de Firefox no me convence, al igual que Kget que viene integrado dentro de KDE, esto ya que si por alguna razón se pierde la conexión también pierdo todo el avance de la descarga realizado, por lo que buscando un Administrador de Descargas encontré WebDownloader for X en su versión 2.5.
    Web Downloader me permite ir agregando URL de archivos a descargar que los va poniendo en una cola, de tal forma que en la configuración le digo cuántos puede ir descargando simultáneamente, si en algún momento se interrumpe la conexión, Web Downloader guarda los datos para poder continuar(Resume) la descarga en el porcentaje que se quedó en la última sesión.
    Un problema que tuve con WebDownloader es que en la configuración le indicaba que los archivos me los pusiera en el directorio /downloads, directorio al que le asigne permisos de escritura para mi usuario, pero por alguna razón Web Downloader siempre me iba guardando los archivos descargados en un subdirectorio de mi dir HOME, esto no me gustó ya que en mi HOME no tengo mucho espacio, ya que los dir /(root) /boot /var /usr /home y swap los tengo en particiones independientes, por lo que tuve que eliminar el directorio MyDownloads que crea directamente Web Downloader, para poder hacer un link dinámico de /downloads a ~/MyDownloads por lo que de esta forma Web Downloader descargaba en MyDownloads que en realidad es /downloads .
    Con esto ya pude seguir aprovechando los beneficios de rapidshare.com... tongue.png
  • Deteccion de Movimiento en Linux

    Llevo un par de meses integrando en un servidor Linux múltiples herramientas multimedia libres para la creación de un Centro Multimedia con capacidades domóticas.
    Entre las que he probado y de la que hablare ahora es de Motion.
    Motion Es una utilería desarrollado bajo una licencia libre que permite detectar movimientos en cámaras web usando video4linux como interfaz para conexión con Dispositivos de Video en linux tales como cámaras web.
    Lo interesante de Motion es que permite usar cualquier Cámara Web compatible con Linux para hacer VideoStreaming esto indica que podemos ver la cámara web a traves de una página web, por lo que monitorear la cámara se puede hacer desde cualquier parte del mundo siempre y cuándo la computadora dónde esta conectada la cámara estuviera conectada a una IP Homolagada, pero lo mejor de Motion es que permite configurarse para que cuándo detecte movimiento capture las imágenes y las guarde en un directorio en formato Jpeg, por lo que su uso se extiende aun más para lo que es VideoVigilancia.
    Por default Motion corre en modo aplicación, pero puede configurarse desde su archivo de configuración que está en /etc/motion/motion.conf para que corra en modo demonio por lo que siempre estará corriendo en background.
    Motion por default abre el puerto 8000 para que desde otras partes vía una página web se pueda monitorear la cámara web siempre y cuándo la opción de webcam_localhost esté en off, el puerto también es posible configurarlo.
    Algo que me llamó mucho la atención de Motion es que es muy configurable a traves de /etc/motion/motion.conf, en dónde leyendo mediante man la documentación me entero de que tiene un trigger on_event_start que permite ejecutar alguna aplicación al momento de detectar movimientos, de tal forma que aqui solo basta usar la imaginación para poder hacer algo interesante tal como es por ejemplo mendiante Asterisk alertar con una llamada telefónica a personal de seguridad de un movimiento detectado.
    También algo que me agradó de TextMotion es que guarda imágenes cuándo se detecta movimiento, asi como también tiene la opción de grabar un video de cuándo se detecta el movimiento y mejor aún de mostrar el área dónde se está registrando el movimiento..
    Tambien es posible configurar el número de frames necesarios parapoder considerar un evento de movimiento.
    Aquí pongo la configuración que uso para usar Motion como un detector de movimiento, con esta configuración guardo videos en formato avi con el codec msmpeg en el directorio default /var/lib/motion/snapshots y también desactivo la opción de que genere archivos JPG o PNG de movimiento, configuro a Motion para que muestre el video usando una calidad de 320x240 por cuestiones de rendimiento y ejecutando al momento de que se detecte un movimiento un script en PHP que es un Agi de asterisk que me permite marcar a una extensión telefónica.
    # Minimal motion example config file provided by the
    # Debian motion package - for basic webcam operation.
    #
    # You most certainly want to investigate
    # /usr/share/doc/motion/examples/motion-dist.conf.gz
    # for further configuration options. Also, refer to the
    # motion man page and /usr/share/doc/motion/motion_guide.html
    # for detailed information on configuration options.
    daemon off
    quiet on
    # You may very well need to change this (check with 'dmesg'
    # after plugging in your webcam).
    videodevice /dev/video0
    # Image size in pixels (valid range is camera dependent).
    #Si se tiene una cámara que soporte mayor calidad como por ejemplo 640x480 entonces cambiar los valores, por cuestiones de rendimiento he dejado los valores por default aqui
    width 320
    height 240
    framerate 25
    #calidad con que guardará las imágenes JPEG, en cuestiones de seguridad a veces es bueno darle un 100% asi  se tendrá una imagen más tínida, aunque esto requerirá mayores espacios
    quality 75
    auto_brightness off
    # General threshold level and noise threshold
    # level (for distinguishing between noise and motion).
    threshold 4500
    noise_level 64
    # Initial brightness, contrast, hue (NTSC), and saturation.
    # 0 = disabled (valid range 0-255).
    brightness 0
    contrast 0
    saturation 0
    hue 0
    # Encode movies in real-time (install ffmpeg before enabling).
    #default ffmpeg_cap_new off
    #ffmpeg_cap_new off
    #Habilitar esta opción para grabar videos cuándo haya movimiento
    ffmpeg_cap_new on
    # Codec to be used by ffmpeg for the video compression.
    # Supported formats: mpeg4, msmpeg4.
    #se configura el codec a usar
    ffmpeg_video_codec msmpeg4
    # Target base directory for pictures and films (you may need
    # to change this (or change its permissions) depending on
    # which system user runs motion).
    target_dir /var/lib/motion/snapshots
    # Define a port number (e.g. 8000) to enable the mini-http server.
    # 0 = disabled.
    webcam_port 8000
    # Set to 'off' to allow anybody (not just localhost) to view the
    # webcam via the mini-http server (http://hostname<img src="plugins/Emoticons/images/tongue.png" border="0" alt="tongue.png " width="16" height="16" />ort).
    #webcam_localhost on
    webcam_localhost off
    webcam_quality 70
    webcam_maxrate 8
    #Configuracion personalizada
    #Puerto para entrar a la configuracion
    control_port 8001
    #Usuario y password para acceder a la configuracion
    control_authentication motion:m0t10n
    #Numero de frames requeridos para poder lanzar el evento de movimiento
    #minimum_motion_frames  10
    #Comando que se ejecuta al detectarse movimiento
    on_event_start  "php -q /var/lib/asterisk/agi-bin/makeCallwithAsterisk.php"
    #Esta opcion siempre generaria imagenes cada cierto tiempo aunque no haya movimiento
    #output_all on
    #Muestra la región donde se localiza el movimiento
    locate on
    #muestra un texto en la esquina inferior izquierda
    text_left "phylevn.mexrom.net"
    #aumenta el tamano del texto
    text_double on
    #se asegura de que haya movimiento
    roundrobin_skip 2
    #desactivamos la opción de que guarde archivos de imágenes
    output_normal off
    #indicamos que guarde los archivos en formato NTSC para el caso de Mexico
    norm 1
     
    Existen otras aplicaciones para monitoreo de cámaras tales como webcam-server, pero a mi gusto Motion por mucho se lleva las palmas.
    Para mis prubeas he usado una cámara web Creative Live! Cam, la cuál adquirí por $ 180 pesos en la plaza de la computación.
    Para poder conectar esta cámara en Ubuntu Linux 7.10, use el driver ov51x-jpeg-1.5.9. Es posible usar la cámara también para el AMSN y otros programas que hagan uso de Video4Linux.
  • Rockola Web2.0 Ver 1.0-beta liberado en SourceForge.net

    En el anterior post puse información sobre una Rockola que hice en un rato de ocio allá en Oaxaca, ahora he puesto el código en SourceForge.net de la Rockola Web2.0 como le he llamado al proyecto.
    El código puede descargarse de la siguiente URL
  • http://sourceforge.net/projects/rockolaweb20/
    Puede obtenerse más información de esta aplicación en la siguiente URL:
    http://phylevn.mexrom.net/index.php/blog/show/Desarrollando_Rockola_en_Linux_.html
    Aqui algunos screenshots
  • http://www.flickr.com/search/?q=Rockola&w=56262362%40N00
    Espero pueda servirle a alguien el desarrollo y cualquier duda, comentario, sugerencia, queja ó demas siéntase libre de contactarme en fileinleon arroba gmail punto com
  • Rockola Web 2.0 en Linux..

    Hace unos días estando en Oaxaca visitando a mi familia y degustando de los panes de muertos, me preguntó mi papá si podía instalarle un programa para reproducir música, esto ya que mi padre rentó la licencia del Bar "La Chinita" que allá en la Ciudad de Oaxaca está enfrente de la Tienda del Issste de la Calz. Madero, probando algunas aplicaciones como Amarok, Esperanza con XMMS2, Mplayer, Xine, XMMS, Juk, Jukx, entre otros se me hicieron demasiado complejas para poder usarlas como Rockolas, por lo que una noche caminando por la estación del ferrocarril se me ocurrió la idea de desarrollarla usando una interfaz web, una base de datos empotrable al código como sqlite, y una utilidad que reprodujera la música sin que se requiriera interfaz gráfica como lo hace XMMS2, por lo que llegando a la casa de mis padres empecé con las primeras líneas de código.
    El resultado final fué el siguiente:
    Screenshot Rockola (ALfabeto cervezas)
    Características de la Rockola:
  • Lectura recursiva de archivos MP3 de los directorios asignados en la configuración.
  • Extracción de información de Artista, Titulo, Album y Genero de los archivos MP3 encontrados.
  • Almacenamiento de la información en la base de datos SQLite (SQLite no requiere configuración adicional)
  • Clasificación de canciones MP3 por Artista, Album ó Género.
  • Subclasificación de canciones MP3 por Alfabeto.
  • Busqueda personalizada de canciones por artista titulo, album ó género.
  • Listado de MP3 por Artista, Album ó Género.
  • Muestra información detallada de canción MP3 seleccionado.
  • Agrega MP3 a la cola de reproducción de XMMS2.
  • Limpia la cola de reproducción de canciones ya reproducidas.
  • Interfaz web.
  • Modo pantalla completa(Fullscreen) mediante Firefox y r-kiosk.
  • Componentes Ajax para clasificación de información y para todo el manejo de la interfaz.
  • Teclado virtual para busqueda personalizada de canciones.
  • Muestreo de botones de alfabeto en modo botón o imagen.
    Requerimientos:
  • Linux
  • XMMS2
  • Apache
  • PHP
  • PHP5-SQLite3
  • Extract
  • Firefox
  • Add-on R-Kiosk.
    Aquí algunos otros screenshots.
    Screenshot Rockola (Teclado Virtual)



    Screenshot Rockola (Config)
    El código fuente de lo subiré a SourceForge en cuánto me habiliten el servicio para subir el proyecto.
    Update
    El código puede descargarse de la siguiente URL:
    http://sourceforge.net/projects/rockolaweb20/
  • Rayadisimo en el ENLi 2008

    Este viernes 24 y sábado 25 de Octubre del 2008 estuve en el ENLi presentando un par de charlas sobre Fotografía y Telefonía de Voz sobre IP con Asterisk, el evento del ENLi fué un éxito había asistentes y ponentes de todas partes. Llegué a Puebla el día viernes, venía de Oaxaca ya que estuve ahí unos días con mi familia, por lo que salí de Oaxaca a la 1 am para llegar a Puebla a las 6 a.m, como aun me faltaba terminar mi presentación sobre Fotografía Digital en Linux, me senté en el área de comida de la CAPU(Central de Autobuses de Puebla) aprovechando que por ahí había redes wifi con internet, ya por hay de las 9 a.m. tomé un taxi para la UPAEP universidad dónde se llevó a cabo el Encuentro Nacional de Software Libre, llegando a las 9:30 me registré ya que a las 10:00 A.m. tenía un taller de J2ME al que me inscribí para saber más acerca del tema.
    Despues fué la comida de los ponentes que fué en un restaurant con un buffete de comida china bastante bueno, terminando más que satisfecho y con ganas de una siesta, pero tenía que dar una charla sobre fotografía digital en linux, la charla salió bien me falló al último la generación de un HDR con QTPFSGUI, pero los demas ejemplos con GIMP y UFRaw salieron bastante bien.
    Despues de la charla anduve vagando por la UPAEP y ya más tarde me retiré al hotel. Ya como eso de las 11:00 P.M fui para el antro Toushé dónde se llevaría acabo la fiesta del ENLi, pero al llegar lo noté muy vacío por lo que no me quedé más de 10 minutos y tomé de regreso un taxi para el hotel.
    Ya al día siguiente del día sábado me tocó dar otra charla más técnica, Telefonía de Voz sobre IP con Asterisk, por lo que me dirigí a la sala dónde tenía que presentarla, ya estando ahí coloqué todas las chunches que usaría, ATAs, Teléfonos, Router, bluetooth, Móvil, etc., a media plática se acercó el Tacvbo y pensé que haría una promoción sobre sus equipos, pero cuál fué mi sorpresa que no solo haría publicidad para la empresa en la que participa Neocenter quién patrocinó al ENLi, si no también me regaló un teléfono de Voz sobre IP Aastra 480i el cuál viendo sus características es bastante bueno, por lo que salí rayadísimo del ENLi.
    Por lo que no me queda más que agradecer a los asistentes a mis charlas, al ENLi, a los organizadores y a NeoCenter que se puso la del Puebla con el teléfono de Voz sobre IP .face-smile.png
    Aastra 480 Telefono VoIP
  • Como enviar SMS desde una pagina web en Linux

    Hace unos días adquirí un teléfono Nokia 3500 en plan prepago con Movistar, ya que el plan de renta que tengo con Telcel se me está haciendo cada vez más caro, lo lindo de este teléfono no solo fué su precio de apenas $ 900.00 si no también sus características como soporte de J2ME, Bluetooth, USB y en Linux es posible enviar SMS a traves de Gnokii, por lo que aprovechando estas característica me he puesto a jugar con esta chunche haciendo mis pininos con java y también unas pruebas de bluejacking que dejé pendientes que más tarde postearé aquí, pero ahora este post va relacionado con el envío de SMS usando GNokii a traves de una página con PHP mediante pipes.
    Requisitos:
  • PHP
  • Apache
  • Gnokii
  • Algún teléfono móvil, los Nokia funcionan bien con Gnokii, de preferencia USB.
    El proyecto aquí comentado puede bajarse de la siguiente url:
    http://files.mexrom.net

    projects / sms / sms-gnokii-001.zip

    login: invitado

    password: invitado

    Básicamente en Ubuntu Linux instalar Gnokii es simple:
    sudo apt-get install gnokii gnokii-smsd libgnokii3 libgnokii3-dev
     
    Ya teniendo listo Gnokii, en el caso del Nokia 3500 editar en modo super usuario el archivo

    sudo scite /etc/gnokiirc
    Y ahí poner lo siguiente
    [global]
    port = /dev/ttyACM0
    model = AT
    connection = serial
    debug=on
     
    Ahora solo basta poner el siguiente script en un directorio web:
    <?php
    /**
     *
     * Script para enviar SMS desde una pagina web usando PHP como lenguage script y Gnokii como interfaz de conexión entre el teléfono y la aplicación
     *
     * Desarrollado por Filein Rommel León Méndez
     * Script liberado bajo la licencia GPL
     *
     */

     
     echo siteHeader();
     $option = $_POST["status_page"];
     
     switch($option){
            case "":
                            echo showForm();
                    break;
            case "sms_sender":
                            pipes(ValidateNumber( $_POST["phone_number"]), $_POST["sms_message"]);
                    break;
     }
     
     function showForm(){
            $frontEnd =
            "<div align=center>" .
            "<form name=smssender method=post action=\"$_SERVER[PHP_SELF]\" >".
                    "<table  class=MAINFORM>".
                    "<tr> <td colspan=2 >Envia SMS</td> </tr>".
                    "<tr> <td colspan=2></td> </tr>".
                    "<tr> <td class=NAME_FIELD>Telefono:</td>  <td><input type=text name=phone_number size=70 maxlenght=16 class=TEXT_BOX></td> </tr>".
                    "<tr> <td class=NAME_FIELD>Mensaje:</td>  <td><textarea name=sms_message cols=60 rows=5 class=TEXT_AREA></textarea></td> </tr>".
                    "<tr> <td></td>  <td><input type=button name=send_message value='Enviar' onClick='javascript:document.forms[0].submit();' class=TXT_BUTTON></td> </tr>".
                    "<input type=hidden name=status_page value=\"sms_sender\" >".
                    "</table>".
            "</form>" .
            "</div>";
            return $frontEnd;              
     }
     

     
     function siteHeader(){
            $header = "<link rel=stylesheet type=text/css href=estilo.css>";
            return $header;
     }
     
     
            function pipes($number="", $message=""){
     
            if(is_numeric($number)!="" and is_string($message) and $message!=""){
                            error_reporting(E_ALL);
                    //message      
                            $echo_pipe = popen(" echo \"$message\" ", 'r');
                            //echo "'$echo_pipe'; " . gettype($echo_pipe) . "\n";
                    //gnokii       
                            $gnokii_pipe = popen("gnokii --sendsms $number -r", 'w');
                            //echo "'$gnokii_pipe'; " . gettype($gnokii_pipe) . "\n";
                    //pipes validate      
                        if ((!$echo_pipe) || (!$gnokii_pipe)) {
                                    fprintf(stderr, "One or both pipes failed.\n");
                                    return EXIT_FAILURE;
                        }
                        $bytes_read = 0;
                    //execute pipes
                        while ($buffer = fread($echo_pipe, 2096)) {
                                    fwrite($gnokii_pipe, $buffer);
                                    $bytes_read += strlen($buffer);
                        }
                    //close pipes
                        //printf("Total bytes read = %d\n", $bytes_read);
                        $status_function = 0;
                        if (pclose($echo_pipe) != 0) {
                                    fprintf(stderr, "Could not run 'echo', or other error.\n");
                                    $status_function++;
                        }
                        if (pclose($gnokii_pipe) != 0) {
                                    fprintf(stderr, "Could not run 'festival', or other error.\n");
                                    $status_function++;
                        }
                        if($status_function>=2){
                            echo sms_successful($number, $message);
                        }
                            echo sms_successful($number, $message);
                       
                    }
            }
           
           
            function sms_successful($number="", $message=""){
                    return "<div align=center>" .
                    "<table class=MAINFORM><tr class=successful><td colspan=2>Mensaje enviado exitosamente</td></tr>" .
                    "<tr><td class=name_field>Telefono: </td><td class=value_field>$number</td></tr>" .
                    "<tr><td class=name_field>Mensaje: </td><td class=value_field>$message</td></tr>" .
                    "</table>" .
                    "</div>";      
            }
           
            function ValidateNumber($number ){
                    return eregi_replace("[^0-9]", "", $number);
            }
     
    ?>
     
    De ahí solo basta ir a Firefox al directorio dónde se instaló el script para ejecutarlo:
    http://localhost/sms/
    Dar un número de teléfono y mensaje a enviar.. si todo salió bien debería enseguida verse el mensaje enviado desde la página, en el teléfono destino.
  • Creative Live! Cam Chat working in Linux

    Im starting a project to integrate many technologies in Linux and to create a Home Multimedia Center, using Asterisk VoIP, Video and Audio players, Bluetooth devices, IrDA devices and Remote Control, Voice Recognition and Text to Speech, Home Security, Motion Detection and another things that I want concentrate in a PC with Linux.
    For motion detection I will use a WebCam, then I bought a Creative Webcam, the model is Creative Live! Cam Chat, searching info in internet about drivers for creative webcam, I found one open source driver in creative website http://opensource.creative.com/webcam.html, in this webpage I cannot see the model, but running lsubs -l in linux I could get the Vendor Id : 0x041E and Product ID : 0x405F of the WebCam, then with this info searching in the drivers webpage of Creative I could to know that WebCam Vista has the same values that Live! Cam Chat.
    Result of the search
    WebCam Vista (D) VF0330 0x041e 0x405f http://www.rastageeks.org/ov51x-jpeg/index.php/Main_Page
    Creative Live! Cam running in Linux
    Part of the result of run lsusb -v
    Bus 003 Device 012: ID 041e:405f Creative Technology, Ltd
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               1.10
      bDeviceClass            0 (Defined at Interface level)
      bDeviceSubClass         0
      bDeviceProtocol         0
      bMaxPacketSize0         8
      idVendor           0x041e Creative Technology, Ltd
      idProduct          0x405f
      bcdDevice            1.00
      iManufacturer           1
     
    To install the drivers of the webcam I downloaded the drivers from :
    http://www.rastageeks.org/downloads/ov51x-jpeg/ov51x-jpeg-1.5.9.tar.gz
    I untar the package in /usr/src
    cd /usr/src
    wget http://www.rastageeks.org/downloads/ov51x-jpeg/ov51x-jpeg-1.5.9.tar.gz
    tar -xzvf ov51x-jpeg-1.5.9.tar.gz
    cd ov51x-jpeg-1.5.9
     
    After unload ov511 driver this if this module had loaded in the memory and remove ov511 drivers from /lib/modules/'uname -r'
    rmmod ov511
    sudo rm -rf /lib/modules/2.6.22-14-generic/kernel/drivers/media/video/ov511*
     
    And to compile and install the drivers
    sudo make clean
    sudo make
    sudo make install
     
    Previously you will need load the videodev module
    modprobe videodev
    Only rest load the module
    modprobe ov51x-jpeg
    And with camorama or another app for webcams you will can see the image of your webcam.
  • Sistema de Cotizaciones y Facturacion Electronica Ad-hoc para Dispositivos Móviles

    La semana pasada fuí a Guadalajara, Jal., a entregar un proyecto que me gustó mucho desarrollar, ya que en este proyecto que duró varios meses de desarrollo, se mezclaron varias tecnologías por lo cuál el aprendizaje y la experiencia fué grata pues el desarrollo se comenzó desde cero.
    El proyecto consistió en hacer módulos de cotizaciones, gestión de cortes de pedidos, devoluciones y generación de facturación electrónica en base al estándar de SAT y generación del sello digital, xml y cadena originalpara dispositivos móviles con PocketPC 2003 y Windows Mobile 2005, este proyecto se desarrolló como complementó a un ERP existente que hace uso la empresa Grupo Venta Internacional S.A de C.V., una empresa especializada desde 1990 en el suministro de equipo y material quirúrgico para Cirugía Plástica y Reconstructiva, Neurocirugía, Cirugía Maxilofacial, Traumatología, Otorrinolaringología y Antienvejecimiento.
    La aplicación en el dispositivo móvil permite descargar catálogos de la base de datos del ERP, a la cuál se accede vía GPRS desde algún lugar dónde haya cobertura de telefonía celular GSM/GPRS, por cuestiones de seguridad se hizo a traves de un tunel VPN, para lo cuál se implementó un servidor VPN libre por software el cuál hace la función de redireccionamiento entre la red local de la empresa y la red VPN de los móviles.
    Ya descargada la información se almacena en una base de datos SQLite versión 3 la cuál tiene un rendimiento bastante eficiente en la terminal portátil, y a partir de ahí se pueden realizar cotizaciones en modo batch, no requiriendo tener conexión GPRS con el servidor para poder generar las cotizaciones de los clientes, y así en algún momento enviar la información al servidor para que las cotizaciones generadas sean atendidas de forma inmediata por el personal de Servicio a Clientes y asi rápidamente convertirlas a órdenes para luego surtirlas.
    Otro proceso que permite realizar la terminal portátil es el corte de pedidos que básicamente es llevar un control sobre los productos pedidos por los clientes, de tal forma que es posible generar devoluciones, registrar que productos mantiene el cliente y que productos va a facturar, en el caso de facturación aquí se hace uso de facturación electrónica que está basado en el estándar legal de SAT(secretaría de Administración Tributaria) en México. De tal forma que la terminal al momento de estar facturando los productos hace una conexión a un webservice para poder extraer el sello digital en base al resultado de la cadena original y del XML generado previamente, para luego poder ser impresa la factura en una impresora portátil Zebra RW420 mediante Bluetooth.
    Lo interesante del desarrollo fué hacer las conexiones remotas y hacer que toda la información se guardara en las correspondientes tablas del ERP, ya que hay muchas dependencias en varias tablas por lo que había que llevar un control minucioso sobre los registros actualizados en el ERP. También fué interesante realizar las conexiones VPN desde un móvil a un servidor OpenVPN usando conexiones GPRS, así como también la impresión de reportes usando conexiones bluetooth.
    Detalles del desarrollo:
  • Plataforma: PocketPC 2003 & Windows Mobile 2005
  • Base de datos móvil: SQLite 3.0
  • Conexiones: GPRS, OpenVPN, Bluetooth, ActiveSync.
  • Desarrollo: C# .Net Compact Framework & OpenNet CF
  • Facturación Electrónica SAT : XML, OpenSSL & WebService.
  • Impresión: Bluetooth.
  • Impresora:Zebra RW420
  • Terminal portátil: Symbol Motorola MC70
  • Código de barras: PDF-417
  • Anterior página 1 ... 3 4 5 ... 12 Siguiente página
    119 entradas

    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