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.