Contador estandar

18. July 2008

Novedades en el Chan_SIP3

Olle Johansson en la lista Asterisk-Dev ha anunciado varias modificaciones que está programando para la nueva versión del chan_sip (chan_sip3 codename Pinneapple).

La más curiosa de estas modificaciones es sin duda la batalla contra el usuario (recordemos la campaña -kill the user-) y que parece ser que está tomando forma.
Olle no únicamente está decidido a “matar al usuario” si no también a los amigos (friend) y a los pares (peer) y está programando un cambio radical y mucho más sencillo de aprender.

De esta manera existirían 3 tipos de usuarios en SIP:

  • phones: que definirán a los terminales, softphones, y básicamente lo que actualmente conocemos como friends.
  • trunk: que definirán los enlaces a proveedores SIP, es decir, lo que conocemos como peer.
  • services: que serán una mezcla entre trunk y phones permitiendo a Asterisk registrarse como un usuario SIP (un teléfono) en otro sistema y así poder hacer y recibir llamadas.

La pregunta del millón: ¿para qué este cambio de nombres? Básicamente para simplificar la comprensión, y además facilitar la programación para continuar el desarrollo sin tanta “morralla”.

Este parche no será por el momento añadido a Asterisk 1.6.0 porque necesita ser testeado en condiciones, pero nos da una visión de por dónde van los tiros.

15. July 2008

Listado de las 74 aplicaciones de VoIP más conocidas

Aquí teneis un listado de las 74 aplicaciones de VoIP licenciadas como de código abierto más conocidas.

Seguro que la mayoría las conocemos, pero puede que alguna no sepamos de su existencia hasta haberla visto en este listado.

¿Cual no conocías? :D

http://www.voipnow.org/2007/04/74_open_source_.html

13. July 2008

Lo que el usuario de una distribución con Asterisk no vé

A menudo recibo emails donde gente muy preparada y con muchos conocimientos sobre redes e informática buscan ayuda para solucionar algún problema que les ocurre cuando configuran su sistema Trixbox, Elastix, AsteriskNow, y no funciona como ellos esperaban.

Es entonces cuando la gente que responde a estos emails le preguntan acerca de paquetes SIP, parámetros de configuración, o le sugieren determinados valores a ciertos parámetros que no han escuchado ni visto en su vida. Ocurre que tras estas respuestas el usuario se vé en la necesidad de tener que entrar a mano a una consola en modo texto y editar un archivo o ejecutar un comando, algo que, en el 80% de los usuarios que utilizan este tipo de distribuciones para montar su sistema de comunicaciones, no saben cómo se hace o directamente jamás lo han hecho.

Los usuarios de distribuciones controladas por interfaces web suelen olvidar (o no quieren reconocer) que toda interfaz web es creada con un objetivo: simplificar la configuración y gestión de una aplicación (en este caso, de Asterisk), esta simplificación tiene un efecto muy negativo, impide realizar tareas que no han sido previamente preparadas por los creadores de dicho interfaz o incluso han sido desechadas por su complejidad y poco útil para un público general, se dice entonces que esa distribución está “a merced” de lo que permita hacer el interfaz web. En muchos casos he visto cómo gente con grandes conocimientos de redes, Asterisk y voip, han dicho que XXXXX no se puede hacer, simplemente porque el interfaz web no lo permite. Esto, además de no dejar en buen lugar a Asterisk, demuestra una falsa limitación que el comercial, conociendo las características de una aplicación tan versatil como es Asterisk, sí que anunció que era posible a su cliente.

Alguna que otra vez me he encontrado con mensajes de usuarios con Trixbox o Elastix que no podían hacer transferencias, o que cuando intentaban llamar a una extensión esta no se encontraba disponible pese a haberse configurado corréctamente. La solución de estos problemas y otros miles, se podría solucionar de una forma muy sencilla mirando la configuración y comprobando que estos parámetros son correctos, o simplemente comprobando que el dialplan hace lo que se supone que debería hacer, pero para hacer un interfaz web que ayude a simplificar la configuración se requieren de macros, includes y variables extras que ayuden a convertir lo que el usuario quiere hacer a través de una web, a un código medianamente funcional y limitado a lo que se pueda hacer.

Esa limitación no existe en un usuario final que únicamente quiere configurar 5 extensiones y 2 líneas analógicas que atiendan a una cola, pero en usuarios “avanzados” y “profesionales” esa limitación, no únicamente limita su trabajo, si no que le impide “controlar” el verdadero funcionamiento que está realizando su sistema Asterisk.

Cuando un usuario se encuentra con algún problema, puede ser debido a un fallo de configuración -y de conocimiento- como colocar “inband” en lugar de “outofband” en alguna pestaña del interfaz web porque desconoce para qué sirve estos parámetros, pero el usuario avanzado, que sí sabe lo que significan, debe poder entrar en Asterisk y ver en la consola -que para eso está- qué es exáctamente lo que Asterisk está ejecutando, para poder encontrar el error, y el simple hecho de utilizar un interfaz web que, para simplificar la configuración, utilice macros, includes y variables, se hace inviable su lectura por la cantidad de código que escribe un FreePBX para hacer una simple llamada.

En muchos casos, y después de comentar este problema con compañeros que trabajan con distribuciones de este tipo, suelen contestar que sus clientes necesitan de un interfaz web para poder añadir extensiones o cambiar el dialplan, es entonces cuando se llega al kit de la cuestión, -¿qué usuario final cambia su dialplan?- ¿es la responsabilidad de un usuario final poder cambiar un dialplan? ¿qué usuario final sabe para qué sirve cada valor de cada pestaña de cada campo necesario para añadir una extensión o crear una cola? Lo único que el usuario final sabe es que quiere añadir una extensión y no quiere prestar atención a los distintos parámetros que conlleva esta decisión, es por eso por lo que hay dos posibilidades:

- Hacerle un interfaz web a medida que le permita entrar y añadir lo que el usuario avanzado quiera que añada. (para eso hay diferentes maneras: AJAM, AMI, PHP, etc…)

- Que llame por teléfono y diga que quiere añadir una extensión, en cuyo caso será el usuario avanzado el que lo haga y sea responsable de estos cambios. (quizá no sea lo más agradable, pero el usuario final lo agradecerá y el usuario avanzado controlará que todo sigue funcionando corréctamente).

IMHO.

P.D.: Esto por supuesto es a nivel general, siempre hay excepciones.

09. July 2008

Dialectic: Mejorando el acceso a la VoIP con Mac

Acabo de conocer una aplicación que se define como “una versatil herramienta para hacer llamadas que unifica las aplicaciones para Mac, datos y teléfonos (tanto móviles, fijos como VoIP)”.

Dialectic es una aplicación que permite llamar, a través de cualquier aplicación que funcione en Mac, a cualquier número.

Tiene soporte para conectar el Mac a terminales IP, a softphones como Eyebeam, Gizmo, Skype, y por supuesto directamente a Asterisk permitiéndonos no únicamente hacer llamadas haciendo clic en un número de teléfono que aparezca en la Agenda, si no programar cuando llamar, qué hacer cuando recibamos una llamada en el terminal o en el softphone que tengamos instalado y que esté soportado en este listado de plugins.

  • Bluetooth mobile phones
  • Landlines
  • Asterisk
  • BroadVoice
  • CallVantage
  • Cisco IP Phones
  • FRITZ!Box
  • Ovolab Phlink
  • Parliant PhoneValet
  • Speakeasy.net
  • ViaTalk
  • Vonage
  • VoIP Softphones: CounterPath softphones, Gizmo, iSoftPhone, JackenIAX, LoudHush, ohphoneX, Skype, WengoPhone, …

Además de hacer llamadas, permite hacer muchas cosas muy interesantes (grabar conversaciones, añadir prefijos, y muchas cosas más, e incluso hacer y recibir llamadas utilizando nuestro móvil conectado por bluetooth,…)

El sistema tiene muy buena pinta y habría que verlo más detenidamente, pero para una oficina donde trabajen con el sistema de Apple y utilicen VoIP, seguro que les encanta.

La aplicación cuesta $25 (unos 16€) aunque tiene una demo de 14 días que podeis descargar.

Más información: http://www.jonn8.com/dialectic/

10. June 2008

Asterisk 1.6 en sistemas clusters

Cuando adelantamos las novedades que incorporaría Asterisk 1.6, comentamos que los desarrolladores se habían propuesto varios objetivos entre los que se encontraban:

- Un menor consumo de memoria

- Capacidad para funcionar en entornos realmente grandes

Cualquiera que haya seguido el desarrollo de las versiones betas que hay actualmente y que compruebe el consumo de memoria de Asterisk 1.2, Asterisk 1.4 y las betas de Asterisk 1.6, podría descubrir que Asterisk 1.2 únicamente cargaba en memoria los módulos que utiliza mientras que Asterisk 1.4 los carga todos aunque solo habilita aquellos que utiliza (una prueba de ello podeis tenerla si provocais un crash en algún módulo y con el servicio Asterisk activado, reescribis el módulo en el directorio /usr/lib/asterisk/modules, vereis como de inmediato, el sistema completo explota sin haber cargado a mano el nuevo módulo). Asterisk 1.6 vuelve a sus orígenes en cuanto a la carga de módulos y únicamente consume memoria por los módulos que realmente se utilizan (algo que era evidentemente necesario).

Ahora parece que se están centrando en mejorar la integración de Asterisk en sistemas clusterizados (varios sistemas que virtualmente se comportan como uno solo multiplicando sus capacidades de procesador, memoria, espacio, y un largo etcétera.)

Concretamente, uno de los primeros objetivos en este sentido es el de propagar la información de los usuarios (libres, ocupados, hablando, no disponible, etc.) entre los distintos servidores que forman el cluster.

Para ello, el equipo de desarrolladores de Asterisk están utilizando un framework especial para programar en este tipo de infraestructuras llamada OpenAIS y así han creado un nuevo módulo llamado res_ais que permite controlar el estado de una extensión situada en otro Asterisk perteneciente a uno de los nodos del cluster.

El siguiente paso será propagar esta información a través de Asterisk conectados entre sí por el protocolo DUNDi.

Más información: http://lists.digium.com/pipermail/asterisk-commits/2008-June/023400.html

07. June 2008

DialogPallete: Un programador visual de dialplan libre

Bytecoders nos presenta una aplicación bastante curiosa que nos permite programar un dialplan para Asterisk de forma completamente visual como el conocido VisualDialplan pero a diferencia de este último, su código fuente se distribuye bajo licencia GPL: DialogPallete.

Como podeis ver, este tipo de aplicaciones son muy espectaculares a la hora de hacer un dialplan sencillo, aunque dudo bastante de la potencia ante algunas configuraciones más complicadas, no obstante su función la cumple: facilitar la programación y edición de un dialplan a manos de usuarios sin conocimientos avanzados.

DialogPallete funciona bajo Linux y ha sido desarrollado en C++ y Python junto con las librerías QT3.

En el foro de DialogPallete podeis encontrar ayuda sobre cómo instalarlo y configurarlo aunque, como bien indica Bytecoders, el desarrollo parece haber sido suspendido ya que la última versión salió hace más de 2 años.

La verdad es que me llama la atención la similitud de VisualDialplan y DialogPallete, aunque tras echar un rápido vistazo descubro que los autores no son los mismos y de hecho están en diferentes países por lo que puede ser simplemente casualidad el parecido entre estas dos aplicaciones y parece que VisualDialplan lleva la delantera al ser un proyecto activo y con continuas actualizaciones (la última versión soporta Asterisk 1.4) algo muy importante hoy día es mantener este tipo de proyectos bien actualizados. Pero encontrar una versión libre puede hacer renacer este tipo de aplicaciones tanto por el autor como por cualquier otro usuario interesado en continuar el proyecto, esto ratifica el hecho de que el software libre ayuda a evolucionar y a mejorar. :)

Enlace: http://dialogpalette.sourceforge.net/

04. June 2008

Manipulando la voz en Asterisk

En marzo de 2007, escribí un artículo sobre un parche que permitía a Asterisk capturar la voz y distorsionarla lo suficiente para parece que hablaba un “pitufo” o bien un “troll”.

Pues hoy leo que el proyecto ha seguido vivo y han sacado nuevas actualizaciones que permiten modificar el “pitch” (la velocidad de reproducción en tiempo real de la voz) con algunas mejoras interesantes, como la actualización a Asterisk 1.4 y una reducción considerable de la carga de CPU (algo desproporcionada cuando lo probé en aquel momento).

Para probarlo, tan solo hay que ejecutar esto en consola:

# You can also install it through your package manager
cd /usr/src
wget http://www.surina.net/soundtouch/soundtouch-1.3.1.tar.gz
tar xvzf soundtouch-1.3.1.tar.gz
cd soundtouch-1.3.1/
./configure –prefix=/usr
make && make install
# install libsoundtouch4c
cd /usr/src
wget http://www.lobstertech.com/code/libsoundtouch4c/releases/libsoundtouch4c-0.4.tar.gz
tar -xzvf libsoundtouch4c-0.4.tar.gz
cd libsoundtouch4c-0.4
./configure –prefix=/usr
make && make install
# install the voice changer
cd /usr/src
wget http://www.lobstertech.com/code/voicechanger/releases/voicechanger-0.6.tar.gz
tar -xzvf voicechanger-0.6.tar.gz
cd voicechanger-0.6
make && make install
# load it in to asterisk
make start

Y una vez compilado corréctamente, tan solo añadir una linea como esta que deberás modificar convenientemente para ajustarlo a tu dialplan:

exten=>_XXX,1,VoiceChangeDial(SIP/${EXTEN}|T(30)P(-5.0)D(8:9)H(*))

El resultado no tiene precio. :D

Más información: http://www.lobstertech.com/code/voicechanger/

27. May 2008

Nuevas características estándar en Asterisk 1.6

Pese a que Asterisk 1.4 traía notables ventajas con respecto a la versión 1.2, en Asterisk 1.6 siguen apareciendo nuevas ventajas que harán las delicias de los usuarios, hoy me he enterado de dos muy interesantes:

- Realtime LDAP : Si bien Asterisk 1.4 tenía herramientras y parches para dotar a esta aplicación de soporte LDAP para gestionar los usuarios y contraseñas, parece ser que en Asterisk 1.6 vendrá de serie el soporte para Realtime en LDAP. Este es un sistema de directorios que nos permitirá mantener perfectamente clasificado y ordenado cualquier tipo de datos correspondientes a personas, recursos, empresas, etc, es un directorio especialmente creado para este tipo de información y son muchos los sistemas operativos y sus aplicaciones los que suelen utilizar este tipo de servicio de forma transparente para el usuario.

Actualmente están corrigiendo muchos bugs en el soporte LDAP en Asterisk relativos a este sistema para poder dotar a Asterisk 1.6 de un control integro de usuarios mediante LDAP.

- SIP bajo TCP: Este es otro de los añadidos que traerá Asterisk 1.6 tras 3 años de pruebas (el bug comenzó en 2005) y es sin duda una de las mejoras que, de funcionar corréctamente, podría convertirse en la ‘star features‘ de Asterisk 1.6.

- SIP bajo TLS: Otro de los grandes avances en cuanto a seguridad en el protocolo SIP.

Cierto es que llevamos varios años esperando que estos añadidos se conviertan de una vez por todas en funcionalidades estables, no obstante cabe recordar a todos que Asterisk es una aplicación donde pese a los esfuerzos de muchas empresas que dedican tiempo y recursos en desarrollar y corregir cada una de las partes que forman esta aplicación, y pese a que hay muchísimo dinero moviéndose en torno a Asterisk tanto a nivel de hardware, instalaciones, soluciones personalizadas, y un largo etcétera, también hay que entender que, hay un volumen altísimo de usuarios en comparación con el de desarrolladores por lo que se hace muy dificil coordinar todos estos esfuerzos para conseguir que todos los usuarios estén contentos.

19. May 2008

Proyectos interesantes sobre Asterisk

Luigi Rizzo comenta en la lista Asterisk-Dev algunos proyectos que están llevando a cabo en la Universidad de Pisa (Italia), algunos muy interesantes:

- Hacer que Asterisk arranque como una extensión de Firefox.
El objetivo de de este proyecto no es que sirva como servidor en producción, si no facilitar la tarea de desarrollar interfaces web sin tener que hacer pruebas contra un Asterisk de verdad.

- Soportar multiples fuentes de vídeo y de audio, de manera que cambien durante una conversación.
Precisamente estuve probando este fin de semana la aplicación app_conference con vídeo y con unos resultados bastante satisfactorios en cuanto a que la fuente de vídeo cambia según quien hable. Muy interesante para videoconferencias con varias personas. Aunque no se vea la pantalla partida, es un paso. Pronto escribiré algo más sobre esto.

- Unir el módulo chan_oss (posiblemente con el chan_alsa) en uno único: chan_console.
La ventaja de esto consiste en unificar las ventajas de cada uno de estos módulos y no tener que preocuparnos sobre la plataforma de audio que vamos a utilizar cuando utilicemos la consola para hacer y recibir llamadas.

¿Conoces alguna universidad que ofrezca proyectos de este tipo y no solo instalar y configurar un Asterisk?

Enlace: http://lists.digium.com/pipermail/asterisk-dev/2008-May/032977.html

16. May 2008

Cómo integrar Asterisk con eGroupWare

Una de las mejores alternativas al popular Microsoft Exchange, es sin duda eGroupWare entre otros motivos porque además de ser libre y gratuito (no hay que pagar licencias como el caso del software de Microsoft), se integra perfectamente con todo tipo de software utilizado normalmente en la empresa como el Outlook, Thunderbird, Evolution, Kontact, e incluso permite sincronización con BlackBerrys, PDAs y teléfonos móviles mediante SyncML.

Una de las ventajas de que sea libre (algo que mucha gente parece no entender o no interesar) es que cualquier persona puede desarrollar una aplicación que interactue con este software sin tener que dar explicaciones ni pagar licencias ocultas.

Pues bien, la empresa sevillana Ene Soluciones acaba de publicar un sencillo manual para integrar eGroupWare aplicación con nuestro Asterisk, permitiéndonos ver con nuestro softphone preferido el nombre de la persona que nos llama si previamente hemos introducido los datos de esta persona en la base de datos de eGroupWare con nuestro cliente de correo o desde el interfaz de la aplicación.

Esto, unido a uno de tantos click-to-dial para hacer llamadas desde nuestro cliente de email con nuestro Asterisk, nos permitirá tener al jefe contento y a los clientes aún más.

Enlace al manual para integrar Asterisk con eGroupWare.