Blog

  • Sigue en directo la KamailioWorld 2018

    Sigue en directo la KamailioWorld 2018

    Como suele ser habitual y gracias a la gente de Pascom, las conferencias magistrales de la KamailioWorld están disponibles en directo a través de la página http://live.pascom.net/

    Que lo disfrutéis. 😀

  • Respondemos a la pregunta: ¿Es legal Google Duplex en España?

    Respondemos a la pregunta: ¿Es legal Google Duplex en España?

    A estas alturas, seguramente ya hayas visto el vídeo de presentación de Google Duplex, un sistema que muestra cómo la inteligencia artificial unido al reconocimiento y generación de voz, les ha permitido crear un asistente que llama por teléfono para encargar una cita o reservar mesa en un restaurante.
    Si no lo has visto aún, aquí tienes el imprescindible vídeo.

    Esto nos hace plantearnos varias cosas ¿es legal utilizar un sistema automático para hacer llamadas sin supervisión humana?

    Primero, hay que decir que la persona que recibe la llamada no sospecha que está hablando con un «no-humano» por lo que, al menos, no reconocería que se está cometiendo una supuesta ilegalidad y todo sería correcto. No obstante, es interesante saber que, aunque cada país tiene sus reglamentaciones, y si bien conozco a personas y empresas que se dedican a programar sistemas de telemarketing automático que desarrollan software que llama a una lista de personas les reproduce una locución y cuelga la llamada, en España ese tipo de prácticas está regulado y prácticamente prohibido.

    (más…)

  • Cómo instalar Asterisk 13 como un profesional

    Cómo instalar Asterisk 13 como un profesional

    Desde que comencé con Sinologic, uno de los objetivos de esta página ha sido utilizarla como «bloc de notas» en la que publicar cosas interesantes que quiero tener «a mano» y de esa manera poder buscarla fácilmente. Por casualidades de la vida, uno de los artículos qué más he utilizado para este objetivo ha sido el que explicaba Cómo instalar Asterisk como lo haría un profesional, de una forma rápida, sencilla y completa, ya que generalmente es por donde empiezo para que personas que están aprendiendo instalen rápidamente su propio Asterisk y se pongan manos a la obra. Me he dado cuenta que la versión anterior estaba bastante desfasada, por lo que he optado por actualizarla para que sea más independiente de la versión. Quizá esta no sea la forma más rápida de instalar un Asterisk, pero casi con seguridad, es una de las más completas.

    Esta pequeña guía paso a paso ha sido probada en varios equipos y distribuciones, pero las versiones de los paquetes pueden cambiar de un día para otro y dejar de funcionar, por lo que si en algún punto ha fallado, da algún error, coméntanoslo por aquí para que corrijamos la guía y pueda seguir ayudando al mayor número de usuarios posible.

    1º.- Instalando todas las dependencias.

    Esta parte es muy importante, ya que en función de las dependencias que instalemos, podremos disponer de más o menos características en Asterisk, por lo que vamos a intentar (aunque tarde un poco más en compilar) aprovechar las herramientas que nos ofrece Asterisk para instalar una versión lo más completa posible.

    yum install git || apt-get install git aptitude

    Una vez instalada esta única herramienta, vamos a utilizarla para descargar el repositorio de Asterisk

    cd /usr/src
    git clone https://github.com/asterisk/asterisk asterisk
    cd asterisk

    Como queremos utilizar la versión LTS, indicaremos que únicamente utilizaremos la versión 13. (los pasos son idénticos en caso de querer otra versión, tan solo hay que indicar el branch –de los disponibles– que queremos utilizar):

    git checkout 13

    Y ahora por fin vamos a empezar a instalar los paquetes que nos abrirán las puertas a las funcionalidades de Asterisk:

    contrib/scripts/install_prereq install
    contrib/scripts/
    get_ilbc_source.sh
    contrib/scripts/
    get_mp3_source.sh

    2º.- Confirmando lo que queremos instalar.

    Lo primero es indicar que queremos tener la posibilidad de utilizar PJSIP. Si aún no has dado el salto, no te preocupes seguirás teniendo chan_sip, pero siempre viene bien tenerlo instalado para cuando quieras empezar a utilizarlo. La herramienta «configure» analiza todo el sistema en busca de librerías instaladas y, en base a eso crea una lista de «características» que pueden ser instaladas o no. También nos permite seleccionar algunas opciones como parámetros.

    ./configure –with-pjproject-bundled
    make menuselect

    Si quieres seleccionar cosas que, por defecto vienen desactivadas (como el codec_opus), entonces puedes ejecutar el siguiente comando y seleccionar las cosas que faltan. Si no, siempre puedes continuar al siguiente punto.

    3º.- Compilando.

    Como hemos instalado todas las dependencias y hemos seleccionado todas las opciones posibles tardará un poco más en compilar, lo que en un procesador Intel i5 puede llevarnos unos 6 minutos.
    Recuerda que la compilación tardará más o menos en función del procesador y de la memoria RAM disponible.

    make && make install

    Como vamos a querer partir con algo funcional, vamos a instalar los archivos de configuración por defecto.
    Nota importante: Si ya tienes archivos de configuración, no ejecutes este comando, ya que posiblemente renombrará los antiguos con la extensión .old.

    make samples

    Y un último comando para que instale los scripts de inicio en el sistema para que arranque cuando se reinicie el servidor:

    make config
    systemctl start asterisk
    systemctl status asterisk

    Y voilá! ya tenemos nuestro Asterisk funcionando…

    # asterisk -rvvvv
     Asterisk GIT-13-13.15.0-rc1-1415-gdfd0529, Copyright (C) 1999 - 2014, Digium, Inc. and others.
     Created by Mark Spencer <markster@digium.com>
     Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
     This is free software, with components licensed under the GNU General Public
     License version 2 and other licenses; you are welcome to redistribute it under
     certain conditions. Type 'core show license' for details.
     =========================================================================
     Connected to Asterisk GIT-13-13.15.0-rc1-1415-gdfd0529 currently running on server-testing (pid = 11994)
    
    

    ¿Y tú? ¿Ya instalas Asterisk como un profesional?

  • Google ofrece por fin su Text-to-Speech de forma oficial para desarrolladores

    Google ofrece por fin su Text-to-Speech de forma oficial para desarrolladores

    Hace algún tiempo descubrimos que, utilizando el servicio de traducción de Google, podíamos utilizar el TTS de Google pasando un texto en una URL y Google nos devolvía un archivo de audio que podíamos reproducir en Asterisk. Era un TTS (Text-To-Speech) muy bueno y, utilizando este sistema, gratuito. Desde entonces Google ha ido cambiando este servicio poco a poco, lo que ha requerido que muchos servicios TTS integrados con distintos software tuvieran que ser modificados cuando dejaba de funcionar. Era una especie de hack que permitía tener un TTS profesional de forma prácticamente gratis. El problema era que no había forma oficial de utilizar el TTS de Google, ni pagando, ni sin pagar. Si te gustaba su TTS, solo podías buscar la última manera de obtener el archivo de audio y confiar en que este sistema se mantuviese estable el mayor tiempo posible.

    Un sistema Text To Speech (TTS), es una aplicación que convierte un texto escrito a audio, permitiendo escuchar cualquier texto: un documento, un email o incluso llamar a un número de teléfono y poder escuchar una información que previamente alguien ha escrito.

    Ocho años después, Google por fin publica de forma oficial en su nube Google Cloud, su servicio de TTS aprovechando la integración con un sistema llamado WaveNet que permite crear audio en bruto partiendo de texto gracias a la tecnología DeepMind de aprendizaje automático, lo que permite crear un audio mucho más realista en un tiempo mínimo (apenas 50ms.). El inconveniente es que esta nueva tecnología por el momento únicamente está disponible en Inglés, así que si queremos utilizar el TTS en español tendremos que utilizar el de toda la vida, aunque al menos ya disponemos de una API para facilitarnos la vida a los que programamos.

    No obstante, y como viene siendo habitual, ahora que Google ofrece esta herramienta para integrarlo con nuestros desarrollos, ya tiene un coste: $4 el primer millón de caracteres, por lo que si escribimos un ejemplo en plan:

    Gracias por llamar a EMPRESA, en este momento no podemos atenderle, nuestro horario de atención al cliente es de lunes a jueves de nueve treinta a diecinueve horas y los viernes de nueve treinta a quince horas, deje su mensaje y su teléfono después de oir la señal y nos pondremos en contacto con usted.

    Que son unos 300 caracteres, nos costaría unos $0,0012.

    Seguramente no parezca un precio excesivo si la idea es grabar ese audio en un archivo y poder reproducirlo tantas veces como deseemos, pero suponiendo que queremos personalizar el audio cada vez que llama una persona, tendríamos que generar ese audio en tiempo real por cada llamada, con lo que el precio seguramente algo mayor.

    Por supuesto, si entrar en el ecosistema de Google y su Google Cloud no te interesa, siempre puedes mirar otros sistemas.

    Aquí tenéis el enlace al servicio de Text-to-Speech de Google: https://cloud.google.com/text-to-speech/

     

  • Plantronics compra Polycom

    Plantronics compra Polycom

    Acaba de darse a conocer el acuerdo en el que Plantronics adquiere las participaciones de Polycom por la cantidad de 2.000 millones de dólares.
    De esta manera, Plantronics pasa a ser un nuevo jugador dentro del conjunto de empresas que se dedican al hardware y herramientas software de comunicación.

    Plantronics es bien conocido mundialmente por sus auriculares, tanto recreativos como para negocios, casi podríamos decir que es una de las marcas de auriculares más punteras y que más se preocupan por la calidad de audio y si bien Polycom anunciaba a principios de año que adquiría Obihai, realmente ha sido una sorpresa esta adquisición que seguro traerá cola.

    En estos momentos ni Polycom ni Plantronics han hecho público dicha adquisición en sus respectivas páginas, pero sin duda esta será una de las adquisiciones del año.

    Más información: https://globenewswire.com/news-release/2018/03/28/1454525/0/en/Plantronics-to-Acquire-Polycom-for-2-billion.html

  • Qué son las llamadas fantasmas y cómo evitarlas

    Qué son las llamadas fantasmas y cómo evitarlas

    Seguramente os ha ocurrido alguna vez que vuestro teléfono IP ha empezado a sonar tras recibir una llamada extraña de algún número como «1000» o «101» o similar, en cualquier momento, a horas en las que vuestro servidor SIP está configurado para no dejar pasar más llamadas… Lo primero que uno piensa es que hay algún fallo de seguridad, algo que no debía estar pasando o incluso peor, si tenéis un teléfono IP en casa, es recibir llamadas a las tantas de la madrugada.
    Éstas llamadas se conocen como: «llamadas fantasma» y son totalmente inofensivas, aunque sí que pueden llegar a ser bastante molestas. Vamos a ver qué son, por qué ocurren y cómo se evitan:

    Qué son las llamadas fantasmas

    Antes de empezar: Muchas empresas de telemarketing hacen llamadas utilizando marcadores predictivos, que hacen llamadas a clientes esperando que éste conteste y una vez descuelgue, pasar la llamada al agente correspondiente. Si no hay ningún agente disponible en el momento, la sensación es idéntica a la de una llamada fantasma y ahí poco podríamos hacer salvo poner ese número en la lista negra o esperar un poco antes de colgar para saber quién nos llama, o apuntarnos a la Lista Robinson para evitar que nos molesten con publicidad pero efectivamente, esto no es una llamada fantasma.

    Para entender qué son las llamadas fantasmas, tenemos que saber que, cuando un ordenador establece una comunicación otro, abre un socket que no es más que un puerto que se comunica con otro.

    Vamos a ver un ejemplo básico: Petición HTTP

    Cuando nos conectamos a una página web desde nuestro navegador, un puerto de nuestro sistema se abre para enviar información sobre la página web que queremos visitar y nos conectamos al puerto 80 o 443 del servidor (de ahí que el router del servidor web tenga configurada una opción para enviar todas las peticiones del puerto 80 y 443 al servidor web de la red). Por nuestra parte, el router ve que, desde nuestro ordenador se abre un puerto (uno aleatorio, alto, sin mucha fanfarria) y lo abre durante el tiempo que dure la conexión. Hay que recordar que en HTTP, cada página, cada gráfico, cada archivo JS o CSS son conexiones separadas e independientes, por lo que, por cada página que enlaza a un archivo Javascript, un CSS y una imagen, tendríamos 4 conexiones:

    En este caso, el navegador es quien decide utilizar un puerto «aleatorio» para comenzar la conexión, es lo que se conoce como «puerto local» y como es interesante mantenerlo abierto hasta que se recibe el archivo, se utiliza un puerto local por cada archivo que se desea obtener. (Nota: Esto es así en HTTP1, en HTTP2 funciona diferente).

    En VoIP, al igual el puerto local es seleccionado como aleatorio por el propio navegador, en SIP el puerto local lo controla el teléfono y como es UDP y no tiene que esperar a recibir una petición para enviar otra, ya que todo el tráfico SIP se puede enviar en la misma conexión, únicamente se utiliza el puerto local definido por el teléfono. Por una razón de estándar, cada dispositivo o software SIP debe utilizar el puerto 5060/UDP, de manera que la conexión se pueda hacer directamente conociendo la IP, de manera que si encontramos un dispositivo con el 5060 abierto, debemos entender que entenderá SIP, por lo que si le enviásemos un paquete SIP con un INVITE a ese dispositivo, en teoría, debería empezar a sonar o redirigirla a donde esté configurado para hacerlo.

    Si nuestro teléfono tiene configurada una cuenta en un operador IP o en un servidor SIP remoto es normal que, de vez en cuando, se intercambien paquetes a fin de mantener la conexión (OPTIONS, REGISTER, etc.) y si, por lo que hemos explicado antes, tiene configurado el puerto SIP local con el 5060, nuestro router también abrirá ese puerto para mantener la conexión.

     

    Como podéis ver, en nuestro router también se abre el puerto 5060 para enviar el paquete a nuestro servidor SIP.
    Ahora bien… como también sabréis, existen numerosos bots que escanean Internet completamente buscando sistemas VoIP vulnerables, por lo que en cuestión de minutos pueden tener una lista de todos los ordenadores con el puerto 5060 abierto. Si encuentran una IP externa con ese puerto, intentan enviar un paquete INVITE para comprobar si es vulnerable…

    Por lo que nuestro teléfono recibirá una llamada. Está claro que es completamente inofensiva, ya que nuestro teléfono no puede procesar la llamada más allá del auricular y si descolgamos no escucharemos nada, ya que el bot no envía audio únicamente señalización, pero es bien molesto.

    Cómo evitar las llamadas fantasma

    Para evitarlas, tenemos la forma más sencilla que es entrar en la configuración de nuestro teléfono y modificar el parámetro SIP LOCAL para cambiar el puerto del 5060 a cualquier otro. Esto cambiaría el puerto con el que saldremos (no al que nos vamos a conectar) y de esa manera el bot seguramente no nos detecte y nos ahorraríamos esa molesta llamada.

    Otra posibilidad es activar la opción que tienen algunos teléfonos para evitar recibir INVITES de otros dispositivos que no sean el servidor SIP al que estamos conectados.

    Sea de la forma que sea, las llamadas fantasmas son tan habituales como la propia Voz sobre IP y por lo tanto evitarla está de nuestra mano.

  • Los bots empiezan a atacar a Asterisk

    Los bots empiezan a atacar a Asterisk

    Internet es una jungla, hay quien quiere poner puertas en medio y quien pone alambradas, pero está claro que por muchos firewalls, antivirus, protecciones y leyes se instalen, siempre hay alguien que consigue meter un troyano, un virus, o algún resquicio legal para que tu estancia en Internet no sea tan placentera como esperabas. Si montas un blog, hay cientos de exploits sobre el software que utilizas como servidor web, otros cientos de exploits para la plataforma que utilizas, decenas de exploits para cada uno de los plugins que has instalado y por si fuera poco, además el servidor incluye otros servicios que también son vulnerables y siempre hay alguien intentando explotarla.

    Si pones un servidor VoIP accesible desde el exterior (por la razón que sea) siempre hay quien intenta aprovecharla, no en vano existen bots especializados en atacar sistemas VoIP que buscan puertos SIP (en el 5060 o donde sea), probar cientos de miles de combinaciones de usuarios/contraseñas y en el caso de que exista alguna cuenta desprotegida con una contraseña sencilla o incluso sin contraseña, empieza un ataque mediante llamadas SIP a números internacionales que pondrán a prueba, no solo el rendimiento del sistema de comunicaciones, si no nuestra capacidad y velocidad para darnos cuenta de que estamos siendo atacados y están haciendo llamadas a través de nuestra infraestructura.

    Siempre he dicho que cada fabricante echará la culpa a los productos de la competencia, pero está claro que independientemente de qué software o hardware utilicemos, si ponemos usuarios y contraseñas estándar, vamos a ser atacados tarde o temprano ocasionándonos un gran dolor de cabeza (en el mejor de los casos). Por esta razón, aunque soy de los que defienden que cada protocolo debería funcionar en su puerto (SIP en el 5060), si es cierto que hay que prestar atención a que cada usuario tenga su contraseña bien difícil de adivinar y que no debemos llevarnos las manos a la cabeza ni preocuparnos cuando veamos que un bot intenta registrarse. Cambiar de puerto solo evita ser encontrado de buenas a primeras, pero los bots hacen escaneo de puertos, por lo que el puerto SIP seguirá siendo encontrado tanto si está en el 5060 como si está en el 65535.

    Resulta que los bots no solo atacan al puerto SIP, si no también buscan sistemas vulnerables y para ello hacen también varias pruebas:

    • Comprueban si el servidor SIP tiene un servicio WEB.
    • Comprueban si el servidor WEB tiene ciertas aplicaciones instaladas.
    • Comprueban si las aplicaciones instaladas tienen una versión vulnerable.
    • En caso afirmativo, usan un exploit para, o bien hacer llamadas desde la aplicación, o bien para abrir una puerta con un usuario nuevo y poder hacer llamadas desde ahí.

    Los ataques son cada vez más sofisticados, y por suerte, si estamos medianamente al día en cuanto a las versiones, la probabilidad de que la aprovechen es mínima, pero siempre hay algún exploit más nuevo que no hemos visto, siempre instalamos más aplicaciones de las que deberíamos (y luego no las borramos) y por esta razón los «sipbots» encuentran huecos donde conseguir un suculento bocado.

    Visualizador de ataques en tiempo real http://community.sicherheitstacho.eu/start/main

    Una versión de Elastix antigua, un A2Billing antiguo, un PHPMyAdmin, un WordPress, un …  cualquier aplicación es susceptible de ser vulnerable y abrir la puerta en un momento dado a un ataque. En Alemania, el vicepresidente de seguridad de Deutsche Telekom avisaba del aumento de ataques al puerto 5038 (puerto generalmente utilizado por el servicio AMI -Manager- de Asterisk) y es que es un servicio que puede ser explotable por fuerza bruta similar al que tendríamos abriendo un puerto Telnet a nuestro servidor. Por supuesto es importantísimo no disponer de cuentas «de pruebas», pero lo que los bots buscan son cuentas «comunes» utilizadas por aplicaciones conocidas, aquellas que para que funcionen, por defecto son «stats» y «statspass» o «a2billing» y «changethepass«, o similares. (you know what I mean)

    Siempre he defendido que no hay que ser un paranoico de la seguridad, eso solo nos lleva a consumir un tiempo precioso en vigilar cuando deberíamos invertirlo en avanzar y mejorar, pero también es cierto que hay que ser conscientes en que la seguridad debe venir de la mano de una serie de hábitos básicos como desinstalar una aplicación si no la vamos a utilizar, siempre contraseñas fuertes y mucho cuidado con «las pruebas» que luego se olvidan que están ahí.

  • Disponibles ya la lista de talleres y conferencias de la KamailioWorld 2018

    Disponibles ya la lista de talleres y conferencias de la KamailioWorld 2018


    Como viene siendo habitual, ya han publicado la lista de talleres y conferencias de la KamailioWorld 2018 que tendrá lugar el próximo 15 y 16 de Mayo en el Fraunhofer Forum de Berlín (Alemania).

    La lista de ponentes la podéis ver aquí: https://www.kamailioworld.com/k06/speakers/
    Al igual que la lista de conferencias y talleres: https://www.kamailioworld.com/k06/schedule/

    Os recordamos que el registro está ya disponible.

     

  • Novedades de la IT-Expo 2018

    Novedades de la IT-Expo 2018

    La pasada semana tuvo lugar en Florida la IT-Expo 2018, uno de los eventos sobre VoIP más conocidos tanto por ser uno de los primeros del año (con lo que muchos fabricantes lo utilizan para mostrar las novedades de su portfolio) como por la cantidad de expositores y asistentes que allí se concentran. Este evento está patrocinado por fabricantes como Digium, Sangoma, VTech/Snom, Grandstream, Yealink y otras empresas por lo que ya da pistas de que es un evento orientado a mostrar y dar a conocer productos VoIP más que otra cosa.

    Por supuesto, allí tuvo lugar también la celebración de la AsteriskWorld (un área especial orientada a Asterisk) donde se impartieron conferencias sobre Asterisk y también tuvo lugar una presentación / curso introductorio de FreeSwitch.

    IT-Expo es mundialmente conocido por los productos que allí se exponen y donde tanto WebRTC como la videovigilancia y las redes siguen teniendo su gran protagonismo. No obstante, vamos a ver algunas de las novedades que se han presentado.

    Digium presentó su nueva gama de teléfonos «Serie A» más económica (el teléfono con el precio más bajo no llega a $60) y con una pinta bastante interesante. Se da un aire a Yealink, también tiene cosas de HTek y de Grandstream, pero no parece que sea un rebranding de ninguno de ellos en particular. Aún es muy pronto para saber más detalles, pero a simple vista es atractivo y para ser un teléfono de Digium, no pinta nada mal. Como curiosidad, el modelo A25 incluye una pantalla para los nombres de las teclas BLF (para los nombres, no para los botones) un detalle que me ha gustado pese a que su precio rondaría los $110. Digium ha publicado la información preliminar de sus nuevos teléfonos que se estima empiecen a comercializar a partir del mes que viene.

     

    Sangoma aprovechó la IT-Expo para presentar su nueva adquisición de la que hicieron gala en el stand, continuar mostrando su gama de teléfonos y de paso, el nuevo módulo de extensión de teclado EXP100 para sus teléfonos que aunque tiene una pinta excelente (muy similar al GXP2020EXT de Grandstream).

    Grandstream por su lado, también presentó un producto de videoconferencia muy interesante: el GVC3210, un sistema de videoconferencia UHD 4K que se conecta a un monitor o televisión por HDMI y, al igual que los Sticks que se usan para ver contenido online (Chromecast, Amazon Fire, etc.) éste te permite hacer videoconferencia con otros dispositivos SIP sin ocupar espacio en la mesa y con un sonido HD.

    Además de estos y muchos otros fabricantes y novedades, muchos amigos y conocidos que allí estuvieron junto al resto de empresas, exponiendo, participando, pero sobre todo dando a conocer que la VoIP sigue en auge más que nunca: desarrolladores y profesionales de Asterisk, Issabel, Kamailio, FreeSwitch,… 😉

  • Skype tendrá que reescribirse completamente para solucionar un bug

    Skype tendrá que reescribirse completamente para solucionar un bug

    Un bug, que se encuentra en el core de la aplicación y que permite controlar remotamente el equipo de quien ejecuta el cliente parece ser el motivo por el que Microsoft está reescribiendo completamente dicho cliente de VoIP.

    El investigador de seguridad Stefan Kanthak encontró que el módulo de instalación de actualizaciones es vulnerable a la técnica de DLL hijacking que permite a un atacante ejecutar código malicioso en lugar de la librería correcta. Un atacante podría descargar una librería DLL en un directorio accesible por el usuario y renombrarla en una DLL que exista y que pueda ser utilizada por un usuario del sistema.

    El bug que fue encontrado el pasado mes de septiembre supondrá, no solo un parche ni una revisión de código si no una completa re-escritura del core del programa, por lo que, aunque no tenemos noticias sobre cuando podría salir la nueva versión, no esperamos que sea pronto ya que escribir una aplicación como Skype desde cero.

    Más información: http://www.zdnet.com/article/skype-cannot-fix-security-bug-without-a-massive-code-rewrite/