Etiqueta: VoIP

  • Dónde está el interés en los forks

    Fork significa «horquilla» y en software se suele referir a un desarrollo alternativo al desarrollo oficial.

    De esta manera, en Asterisk aparecieron varios forks del que el más conocido es el OpenBPX que pasó a llamarse Callweaver y apareció por un problema con las licencias y desacuerdos con la clausula referente al puesto de «dictador benevolente» que realiza Digium en Asterisk.

    Como resultado, aparecen aplicaciones basadas en el mismo software y que, en un principio no tienen muchas diferencias, pero con el tiempo y bastante esfuerzo se empiezan a hacer un hueco interesante.

    Cuando OpenSER pasó a llamarse Kamailio, se creó un fork de OpenSER llamado OpenSIPS, pero generalmente cuando ocurren estas cosas suelen haber motivos llamativos por el que hacer un fork de una aplicación (cambios de licencias, una orientación equivocada, o una mala gestión por parte de los desarrolladores actuales de la aplicación, entre otros…) pero de la misma manera que CallWeaver es un proyecto completamente parado por falta de apoyos, recursos y público, OpenSIPS no dice exáctamente el motivo por el que se separa (aunque lo suponemos por algunos comentarios) pero un fork de este tipo, sobre una aplicación libre, y con una comunidad activa como puede ser la comunidad de OpenSER (ahora Kamailio) es en mi opinión un movimiento erroneo, ya que, en lugar de apoyar un proyecto grande, para convertirlo en «aun más grande», pasan a separarse y reducir la velocidad de desarrollo.

    Pese a todo, han lanzado la versión 1.4.0 de OpenSER OpenSIPS, pero con un gran número de desarrolladores apoyando la rama oficial: Kamailio.

    ¿A quien beneficia estos movimientos?

    A la competencia. 🙁

    Kamailio seguirá siendo la rama oficial de lo que un día se llamó OpenSER y veremos el camino que toma OpenSIPS, si es más humo que otra cosa, o bien toman fuerza y nos sorprende.

  • Digium podría salir a bolsa muy pronto

    Eso es lo que se desprende de un estudio realizado por la empresa iLocus.

    Según esta empresa, la popularidad de Digium, la obtención de fondos de capital riesgo, así como los éxitos alcanzados por la aplicación Asterisk, y las diversas compras de empresas relacionadas como Switchvox, podrían ser los pasos previos a convertirse en la siguiente IPO (Initial Public Offering) de la VoIP.

    Uno de los factores más llamativos de este anuncio, es relativa a la Comunidad Asterisk que según comentan es la más influyente en el mundo de la VoIP.

    Enlace: http://www.ilocus.com/2008/07/the_next_big_ipo_in_voip.html

  • Cómo configurar un fax virtual T38 en Asterisk

    Partiendo que no lo he probado aún (a ver si durante estas necesarias vacaciones puedo dedicarle un ratito), he visto un artículo muy interesante sobre el T38modem, una especie de IAXmodem pero con soporte para enviar faxes mediante T38 con Asterisk.

    Asterisk soporta T38 en modo passthrough en SIP, esto es, lo deja pasar, pero no iniciar ni acabar una llamada.

    Justamente, el T38modem se basa en la misma filosofía que el IAXmodem por lo que sería posible disponer de esta ventaja tal y como comentan utilizando Hylafax como servidor de faxes de la misma manera que podríamos tenerlo con el IAXmodem pero con T38 en lugar de T30. Suena bien, ¿verdad? 😀

    Vamos a ver cómo se hace:

    cd ~
    cvs -z9 -d :pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323 co ptlib_unix
    cvs -z9 -d :pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323 co -D «5/21/2007 23:59:59» opal
    cvs -z9 -d :pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323 co t38modem

    Con esto habremos descargado las librerías y la aplicación t38modem.
    Ahora vamos a compilar:

    cd ~/pwlib
    ./configure
    make
    sudo make install

    cd ~/opal
    ./configure
    make
    sudo make install
    sudo ldconfig

    cd ~/t38modem
    make USE_OPAL=1 USE_UNIX98_PTY=1 opt
    make USE_OPAL=1 USE_UNIX98_PTY=1 install

    Vamos a probar que realmente se ha instalado y funciona…

    /usr/local/bin/t38modem -tt -o /var/log/t38modem.log –no-h323 -u T38modem –sip-listen udp\$127.0.0.1:6060 –sip-redundancy 3 –ptty +/dev/ttyT38-1,+/dev/ttyT38-2,+/dev/ttyT38-3 –route «modem:.*=sip:<dn>@127.0.0.1» –route «sip:.*=modem:<dn>»

    Ahora vamos a preparar la configuración para 3 módems, para lo que supondremos que hemos instalado previamente el servidor Hylafax como indica Julian en su web y continuaremos:

    cp ~/t38modem/HylaFAX/config.ttyx /var/spool/hylafax/etc/config.ttyT38-1
    ln -s /var/spool/hylafax/etc/config.ttyT38-1 /var/spool/hylafax/etc/config.ttyT38-2
    ln -s /var/spool/hylafax/etc/config.ttyT38-1 /var/spool/hylafax/etc/config.ttyT38-3

    Como en el IAXmodem, vamos a modificar el archivo inittab para que esté siempre activa esta aplicación:

    echo «t1:2345:respawn:/usr/sbin/faxgetty ttyT38-1» >> /etc/inittab
    echo «t2:2345:respawn:/usr/sbin/faxgetty ttyT38-2» >> /etc/inittab
    echo «t3:2345:respawn:/usr/sbin/faxgetty ttyT38-3» >> /etc/inittab
    kill -HUP 1

    Reiniciamos el servidor Hylafax:

    /etc/init.d/hylafax restart

    Y chequeamos que todo está funcionando corréctamente:

    cat /var/spool/hylafax/status/ttyT38-1

    Lo que nos debería mostrar un mensaje como este: Running and idle

    Ahora vamos a ver cómo conectamos el T38modem a Asterisk, para lo que crearemos un usuario SIP propio en /etc/asterisk/sip.conf

    [T38modem]
    type=friend
    host=127.0.0.1
    permit=127.0.0.1
    context=outgoing
    port=6060
    allow=all
    canreinvite=no

    y en este mismo archivo, en el contexto [general]:

    t38pt_udptl=yes

    Para enviar faxes, tan solo hay que utilizar algún cliente Hylafax y será el usuario T38modem el que se encargue de hacer la llamada mediante T38 por SIP. 🙂
    Para recibir faxes, como siempre, enviando el fax entrante a SIP/${EXTEN}@T38modem.

    Si a alguien le funciona, se agradece un comentario.
    Si teneis problemas, lo que he dicho antes… a pelearse y googlear un poco. 😛

    Enlace: http://voip-info.org/wiki/view/T38modem+configuration+with+Asterisk

  • A por la estandarización de Asterisk

    Cada empresa que instala y configura Asterisk dispone de alguien con conocimientos suficientes para hacer esta labor, algunos tienen más conocimientos y otros no tantos pero en el fondo, cada uno cuenta con dos puntos importantes: capacidad de aprender y un objetivo a cumplir, donde este será instalar un sistema, instalar Asterisk, configurar los dispositivos, tarjetas, líneas, etc, y configurar Asterisk como lo necesite su empresa o su cliente.

    Cuando ocurre algún inconveniente o un comportamiento no esperado se suele buscar ayuda bien en la lectura de numerosas webs, blogs, listas, foros, etc… o bien diréctamente a cualquiera que pueda ayudar.
    Es aquí donde empiezan los problemas iniciales. Cada uno ha aprendido por su cuenta, buscando, encontrando, leyendo y preguntando, de ahí se sacan conclusiones propias y uno hace lo que buenamente sepa o pueda.

    De la misma manera que el software libre da libertad de escoger cómo, cuándo, dónde y porqué, configurar Asterisk también da bastante libertad y un comportamiento puede realizarse de varias maneras y todas válidas (mejores o peores) pero el desconocimiento o una falta de metodología adecuada suelen acarrear inconvenientes, no únicamente por lo que hayamos hecho o dejado de hacer, si no a la hora de preguntar y esperar una respuesta. Cada persona tiene su técnica, sus trucos y consejos que hacen que, en teoría, una configuración que se comporte igual a otra, sean diferentes y dichas diferencias pueden sorprendernos con comportamientos no deseados.

    Concretamente, el confiar en que no definiendo un parámetro en algún archivo de configuración, el comportamiento será correcto, no se cumple en Asterisk (básicamente porque el comportamiento habitual de los sistemas de comunicaciones en España es bastante diferente al de EEUU) y muchas personas se dan cuenta que el hecho de poner un parámetro resuelve todos sus problemas.

    Por este motivo, el equipo de desarrolladores de Asterisk tiene muy mal acostumbrado a los usuarios que les permiten «omitir» ciertos valores en determinados parámetros sin recibir ni un triste mensaje de aviso o error, algo que para los ojos de la persona que desconoce la importancia de este parámetro, representaría la diferencia entre acabar felizmente y pasarse una semana leyendo listas de correos y foros.

    Por poner un ejemplo, al definir un usuario SIP en el archivo ‘sip.conf’, el parámetro ‘host’ es imprescindible y sin ella, simplemente no podremos registrarnos con ese usuario, no obstante, si nos olvidamos de definirlo, Asterisk ni se inmuta, no dice nada, lo ve normal y no se queja. ¿Resultado? algo tan sencillo como definir un usuario SIP, se puede llegar a convertir en toda una tortura para la persona que no caiga en este detalle.

    En la configuración del extensions.conf, la cosa se complica, ya que además, no solo hay que conocer qué hay detrás de una llamada entre una extensión y otra, si no que además debemos escribirlo a sabiendas que el jefe, cliente o quien vaya a utilizar el sistema, seguro que va a querer cambiar el comportamiento de esta, de manera que todo lo que hagamos debe ser planteado de forma que sea fácil y rápidamente modificable y no nos suponga empezar desde cero.

    Fallos tan garrafales como comunes como poner un Answer() antes del Dial(..), hacen que el sistema no se comporte como esperemos y eso puede provocar grandes pérdidas de tiempo que para una empresa, se convierte en dinero.

  • Adiós OpenSer, Hola Kamailio!

    Por la web de Saúl me entero de una noticia sorprendente: el proyecto OpenSER cambia de nombre a Kamailio.

    Como suele suceder en estos casos en los que un proyecto conocido cambia de nombre, es para evitar problemas con marcas registradas y por lo general, pertenecientes a empresas, por lo que además de poder encontrar la información pertinente en la conocida web OpenSER.org, la página web oficial se trasladará a Kamailio.org (actualmente es la misma) aunque la anterior seguirá funcionando durante el traslado.

    La palabra Kamailio es una palabra hawaiiana que significa «hablar o conversar«. Por lo visto esta palabra es fácil de recordar y el significado continua en sintonía con el objetivo de la aplicación. 🙂

    Como indica Saúl, el logotipo no lo han cambiado por ahora, pero seguro que pronto nos toparemos con más novedades como suele ocurrir en estos casos, en los que, aprovechando que se cambia el nombre, también se cambian más cosas. Esperemos que el buen ambiente de la comunidad, y el alto nivel de desarrollo continúen como hasta ahora. 🙂

    Más información: http://www.kamailio.org

  • FreeSWITCH 1.0.1 Released!

    Veo que acaban de anunciar la versión 1.0.1 de FreeSWITCH.
    Entre las ventajas que incluye esta versión frente a la versión 1.0, se encuentran:

    • ASR Open Source (mod_pocketsphinx)
    • TTS Open Source (mod_flite)
    • Improved ACL with user matching.
    • Soporte mejorado de SNOM.
      entre otras… 🙂

    Enlace: http://www.freeswitch.org/node/130

  • Softphone SIP para PocketPC y compatible con WM5

    Con el éxito de los PocketPC y móviles-PDA han ido apareciendo últimamente muchos softphones comerciales y alguno que otro gratuito, la mayoría compatibles con SIP y alguno que otro IAX, pero casi todos requieren de Windows Mobile 6. Pues he encontrado uno con una pinta bastante interesante y que funciona con Windows Mobile 5 (WM5).

    SetupVoIP es un softphone SIP bastante curioso y muy, muy simple de configurar y aunque no sea libre, por lo menos, es gratuito (freeware).

    Descargar (mirror 1)
    Descargar (mirror 2)

  • Fedora lanza su servicio de VoIP basada en Asterisk

    Fedora, el grupo de desarrollo Open de RedHat, ha anunciado el lanzamiento de Fedora Talk, un servicio gratuito para aquellos usuarios registrados de Fedora y que permitirá realizar llamadas entre usuarios mediante SIP, así como poder recibir llamadas desde teléfonos (EEUU y UK) para contactar con los usuarios conectados.

    Este servicio está basado íntegramente en Asterisk como indica su página web y esperan crecer y poder ofrecer servicios adicionales.

    El futuro está abierto a interpretaciones 🙂

    Enlace: http://talk.fedoraproject.org/index

  • Como ejecutar aplicaciones durante una llamada

    En la lista de Asterisk-ES a veces se comenta una utilidad que parece que no mucha gente conoce llamada «dynamic features». Oficialmente esta característica forma parte del conjunto de «recursos» que componen Asterisk y que, como su nombre indica, son añadidos dinámicos, lo que realmente significan, recursos que pueden ser accedidos dinámicamente durante una llamada.

    Estos añadidos son por ejemplo, las transferencias, el parking de llamadas y el mapa de aplicaciones (applicationmap), entre otros, y se definen en el archivo features.conf donde vamos a encontrar opciones y una serie de parámetros junto con un código de tecla que debemos pulsar para poder utilizarlos.

    Como ejemplo de estos añadidos encontramos los básicos como:

    • blindxfer (transferencia ciega)
    • atxfer (transferencia atendida)
    • automon (grabación bajo demanda)
    • pickupexten (captura de llamadas que suenan en los terminales del «grupo»)
    • automixmon (grabación bajo demanda y posterior mezcla de las locuciones)

    Hay una parte muy interesante llamada applicationmap que consiste en una serie de combinaciones que podemos modificar para ejecutar aplicaciones básicas de dialplan, durante una conversación.

    Por ejemplo: testfeature => #9,peer,Playback,tt-monkeys

    Este comando permitirá que cuando el llamante como el llamado durante una conversación, pulse las teclas # y 9, se reproduzca la locución tt-monkeys, algo muy gracioso, pero muy interesante en ciertos momentos.

    Existe una limitación para este tipo de comandos, y es que no es recomendable utilizarlo para ejecutar aplicaciones relacionadas con el dialplan directo, es decir: Macro, Goto, Background, WaitExten y algunas de este tipo, pero en cambio sí que se puede ejecutar un «AGI(aplicacion.agi)» 😛

    Para evitar el uso accidental de este tipo de comandos on-line, se hace necesario habilitar dicho comando mediante una variable llamada DYNAMIC_FEATURES justo antes de hacer la llamada: Set(DYNAMIC_FEATURES=testfeature)

    En Asterisk 1.6, nos encontramos algunas novedades bastante interesantes, como:

    • atxferdropcall (permite no perder la llamada en caso de que la transferencia no se realice corréctamente, en cuyo caso volvería a sonar en el usuario que inició la transferencia)
    • atxfernoanswertimeout (permite cambiar el timeout que una llamada transferida esté a la espera antes de volver a la extensión que inició la transferencia)
    • Grupos para habilitar varios applicationmaps sin necesidad de definirlos todos:
      Set(DYNAMIC_FEATURES=grupo)

      donde:
      [grupo]
      testfeature=>#9

    Grandes cosas se pueden llegar a hacer utilizando estas ventajas de Asterisk que son poco conocidas pero muy, muy útiles si se conocen.

    Que lo disfruteis. 😀

  • 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? 😀

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