VoIP en la práctica: ¿Qué puertos hay que abrir en el cortafuegos?

En las comunicaciones de VoIP mediante el protocolo SIP es absolutamente necesario que el cortafuegos o firewall permita el paso de la señalización SIP y de los paquetes de voz RTP. Si el cortafuegos no deja pasar los paquetes de voz, podremos realizar y recibir llamadas, pero tan pronto como descolguemos el teléfono comprobaremos que o bien no podemos hablar o que no escuchamos a nuestro interlocutor, a pesar de que él si nos escucha a nosotros. Si el cortafuegos no deja pasar la señalización SIP entonces simplemente no se establecerá ninguna llamada.

Es necesario por tanto identificar con precisión que puertos necesitan estar abiertos, si son puertos TCP o puertos UDP y si deben estar abiertos en entrada, en salida o en ambos sentidos. Aunque la voz IP con el protocolo SIP tiene aquí un problema importante, afortunadamente SIP utiliza unos puertos conocidos para la señalización. En la siguiente captura realizada con WireShark se muestra la señalización SIP correspondiente a tres llamadas externas realizadas desde tres extensiones SIP y a través de la centralita NCP500 utilizando los servicios de VoIP del operador SARENET:

Puertos UDP necesarios en llamadas SIP con la NCP500_1Se observa en la captura anterior que los mensajes INVITE entre las extensiones SIP y la centralita NCP500  utilizan los puertos UDP 5060, tanto como puerto de origen como puerto de destino. El resto de paquetes de señalización SIP entre las extensiones SIP y la centralita también utilizan los puertos UDP 5060.

Puertos UDP necesarios en llamadas SIP con la NCP500_2

Sin embargo se observa que cuando la tarjeta IPCMPR de la centralita NCP500 (dirección IP = 192.168.1.52) envía el mensaje INVITE al SIP Proxy de Sarenet (dirección IP = 194.30.0.111) el puerto de origen es el 35060 y el puerto de destino es el 5060. Estos puertos si que afectan a la configuración del cortafuegos, por lo que, en principio, deberemos de abrirlos para que puedan salir paquetes por dicho cortafuegos con puerto UDP de origen 35060 y con puerto UDP de destino 5060. Lógicamente cuando el SIP Proxy de Sarenet responda a la centralita NCP500 el proceso será al contrario, es decir el puerto de origen será el 5060 y el puerto de destino será el 35060.

Puertos UDP necesarios en llamadas SIP con la NCP500_3

Es decir, la centralita NCP500 “habla” y “escucha” en SIP por el puerto 35060 UDP y el SIP Proxy de Sarenet “habla” y “escucha” en SIP por el puerto 5060 UDP. Por lo tanto, deberemos de permitir en el cortafuegos el paso de cualquier paquete UDP en salida que tenga como origen el puerto 35060 y como destino el puerto 5060. También deberemos de permitir en el cortafuegos la entrada de cualquier paquete UDP que tenga como puerto de origen el 5060 y como puerto de destino el 35060.

Al mismo tiempo, en las dos capturas anteriores se observa que dentro del cuerpo del mensaje (Message Body) la centralita y el SIP Proxy (mejor dicho, el teléfono SIP que está al otro lado del SIP Proxy) se informan mutuamente de los puertos donde esperan recibir los paquetes de voz RTP. Así en el primero de los dos mensajes anteriores la centralita indica al teléfono que está al otro lado del SIP Proxy que espera recibir los paquetes de voz en el puerto UDP 12026. En la segunda de las capturas se observa que el teléfono SIP que está al otro lado del SIP Proxy informa que espera recibir los paquetes de voz RTP en el puerto UDP 52940.

Si examinamos ahora el tráfico de paquetes de voz RTP entre la centralita NCP500 y el SBC de Sarenet (recordar que como Sarenet utiliza un SBC o Session Border Controller, los paquetes de voz que salen de la centralita van hacia el SBC y los que paquetes de voz que vienen del teléfono SIP del otro extremo, también pasan por el SBC) observaremos lo siguiente:

Puertos UDP necesarios en llamadas SIP con la NCP500_4

Y de la misma manera, si observamos un paquete de voz enviado desde el SBC hacia la centralita NCP500 (a la tarjeta DSP de la centralita, que está en la IP = 192.168.1.53), veremos que ahora el puerto UDP de origen es el 52940 y el puerto UDP de destino es el 12026.

Puertos UDP necesarios en llamadas SIP con la NCP500_5

Si observamos la señalización SIP y los paquetes de voz RTP en otras llamadas realizadas al exterior veremos lo siguiente:

  • La señalización SIP entre la centralita NCP500 y Sarenet siempre utiliza los puertos 35060 y 5060, de la forma descrita anteriormente.
  • A los paquetes de voz RTP se les asigna un puerto UDP de forma dinámica. Es decir, para la primera llamada se asigna a la centralita el 12026 y al SBC el 52940, en la segunda llamada la centralita usa el 12022 y el SBC el 58802 y en la tercera llamada la centralita usa el 12030 y el SBC el 55408.

Esto coincide con la información que suministra Panasonic en el manual de instalación de la centralita NCP500, donde se indica que los puertos UDP para voz serán asignados de forma dinámica desde el 12000 hasta el 12255:

Puertos UDP necesarios en llamadas SIP con la NCP500_6

Deberemos por tanto permitir en el cortafuegos la salida de cualquier paquete UDP que tenga como puerto de origen cualquiera comprendido entre el 12000 y 12255. Deberemos también de permitir en el cortafuegos la entrada de cualquier paquete UDP que tenga como puerto de destino cualquiera comprendido entre el 12000 y el 12255.

Para el caso de los paquetes que van hacia el SBC y que provienen desde el SBC el problema se complica un poco más, puesto que se observa que aunque la asignación de puertos UDP también es dinámica, el rango utilizado es mucho mayor (paquetes en la captura realizada entre el 52940 y el 58802). Esto tiene sentido ya que por el SBC van a pasar los paquetes de voz de cientos o miles de conversaciones de forma simultánea y puesto que la dirección IP del SBC es la misma para todas las llamadas, estas se diferenciarán en el número de puerto utilizado.

Por último, cuando examinamos el caso de llamadas entrantes a la centralita NCP500 de Panasonic, observamos la misma utilización de puertos:

  • En la señalización SIP la centralita “habla y escucha” por el puerto UDP 35060. El SIP Proxy de Sarenet “habla y escucha” por el puerto UDP 5060
  • Los paquetes de voz enviados desde la centralita tienen como puerto UDP de origen uno asignado de forma dinámica entre el 12000 y el 12255. Cuando la centralita recibe paquetes de voz RTP deberán de ir dirigidos a dichos puertos UDP
  • Los paquetes de voz enviados desde el SBC también tienen como puerto UDP de origen uno asignado de forma dinámica, pero en un rango mucho más amplio. Cuando el SBC reciba paquetes de voz RTP deberán ir dirigidos a dichos puertos UDP

Puertos UDP necesarios en llamadas SIP con la NCP500_7

Teléfonos SIP utilizados para las pruebas de llamadas SIP entrantes y salientes

Puertos UDP necesarios en llamadas SIP con la NCP500_8

Teléfonos SIP junto con tres teléfonos DECT de la centralita Panasonic KXTD-816 utilizados para realizar llamadas entrantes SIP a la centralita NCP500 a través de dos accesos básicos RDSI conectados a la KXTD-816

Puertos UDP necesarios en llamadas SIP con la NCP500_9Cada uno de los tres teléfonos SIP con una llamada entrante

Puertos UDP necesarios en llamadas SIP con la NCP500_10 Tres llamadas entrantes SIP simultáneas en el teléfono de operadora de la NCP500

Nota técnica: Cuando la tarjeta DSP (192.168.1.53) envía o recibe los paquetes de voz hacia las extensiones SIP utiliza también asignación dinámica de puertos UDP de origen con números comprendidos entre el 12000 y el 12255. Las extensiones SIP igualmente reciben asignación dinámica de puertos UDP pero con números desde el 16000 en adelante. Estos paquetes de voz como circulan dentro de la LAN no pasan por el cortafuegos y no exigen ninguna programación específica en el mismo.

Esta entrada fue publicada en Telefonía IP. Guarda el enlace permanente.

7 respuestas a VoIP en la práctica: ¿Qué puertos hay que abrir en el cortafuegos?

  1. yerlin piril dijo:

    que tal enrique logre solucionar todo lo anterior de hecho tengo una duda ahora mismo has conectado algun telefono sip de cisco a una pbx panasonic, si son sip tendria q funsionar pero me ayudaria mucho si tuvieras alguna clase de experiencia

  2. Mario Mus dijo:

    En mi firewall Meraki Z1, he habilitado los puestos
    SIP BOOT UDP /PUBLIC_PORT 5060/IP_PLANTA/LOCAL_PORT 5060
    SIP1 BOOT UDP /PUBLIC PORT 15060/IP_PLANTA/LOCAL_PORT 15060
    SIP-MLT BOOT TCP/PUBLIC PORT 37580/IP_PLNATA/LOCAL_PORT 37580

    Pero no me funcionan los telefonos SIP, sin embargo si lo hago desde la App en el celular si. que podra ser?

  3. Enrique del Rio dijo:

    Hola Yerlin

    Si buscas, en Internet puedes encontrar fácilmente todos los manuales de la NS-500. De todas formas, solo con los manuales no es suficiente, hace falta tener unos conocimientos suficientes de telefonía analógica, RDSI, VoIP y de programación de centralitas en general. Además, para realizar las pruebas, necesitarás tener una NS-500 con diferentes tipos de teléfonos (específicos digitales, IP específicos, IP SIP, etc) además de conectividad con la red pública por medio de algún operador (RDSI, IP, analógica)

    Y por supuesto, dominar una centralita como esa, requiere de tiempo y esfuerzo, ya que tiene muchísimas opciones disponibles e integra todo lo que te puedes encontrar en centralitas, es decir, la telefonía analógica, la RDSI y por supuesto, la VoIP.

    Un saludo

    Enrique del Río
    Instituto de Formación Profesional Tartanga
    Erandio
    Bizkaia

  4. YERLIN PIRIL dijo:

    existe algun manual asi para configurar la PANASONIC kx ns- 500 de antemano gracias

  5. Neotel dijo:

    Muy buenas y enhorabuena por el post. Algo que es tan técnico queda explicado muy bien en este post. Las centralitas voip son básicas en el día a día de la empresa, y todo lo que sean ayudas, como este post, son bienvenidas. Gracias.

  6. Enrique del Rio dijo:

    Hola Moisés

    En principio el problema que cuentas no tiene mucha lógica, porque si responde al ping la tarjeta DSP que está sobre la tarjeta IPCMPR, eso significa que la centralita NCP500 está conectada correctamente a la red LAN y funcionando. Lo único que se me ocurre es que estés haciendo ping a una dirección IP equivocada, es decir, que la tarjeta IPCMPR no tenga realmente la IP que tú crees que tiene.

    Verifica por tanto al conectarte con la consola de programación cual es la IP de la tarjeta IPCMPR. Si te puedes conectar con la consola de programación a la centralita, entonces ahí ves sin dificultad la IP que tiene puesta la tarjeta IPCMPR.

    Si ese no es el fallo, es decir, si estás absolutamente seguro de la dirección IP que tiene la tarjeta IPCMPR y aún así sigue sin responder al comando PING, se puede hacer una prueba un poquito absurda, pero por si acaso……. Para ello, desconecta la centralita NCP500 de la LAN, conecta un PC a dicha red y ponle como IP fija la IP esa que supuestamente tiene la tarjeta IPCMPR. Haz PING a esa IP de nuevo a ver si responde ahora. Si la respuesta sigue siendo negativa eso significa que hay algo en tu LAN que entra en conflicto con esa IP en cuestión y entonces tendrás que examinar cual puede ser el motivo.

    No olvides en ningún caso que si la centralita está funcionando y si las extensiones IP específicas e IP de tipo SIP funcionan, eso es que están encontrando a la tarjeta IPCMPR y que ésta funciona correctamente.

    Espero haberte ayudado en algo aunque este tipo de “averías” normalmente te hacen perder mucho tiempo y al final suelen deberse a algún fallo simple que se ha pasado por alto.

    Un saludo. Enrique del Río

  7. Moises Obando Picado dijo:

    Excelente explicación muchas gracias, solo tengo una consulta, qué pasa cuando se le hace ping a la IP que está en IPCMPR y esta no responde pero si responde la IP que se encuentra el la DSP y la interface del switch si se encuentra levantada?

    Saludos cordiales

Deja un comentario

Tu dirección de correo electrónico no será publicada.