Categorías
Lenguaje de Programación Linux RevistaLinux Software Libre Tecnologia Ubuntu

Instalando Ruby on Rails en Ubuntu 11.04

Como saben Ruby es un lenguaje de Programación dinámico y por supuesto de código abierto muy potente, cuanto mas si instalamos el framwork llamado Rails para crear con ello una poderosa opción de programación en paginas Web. Pues bien, de un tiempo para acá he seguido este poderoso lenguaje de programación, yo comencé a desarrollar con PHP y MySQL, la realidad es que este ultimo lenguaje me dejo muchas cosas y la realidad es que aun sigo aprendiendo mucho con los cambios que se han hecho para bien del lenguaje.

Al conocer Ruby and Rails me quede maravillado con la facilidad de uso y por su potencia para soportar bases de datos como Postgresql, MySQL, DB2, SQLite3 y demás, pero me había costado algo de trabajo instalarlo en mi Ubuntu 11.04, aquí les dejo una pequeña guía para que no tengan problemas de instalación y en cuestión de minutos estén utilizando estas herramientas de desarrollo tan maravillosas. Dejo en claro que es la instalación básica, esto es, con SQLite3 para comenzar a hacer pruebas, si quieren instalar como base otro motor de Base de Datos hay muchas guías para realizarlo.

Primero que nada tenemos que instalar el lenguaje Ruby

$ sudo apt-get install ruby-full

Después de eso descargar las fuentes de rubygems de la pagina http://docs.rubygems.org/ para instalarlas y poder descargar e instalar rails. Descargamos la ultima versión o la versión que nos recomienden en la pagina de Ruby on Rails http://rubyonrails.org/download.

Otro camino es instalar directamente desde Ubuntu el ultimo paquete de rubygems

$ sudo apt-get install rubygems1.8

Actualizamos para verificar que es la ultima version

$ sudo gem update –system

Y por fin instalamos rails

$ sudo gem install rails

Cuando terminemos la instalación y creemos un primer proyecto en Ruby on Rails nos pedira que tengamos instalado SQLite3 por lo menos para tener un motor de Base de Datos. Asi que lo instalamos de una buena vez  para no tener esos problemas.

$ sudo apt-get install sqlite3 libsqlite3-dev

Después amarramos la instalacion de SQLite3 con las gems de Ruby. Este ultimo paso descargara los archivos necesarios para hacer funcionar la base de datos con Ruby on Rails

$ bundle install

Con esto terminamos la instalación completa de Ruby on Rails, ya solo comenzar a utilizar el framework con el lenguaje Ruby para crear proyectos Web.

$ rails new <nombre>

$ cd <nombre>

$ rails server

Categorías
Asterisk Linux RevistaLinux Tecnologia

Eliminar eco en las lineas físicas

Desde que he instalado servidores de Voz por Internet no me había encontrado con que el software que contiene dahdi antes zaptel en asterisk, no me eliminara el eco cuando se tomaba la linea telefónica física de la persona por medio de la tarjeta y el modulo FXO.

Resulta que instale una tarjeta con dos módulos FXO y en las dos lineas se escuchaba un eco horrible cada que se tomaba la linea telefónica. En primer lugar pensé que eran los módulos los que no funcionaban, pero después de cambiarlos me doy a la tarea de verificar las lineas por medio de la utilidad fxotunepara verificar la impedancia de las lineas telefónicas y cual va siendo mi sorpresa que el porcentaje de eco sobrepasaba el 25%, una cantidad enorme que el software no puede eliminar, así que aquí les pongo los pasos para que verifiquen sus lineas telefónicas si ustedes escuchan un eco medio raro en el momento de tomarlas en su PBX.

fxotune es una utilidad para modificar los módulos FXO de las tarjetas análogas. Esta utilidad soporta Digium TDM400P y clones, TDM800P, TDM2400P, modulos FXO de Xorcom Astribank. No soporta tarjetas X100P ni clones.

Lo que hace esta utilidad es lo siguiente:

  1. Abre el puerto FXO
  2. Envía un dígito DTMF (5), de forma que se deje de escuchar el tono de invitación a marcar, y se quede el canal abierto.
  3. Envía una serie de señales y lee la respuesta.
  4. Pasamos al siguiente puerto FXO y empezamos de nuevo
  5. Genera /etc/fxotune.conf, que nos permitirá cargar los coeficientes al arrancar la máquina.

Lo primero que tenemos que hacer es verificar cuanto es el porcentaje de impedancia que nos muestra el canal.

Antes que otra cosa suceda hay que para asterisk por medio de consola.

~#amportal stop

Después de esto, proseguimos.

~#fxotune -d -b 1

Allí lo que hacemos es analizar el eco del canal 1. Esto nos deberia de arrojar los resultados. Yo obtuve los siguientes.

Dumping module /dev/dahdi/1
echo ratio = 0.2866 (1305.9 / 4557.0)
Done!

Dumping module /dev/dahdi/2
echo ratio = 0.3389 (1544.3 / 4557.0)
Done!

Como ven, me salieron en los 2 canales porcentajes muy altos. Después de analizados nuestros valores lo que vamos a hacer es ahora si actuar.

~#fxotune -i 5 #para cargar los valores a eliminar

~#fxotune -s #para guardar los valores cargados anteriormente.

Volvemos a visualizar nuestros valores y vemos que todo se ha normalizado lo suficiente como para que el cancelador de eco de software lo elimine. Iniciamos de nuevo asterisk.

Dumping module /dev/dahdi/1
echo ratio = 0.0136 (61.9 / 4557.0)
Done!

Dumping module /dev/dahdi/2
echo ratio = 0.0118 (53.7 / 4557.0)
Done!

~#amportal start

Nota: Es necesario ejecutar “fxotune -s” después de cada test, NO al final, para que se carguen efectivamente los coeficientes en la tarjeta. Ejecutar “fxotune -s” al iniciar el sistema.

Categorías
Asterisk Elastix Linux RevistaLinux Software Libre Tecnologia

Ahorrando en telefonia con Elastix II

Como les decia en el post anterior, después de tener instalado el Sistema Elastix 2.0 en nuestra computadora y a punto de hacer login por vez primera vemos esta ventana.

Utilizamos el usuario «admin» y la clave que ingresamos al instalar nuestro Elastix en la maquina. Por otro lado vamos a una terminal SSH y tecleamos el usuario «root» y por supuesto la clave que ingresamos al instalar el sistema, lo primero que haces en actualizarlo, porque me encontré unos pequeños bugs al utilizar el sistema sin ser actualizado la primera vez, (se los digo por si les sucediera, sepan que son bugs corregibles)

  1. Tengo una tarjeta X100P clon, la cual esta descontinuada, pero la he utilizado desde que utilice Asterisk puro y siempre me habia funcionado correctamente. Al instalar la versión 2.0 de Elastix, lo que sucedió es que al ser reiniciado el Servidor y tratar de hacer una llamada a traves del PSTN me decia que estaba ocupada la linea y tenia que llamar desde otra linea a esta para destrabarla o alguien tenia que llamar y asi se destrababa, en fin, se corrigió.
  2. Por mi trabajo en estos PBX tengo interconectado el servidor de mi casa con el del trabajo para ahorro en llamadas y compartir lineas de teléfono; resulta que el protocolo IAX se «caia» cada determinado tiempo y no habia interconexión de mi casa, hacia la oficina el de la oficina lo deje en un principio en Elastix 1.6, porque era producción, encasa hago las pruebas) Lo que tenia que cuando sucedía era reinstalar Asterisk con el código fuente y funcionaba de nuevo, también con la actualización se corrigió.

Es por esta razón, para no sufrir algo como esto que mejor actualizamos desde un principio y eso lo hacemos con esto:

yum -y update

Después de la actualización podemos seguir en el navegador para comenzar a configurar nuestro servidor.

Lo primero que vemos es el administrador de Elastix y los tabuladores: System, Agenda, Fax, PBX, IM, Reports, Extras, Add-ons.

Comenzaremos con el tabulador System. En ese tabulador vemos las siguientes opciones:

  • Dashboard: Es el lugar donde podemos visualizar que servidores activados, por default tienen que estar corriendo Asterisk, Hylafax, Postfix, MySQL y Apache. Los servidores de Mensajería y el de Callcenter deberían de estar desactivados. También podemos ver los recursos de nuestro sistema como MicroProcesador, Memoria RAM, % utilizados en el Disco Duro, otro lugar que nos muestra las extensiones IAX, SIP, Trunks activados y no activados, además de el espacio utilizado en nuestro Disco Duro.
  • Networking: Donde podemos reasignar el IP de nuestro servidor, además de convertirlo en DHCP server, visualizar las IP de nuestra Red y asignar IP estáticas a máquinas de nuestra Red. Nota: Si se activa el DHCP Server hay que hacer NAT en el Server manualmente por medio de Iptables y activar el bit de forward para que todas nuestras máquinas en la red puedan navegar.
  • User Managment: Es el lugar para asignar usuario por extensión para darles acceso a este sistema a los usuarios de manera restringida, algún otro administrador del sistema, cambiar nuestra clave.
  • Shutdown: Para apagar o reiniciar nuestro server en el momento que queramos de manera remota.
  • Hardware detector: Aqui con un solo botón detectaremos nuestras tarjetas Digium o Sangoma, en la mia por ejemplo detecta solo la tarjeta X100P activo. Nota: Si hicimos cambios en nuestro archivo chan_dahdi.conf y hacemos otra reconfiguración del hardware, necesitamos hacer de nuevo las configuraciones puesto que se crea el archivo nuevamente.

  • Updates: Para visualizar las actualizaciones pendientes y activar los repositorios de Elastix o CentOS 5 e incluso Enterprise Linux 5.
  • Backup/Restore: El nombre lo dice todo, yo en lo personal prefiero sacar mis backups desde otra parte que mas adelante les dire, pero es buena opcion.
  • Preferences: Es un lugar donde podemos cambiar el skin, el lenguaje a visualizar, las fechas, la moneda a utilizar y los modulos a visualizar en el dashboard.

Lo primero que tenemos que manipular es Network y Hardware Detector. Demos un clic en el botón para detectar nuestras tarjetas Digium, nuestra clon o Sangoma, asi podremos sacar llamadas desde nuestra PSTN.

En Network en la parte de Network Parameters al oprimir el boton Edit Network Parameters si el servidor va a ser publicado en Internet el server pongan en Host un dominio inexistente porque a veces al llamar entre extensiones uno de los 2 lados escucha y otro no, eso me ha funcionado a mi y no he tenido problemas de perdida de voz. También mi recomendación en DNS 1 y DNS 2 poner los que propone Open DNS 208.67.222.222 y 208.67.220.220 porque agiliza la resolución de Dominios.

Terminologia:

DAHDI: Digium Asteiisk Hardware Device Interface, es el paquete o sistema que detecta y hace funcionar las tarjetas de telefonía ya sean digitales o análogas. Este paquete suplio a Zaptel.

Categorías
Asterisk Elastix Linux RevistaLinux Software Libre Tecnologia

Ahorrando en telefonía con Elastix

Hoy les hablare de un producto por demas maravilloso y que debe de formar parte de nuestro catalogo de soluciones Open Source, por si algún dia lo necesitan. Estoy hablando de Elastix, una distribución de Linux basada en CentOS y que unifica soluciones basadas por supuesto en Software Libre para hacer un producto completo en telecomunicaciones de voz y video.

Elastix se compone como ya lo mencione de varios productos como son Asterisk, la central de PBX; Hylafax, el servidor de faxes digitales; Openfire, sistema de mensajería instantánea; MySQL; servidor de base de datos y Postfix, Servidor de correo electrónico además de otros sistemas auxiliares como FreePBX, SSH, VTigerCRM, SugarCRM y demas productos para hacer de Elastix el PBX por excelencia.

Lo primero que necesitamos saber es que Elastix lo podemos descargar en su pagina oficial que es http://www.elastix.org/ que actualmente tiene 3 versiones estables 1.5.2, 1.6 y 2.0 siendo esta ultima la que yo utilizo con muy buenos resultados.

Recordemos que esto de las distribuciones de Conmutadores PBX comenzó con el  desaparecido Asterisk @ Home que después migro a Trixbox, cosa que despertó las inquietudes de Digium y también quiso entrarle al juego de las soluciones completas y libero Asterisk Now que ha pasado de noche, hasta que llego Elastix con muy buenos resultados tanto para el soporte como para el funcionamiento del Sistema.

Después de adquirir nuestra distribución de Elastix preferida y antes de instalarlo debemos de saber que el mínimo en hardware de una computadora para que sirva de servidor es:

  • Microprocesador Pentium 4 mayor que 2.0 GHz
  • 512 Mb en RAM
  • Tarjeta Madre con un slot PCI
  • Tarjeta X100P original o clon (descontinuada) o tarjeta A400P o TDM410P con un modulo FXO

Después de esto ya podemos comenzar la instalación de nuestro sistema Elastix en el cual iremos paso a paso, nos pediría clave para root, clave para MySQL, Ingreso Principal, FreePBX y todas las soluciones a las que podemos entrar, esto para evitar lo que sucedía con las versiones 1.5.2 y 1.6 que ya tenian claves predeterminadas por lo tanto eran vulnerables y podían ser crackeadas fácilmente al contener las claves predeterminadas y no tener el cuidado de cambiarlas; asi que esta distribución 2.0 ya toma las claves del usuario directamente y se dispone a instalar después de esto.

Ya que te terminemos la instalación podemos entrar a nuestro panel de administración en la dirección http://ip.de.la.maquina/ donde veremos esta ventana que es la entrada al mundo de Elastix, alli utilizaremos el usuario «admin» y la clave que nos pidio para ese usuario durante la instalación del servidor del cual les seguire platicando en futuras entregas.

Terminologia:

PBX: Private Branch Exchange. Central de Telefonía Secundaria. Un servidor o conmutador multilinea de Telefonía que sirve para fines particulares de hogar u oficina.

FXO: Foreign Exchange Office, Interface de Central Externa. Puerto que recibe una PSTN.

PSTN: Public Switched Telephone Network. Red Publica de Telefonía Conmutada. Se refiere al Plan Antiguo de Telefonía Análoga. El teléfono que utilizamos en nuestro hogar con la empresa de nuestra preferencia.

P.D. Hagan sus preguntas especificas que tratare de ir respondiendo en las futuras entregas.

Categorías
MP3 RevistaLinux Software Libre Tecnologia Ubuntu

Transmitiendo Audio desde IDJC

Ya mencione la forma de montar un servidor de IceCast en Linux, ahora les dire como transmitir con un cliente de IceCast/ShoutCast Libre de manera sencilla pero lo suficientemente poderoso como para transmitir música y por supuesto, nuestra voz a traves de un micrófono conectado a la computadora.

Primero debo de aclarar que hay mucha opciones para poder transmitir como cliente; ices2 (uso exagerado de Procesador), xmmp (complicado para configurar), ezstream (aun no lo he utilizado) y me decido por idjc o Internet DJ Console con una interfase muy intuitiva y fácil de configurar.

Lo primero que se tiene que hacer es instalar idjc (yo utilizo Ubuntu 10.04)

sudo apt-get install idjc

Instalar algunas herramientas mas, pero el que realmente nos interesa es JACK Control, que no es mas que el controlador del modulo ALSA para poder tomar control del sonido de nuestra computadora.

Instalado el IDJC vamos a la ruta Applications->Sound & Video->JACK Control y veremos esta ventana

iremos a setup y en el tabulador «Settings» seleccionamos 2048 en la opción Frames/Period, seleccionamos OK.

Ahora si en la ventana anterior seleccionamos «Play». Ya estamos controlando el sonido de la computadora por medio de JACK, ahora vamos ver IDJC.

Instalado el IDJC vamos a la ruta Applications->Internet->Internet DJ Console y veran esta ventana que es la principal.

Este programa como vemos tiene muchas opciones pero de verdad que de primera vista nos podemos dar cuenta que es un programa muy completo y nos da opciones como entrada de llamadas telefónicas, micrófono, música de fondo, múltiples servidores de streaming, asi como mezcla de música.

Tenemos que oprimir el botón «Server» para dar de alta el servidor desde el que vamos a transmitir. Veremos esta ventana y agregaremos los datos que configuramos en el servidor que montamos anteriormente.

Type: Icecast 2 Master

Host: localhost (si es en la misma maquina)

Port: 8000 (puede cambiar)

Mount: listen.ogg (icecast2) listen.mp3 (icecast-server)

Login: source

Password: mypass

Lógicamente necesitaríamos elegir cual es el bitrate, que el recomendable es 56 y el samplerate de 41000. Con esto ya tendríamos nuestro cliente de transmisión preparado para comenzar a hacerlo desde nuestro servidor.

Para agregar música a IDJC lo que tenemos que hacer es elegir cual es el lado que queremos hacer el streaming y agregar los archivos a transmitir al mismo tiempo que la voz. El programa es muy intuitivo a la hora de manejarlo y por supuesto como ven en la gráfica tiene control de volumen, control de micrófono, dj automático, control de llamadas y niveles para poder regular nuestra voz y la música que comencemos a transmitir. Un buen cliente que no puedes dejar de probar si eres un fan de la radio por Internet.

Actualización: En Ubuntu 10.10 ya no se necesitan hacer los primeros pasos con JACK, IDJC regula automáticamente el modulo ALSA para poder tomar tu hardware y transmitir son alguna interrupción.