Etiqueta: Asterisk

  • 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

  • Primeras imágenes de la Bootcamp de Bilbao

    Mi compañero Tron, acaba de poner en su blog las fotos de la Asterisk Bootcamp que se está celebrando en estos instantes en Bilbao.

    Viendo las fotos, parece ser que este año, todos los sistemas van a ir con Debian.
    La verdad es que el aula, tiene una pinta estupenda. 🙂

    Enlace: http://www.asterisktron.org

  • 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

  • Próxima WHYFLOSS: 8 y 9 de Mayo

    Los próximos días 8 y 9 del mes de Mayo se celebrará la 4ta edición de la WhyFLOSS Conference, con entrada LIBRE y GRATUITA y con CERTIFICADOS DE ASISTENCIA y PONENCIAS DE NEGOCIO y TÉCNICAS orientadas a CIOs, empresas públicas y privadas, emprendedores, estudiantes y profesionales de IT.

    Este evento se celebrará en la Escuela de Informática de la Universidad Politécnica de Madrid, Campus Sur y contará con las siguientes conferencias, seguro que interesan más de una:

    • Open-Cities: El reto de la administración electrónica.
    • VII programa Marco en la UE: Floss Include y Floss Metric.
    • Modelos de negocios utilizando Asterisk.
    • Clústering computacional en el CSIC.
    • La implicación de la Free Information Infraestructure en los estándares abiertos en Europa.
    • Caso de éxito: OpenSolaris en Accenture.
    • ¿Es viable el Software Libre en la indústria? El caso de RedHat y JBoss.
    • Evolución e Influencia del Software Libre en los últimos 10 años.
    • Liferay Enterprise Portal: El proyecto, el producto, la comunidad y cómo extenderla.
    • Openbravo: Las claves del éxito del desarrollo en las aplicaciones en Software Libre.
    • Rocks: Distribución para clusters computacionales.
    • Proyecto PROAIRESIS: Software Libre al servicio de la comunidad educativa.
    • Seguridad en OpenSolaris.
    • DJango: Framework MVC en Python.

    Aunque la entrada es gratuita, se recomienda inscribirse con anterioridad.

    Más información: http://www.whyfloss.com/es/conference/madrid08/

  • 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/

  • Servitux organiza su primer concurso de Asterisk

    Paco Brufal me envía un anuncio sobre un concurso que están organizando en Servitux:

    Quiero informaros que hemos organizado un pequeño concurso sobre
    Asterisk para que participe todo el mundo, contando sus experiencias con
    asterisk, de forma divertida y desenfadada.

    El premio es una camiseta Asterisk diseñada por nosotros mismos, y
    un vale descuento para comprar productos Digium.

    Desde aquí os animo a que participeis pronto ya que el último día es el domingo 28 de Abril.

    Más información: http://www.servitux.es/es/telefonia/concurso.html

  • 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