Etiqueta: Asterisk

  • Transmitiendo archivos por audio en Asterisk

    Como si fuera un Amstrad CPC 64 con su cinta para transmitir datos procedente de una señal de audio, la gente de 5-in-5 están desarrollando un método para transmitir archivos mediante audio a través de Asterisk: Asterisk File Transfer Protocol (A-FTP).

    La pega, como en aquel entonces, es la velocidad. Llegan a transmitir una fotografía de 8kb en apenas 3 minutos y 29 segundos (uauu!!!) XD

    La técnica consiste en convertir un archivo cualquiera en sonidos audibles utilizando para ello los algoritmos de CSound. Una vez obtenido el archivo de sonido, el sistema llama a otro Asterisk encargado de hacer el paso contrario y convertir esos sonidos en un nuevo archivo de datos.

    Muy curioso.. 🙂

    Más información: http://5-in-5.com

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

  • AsteriskColombia publica un set de voces para Colombia

    Mediante un comentario en la web me avisan que la empresa NetSecuritySolution acaba de publicar un conjunto de voces en español para Colombia llamado K-rem. Pese a que comentan que son voces neutras, la verdad es que un poquito sí que se nota que proceden de Colombia, he de decir que suenan bastante bien y el detalle de haberlo publicado para la comunidad Asterisk, lo que es muy de agradecer y desde aquí le damos las gracias por su apoyo a la comunidad de Asterisk.

    Podeis escuchar un ejemplo de estas fantásticas voces en este enlace: ivrrecording

    No obstante, (ahora una crítica constructiva a esta empresa) para poder descargar este conjunto es necesario «registrarse» en la página web de la empresa NetSecuritySolutions lo cual no aconsejo ya que los comerciales tienen la fea costumbre de enviar spam a todo usuario interesado en Asterisk, y entre esta fea costumbre y lo «originales» que pueden llegar a ser los diseñadores webs utilizando el logo de Asterisk que hice hace algún tiempo para Sinologic con la aprobación expresa de Digium para su uso en este blog (como podeis ver en la imagen de abajo) tan solo me queda animar a esta empresa a que cambien de «estrategia comercial» por alguna más original y sobre todo legal.

    Enlace: http://www.netsecuritysolutionsltda.com
    (Descarga directa)

  • 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

  • Asterisk 1.4.21.2 y 1.2.30 Released!

    Empezamos el día con una nueva versión de Asterisk: acaba de ser lanzada 2 nuevas versiones de Asterisk, debido a 2 bugs encontrados en el IAX que han sido gestionados como vulnerabilidades como podeis ver en: AST-2008-010 y AST-2008-011.

    Las nuevas versiones las encontrareis en:
    http://downloads.digium.com/pub/asterisk/

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

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

    (más…)

  • Asterisk y los hoteles: la combinación perfecta

    Uno de los primeros lugares donde pensé que una aplicación como Asterisk sería mucho más que útil es en los hoteles y viendo que en el último hotel al que fuí tenía una siemens de más de 10 años me lo terminó de confirmar ya que están perdiendo una oportunidad de oro.

    Si uno piensa en cómo funciona cualquier hotel, se da cuenta que el número de llamadas es bastante bajo en comparación con el número de teléfonos existentes (por lo general, uno por habitación más los de uso interno) por lo que el número de enlaces y líneas a la PSTN suele ser bajo, consecuentemente el coste de mantenimiento por línea es bastante bajo.

    Según el tipo de hotel y el tipo de clientela que suela tener, muchas llamadas serán al extranjero (los países de origen de los clientes) por lo que, en este caso, la VoIP juega un papel ventajoso frente a llamadas a través de la línea convencional permitiéndonos utilizar cuentas SIP con unas tarifas realmente bajas a países y ahorrándole al hotel una cantidad considerable de dinero en llamadas.

    Pero hasta ahí, las ventajas de utilizar VoIP en un hotel, se mejoran considerablemente cuando además se utiliza un sistema Asterisk para elaborar servicios básicos o avanzados:

    Servicio despertador: Hoy día todos los hoteles tienen un ordenador que avisa al recepcionista o incluso que llama a la habitación. En algunos casos, la televisión se enciende si el cliente es lo suficientemente avispado como para aprender a programar la alarma en la televisión, pero que te llame un Asterisk automáticamente y te diga la temperatura en la calle, si llueve o hace sol, el horario del desayuno, o cualquier otra cosa… 🙂

    Servicios extras: Un menú IVR para pedir alguna toalla, solicitar el código para acceder a internet o el desayuno en la cama (que ganas de vacaciones)…

    Información sobre la ciudad: Todo lo que desea saber de la ciudad donde se encuentra el hotel, restaurantes, autobuses o estaciones de metro cercanas, últimos eventos culturales, museos, noticias locales, rutas turísticas, etc…

    y seguro que cualquiera que piense se le ocurren más servicios que podría ser interesante para un hotel.

    En resumen, pronto veremos cómo los hoteles empiezan a ofrecer estos servicios adicionales, y llamadas a un precio más económico para el cliente sin perdida de beneficios por llamadas, seguro que entonces más personas utilizarán el teléfono del hotel en lugar de su móvil para hacer llamadas a su país de origen y lo mejor de todo… mucho más económico que una centralita tradicional para tantas extensiones.

    Y como decía una pegatina de Asterisk que leí hace poco… «Estás utilizando Asterisk sin saberlo» 😛

    (más…)

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

  • LibPri 1.4.5 Released!

    Hace un par de días el equipo de desarrollo de Asterisk publicó la versión 1.4.5 de LibPri con un arreglo a una incompatibilidad descubierta cuando se utiliza una tarjeta de primario en una red telefónica que envía el «progress» de una llamada en curso en el canal de voz en lugar de en el canal de datos de manera que, si por algún motivo el usuario destino cuelga la llamada, el origen continúa recibiendo tonos a la espera de que el otro extremo descuelgue.

    Como consecuencia de esta incompatibilidad, muchos usuarios tardan entre 2 y 20 segundos en descubrir que el otro extremo ha colgado la llamada, algo que arregla esta versión de LibPri.

    Pese a que esta versión soluciona esta incompatibilidad, por defecto se encuentra deshabilitado. La próxima versión de Asterisk permitirá activar esta opción en el menú de configuración.