Categoría: Noticias

  • Comparación entre el códec H.264 y Theora

    Hace poco, escribí un artículo sobre el IAXClient 2 donde se añadía el soporte de vídeo a esta librería y por extensión, al soporte de vídeo de IAX en Asterisk.
    En estos añadidos nuevos, se encontraban soporte para el códec H.264 y Theora.

    El H.264 es uno de los mejores códecs para emisión/recepción de vídeo. No en vano se utiliza actualmente para videoconferencia con una calidad y velocidad sin precedentes. Tanto en softphones como Eyebeam, Ekiga, etc como en hardphones como el GXV-3000 de GrandStream para hacer videoconferencias con Asterisk, pero…

    ¿Qué clase de códec es el Theora?

    De los creadores de OggVorbis (la versión libre del popular mp3) una fundación de desarrolladores llamada Xiph, nace una versión libre del códec de vídeo de alta calidad llamada Theora.
    Theora se podría decir que es la «alternativa libre» del actual H.264, ya que ambas soportan calidades y consumos de ancho de banda bastante similares. Pueden codificar vídeo con una resolución desde 128×96 hasta 4096×2048 a 30 frames por segundo, no es de extrañar que sean los códecs de vídeo del futuro, tanto para hacer videoconferencia en infraestructuras con muy poco ancho de banda como para emitir películas en alta definición (HD) ya que el ratio de compresión es variable lo que permite cambiar la calidad en función del ancho de banda que dispongamos en este momento.

    ¿Cual de los dos códecs es mejor para vídeo?

    Tras leer algunas comparativas de calidad y velocidad, parece ser que todas llegan a una misma conclusión, en ancho de banda es similar mientras que la calidad de la imagen aún es mejor en el H.264 que en Theora. Pero eso no significa que sea así siempre. Recordemos que el software libre vivo mejora exponencialmente frente al software propietario y estoy convencido que pronto será Theora la que ofrezca mejor calidad y velocidad que el H.264, pero en la actualidad, esto no es así.

    Para ilustrarlo, aquí teneis un ejemplo de una captura enviada en H.264 y una con Theora:

    ¿Que software tiene soporte para Theora?

    Actualmente no hay muchos softphones que lo soporten. Como he comentado antes, los softphones libres como Ekiga o linphone lo soportan y Twinkle lo soportará en breve. Los softphones comerciales como X-Lite o Eyebeam también lo soportarán pronto y es que Theora es bastante «nuevo» y aún tiene que evolucionar y darse a conocer.

    Por supuesto, las aplicaciones de streaming libres soportan este códec GStream, VideoLan, etc…, las comerciales suelen traer este soporte como un añadido o plugin pero poco a poco se irá incorporando de serie a medida que vaya haciéndose más conocido.

    ¿Qué software tiene soporte para H.264?

    Por lo general, cualquier softphone que soporte vídeo trae soporte para H.263 y las más evolucionadas traen soporte para H.264 pero siempre como una evolución del H.263 y del H.263+ aunque este códec tenga un sistema completamente distinto en cuanto a procesamiento, finalmente desbancará al H.263/+ y el H.264 se convertirá finalmente en un estandar en todas las aplicaciones de vídeo streaming.

    Enlaces de Interés:
    Información sobre el códec H.264.
    Información sobre el códec Theora.

  • Entrevista a los desarrolladores de Ekiga

    Ekiga es uno de los softphones más utilizados bajo Linux junto con Twinkle y la revista FreeSoftwareMagazine ha entrevistado a los principales desarrolladores de esta aplicación y en ella se descubren algunas curiosidades bastante interesantes.

    Podeis ver la entrevista aquí:
    http://www.freesoftwaremagazine.com/columns/interview_with_ekiga_developers

  • Todo preparado para la SIP MasterClass de Barcelona

    Todo está listo para que comience el lunes el mayor curso de SIP que se hará en España impartido por Olle Johansson (principal desarrollador del Chan_sip de Asterisk), y Daniel-Constantin Mierla (Co-fundador del proyecto OpenSER) que junto a Sergio Serrano como traductor en caso de necesidad, harán las delicias de aquellos que quieren aprender las posibilidades de OpenSER y Asterisk en entornos especialmente para operadores y proveedores de servicios IP.

    El curso comenzará el próximo lunes 5 de Mayo en Barcelona y ya están haciéndose todos los preparativos para semejante convocatoria que seguro que no dejará a nadie en su sitio como siempre que viene Olle Johansson a España.

    De momento, ya conozco a varios que están preparando algunas sorpresas con estos artistas de la VoIP y es que lo de la Asterisk night Party de la pasada Bootcamp ha creado precedente.

    ¿tendremos una OpenSER night Party en esta ocasión? 🙂

    Enlace: http://www.avanzada7.com/es/SIP_Masterclass

  • El móvil: siguiente objetivo para las operadoras IP

    Mientras que todos los que nos dedicamos a debatir, hablar, enseñar y por supuesto aprender qué es la VoIP, el uso de los protocolos, herramientas, interfaces, etc… hay empresas que prefieren ir diréctamente al siguiente paso y así adelantarse a lo que hoy día es una realidad bastante consolidada como es la VoIP.

    – Hoy me he enterado que la empresa Ono podría llegar a comprar Xfera (Yoigo) como al parecer tiene pensado hacer en Francia, ¿el motivo? que Ono quiere tener una infraestructura propia de telefonía móvil y no una virtual que no le está dando el resultado deseado. Por supuesto, el gran valor añadido de Yoigo es la capacidad de conectarse a Internet y disfrutar de una tarifa plana de conexión.

    Google lanza Android, un sistema operativo libre para móviles con una API que permite a cualquier programador hacer aplicaciones para móviles lo que adelantaría bastante el paso de utilizar VoIP en estos terminales.

    – Skype, que lanzó su nefasto móvil que hacía uso de la red Skype de una forma bastante «chapucera», acaba de lanzar su cliente skype para muchos modelos de móviles.

    – Nokia ha dado el verdadero primer paso lanzando un cliente SIP en los modelos que soportan Wifi, y las operadoras, que no están por la labor de que sus clientes se sienten agusto con lo que ofrece su móvil, se dedican a eliminar esta aplicación para que se utilice la red gsm para hacer llamadas. Menos mal que hay alternativas opensource.

    – Otras empresas como Fring o Truphone directamente se lanzan más allá permitiendo llamadas e incluso conexión con redes de mensajería instantanea.

    – Incluso para un móvil tan «restrictivo de programar» como el iPhone de Apple, ya han lanzado clientes SIP que aprovechan cualquier resquicio de ingenio para poder hacer llamadas mediante VoIP.

    En resumen, está claro que la VoIP suplantará algún día a la red GSM, bien mediante redes 3G, HDSPA, o Wimax, para hacer llamadas, pero ¿estarán dispuestas las operadoras a que los usuarios den el salto sin que ellas vean un euro?

  • Cómo ejecutar comandos de Asterisk desde la consola

    A veces es necesario ejecutar comandos de Asterisk y sacar el resultado por la consola para luego poder procesarlo con un script y poder obtener información útil.

    La manera sencilla es mediante la ejecución de Asterisk con la línea:

    asterisk -rx 'comando'

    Cuando ejecutamos esta línea, lo que realmente ocurre es que nos conectamos a Asterisk, ejecutamos el comando y nos salimos obteniendo por la consola de Linux el volcado de lo que queremos conocer.

    Esta es, sin duda una de las mejores maneras cuando queremos obtener el resultado de un comando de forma puntual, pero para «monitorizar» un Asterisk, hay quien crea scripts que utilizan esta forma varias veces cada pocos segundos, lo que provoca que cuando alguien se conecta a la consola de forma natural, se encuentre con estos mensajes molestos:

    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected
    -- Remote UNIX connection
    -- Remote UNIX connection disconnected

    En cada conexión podemos obtener los usuarios SIP registrados, el número de llamadas actuales, los canales ZAP utilizados, etc, pero claro, este método hace impracticable el hecho de utilizar la consola de Asterisk.

    La manera interesante, es realizarlo mediante el AMI (manager), es decir, hacer una aplicación que se conecte al puerto del Manager (5038 por defecto), se autentifique correctamente y envíe los comandos necesarios para obtener los resultados necesarios de una manera transparente para el Asterisk y sin que los usuarios conectados vean el molesto mensaje.

    Para evitar esto, Tzafrir Cohen de Xorcom acaba de publicar un parche para evitar estos mensajes y poder ejecutar comandos sin necesidad de que nadie llegue a molestarse.
    Este parche está en la versión Trunk y lo podeis descargar de aquí:
    http://svn.digium.com/view/asterisk/trunk/contrib/scripts/astcli

    Yo por mi parte, tengo un programita en perl muy sencillo que se conecta al manager y con el que obtengo todos los datos necesarios sin tener que molestar a nadie y bastante rápido.

    Pese a ser una tontería de script, aquí os lo pongo por si a alguien le interesa:
    http://www.sinologic.net/proyectos/asterisk-cmd

  • Asterisk-ES para profesionales en LinkedIn

    El viernes se creó el grupo Asterisk-ES en la red social LinkedIn.com con el objeto de permitir el contacto entre los profesionales de Asterisk en habla hispana/castellana/española y de esta manera unir más si cabe a las empresas que trabajan con Asterisk.

    Para pertenecer a este grupo, primero hay que tener una cuenta en LinkedIn, y una vez creada la cuenta, hay que entrar en el siguiente enlace:

    http://www.linkedin.com/groupInvitation?groupID=90000&sharedKey=2B4E334E77FC

    Hace unos meses, Digium empezó a informar a aquellos que han obtenido la certificación dCap que se había creado un grupo en LinkedIn exclusivamente para los titulados llamado Grupo dCap y que contarían con el logotipo asociado a su cuenta.

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

  • 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» 😛

    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. 🙂

  • Elastix 1.0 por fín estable!

    Bueno, pese a tenerlo instalado bastantes personas, ahora resulta que acaba de salir la versión 1.0 estable de Elastix.

    Parece que de momento no lo han publicado en la página web, aunque en la lista de Asterisk-ES ya se han hecho eco.

    Los cambios con respecto a la versión candidata anterior (RC2) son:

    Version 1.0 Stable (Apr. 14 2008)
    – Module Extension Batch changed to support more parameters of VoiceMail.

    – Module GroupPermissions: Do not permit change the permissions of modules administratives to administrator group.
    – In elastix.spec maintenaince, lines of create folder faxvisor comments, this folder is in source elastix.
    – New language Catalan.

    – Update module Hardware Detection, now zapata.conf is more complete.

    – Add zapata.conf custom by elastix, in rpm freePBX.
    – Maintenaice of rpm elastix
    -a2billing, name format changed. And validation directory /var/lib/asterisk/sounds/en/ exists.
    – Updating rhino packages to 2.2.5.3 version.

    Podeis descargarlo desde aquí:
    http://downloads.sourceforge.net/elastix/Elastix-1.0-Stable-10abr2008.iso

  • Cómo crear IVR complicados con Asterisk (y con vídeo 3G)

    En las empresas pequeñas no suele ser lo habitual tener un IVR, aunque en empresas medianas o grandes es recomendable e incluso muy necesario disponer de un sistema que permita al llamante seleccionar el departamento, la persona o incluso acceder a información personal a través de lo que se llama «IVR» aunque comúnmente también se denomina «menú». IVR (Interactive Voice Response) en español (Respuesta de voz interactiva).

    Asterisk, al disponer de una programación del dialplan totalmente personalizable gracias a la infinidad de métodos disponibles para gestionar una llamada, dispone de un potencial asombroso para crear menús tan sencillo o complicados como uno quiera.

    A medida que la empresa va creciendo o dispone de más servicios de cara al cliente, va aumentando el tamaño del menú de entrada de su sistema, así por ejemplo todos conocemos los IVR de las operadoras de telecomunicaciones que interactúan con la voz (ni siquiera es necesario pulsar un dígito) y nos llevan a diferentes menús según la opción elegida.

    Cuando programamos en el ‘extensions.conf’ un IVR por lo general suele ser sencillo, ya que más de tres submenús empieza a parecer bastante tedioso hacer modificaciones y si tenemos que añadir una opción al segundo submenú con otro menú incluida las locuciones correspondientes, puede llegar a convertirse en todo un desafío.

    A medida que el menú en el dialplan se va complicando, uno empieza a ver con buenos ojos algo que escuchó sobre el VoiceXML que permitía programar menús IVR de una forma bastante más sencilla y segura.

    El VoiceXML no únicamente sirve para gestionar menús, también sirve para conectar a un TextToSpeech y a un ASR de manera que pueda hablar y escuchar a la persona que está al otro lado de la línea y poder realizar acciones y comandos en base a lo que diga o haga, pero esto es otro tema del que ya hablaré en otro momento.

    Si además de permitirnos menús más serios, disponemos de un Asterisk con soporte de Videollamada 3G conectado a una línea RDSI (Básica o Primaria), entonces los resultados son altamente espectaculares.

    Podeis ver más demostraciones en:
    http://www.i6net.com/support/video-demos/

    y cómo instalarlo y configurarlo con Asterisk, en:
    http://www.i6net.com/support/install/