Contador estandar

17. April 2008

Empezar con Asterisk

Hoy en una conversación con unas personas que no conozco de nada, he escuchado una comparativa bastante curiosa sobre un software y una casa, y realmente después de pensar he hecho un simil sobre la forma que tienen muchas personas de instalar una aplicación y utilizarla, como si estuviesemos hablando de una aplicación tan sencilla como el Notepad de Windows.

Asterisk es una aplicación que corre bajo el sistema operativo GNU/Linux (que el amigo RMS no se me mosquee otra vez), por lo tanto, intentar ejecutarlo en otro sistema no compatible es como intentar construir una casa en el agua, o flotando a 5m., directamente no se puede o no es viable.

Asterisk también es una aplicación que maneja conceptos tan amplios (no voy a decir difíciles, simplemente amplios) como la telefonía, y las redes de datos, así, esto es algo que la persona que quiera instalar un Asterisk debe conocer al menos, una base, saber porqué y cómo. Debemos saber que una casa tiene puertas y ventanas, y debe estar asentada en un suelo plano y fijo. Si construimos nuestra casa sobre barro o sin puertas, de poco nos va a servir.

Además de estos conceptos, es necesario conocer otros como: qué es un protocolo, en qué consiste eso que llaman “VoIP”, puertos que se utilizan, de qué tipo, etc., de la misma manera que debemos saber que una casa debe tener un cuarto de baño, un dormitorio, una cocina,…

Para colmo, y como excepción a este tipo de aplicación, debemos saber cómo configurar esta aplicación para que haga lo que queremos: Qué muebles son necesarios poner y dónde, así nuestra casa puede ser medianamente habitable y podamos sentirnos agusto en ella.

Una vez que tengamos hecho todo esto, podremos empezar a aprender a utilizar Asterisk en condiciones.

Muchas personas empiezan la casa por el tejado, o bien comprando directamente una casa prefabricada que en cuanto hace un poco de viento se desploma y que, como no saben nada de configurar, terminan poniendo el WC como mesita de noche al lado de la cama y frente a la freidora.

Así que… un consejo para aquellos que esteis empezando…

Dedicadle tiempo a aprender los conceptos básicos, a familiarizaros con la configuración y a buscar y buscar información sobre cómo se hace, y no tanto preguntar para conseguir construir una casa rápidamente, o la terminareis haciendo con hojas y palillos y tarde o temprano se os caerá encima cuando esteis durmiendo en la cocina.

Si teneis que aprender de forma urgente, apuntaos a uno de tantos cursos sobre Asterisk que seguramente hay cerca de donde vivís.

Si pensais que utilizando una distribución prefabricada tipo TrixBox/Asterisk-GUI/Elastix vais a conseguir montar un Asterisk serio y rápido, estais equivocados, el Asterisk ya estará montado y medio configurado y no habreis aprendido nada y fallareis donde siempre fallan los que empiezan así, en la base.

Para comenzar, unos enlaces interesantes con documentación aún más interesante:

Feliz aprendizaje de Asterisk. :D

15. April 2008

Aclarando conceptos sobre SIP y VoIP

El protocolo SIP (que significa Protocolo de Iniciación de Sesiones) nació en 1996 cuando Mark Handley y Eve Schooler presentaron el primer borrador ante la IETF de lo que sería un protocolo de comunicaciones IP que solucionaría gran parte de los inconvenientes de protocolos anteriores.

En este borrador se exponían conceptos nuevos y que posteriormente pasaría a utilizarse en todo el mundo como uno de los protocolos más utilizados en las aplicaciones de mensajería instantánea, aplicaciones CRM, ERP y por supuesto VoIP. Entre estos nuevos conceptos destaca alto tan básico como el “registro”, por el cual un usuario informaba a la red dónde podía recibir invitaciones de comunicaciones por parte de otros usuarios, lo que permitía que un usuario pudiera recibir un mensaje en su casa y si luego se trasladaba al trabajo y se “registraba”, el mensaje lo recibiera en el trabajo y no en su casa.

El protocolo SIP es un protocolo de señalización, es decir, SIP no transporta audio ni vídeo, por lo que sería incompleto decir que en una comunicación de VoIP en SIP solo interviene este protocolo que se transmite por el puerto 5060 TCP o UDP.

Entonces ¿como se puede enviar audio y vídeo por SIP?. Sencillamente, no se puede, SIP no está diseñado para esto, aunque sí que permite indicar el sistema y el puerto por el que se puede enviar un flujo de datos que encapsula la voz y el vídeo. Para este flujo de datos se utiliza otro protocolo: SDP (que significa “Session Description Protocol” en español “Protocolo de Descripción de Sesiones“) y envía los parámetros de inicialización de audio y vídeo transmitidos por streaming por varios puertos UDP altos (por encima del 1024)

La comunicación SIP se realiza entre lo que se denominan “Agentes de Usuario SIP” comúnmente conocido como “usuario SIP”, “Servidores de Registro” también conocido como “SIP Server” y “SIP Proxy” también conocido como “SIP Proxy” :P

- Usuarios SIP:
Un usuario SIP puede ser una aplicación de mensajería, un softphone, un teléfono IP, y en general cualquier dispositivo o software que sea compatible con SIP y que tenga la capacidad de “registrarse” con una cuenta SIP. Los usuarios SIP reciben una URI formada por “usuario”@”dominio” donde el campo dominio se corresponde con el Servidor SIP donde se encuentra registrado.

- Servidor SIP:
Un servidor SIP es una aplicación o dispositivo que permite crear y gestionar cuentas SIP y permitir que los Usuarios SIP se “registren” almacenando la dirección IP donde deben acceder para realizar la comunicación con este usuario.

- Proxy SIP:
Un Proxy SIP es una aplicación que permite que cualquier usuario SIP envíe un comando a otro usuario SIP.

Con estos tres conceptos claros, empieza la parte divertida, cuando dos usuarios SIP quieren hablar entre si, hace falta:
- Dos usuarios SIP (100@dominio y 200@dominio)
- Un servidor SIP donde se registrarán los dos usuarios
- Un proxy SIP para enviar los paquetes necesarios desde uno de los usuarios al otro para empezar a establecer una comunicación.

Una vez establecida la comunicación, el envío de los paquetes streaming de audio y vídeo se realiza únicamente y exclusivamente entre la aplicación registrada como 100@dominio y la aplicación registrada como 200@dominio, por lo que queda demostrado que SIP es un protocolo P2P tan mal visto por los medios de comunicación. :)
En este caso, el usuario 100@dominio también podría iniciar la comunicación introduciendo el usuario 200@direccionIP donde “direccionIP” sería la que tuviese ese usuario en ese instante. ¿pero qué ocurre cuando el usuario cambia de IP? ¿Perdemos la posibilidad de llamarle? Justamente para eso sirve el servidor SIP y el Proxy SIP.

Aprovechando estas definiciones interesantes, me gustaría aclarar algunas más relacionadas con la VoIP:

- B2BUA (Back 2 Back User Agent)
El B2BUA es una aplicación para controllar llamadas entre usuarios SIP y se diferencia de un Proxy SIP en que este únicamente gestiona el estado de una llamada cuando se realiza, mientras que el B2BUA mantiene el estado de las llamadas y las mantiene para conseguir información valiosa en determinados entornos como facturación, redireccionamiento de llamadas en caso de caída de un proveedor SIP, etc.
Asterisk es mucho más que un B2BUA ya que no únicamente controla todo esto, si no que incluso puede llegar a realizar acciones que ni un Proxy SIP ni un B2BUA pueden realizar como: grabaciones de llamadas, sistemas de buzón de voz, reproducción de locuciones, ofrecer menús IVR, reproducir música en espera, y un larguísimo etc.

- Media Gateway (MGW)
El Media Gateway es una aplicación o dispositivo que convierte la señalización SIP y el audio streaming, recibidos por SIP en el formato necesario para que sea transportado por otra “tecnología” como líneas analógicas, digitales, diferentes protocolos IP, etc.

- Softswitch
El Softswitch es una aplicación o dispositivo que realiza las labores de un Proxy SIP y un Media Gateway.
Ejemplo de softswitch es el conocido FreeSwitch al que además le han añadido algunas opciones más típicas de centralitas.

- PBX
Un PBX es una centralita basada en la red telefónica (analógica, digital o incluso móvil) que realiza las acciones que ya conocemos de toda centralita: gestionar transferencias, programar menús IVR, grabar conversaciones, etc.

- Media Server
Un Media Server es un dispositivo o aplicación que permite almacenar contenido multimedia (audio, vídeo, imágenes, etc…) y que puede enviarla mediante algún tipo de protocolo sin importarle a quien.
Es un reproductor de contenido multimedia que se conecta a cualquiera de los sistemas que he mencionado con anterioridad y ofrece este contenido a uno o varios usuarios.
Tras esta breve explicación, espero que estos conceptos hayan quedado más claros y evitar utilizar una aplicación para realizar tareas más propias de otras. :)

06. April 2008

Cómo analizar datos VoIP con EtherReal (Wireshark)

Hace tiempo que conozco esta aplicación y, aunque me gusta más utilizar otras modo texto y algunos “trucos” shell scripts para encontrar lo que suelo buscar, se puede decir que la aplicación para analizar datos de la red más popular es sin duda Etherreal (ahora llamada Wireshark) por funcionar en Linux y en Windows y en modo gráfico que eso siempre gusta a muchos. :)

Como es bien sabido, hay ciertos factores “medio-ambientales” que influyen en toda comunicación, esto es… cierta configuración de un router afecta al tipo de NAT y por lo tanto al registro de extensiones externas a la red, la utilización de opciones “desconocidas” puede acarrear que los terminales tengan cortes o incluso no lleguen a ver la IP del Asterisk, etc., es entonces cuando se requiere utilizar herramientas de análisis de la red para conocer exáctamente qué está provocando estos problemas.

Acabo de encontrar un tutorial muy interesante en inglés sobre cómo configurar y extraer los datos interesantes (en una red VoIP) utilizando la herramienta Wireshark.

El tutorial lo podeis encontrar aquí:
http://www.panoramisk.com/151/analyzing-voip-with-wireshark/en/#more-151

12. March 2008

Material sobre Seguridad en la VoIP

seguridadSaúl Ibarra acaba de publicar el material de una conferencia que dió la semana pasada sobre seguridad en una red VoIP muy interesante.

Lo podeis ver aquí:
http://www.saghul.net/

14. February 2008

Como configurar un phoneBridge2 MOD-B

La gente de red-fone se han propuesto facilitar la vida a sus usuarios aún más si cabe y parece ser que está teniendo bastante éxito.

Como ya comenté en un artículo anterior, la empresa red-fone actualizó sus dispositivos phoneBridge2 del modelo A (MOD-A) al modelo B (MOD-B), la principal diferencia consistía en que, mientras el phoneBridge2 MOD-A, trabajaba exclusivamente en capa 2 (únicamente mediante direcciones MAC), el phoneBridge2 nuevo MOD-B trabaja tanto en capa 2 como el capa 3 (hay que asignarle una dirección IP), de hecho, nuestros Asterisk deben estar en el mismo rango de IP que los phoneBridge2 que queramos utilizar.

Acostumbrado al modelo A, se me hizo un poco complicada la configuración de un sistema de redundancia con el modelo B ya que al tener dirección IP, los archivos de configuración varían bastante, es por ello por lo que visitando la web de red-fone, descubrí un tutorial muy, muy interesante donde lo explicaban bastante clarito, y por si aún alguien no llegaba a entender muy bien cómo configurarlo, han elaborado un script muy útil que genera el archivo zaptel.conf y redfone.conf necesario en un tiempo record y con unas preguntas muy básicas.

El tutorial podeis verlo aquí:
http://www.red-fone.com/Products/fonebridge2/Installation/

y el archivo para facilitar la configuración del phoneBridge2 podeis descargarlo de aquí:
http://support.red-fone.com/downloads/tools/redfone_gen.sh

Atención: Hay que utilizar el nuevo driver que se encuentra en el paquete zaptel que se descarga de la página de descargas de red-fone:
http://support.red-fone.com/downloads/zaptel/

Una gozada de aparato. :)

19. January 2008

Asterisk-1.6.0-beta1 Released!

Un año y un mes después del lanzamiento de la primera versión de Asterisk 1.4, el equipo de desarrolladores de Asterisk acaba de hacer pública la primera versión de Asterisk 1.6.

De momento se está trabajando en los objetivos marcados desde agosto y por supuesto, lo que tenemos disponible es la primera de las versiones beta.

Han introducido una nueva política de versiones de la que hablaré al final del artículo.

La lista completa de todos los cambios con respecto a la versión 1.4 la podéis encontrar en el ChangeLog correspondiente, un documento de 9 páginas íntegras de cambios desde la versión 1.4.0-beta hasta esta última versión:
- Lista de cambios de Asterisk 1.4 a Asterisk 1.6

Asterisk 1.6

Para los que quieran probarlo, tan solo han de asegurarse tener instalado los paquetes básicos para poder compilar y seguir estos sencillos pasos:

apt-get install subversion
cd /usr/src
svn co http://svn.digium.com/svn/asterisk/tags/1.6.0-beta1/ asterisk-1.6.0-beta1
cd asterisk-1.6.0-beta1
./configure
make menuselect
make
make install
make samples
asterisk -gvc

Tras esto, podremos ver nuestro flamante y nuevo Asterisk 1.6 beta 1:

sinologic:/usr/src/asterisk-1.6.0-beta1# asterisk -gvvvvvvcddddd
Asterisk 1.6.0-beta1, Copyright (C) 1999 - 2007 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’
for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type ‘core show license’ for details.
=========================================================
NOTE: This is a development version of Asterisk, and should not be used in
production installations.

Han duplicado el número de aplicaciones (app_*) disponibles, añadiendo algunas bastante conocidas, otras completamente nuevas de las que ya hemos hablado (jack, autoprovisión de terminales, minivm, etc.) y algunas otras que son completamente nuevas y desconocidas.

Nuevas funciones para mejorar la programación del dialplan y permitir más flexibilidad a la hora de realizar algún tipo de configuración más compleja.

Tanto las aplicaciones ya conocidas continúan estando, pero hay muchas que han ampliado el número de opciones permitiendo ser aprovechadas mejor.

Tanto los canales SIP como IAX han sido mejorados para ofrecer un mejor comportamiento, ya veremos si en esta versión añaden las carencias que han ido apuntando algunos compañeros.

Continúan sirviendo el conjunto de locuciones de la versión 1.4 (se ve que de momento no hacen falta nuevos ‘monos’) -un chiste para los frikis- :D

Será cosa del estreno, pero me parece que pesa menos.

En cuanto a la nueva política de versiones de la que hablábamos al principio,  parece ser que los desarrolladores han ido aprendiendo de las pasadas versiones y en lugar de ir guardando código nuevo para lanzar una nueva característica en una futura versión de Asterisk 1.8, irán añadiéndola paulatinamente a la versión 1.6.
Las nuevas versiones de Asterisk 1.6 saldrán aproximadamente cada mes o dos meses y los cambios serán introducidos cuando sean más estables en lugar de apurarse en sacarlo en una fecha concreta (por fín).

En este documento podeis ver la nueva politica de mantenimiento de Asterisk 1.6http://lists.digium.com/pipermail/asterisk-dev/2007-October/030083.html

Pues nada, visto lo visto, empezamos el año con nuevo material para probar y trastear, tendremos que echar un vistazo más detenidamente y empezar a reportar todos los fallos que encontremos a bugs.digium.com.

Mi enhorabuena a todos y a disfrutarlo!

08. January 2008

Softphone SIP para la Playstation Portable (PSP)

Justo el mismo día que Sony y Skype anunciaban en el CES su nueva aplicación de la que hablaba hace unos días, la gente de Noobz hacen pública la versión de su softphone SIP para la PSP que probé ayer y que al no tener micrófono no pude hacer ni un triste eco, pero por lo menos funciona.

1.- Lo primero que hay que tener es una PSP con soporte de homebrew (aplicaciones de terceros)
2.- Descargamos el archivo Furikup (http://www.noobz.eu/…/furikup-0.1.zip)
3.- Conectamos la PSP al ordenador por el cable USB de manera que podamos ver el sistema de archivos.
4.- Descomprimimos los archivos y editamos el archivo sipcfg.ini que por defecto tiene esto:

server=nuestro_server_sip
username=usuario
password=contraseña
stunserver=stun.voipbuster.com
stunport=3478
input=usbcam

5.- Por último, entramos en el directorio MS_ROOT y copiamos estos directorios al raiz del sistema de archivos de la PSP.
6.- Desconectamos el USB y vamos al menú donde tendremos este nuevo icono.

PSP Icono

7.- Ejecutamos el archivo y veremos si se registra correctamente.

PSP Debug

Para solucionar cualquier problema a la hora de conectar o registrarse, podeis entrar en el foro de Noobz:
http://forums.noobz.eu/sip-phone-support/0/

29. December 2007

Cómo configurar Asterisk como sistema de alarmas

En Julio de este año ya hablamos de las posibilidades de Linux, una aplicación llamada “motion” utilizándolo como detector de movimiento y Asterisk para llegar a construir un sistema de alarmas con una webcam y Asterisk.

En aquel momento, el artículo que escribí fue simplemente una “idea” que ofrecía según las posibilidades de esta aplicación y Asterisk, y me he llevado una grata sorpresa al ver que dicha idea ha sido realizada por la empresa Servitux e incluso han escrito un tutorial donde podemos desarrollarlo con un esfuerzo mínimo.

El tutorial lo podeis encontrar en su página:
http://www.servitux.org/view.php/page/alarma

Gracias a Paco Brufal por el aviso.

18. December 2007

Videoconferencia con Asterisk y 3G

Asterisk videoNuestro colega Bytecoders nos apunta en un comentario que acaba de traducir un tutorial creado en inglés por Sergio García (de fontventa.com) sobre cómo compilar Asterisk para que tenga soporte de códecs que conecten con la red 3G y permitan la videoconferencia con los móviles de última generación. (bueno, los anteriores al iPhone. :D )

Parece que la idea de meter Video en Asterisk lleva bastante tiempo dando guerra, pero parece que este año que entra ahora va a cobrar mucho más protagonismo. Ya escribiré más adelante qué se espera para este nuevo año, de momento vamos a centrarnos.

En el tutorial se indica que funciona con terminales Nokia N95 y LG.

Para la instalación utilizan Debian Etch y una Digium B410P.

Se hace una instalación completa de Asterisk con soporte de mISDN para la tarjeta Digium y luego se procede a compilar el soporte de vídeo:

- Instalación del H324M y modificaciones para integrarlo con la tarjeta B410P.
- Instalación del códec AMR.
- Instalación del gateway H324 (Para recibir y hacer llamadas 3G)
- Instalación del mpeg4ip
- Instalación del app_mp4.
- Instalación del app_rtsp.
- Instalación del app_transcode.
- Instalación del pcm2mp4.
- Ejemplos de uso del dialplan.

Un tutorial que a más de uno le hará la vida un poco más sencilla. :P

Enlace:  http://bytecoders.homelinux.com/…/tutorial-asterisk-…-video-…-3g.html

30. November 2007

Tutorial de TrixBox CE en portugués

Gracias a AsteriskOnline.br nos enteramos que hay un tutorial bastante sencillo para instalar y configurar TrixBox en portugués.

TrixBox

Podeis seguirla aquí:
http://dicasasterisk.asteriskonline.com.br/?page_id=212