Hace un par de noches reinstalé la versión de KUbuntu, ya que tenía instalada la versión 6.06(Dapper Drake) desde enero del año pasado cuándo adquirí la notebook -Toshiba - que ahora tengo en uso, en esa ocasión Ubuntu Linux cumplió con varios aspectos que pudiera tener un usuario común de Linux por lo cuál seguí con esa versión hasta hace un par de días.
A principios de este año ya había bajado el CD de Kubuntu 7.10 que ahora sale con el nombre de Gutsy Gibbon, ya que estuve unos días con mi familia en La Verde Antequera y estando allá mi padre me pidió que le reinstalara Windows XP en su máquina ya que esta había tenido unos problemas -Siempre que voy a la Ciudad de Oaxaca es lo mismo que si virus, que si los drivers, que si Windows ya no funciona, etc-, por lo que en esta ocasión le comenté que no le iba a instalar Windows XP pero si Linux en este caso Kubuntu, al principio se mostró un poco desconcertado pero después le expliqué de que se trataba y medio se convenció, y bueno hasta ahora no he tenido queja ya que le instalé todos los programas habidos y por haber que le sirvieran para su labor, incluso sin problema Kubuntu reconoció su impresora multifuncional Lexmark X1150 junto con el scanner mediante el software de Kooka, haber que me comenta en 15 días que vaya de nuevo a Oaxaca.
Siguiendo con mi instalación de Kubuntu esta no presento grandes problemas ya que ahora es mucho más fácil instalar Linux iniciando Kubuntu desde el CD, luego clickeando el icono de instalación que aparece en el escritorio y configurando 5 parámetros y listo, de hecho mi instalación de Linux anterior le había creado 6 particiones (swap, boot, var, usr, home y root), como todos mis documentos estaban en home solo formateé las otras particiones para reinstalar todo de nuevo dejando mi home intacto y volverlas a montar para mi nueva instalación.
Despues de un par de días trabajando con la nueva versión de Kubuntu 7.10 puedo comentar 10 cosas nuevas que he visto en esta versión y que me han llamado la atención, las cuáles comento a continuación:
1.-Ya es posible hibernar y suspender el sistema operativo en Laptops: Antes había un conflicto y no todas las Laptops y PCs funcionaban del todo bien con esta parte, ya que había un problema de compatibilidad con el módulo ACPI.
2.- Mejor soporte para el manejo de la batería en laptops y del procesador: Ahora ya es posible desde una interfaz gráfica modificar el status del procesador para ahorro de batería, ya sea trabajando en modo de ahorro de energía o en modalidad de mejor performance haciendo uso de todo el potencial del CPU.
3.- Fácil integración de Wine: Wine es una herramienta en linux que permite ejecutar programas de Windows en Linux mediante la emulación de las librerías de Windows. Antes era un poco complicado para el usuario común activar esta herramienta y configurarla, ahora Kubuntu tiene una interfaz mucho más práctica que permite autoinstalar y autoconfigurar Wine desde las Preferencias del Sistema.
4.- Mejor soporte para configuración de redes inalámbricas: ya existía una herramienta en versiones previas, pero no del todo sofisticada como la que ahora trae esta nueva versión de Kubuntu, por lo que en mi caso prefería correr un script vía sh para configurar el wireless, pero ahora para el usuario común ya es mucho más fácil echar andar su red inalámbrica usando Kubuntu Linux.
5.- Mayor integración de aplicaciones gráficas: Ahora es mucho más fácil configurar una impresora o un scanner en Kubuntu Linux desde sus herramientas de configuración.
6.- Actualización de software de ofimática: Ahora Kubuntu ya trae las nuevas versiones de OpenOffice que va en la versión 2.3 y que le ofrece al usuario común mejoras para el procesamiento de textos, hojas de cálculo, presentaciones, dibujos, contactos y grupos de trabajo.
7.- Soporte para bluetooth : Kubuntu ahora tiene mucho mas herramientas para echar andar un dispositivo bluetooth y conectarlo a diversos servicios como compartir archivos, audifonos a2p, PDAs, teléfonos celulares, wiimote, etc.
8.- Disponibilidad de Drivers y Gestión de Drivers propietarios: Ahora es más fácil encontrar que algun dispositivo de hardware sea compatible con Kubuntu Linux, tales como impresoras, scanners, tarjetas de video, de sonido, tarjetas para redes inalambrica wifi, GSM o 3G, incluso permite seleccionar el uso de drivers propietarios o drivers stándares desde las preferencias del sistema.
9.- Diversidad Multimedia: Ahora ya se pueden encontrar diversas aplicaciones multimedia para su uso en kubuntu, solo es cuestión de elegir la favorita, de tal forma que podemos encontrar desde VLC que a mi gusto es de los mejores reproductores para Linux que hay, hasta XMMS que sirve para reproducir archivos de audio en general tal como lo hace el Winamp en Windows.
10.- La mejor ya está disponible pero aun no hago uso de ella, que es KDE 4.0, pero solo basta un sudo apt-cache search kde4 para buscar los nuevos paquetes de KDE4 y luego un sudo apt-get install kde4 mas los paquetes de kde4 a instalar.
Estos puntos son básicamente de un usuario común de Linux, las cuáles me permiten desarrollar mejor mi trabajo, asi como también entretenerme.
Empezando a preparar mi charla para el próximo Congreso Nacional de Software Libre que tratará sobre programación de dispositivos móviles en linux usando software libre me encontré con un manual para instalar SuperWaba usando el Editor de Eclipse en Windows que hice hace un par de años para postearlo en el sitio de Pocket Mexico. Ahora pongo este "How To"para ir calentando un poco el tema para el CoNSoL tal cuál lo mandé a Pocket México en esa ocación, este manual que pongo a su disposición incluye los errores gramaticales, de dislexia , quizá de horrografía, detalles de instalación en Windows y otros muchos errores más que hace un par de años no había dádome cuenta, claro este manual lo actualizaré para su uso con el último SDK de SuperWaba en el transcurso de los días pero en esta ocasión para su uso al 100% sobre Ubuntu Linux y asi presentarlo en el CoNSoL 2008, pero por ahora para fines prácticos de Usuarios de Windows posteo la primera versión -incluye mis errores- que hice de este HowTo aquí en mi blog por si les fuera útil este material en el futuro.
En próximos días postearé más información sobre programación de aplicaciones móviles usando el SDK de SuperWaba.
Programando con SuperWaba - 2006 Instalación de Java
Descargar la versión 1.5 de Java del sitio de http:// java.sun.com e instalarlo en la PC.
Agregar al PATH de Windows el directorio de Java/ y Java/Bin y de JRE/
Descargar la última versión de Eclipse disponible en http://www.eclipse.org, recomendada la versión 3.1
Descomprima eclipse_3.X.zip en el directorio de C:\Eclipse
Editamos las variables de entorno de Windows y agregamos al path el directorio C:\Eclipse
Ejecutar Eclipse
Ir a Help->Software Updates->Find and Install ->Search For New Features to Install
Seleccionamos New Remote Site
En Name introducimos SuperWaba y en url la siguiente ruta "http://superwaba-ide.sourceforge.net/update"
Seleccionar OK y Luego Finish, automáticamente eclipse obtendrá los plugins de SuperWaba, solo presione aceptar cada vez que lo requiera la instalación.
Instalación de SuperWaba
SuperWaba es una implementación libre con licencia LGPL para desarrollo de aplicaciones para dispositivos móviles.
Obtener el SDK de SuperWaba de la siguiente página de .
Descomprimir el archivo de superwaba sobre c: quedando instalado en c:/SuperWabaGPL
Creamos una carpeta llamada proyectos dentro de la carpeta de SuperWabaGPL
Agregaremos al CLASSPATH lo siguiente
C:\SuperWabaSDK\lib;C:\SuperWabaSDK\lib\superwaba.jar; Instalación de Ant
Ant es una herramienta desarrollada por Apache que nos permitirá ejecutar y distribuir nuestros proyectos desarrollados con superwaba
Obtener ANT de esta URL:
descomprimir el archivo zip en c:\ant
agregar el directorio bin de ANT al PATH del sistema actual
Eclipse y SuperWaba
1. Open menu File/New/Project/Java/Java Project. Click next.
2. Choose a name for your project. (E.g.: UIGadgets)
3. Uncheck the “Use default” option and open the directory where the application is. (E.g.:
SuperWabaSDK/src/java/superwaba/samples/ui/UIGadgets)
4. Click next. Press yes when asking to create project now.
5. Select the Libraries panel. Click “Add External Jars”, and add the SuperWabaSDK/lib/SuperWaba.jar file.
6. Click finish.
7. Right-click the project, choose Properties.
8. Select the “Java Build Path” page, then select the Libraries tab.
9. Click in the + near the SuperWaba.jar file to open the options.
10.Double-click the “javadoc location”. Select SuperWabaSDK/docs/html directory.
11.Double-click the “source attachment”. Select the SuperWabaSDK/src/java folder.
12.Click ok to finish.
To debug/run the project:
1. Click menu Debug/Debug... or Run/Run... and ensure that a "Java Application" is selected in the "Configurations" box
2. Click New SuperWaba Companion 35
3. Enter the name of the configuration. (E.g.: UIGadgets)
4. In the "Main" tab:
• Project: click browse and select your project name (E.g.: UIGadgets)
• Main class: type "waba.applet.Applet"
5. In the "Arguments" tab:
• Program arguments: type the class name that extends waba.ui.MainWindow (E.g.: "superwaba.samples.ui.gadgets.UIGadgets")
• You may also enter, before the class name, the other possible parameters (see last
topic of this chapter)
6. Click Run / Debug.
Información de las Clases de SuperWaba
Paquete de Superwaba incluidos en SuperWaba.pdb
waba.fx
Clase relacionada al manejo de gráficos, fuentes, imágenes geométricas, imágenes y sonidos.
waba.io
Clase para entrada y salida de datos, para acceder a archivos PDB representado por la clase Catalog,
Comunicaciones vía sockets, Puertos Seriales y algunas utilidades para hacer más fácil el manejo de entrada y salida de datos.
waba.lang
Clase que contiene clases originales de java.lang y contiene únicamente subconjunto de métodos
waba.ui
Esta es la clase más importante, contiene clases para manejo de interfaces gráficas para crear buenos y rápidos programas.
waba.util
Clases de utilerías que contienen clases como Date, Generación de Números Aleatorios y Estructura de datos (Vectores y Tablas de Ordeamiento)
Extensiones de SuperWaba
superwaba.ext.ce.io.builtin
Clase que me permite conectar a la interfaz de VC++ del PocketOutlookObjectModel.
superwaba.ext.ce.io.builtin.pimal
Implementación para el Framework PIMAL de CE
superwaba.ext.ce.io.gprs
Esta clase me permite abrir conexiones GPRS en PocketPC y SmartPhones.
superwaba.ext.palm.io.builtin
clase que me permite controlar aplicaciones originales de PalmOS
superwaba.ext.palm.io.builtin.pimal
Implementación para el Framework PIMAL de Palm
superwaba.ext.palm.io.print.irprint
Clase que me permite conectarme a la interfaz de impresión vía puerto IrDA de PalmOS
superwaba.ext.xplat.fx.gif
Clase que me permite manejar archivos .gif
superwaba.ext.xplat.fx.jpeg
Clase que me permite manejar archivos jpeg
superwaba.ext.xplat.fx.png
Clase que me permite manejar archivos png
superwaba.ext.xplat.game
Un framework de SuperWaba que me permite desarrollar fácilnete juegos para dispositivos móviles.
superwaba.ext.xplat.html
Clase que me permite manejar html y mostrar forms y tablas
superwaba.ext.xplat.html.ui
Controles usados por la Clase HTMLContainer
superwaba.ext.xplat.io
superwaba.ext.xplat.io.gps
Un control que me permite mostrar datos GPS
superwaba.ext.xplat.io.gps.garmin
Un control que me permite implementar el protocolo GPS GARMIN
superwaba.ext.xplat.io.http
Clase que me permite controlar peticiones HTML mediante sockets
superwaba.ext.xplat.io.pimal
Capa de abstracción de Administrador Personal de Información.
superwaba.ext.xplat.io.pimal.addressbook
Me permite conectarme a la libreta de direcciones del dispositivo
superwaba.ext.xplat.io.pimal.datebook
Me permite conectarme a la libreta de citas del dispositivo
superwaba.ext.xplat.io.pimal.memobook
Me permite conectarme a la libreta de anotaciones del dispositivo
superwaba.ext.xplat.io.pimal.todobook
Me permite conectarme a la libreta de tareas del dispositivo
superwaba.ext.xplat.io.print
Clase que define elc omportamiento de la librería de impresión de superwaba
superwaba.ext.xplat.io.print.pboy
Clase de impresión para printboy de SuperWaba
superwaba.ext.xplat.io.scanner
Clase que me permita soportar lectores de código de barras symbol en PalmOS y Windows CE
superwaba.ext.xplat.io.search
Clase que me permite mejorar la búsqueda secuencial en archivos PDB
superwaba.ext.xplat.sql
Una clase que implementa un sbconjuto de métodos de la clase java.sql
superwaba.ext.xplat.sql.db2e
Esta clase es parte de el paquete superwaba.ext.xplat.sql.db2e y son parte de la implementación para
xplat.sql package.
superwaba.ext.xplat.sql.db2e.db2ex
Implementa una interfaz nativa a WDBC.
superwaba.ext.xplat.sql.pdb.pdbx
Manipula PDB usando SQL
superwaba.ext.xplat.sync
Me permite sincronizar una PalmOS con PalmDesktop
superwaba.ext.xplat.ui
Algunas interfaces de usuario que me proveen una funcionalidad adicional
superwaba.ext.xplat.ui.db
Controles práticos para usar con la clase PDBDriver
superwaba.ext.xplat.util
Clases de utilería
superwaba.ext.xplat.util.crypto
clases que me permiten encriptar y desencriptar datos
superwaba.ext.xplat.util.datergf
clase que permite un manejo avanzado de hora y fecha.
superwaba.ext.xplat.util.props
Propiedades y otras clases
superwaba.ext.xplat.util.zip
Una implementación de la librería de java Zip
superwaba.ext.xplat.util.zip.checksum
clase estándar para checksum
superwaba.ext.xplat.webservice
clase para desarrollar webservices con soporte para encriptación y compresión
superwaba.ext.xplat.xml
Un muy completo manejador de XML
superwaba.ext.xplat.zlib
Permite soporte para la librería de compresión Zlib.
waba.applet
Paquete usado para emular SuperWaba corriendo en el escritorio
La primera vez que intenté configurar una PDA con Linux fué por allá del 2005 cuándo intenté conectar una Terminal MC50 de Symbol Technologies con Linux a través de SynCE, esa vez el éxito fué efímero ya que recuerdo que si había logrado conectar la PDA pero por alguna razón solo fué una vez y las demas recibía un mensaje de error, por el trabajo que esa vez me ocupaba lo dejé y desistí intentarlo de nuevo.
Hace unos días estando de vacaciones y ante la ociosidad que imperaba en mi tiempo/espacio decidí intentarlo de nuevo, pensando que sería un calvario como la primera vez agarré valor para intentarlo de nuevo, pero cuál sería mi sorpresa que la configuración sería mucho más fácil de lo que hubiera imaginado y del tiempo esperado.
Bueno la idea de este post no es tanto rollo que a nadie interesa, pero si el saber como sincronizar una PDA con Linux. En Windows existe una aplicación llamada Active Sync, la cuál permite copiar,mover, eliminar, modificar archivos, crear directorios en una PDA con Windows CE o Pocket PC y así como también instalar aplicaciones para móviles, entre otra de las utilerías de Active Sync es permitir la sincronización de correos, contactos, notas, archivos de word, conversión de archivos, etc. Aunque Active Sync es buena herramienta aun le faltan muchas utilerías las cuáles solo se consiguen programandolas haciendo uso de una librería libre desarrollada por OpenNetCF llamada OpenNetCF.DesktopCommunication.
En Linux no existía una herramienta tal como Active Sync, pero hace algunos años fué creado el proyecto SynCE, el cuál permitía sincronizar una PDA con Windows CE o PocketPC con Linux. Actualmente el proyecto de SynCE está muy avanzado y el cuál ya realiza la mayor parte de muchas de las tareas de Active Sync incluso incopora otras mucho más interesantes como es el caso de iniciar aplicaciones en la PDA desde comandos de Linux.
Otra característica interesante de SynCE es que levanta una interfaz de red con la conexión USB realizada con la terminal portátil, no importando si es una PDA con Windows CE o PocketPC 2003, cosa que con ActiveSync solo funciona con Windows Mobile 2005, por lo que SynCE ahora le asigna una IP a la terminal al conectarla. Comencemos con la configuración Configuración en modo Consola
#El primer paso para configurar la conexión es instalar las librerías de la conexión USB del dispositivo sudoapt-getinstall usb-rndis-source cdbs sudo module-assistant auto-install usb-rndis #A continuación solo es darle un ojo a lo que contiene dmesg para ver si reconoció efectivamente la PDA sudodmesg #Este comando nos regresa algo por el estilo [17208765.684000] usb 2-2: new full speed USB device using uhci_hcd and address 2 [17208765.840000] usb 2-2: configuration #1 chosen from 2 choices [17208766.024000] usbcore: registered new driver usbserial [17208766.024000] drivers/usb/serial/usb-serial.c: USB Serial support registered for generic [17208766.024000] usbcore: registered new driver usbserial_generic [17208766.024000] drivers/usb/serial/usb-serial.c: USB Serial Driver core [17208766.036000] drivers/usb/serial/usb-serial.c: USB Serial support registered for PocketPC PDA [17208766.036000] drivers/usb/serial/ipaq.c: USB PocketPC PDA driver v0.5 [17208766.036000] ipaq 2-2:1.0: PocketPC PDA converter detected [17208766.040000] usb 2-2: PocketPC PDA converter now attached to ttyUSB0 [17208766.040000] usbcore: registered new driver ipaq [17208766.956000] usb 2-2: USB disconnect, address 2 [17208766.956000] ipaq ttyUSB0: PocketPC PDA converter now disconnected from ttyUSB0 [17208766.956000] ipaq 2-2:1.0: device disconnected [17216809.168000] usb 2-2: new full speed USB device using uhci_hcd and address 3 [17216809.324000] usb 2-2: configuration #1 chosen from 2 choices [17216809.328000] ipaq 2-2:1.0: PocketPC PDA converter detected [17216809.332000] usb 2-2: PocketPC PDA converter now attached to ttyUSB0 [17217765.692000] CSLIP: code copyright 1989 Regents of the University of California [17217765.704000] PPP generic driver version 2.4.2 [17217765.860000] ip_tables: (C)2000-2006 Netfilter Core Team [17217767.436000] PPP BSD Compression module registered [17217767.508000] PPP Deflate Compression module registered [17217956.564000] usb 2-2: USB disconnect, address 3 [17217956.564000] ipaq 2-2:1.0: device disconnected [17217956.568000] ipaq ttyUSB0: PocketPC PDA converter now disconnected from ttyUSB0 [17217959.824000] usb 2-2: new full speed USB device using uhci_hcd and address 4 [17217959.984000] usb 2-2: configuration #1 chosen from 2 choices [17217959.984000] ipaq 2-2:1.0: PocketPC PDA converter detected [17217959.988000] usb 2-2: PocketPC PDA converter now attached to ttyUSB0 [17218294.300000] usb 2-2: USB disconnect, address 4 [17218294.300000] ipaq ttyUSB0: PocketPC PDA converter now disconnected from ttyUSB0 [17218294.300000] ipaq 2-2:1.0: device disconnected [17218297.572000] usb 2-2: new full speed USB device using uhci_hcd and address 5 [17218297.732000] usb 2-2: configuration #1 chosen from 2 choices [17218297.736000] ipaq 2-2:1.0: PocketPC PDA converter detected [17218297.736000] usb 2-2: PocketPC PDA converter now attached to ttyUSB0 #De todo este relajo lo importante es la siguiente línea [17208766.956000] ipaq ttyUSB0: PocketPC PDA converter now disconnected from ttyUSB0 #lo que indica que nos reconoció el dispositivo exitosamente y ahora configurará el puerto en ttyUSB0 #lo que sigue es instalar los paquetes de SynCE, en este caso para que funcione junto con KDE sudoapt-getinstall syncekonnector-dev syncekonnector synce-serial synce-multisync-plugin synce-kde synce-dccm #Con esto básicamente ya tenemos todo lo necesario solo faltaría iniciar los módulos del puerto USB #Cargamos el módulo para la iPaq sudo/sbin/modprobe ipaq #Quizá nos mandé unos warnings, en este caso solo ignorarlos #A Continuacion iniciar synce indicando que use el puerto /dev/ttyUSB0 que es dónde recibe la conexión USB de la PDA sudo synce-serial-config ttyUSB0
#Despues iniciar el daemon para la conexión de sincronización con la PDA.
dccm -f& #Dspues de iniciar el daemon iniciar la conexion con la PocketPC sudo synce-serial-start #despues de ejecutar el comando en la consola se verá un mensaje que synce está esperando la conexión con la PDA #Si todo salió bien en la terminal debe mostrar la ventana de sincronización y en la consola mostrar un mensaje como el siguiente
dccm[20168]: Talking to 'Pocket_PC', a PocketPC device of type HP iPAQ rx3700
A partir de aqui se pueden usar los siguientes comandos de consola para interactuar con la PDA
pstatus allows you to obtain status on your connection and information about the device you have connected.
pls allows you to obtain a listing of the files on your device.
pmkdir creates a directory (or folder) on your device.
pcp copies files to and from the device.
prun runs a program on the device from your Linux machine.
synce-install-cab installs a .cab file on the device.
Configuración en modo GUI
Existe también la posibilidad de tener una interfaz gráfica para conectar la PDA con SynCE a través de KDE, en este caso usaremos la aplicación Raki que se encuentra en el menú Utilidades de KDE.
Antes de iniciar en modo GUI ejecutar los siguientes comandos desde la consola
sudo /sbin/modprobe ipaq
sudo synce-serial-config ttyUSB0
La primera vez que se usa esta aplicación, pide algunos valores de configuración los cuáles se recomiendan aceptar los defaults.
Despues de que se inicia Raki, se verá el ícono en el panel principal de KDE, seguramente se observará en un tono gris el icono, esto ya que no está sincronizada la PDA aún y tampoco se ha ejecutado el daemon dccm.
Si es que no se ha ejecutado en automático el daemon dccm, desde el ícono de Raki en el panel, presionar el botón derecho del mouse y seleccionar Start DCCM, ahora solo faltaría iniciar Synce-Serial desde la consola
En la consola ejecutar
sudo synce-serial-start
Y con esto quedará sincronizada la PDA con Linux, a partir de ahora ya se puede usar Raki para instalar programas, para ejecutar aplicaciones en la PDA, para ver el directorio de de la terminal desde Konqueror, ver información del sistema, entre otras utilidades que tiene Raki.
Si se desea ver el directorio de la Terminal usando Konqueror, tal como lo hace Explorer, en Konqueror abrir la siguiente dirección rapip://active_connection/
Si la sincronización fué correcta, se podrá observar el directorio de la PDA en Konqueror y a partir de ahí se pueden ya hacer múltiples de cosas interesantes.
Hace unos días leyendo información en http://pdamexico.net -un sitio interesante sobre todo el mundo de las PDAs y los gadgets- leo un post acerca de hotspots pero no para WiFi si no para Energía Eléctrica, imagínate que llegues a un sitio y que tú PDA detecte que ahí puedes cargar la batería de tú gadget de forma inalámbrica, sería genial ¿ no crees ?.. Pues ese post me recordó a un científico llamado Nikola Tesla un genio de origen Serbio del cuál había leído hace tiempo en un artículo en barrapunto. Nikola Tesla puede presumir que fué uno de los primeros que hizo pruebas con la energía inalámbrica desde el siglo XIX de manera exitosa, independientemente que a él también le podemos atribuir el invento de la corriente alterna que en la actualidad es usada en todos los hogares del mundo y que le valió ganar el Premio Nobel en 1915 pero el cuál rechazó por motivos personales que tenía contra Thomas A. Edison.
Con respecto a las pruebas que hizo con la energía eléctrica inalámbrica hay muchas historias, de las cuáles podrías leer en su biografía en la WikiPedia
Algo interesante en la actualidad es que hay rumores que el gobierno de E.U. está instalando una base en Alaska para desde ahí hacer pruebas para cambiar el clima en diversas partes del mundo, lo interesante de esto es que Nikola Tesla estaba trabajando en un proyecto similar hasta antes de su muerte, el cuál diversos ingenieros quisieron continuar pero nunca pudieron comprender ya que muchas de las cosas que hacía Tesla nos la documentaba y solo las guardaba en su mente, en la actualidad se dice que el proyecto HAARP está basado en las teorías de Nikola Tesla.
Lo chistoso de esto es que el mundo está cambiando tecnológicamente, muchos paises le están invirtiendo fuertemente a la educación tecnológica, mientras que aquí en México lo que parece más importa es el Futbol y los pleitos políticos si no vean un screenshot de la portada principal del diario en línea "El Universal", algo que ya es común ver todos los días http://phylevn.mexrom.net/data/files/images/ElUniversalPrincipal.jpg.
Escribo este post mientras estoy en el primer proceso para crear una copia de una partición NTFS de Windows XP de una PC de escritorio y pasarla a otra partición NTFS en mi laptop mediante partimage en Kubuntu Linux, esto como consecuencia a los acontecimientos de infección de un rootkit que me dió en toda la "Macaddress" hace unos días.
Hace unos días fuí infectado por un rootkit que le dió en toda la torre a mi instalación de Windows XP PRO SP2 en mi laptop, ahí tengo 9 particiones, 5 Ext3 de Linux, 1 Swap, 1 extendida y 2 NTFS(Una de ellas tenía la instalación de Windows y la otra solo archivos). Con motivo de la infección quise reinstalar Windows XP nuevamente en mi laptop, pero por alguna razón al reinciar la laptop y "bootear" desde el CD simplemente la máquina se quedaba pasmada, al principio pensé que era el Disco de instalación de Windows que estuviera dañado, pero incluso intenté con el de restauración de Toshiba e igual nadamás no arrancaba, e igual probé con otros 2 discos de instalación de XP e igual seguía sin "bootear" desde el CD, lo curioso fué que bootear desde un CD de Linux si funcionaba o con mi instalación de Linux ya instalada, por lo que desistí en ese momento instalar Windows en la laptop y para continuar con mi trabajo decidí instalar Windows XP en una máquina de escritorio en dónde solo tenía Linux.
La instalación de Windows XP ahí salió sin problema, pero como siempre después de instalar Windows XP te borra el grub, por lo que después de toda esta introducción aburrida y poco interesante comento como recuperé Grub en una instalación de Linux con múltiples particiones. Reinstalandro GRUB Opcion 1
Lo primero que tienes que hacer para reinstalar grub en tú distribución Linux es conseguir un live cd, en este caso usé la versión 7.10 de Kubuntu.
Despues de iniciar en Windows, hay que ejecutar konsole.
En Konsole hay que echarle un ojo a las particiones con fdisk
En mi caso tengo un Disco Duro ATA en mi PC, por lo que para ver su contenido entro de la siguiente forma:
sudo fdisk /dev/sda #Lo siguiente es mostrado en la consola después de entrar con fdisk
El número de cilindros para este disco está establecido en 9729.
No hay nada malo en ello, pero es mayor que 1024, y en algunos casos
podría causar problemas con: 1) software que funciona en el inicio (p.ej. versiones antiguas de LILO) 2) software de arranque o particionamiento de otros sistemas operativos (p.ej. FDISK de DOS, FDISK de OS/2) #para poder ver las particiones hay que teclear p
Orden (m para obtener ayuda): p #Lo que nos arroja lo siguiente
Disco /dev/sda: 80.0 GB, 80026361856 bytes 255 cabezas, 63 sectores/pistas, 9729 cilindros
Unidades = cilindros de 16065*512 = 8225280 bytes
Disk identifier: 0x0004d862
Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 17358634182 Linux swap / Solaris #esta es mi partición para /boot /dev/sda2 74859639083 Linux /dev/sda3 86348827334597+ 5 Extendida #esta es mi partición de windows creada con la instalación de XP /dev/sda4 *34899728501228007 HPFS/NTFS #esta es mi partición root / /dev/sda5 86814585566183 Linux #esta es mi partición para /var /dev/sda6 81513003903763+ 83 Linux #esta es mi partición para /home /dev/sda7 13012029585566183 Linux #esta es mi partición para /usr /dev/sda8 203034881171938683 Linux #tecleamos el carácter q para salir
Orden (m para obtener ayuda): q #creamos un directorio para montar las particiones sudomkdir/linux #primero montamos la particion root en el directorio creado sudomount-t ext3 /dev/sda5 /linux #montamos la particion boot sudomount-t ext3 /dev/sda2 /linux/boot #montamos la particion var sudomount-t ext3 /dev/sda6 /linux/var #montamos la particion home sudomount-t ext3 /dev/sda7 /linux/home #montamos la particion usr sudomount-t ext3 /dev/sda8 /linux/usr #tambien necesitamos montar los directorios /dev y /proc que usa el LiveCD, lo cuál hacemos de la siguiente manera: sudomount--bind/dev /linux/dev sudomount--bind/proc /linux/proc #después de montar las particiones y directorios, habrá que hacer un chroot sudochroot/linux #con esto ya podríamos instalar nuevamente grub, si fuera un disco duro IDE en vez de /dev/sda sería /dev/hda o el dispositivo usado. sudo grub-install /dev/sda #Con esto ya debería haber quedado montado Grub. <b>Reinstalandro GRUB Opcion 2</b> #pero en caso de que al ejecutar el comando anterior hayas obtenido un error, otra opción puede ser la siguiente que evitaría realizar todo el paso anterior #ejecutar el siguiente comando cat/boot/grub/menu.lst | grep root | grep hd #si observamos, después del título de la distribución que tenemos instalada hay una línea como esta
root (hd0,1) #si observamos en nuestra tabla de particiones con fdisk, la particion de boot está en /dev/sda2, que es igual a (hd0,1), si estuviera en la partición /dev/sda10 serìa entonces (hd0,9) #entonces con esa información entramos y configuramos grub de la forma siguiente sudo grub #grub> no se teclea, solo es el indicador de CLI de grub, solo tecleamos lo que está despues de >
grub>root (hd0,1)
grub>setup (hd0)
grub>quit #si al ejecutar setup(hd0) tuvieras un error, verifica en que partición tienes instalado /boot, a veces jugando con las particiones estas se llegan a mover y ya no corresponden a la que está indicada en /boot/grub/menu.lst en la parte de root(hd0,1) por ejemplo. <b>Reinstalandro GRUB Opcion 3</b> #Verifica el numero de partición con sudo fdisk /dev/sda #Obten el listado de las particiones y si por ejemplo tú partición de boot está en /dev/sda5, entonces deberías hacer algo como esto y si no te devuelve ningún error eso indicaría que grub fué reinstalado correctamente, de hecho este paso sería mucho más rápido que los anteriores y mucho más seguro, siempre y cuándo sepas dónde tienes instalado la partición donde esta /boot. sudo grub
grub>root (hd0,4)
grub>setup (hd0)
grub>quit #muchas veces cuándo tienes instalado grub, pero la partición donde se encuentra /boot se ha movido, entonces al iniciar la computadora grub envía el siguiente error:
error 17: cannot mount selected partition #por lo que en este caso hay que usar algun LiveCD y realizar el proceso de la opción 3 para restaurar grub en la partición correcta, y despues de efectuar el paso de reinstalación de grub hay que modificar el archivo /boot/grub/menu.lst, y modificar la opción de <i>root(hdx,y)</i> ya que si antes la partición de boot estaba en <i>root (hd0,1)</i> que es igual a la particion /dev/sda2 entonces habría que moverla a <i>root (hd0,4)</i> si ahora la partición donde se encuentra /boot esta en /dev/sda5. #con esto ya quedaría restaurado grub, pero si notamos la instalación de grub aun no tiene agregado al menú la información de la partición de Windows XP, por lo que tendremos que editar el archivo ./boot/grub/menu.lst #en mi lista de particiones tengo instalada la partición NTFS en /dev/sda4, por lo que tendría que agregar a menu.lst despues de ### END DEBIAN AUTOMAGIC KERNELS LIST algo como lo siguiente.
title Windows XP SP2
root (hd0,3)
makeactive
chainloader +1 #title es el string que se verá en el menú, root es la ubicación de la partición NTFS como es sda4, entonces ahí se verá hd0,3, si estuviera en un segundo disco en la partición 5 por ejemplo sería algo como (hd1,4), makeactive y chainloader son otros valores para que funcione el arranque de la partición. #También es bueno revisar que la opción hiddenmenu este comentada y darle un tiempo considerable en timeout para seleccionar la opción en el menú. #después de modificar el archivo, lo guardamos, reiniciamos la pc, sacamos el LiveCD y después del reinicio debería mostrarse el menú de grub con la partición de windows incluida.
En mi caso todo funcionó sin mayor problema y ahora tengo grub funcionando en la PC, y arranca tanto Linux como Windows.
Solo escribo este post para sacar mi frustración con respecto a la compra de un teclado flexible que para el colmo es chino.. Hoy en la mañana fuí a la plaza de la computación aquì en la Ciudad de México por un teclado, ya que el teclado de una laptop Toshiba que tengo se calienta demasiado y eso ya me preocupaba, ya que a veces es necesario y comùn lavarse las manos y muchas veces el agua de los lavabos es fría y eso de lavarse con las manos calientes pues a la larga es peligroso por eso de la "artritis reumatoide", por lo que ya desde días anteriores usaba un teclado normal, pero quise probar con un teclado flexible por eso de que ando de aqui para allá y así poder cargarlo sin problemas en mi mochila, así que sin más fui la plaza de la computación y por $ 130.00 pesitos pude adquirirlo, emocionado regresé a continuar con un proyecto y todo iba bien incluso con la conexión del USB que fué reconocido sin problema, pero el martirio comenzó al escribir con el teclado..
Primero: las teclas son muy pequeñas por lo cual a veces no alcanzas a teclear correctamente y si no es que tecleas otra letra o de plano no escribe nada, por lo que tienes que darle regresar(<-) para corregir, esto es común con un teclado normal, pero no tan seguido con 1 de cada 5 palabras.
Segundo: la barra espaciadora solo sirve en la parte del centro, si tecleas casi a la orilla no da el espacio.
Tercero: las teclas que están arriba de la barra espaciadora, aparte de escribir el carácter que corresponde le añade un espacio en blanco.
Cuarto: si no tecleas fuerte, simplemete no escribe el caracter.
Quinto: La tecla de Bloq Mayus es demasiado grande por lo que a veces en vez de teclear el carácter A que está cerca, presionas Bloq Mayus y a corregir de nuevo el texto.
Sexto: Pequeño detalle que no traiga las teclas de Home, End, PgUP, PgDn, eso es lo peor de todo, ya que como programador estoy acostumbrado hacer ese uso de teclas casi tiro por viaje o mejor dicho teclazo por línea y es desesperante ir caracter por caracter con las teclas de flecha hacia arriba hasta llegar al final o al principio de un texto, ya no digamos cuándo seleccionas.
Podría seguir con más problemas causados con este teclado, pero en definitiva mi coraje es demasiado que mejor me relajo haciendo otra cosa por vía de mientras..
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/:
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.
Asterisk es un PBX con características mucho muy avanzadas de lo que puede ser un Conmutador de Telefonía comercial, podría enmarcar algunas de sus características mencionadas en el sitio de Asterisk pero siempre es mejor probar personalmente lo que se comenta, por eso desde hace casi 3 años que fui conociendo este magnífico proyecto Open Source le he dedicado muchas horas conociéndolo poco mas y haciendo pruebas cada vez mas interensantes y haciendo solo 2 implementaciones en producción que han sido exitosas ya que por ahora mi giro esta enfocado a Desarrollo de Aplicaciones Moviles mas que a implementaciones de Telefonía IP.
Recuerdo la primera vez que lo instalé fué todo un show ya que solo contaba con linea telefónica en el depto pero no tenía internet de banda ancha, por lo que acudí a un cyber con mi lap para bajar los fuentes de Asterisk y comenzar con la instalación, esa vez me tardé mas de 20 horas en tener mi primer PBX casero, recuerdo incluso que el encargado del cyber es un informático que se interesó por Asterisk que ahora incluso ha creado más de un par de casetas teléfonicas usando Asterisk y sacándole provecho a la tecnología de Voz sobre IP. FreePBX es más que una Interfaz Web para configurar desde características básicas hasta propiedades muy avanzadas de Asterisk como IVR, Trunks, etc., al principio era difícil contar con una interfaz gráfica para Asterisk por lo que no había más opción que arreglárselas con Emacs y empezar a editar todo a mano, era entretenido equivocarse pero creo que como aprendizaje fué bueno aunque ahora a pesar de que a muchos implementadores les agrada todavía seguir configurando a mano varias cosas básicas de Asterisk a mi gusto es mejor hacerlo con FreePBX ahorrándose el trabajo fácil y algunas cosas que no las implemente FreePBX si darles el tiempo necesario para configurarlas a mano usando el nuevo método de configuración de Asterisk parecido a la programación de clases, aunque creo que FreePBX implementa muchas características necesarias para cualquier conmutador que pudiera ser utilizado en alguna empresa mediana pero otras cosas más avanzadas siempre existirá la posibilidad de hacerlas a manos desde la configuración de Asterisk.
Puedes ver rápidamente información acerca de FreePBX y algunos ScreenShots de como luce FreePBX trabajando y para no aburrir más pongo un tutorial sobre la instalación de Asterisk paso a paso sobre Ubuntu Linux
#Procedimiento para Instalar Asterisk VoIP en Ubuntu Server # Linux Version : Ubuntu Server # Linux Kernel : 2.6.22 # Conmutador de VoIP : Asterisk V.1.4.13 # Admninistrador Web : FreePBX 2.3.1
# ******************** # ******************** # ****** Primera Parte - Instalacion de Paquetes # ******************** # ********************
# Despues de instalar Ubuntu cambiar password a root sudopasswd root
password #Editar /etc/apt/sources.list y activar los siguientes repositorios sudo editor /etc/apt/sources.list #descomentar y guardar
deb http://us.archive.ubuntu.com/ubuntu/ dapper universe
deb-src http://us.archive.ubuntu.com/ubuntu/ dapper universe # 1 Instalar librerias para acceso via SSH sudoapt-getinstall openssl libssl-dev ssh # 2 librerias de compilacion de software, sirve para compilar Asterisk sudoapt-getinstallgccmakeg++ # 3 verificar que versiones de kernel tengo instalado en el servidor uname-a # me regresa algo como esto
Linux MexRom 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686 GNU/Linux # 4 buscar las fuentes del kernel con las versiones instaladas en el server apt-cache search 2.6.22 # 5 instalamos los encabezados para 2.6.15 espec?ficos para el procesador (linux-headers-2.6.15-23-386 , linux-source-2.6.15 , linux-image-2.6.15-23-386) sudoapt-getinstall linux-headers-2.6.22-14-generic linux-image-2.6.22-14-generic linux-source-2.6.22 # 6 sinstalamos algunas utiler?as 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 sudoapt-getinstallnmaplynx emacs21 # 7 festival son paquetes para el manejo de voz sudoapt-getinstall festival festival-dev # 8 para poder usar la consola de asterisk sudoapt-getinstall ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev # 9 librerias de compresion sudoapt-getinstall zlib1g zlib1g-dev # 10 librerias requeridas por el servicio web de FreePBX sudoapt-getinstallbison bison-doc # 11 librerias requeridas por el servicio web de FreePBX sudoapt-getinstall libxml2 libxml2-dev # 12 librerias requeridas por el servicio web de FreePBX sudoapt-getinstall libtiff4 libtiff4-dev # 13 librerias requeridas por el servicio web de FreePBX sudoapt-getinstall libasound2 libgsm1 libltdl3 libpq4 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev #en caso que se vaya a usar una tarjeta sangoma, se requiere instalar flex para que funcione con el driver wanpipe sudoapt-getinstallflex # 14 librerias requeridas por Asterisk para el manejo de ayuda y de extraccion de archivos del CVS sudoapt-getinstall subversion curl doxygen # 15 librerias requeridas por el servicio web de FreePBX sudoapt-getinstall libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl # 16 Servidor web para FreePBX sudoapt-getinstall apache2 # 17 librer?as requeridas por el servicio web de FreePBX sudoapt-getinstall php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db # 18 base de datos para el CDR y FreePBX sudoapt-getinstall mysql-client-5.0 mysql-server-5.0 libmysqlclient15-dev # despues de instalar MySQL probablemente nos pedir? una configuracin como la siguiente
Pedira un password de configuracion para el usuario root de mysql
Configurar como Internet Site
localhost.localdomain # ******************** # ******************** # ****** 2da Parte.. ****** # ******************** # **********************
# 19 creamos un repositorio local para almacenar los archivos fuente de asterisk mkdir ~/asterisk cd asterisk # Obtenemos los archivos y os almacenamos en el directorio creado # 20 gateway entre freepbx y asterisk wget http://www.cpan.org/modules/by-category/25_Bundles/Asterisk/asterisk-perl-0.10.tar.gz # 21 navaja suiza para manejo de archivos de sonido wget http://superb-east.dl.sourceforge.net/sourceforge/sox/sox-14.0.0.tar.gz wget http://easynews.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz # 22 Obtenemos los paquetes para el administrador web de FreePBX, podemos aqui instalar la version 2.2.1 de FreePBX la mas actualizada y seguir con el mismo procedimiento wget http://easynews.dl.sourceforge.net/sourceforge/amportal/freepbx-2.3.1.tar.gz # 23 Obtenemos los archivos para Asterisk wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.13.tar.gz wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.5.1.tar.gz wget http://downloads.digium.com/pub/libpri/releases/libpri-1.4.1.tar.gz wget http://downloads.digium.com/pub/asterisk/releases/asterisk-addons-1.4.4.tar.gz wget http://downloads.digium.com/pub/telephony/sounds/asterisk-core-sounds-en-ulaw-current.tar.gz wget http://downloads.digium.com/pub/telephony/sounds/asterisk-extra-sounds-en-ulaw-current.tar.gz wget http://downloads.digium.com/pub/telephony/sounds/asterisk-moh-freeplay-ulaw.tar.gz # Nos ubicamos en el directorio /usr/src cd/usr/src/ # 24 Instalamos el Editor de Sonidos de Asterisk sudotar-xvzf ~/asterisk/lame-3.97.tar.gz cd lame-3.97 sudo ./configure --prefix=/usr --sysconfdir=/etc sudomake&&sudomakeinstall # 25 Instalamos SOX, utiler?a para manejar los sonidos en Asterisk cd/usr/src/ sudotar-xzvf ~/asterisk/sox-14.0.0.tar.gz cd sox-14.0.0 sudo ./configure sudomake sudomakeinstall # 26 Instalamos el gateway entre Asterisk y FreePBX cd/usr/src/ sudotar-xzvf ~/asterisk/asterisk-perl-0.10.tar.gz cd asterisk-perl-0.10 sudoperl Makefile.PL sudomake all sudomakeinstall
# 27 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 sudotar-xzvf ~/asterisk/freepbx-2.3.1.tar.gz cd/usr/src/freepbx-2.3.1 # Comenzamos a instalar la Base de Datos para el Administrador Web FreePBX y para los CDR. # Iniciacilizacion de la implementaci?n de Bases de Datos en Mysql para Asterisk # Accedemos a MySQL si no han configurado su password de root mysql, solo presionar Enter de lo contrario introducir el password
mysql -u root -p
ENTER
show databases;
use mysql ; # cambiamos los password de root en caso de que el usuario root de mysql no tuviera password
update user set password = password("PaSsWoRd") where user = "root"; # Creamos el usuario para la base de datos del conmutador y del cdr
grant all privileges on *.* to asterisk@localhost identified by "4st3r1sk";
flush privileges; exit # Nos validamos con el usuario de Asterisk creado
mysql -u asterisk -p # Creamos las bases de datos dentro de la consola de mysql
create database asteriskcdrdb;
create database asterisk; exit # Pasamos el esquema y la informacion de los scripts de bases de datos por default de FreePBX
mysql -u asterisk -p asterisk </usr/src/freepbx-2.3.1/SQL/newinstall.sql
mysql -u asterisk -p asteriskcdrdb </usr/src/freepbx-2.3.1/SQL/cdr_mysql_table.sql # Termina la configuracion de Bases de Datos en Mysql para Asterisk # 28 creamos el usuario y grupo que manejara los procesos de asterisk, cambiamos su password y creamos el directorio de asterisk sudo groupadd asterisk sudo useradd -c"PBX asterisk"-d/var/lib/asterisk -g asterisk asterisk sudopasswd asterisk sudomkdir/var/run/asterisk sudochown asterisk:asterisk /var/run/asterisk
# 29 Cambiamo el usuario propietario de Apache sudo emacs /etc/group # para guardar presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c
www-data:x:33:asterisk # ejecutamos el comando find para ubicar el archivo de configuracion de apache find/etc/apache2/-type f | xargsgrep Group
# 30 editamos el archivo de apache sudo emacs /etc/apache2/apache2.conf #en emacs para buscar, presionar Ctrl+s e introducir un patron de busqueda en este caso por ejemplo www
# 31 cambiar el usuario y grupo de www-data a asterisk
User www-data
Group www-data # cambiar por
User asterisk
Group asterisk # guardamos para guardar es presionar ctrl+x ctrl+s, para salir ctr+x, ctr+c
# 32 cambiamos los permisos para el directorio de sesiones de PHP sudochown-R asterisk /var/lib/php5
# 33 edicion de php para aumentar el tamano de archivos que se suben al servidor web y modificamos los siguientes valores sudo emacs /etc/php5/apache2/php.ini
upload_max_filesize = 32M
max_execution_time = 120
max_input_time = 120
# 34 creamos un directorio para la instalacion de los paquetes de Asterisk sudomkdir/usr/src/asterisk cd/usr/src/asterisk
# 35 libreria o drivers para tarjetas line PRI sudotar zvxf ~/asterisk/libpri-1.4.1.tar.gz
# 36 librerias o drivers para tarjetas ZAPTEL sudotar zvxf ~/asterisk/zaptel-1.4.5.1.tar.gz
# 37 El PBX Asterisk sudotar zvxf ~/asterisk/asterisk-1.4.13.tar.gz
# 38 utilerias de asterisk(cdr, rep music on hold. etc) sudotar zvxf ~/asterisk/asterisk-addons-1.4.4.tar.gz
# 39 archivos de IVR por default sudomkdir asterisk-sounds cd asterisk-sounds sudotar zvxf ~/asterisk/asterisk-core-sounds-en-ulaw-current.tar.gz sudotar zvxf ~/asterisk/asterisk-extra-sounds-en-ulaw-current.tar.gz sudotar zvxf ~/asterisk/asterisk-moh-freeplay-ulaw.tar.gz
# 40 compilacion de PRI cd/usr/src/asterisk/libpri-1.4.1 sudomake&sudomakeinstall
# 41 compilacion de los drivers de Zaptel para el funcionamiento de la tarjeta FXO cd/usr/src/asterisk/zaptel-1.4.5.1 sudomake clean sudomake sudomakeinstall sudomake config
# 43 compilacion de Utilerias de Asterisk cd/usr/src/asterisk/asterisk-addons-1.4.4 sudomake sudomakeinstall # 44 Copiamos todos los archivos de sonidos descomprimidos previamente al directorio por default de sonidos de asterisk sudocp-rf/usr/src/asterisk/asterisk-sounds/*/var/lib/asterisk/sounds/
# 45 reiniciamos el servidor web apache sudo/etc/init.d/apache2 restart # 46 Editamos el archivo de configuracion de Asterisk sudo emacs /etc/asterisk/asterisk.conf # cambiamos el directorio de RUNASTERISK=/var/run # a RUNASTERISK=/var/run/asterisk # 47 asignamos los permisos sudochown-R asterisk:asterisk /var/run/asterisk
# 48 Iniciar Asterisk para poder hacer la instalacion de FreePBX sudo asterisk start
# Verificar que Asterisk se haya inicido ps aux | grep asterisk
root 149920.21.7220447752 ? Ssl 07:14 0:00 asterisk start
# continuamos con la instalacion de FreePBX cd/usr/src/freepbx-2.3.1/ # Instalamos los paquetes para gestion de bases de datos en PHP sudo pear install db # si no encontrara el paquete db, bajarlo de internet e instalarmo manualmente: sudo pear install db.17.0.0.tgz sudomkdir/var/www/asterisk/ sudomkdir/var/www/asterisk/cgi-bin sudochown asterisk:asterisk /var/www/asterisk sudo ./install_amp # Despues de ejecutar install_amp pedira los valores para crear el archivo de configuracion. # En primer lugar introducir el usuario de la base de datos que se creo previamente [asteriskuser] asterisk # Introducir el password de l usuario de la base de datos para asterisk que se creo
Enter your PASSWORD to connect to the 'asterisk' database: [amp109] 4st3r1sk #Introducir el nombre del servidor de la base de datos, si esta de forma local intoducir localhost de lo contrario introducir la IP o nombre de dominio del servidor de base de datos
Enter the hostname of the 'asterisk' database: [localhost] localhost #Introducir el nombre de usuario del administrador que se usara como admin del AMI de Asterisk
Enter a USERNAME to connect to the Asterisk Manager interface: [admin] asterisk # Password del usuario admin de AMI, importante para conectar aplicaciones terceras a Asterisk
Enter a PASSWORD to connect to the Asterisk Manager interface: [amp111] 4st3.r1sk # Ruta de instalacion del Servidor de Asterisk
Enter the path to use for your AMP web root: [/var/www/html]/var/www/asterisk #Dirección IP del servidor de Voz sobre IP
Enter the IP ADDRESS or hostname used to access the AMP web-admin: [xx.xx.xx.xx] 192.168.1.2 # Password para poder operar FOP
Enter a PASSWORD to perform call transfers with the Flash Operator Panel: [passw0rd] 4st3r1sk.01 #Solo teclear enter para aceptar la opcion por default
Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]? [extensions] #Solo teclear enter para aceptar la opcion por default
Enter directory inwhich to store AMP executable scripts: [/var/lib/asterisk/bin] #Solo teclear enter para aceptar la opcion por default
Enter directory inwhich to store super-user scripts: [/usr/local/sbin]
# si marcara algun error el script de install_amp revisar usuarios de base de datos, librerias de php y de mysql, reiniciar apache y peardb, php-db # en caso de que tuviera un error al ejecutar FreePBX puede reconfigurarlo pero previamente eliminar el archivo de configuracion en /etc/amportal.conf
# 49 creamos la carpeta donde se almacenaran los sonidos del IVR sudomkdir/var/lib/asterisk/sounds/custom # 50 configuramos los permisos para el directorio de Asterisk sudochown-R asterisk:asterisk /var/lib/asterisk/ # Paramos previamente la ejecucion de asterisk ps aux | grep asterisk
root 149920.01.7225247892 ? Ssl 07:14 0:00 asterisk start sudokill-s914992 #Editamos el archivo siguiente y agregamos una linea como la que se menciona sudo emacs /etc/default/asterisk RUNASTERISK=yes # 51 ejecutamos amportal sudo amportal start # verificamos que se haya ejecutado correctamente amportal sudops aux | grep asterisk # y deberiamos ver algo parecido
root 157590.00.13864736 pts/2 S 07:30 0:00 /bin/bash/usr/sbin/safe_asterisk -U asterisk -G asterisk
asterisk 157642.01.9224368552 pts/2 Sl 07:30 0:00 /usr/sbin/asterisk -f-U asterisk -G asterisk -vvvg-c
asterisk 158110.00.11752496 pts/2 S 07:30 0:00 sh/var/www/asterisk/panel/safe_opserver
asterisk 1581214.01.8110728340 pts/2 S 07:30 0:00 /usr/bin/perl-w/var/www/asterisk/panel/op_server.pl
# 52 Abrir en un navegador de preferencia Firefox la direccion del servidor Asterisk por ejemplo que el servidor corra en una IP 192.168.1.2
http://192.168.1.2/asterisk/admin/ # Por default no nos pedira un password, pero hay que ir a administradores y cambiar el nombre de usuario y password del administrador # Nos desconectamos del servidor web de FreePBX # 53 Posteriormente editamos el archivo amportal.conf y cambiamos el valor de AUTHTYPE a database sudo emacs /etc/amportal.conf AUTHTYPE=database # 54 Volvemos a entrar al servidor de FreePBX y ahora nos pedira un login y password, introducir los configurados login:admin
password:4st3r1sk #Ahora tenemos habilitado El conmutador de Voz Sobre IP Asterisk #Y el administrador Web de Asterisk FreePBX. # 55 Ir a la opcion de "Module Admin", seleccionar Check Update Online y descargar modulos de administracion de Asterisk necesarios, se requiere conexion a internet # 56 Si no estuviera habilitado el Panel, ir al directorio de instalacion de freepbx, copiar los archivos al directorio web, cambiar permisos, reiniciar freepbx cd/usr/src/freepbx-2.3.1 sudocp-rf amp_conf/htdocs_panel/*/var/www/asterisk/panel sudochown asterisk.asterisk /var/www/asterisk/
Si buscas informacion adicional sobre Asterisk puedes sentirte libre en contactarme por medio del correo electrónico en fileinleon [arroba] gmail [punto] com
Puedes consultar la versión en ingles de la instalación de Asterisk sobre Ubuntu Server en la siguiente URL: http://phylevn.mexrom.net/index.php?page/Install_Asterisk_And_FreePBX_In_Ubuntu_Linux
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.
En un post anterior comentaba lo que es SQL-Ledger y sus caracteristicas, asi como este fantastico ERP basado en la filosofia de Software Libre podria solventar varios dolores de cabezas de empresas mexicanas desde pequeñas hasta tirandole a medianas-grandes, permitiendo a las empresas tener mayor control sobre sus inventarios, contabilidad y finanzas, puntos de venta, control de pagos, etc., sin invertir grandes cantidades de dinero y dándole flexibilidad para su operaion e integracion dentro de las empresas.
Despues de haber ido conociendo mas sobre este ERP y descubriendo que por sus caracteristicas su uso en Mexico puede ser muy practico para empresas en diversos giros, pongo a su disposicion un manual para su instalacion paso a paso para que cualquier interesado en la adopcion de este ERP en su empresa lo pueda llevar a cabo.
Aunque sql-ledger puede funcionar en Windows es altamente recomendable su uso bajo la plataforma Linux ya que la seguridad del sistema, el rendimiento de la Base de Datos y la aplicacion misma mejora por mucho en comparacion de Windows.
Basicamente los requerimientos de SQL-Ledger son los siguientes:
Perl 5 o superior
Postgres 7.5 o superior
Un servidor Web Apache, Httpd, thttpd, Cherokee
Perl DBI
DBD-pg
Latex (opcional para la generacion de reportes)
#creamos una carpeta temporal para almacernar los archivos descargados mkdir ~/sql-ledger cd ~/sql-ledger #decargamos los paquetes requeridos por compiere wget http://psb.sbras.ru/docs/CPAN/pub/CPAN/modules/by-module/DBI/DBI-1.601.tar.gz #Obtencion de la base de datos de postgres wget http://ftp8.us.postgresql.org/postgresql//source/v8.2.5/postgresql-8.2.5.tar.bz2 #Obtencion de la ultima version de sql-ledger wget http://www.sql-ledger.com/source/sql-ledger-2.8.8.tar.gz #verificamos que tengamos una version igual o superior de Perl 5 perl-v >>This is perl, v5.8.8 built for i486-linux-gnu-thread-multi # Instalacion del servidor web sudoapt-getinstall apache2
#Instalacion de los drivers de conexion a postgres DBD (DBD-Pg) sudoapt-getinstall libdbd-pgsql libdbd-pg-perl cd/usr/local sudotar-xzvf ~/sql-ledger/DBI-1.601.tar.gz cd DBI-1.601 sudoperl Makefile.PL sudomake sudomaketest sudomakeinstall #Instalacion de sql-ledger cd/usr/local sudotar-xzvf ~/sql-ledger/sql-ledger-2.8.8.tar.gz cd sql-ledger sudocp sql-ledger.conf.default sql-ledger.conf
#configuracion de sql ledger dentro de apache cd/etc/apache2/sites-enabled/ sudo emacs sql-ledger #introducimos dentro del archivo lo siguiente
Alias /sql-ledger /usr/local/sql-ledger/ <Directory /usr/local/sql-ledger>
AllowOverride All
AddHandler cgi-script .pl
AddDefaultCharset On
Options ExecCGI Includes FollowSymlinks
Order Allow,Deny
Allow from All </Directory> <Directory /usr/local/sql-ledger/users>
Order Deny,Allow
Deny from All </Directory> #Guardamos y cerramos #reiniciamos apache sudo/etc/init.d/apache2 stop sudo/etc/init.d/apache2 start # configuramos los permisos de los directorios de la aplicacion web de sql-ledger cd/usr/local/sql-ledger sudochown-hR www-data:www-data users templates css spool
#instalacion de PostgreSQL #libreria requerida por postgres sudoapt-getinstall libreadline5 libreadline5-dev cd/usr/src/ sudotar-xjvf ~/postgresql-8.2.5.tar.bz2 cd postgresql-8.2.5 #compilacion de postgres sudo ./configure sudomake sudomakeinstall #configuracion sudo adduser postgres sudomkdir/usr/local/pgsql/data sudochown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D/usr/local/pgsql/data /usr/local/pgsql/bin/postgres -D/usr/local/pgsql/data >logfile 2>&1&
#creacion de la base de datos para sql-ledger /usr/local/pgsql/bin/createdb sql-ledger /usr/local/pgsql/bin/psql sql-ledger #configuracion del usuario para la base de datos su postgres /usr/local/pgsql/bin/createuser -d-P sql-ledger
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n /usr/local/pgsql/bin/createlang plpgsql sql-ledger
#configuracion del sistema de sql-ledger
Web Admin
http://sql-ledger-server.com/sql-ledger/admin.pl #entramos a la siguiente opcion
pg Database Administration # Introducir los valores de el servidor de la base de datos
host localhost
port 5432
user sql-ledger
password password-user-sql-ledger
dataset sql-ledger
#Al presionar create dataset, sql-ledger creará la base de datos para la conexion especificada #Agregue nuevos usuarios y persmisos para poder acceder al sistema desde
http://sql-ledger-server.com/sql-ledger/login.pl
Espero alguien le pueda ser util este manual de instalacion y empezar a probar SQL-Ledger pero mejor aun que puedan sacarle provecho y llevarlo a un entorno de produccion para beneficio de las empresas mexicanas.
Comentarios Recientes