Resumen de contenidos
Muy buenas, soy Juan Míguez, y en esta ocasión hablaremos sobre :
SIP NAT transversal
Publicado el 1 de septiembre de 2014
En un mundo ideal, todos los dispositivos en Internet podrían comunicarse directamente (use las promesas de IPv6 para habilitar con un espacio de direcciones casi ilimitado). Sin embargo, a día de hoy, la mayoría de nosotros todavía usamos el antiguo IPv4, lo que significa que todas nuestras redes privadas están detrás del dispositivo NAT (traducción de direcciones de red).
Para ayudar a los administradores de red a configurar su equipo NAT para que los teléfonos SIP (o softphones) puedan comunicarse con la red Centralitasbaratas.es(servidores proxy SIP y puertas de enlace de medios RTP), a continuación encontrará diagramas de flujo de llamadas que muestran las direcciones y puertos de red relevantes. tono. En los siguientes diagramas, las líneas verdes indican SIP (Protocolo de inicio de sesión) que se usa para la señalización (configuración y desglose de llamadas), y las líneas azules indican RTP (Protocolo de transporte en tiempo real) que emite flujos de audio durante una llamada.
Registro de terminal
Una vez que el teléfono SIP está encendido, intentará registrar su ubicación con la red Centralitasbaratas.es. Esto es para permitir el enrutamiento de llamadas entrantes a puntos finales específicos en la red. También crea un enlace NAT que se mantiene abierto gracias a los paquetes “keepalive” periódicos enviados entre el teléfono SIP y los servidores de estudio VoIP.
Figura 1. SIP NAT transversal – REGISTRO
- El teléfono SIP envía un paquete de REGISTRO desde su dirección IP de LAN. Normalmente, un puerto de origen predeterminado configurado en la mayoría de los teléfonos SIP es UDP 5060, pero puede ser cualquier puerto UDP.
- El paquete SIP generado por el teléfono llega al enrutador NAT que reescribe el puerto de origen (en nuestro ejemplo a UDP 15723) y crea el enlace NAT LAN: 192.168.1.9: UDP: 5060 <-> WAN: 123.224.10.6: UDP: 15723
- La solicitud de REGISTRO llega al servidor SIP de Centralitasbaratas.esen el puerto UDP 5060 de la dirección IP pública.
- El servidor SIP de Centralitasbaratas.esresponde con el mensaje ‘401 no autorizado’ y le pide al teléfono SIP que vuelva a enviar una solicitud de REGISTRO con las credenciales de usuario y la envíe de vuelta al dispositivo NAT en WAN: 123.224.10.6: UDP: 15723.
- Dispositivo NAT basado en información en la tabla de enlace NAT, envía paquetes SIP al teléfono en LAN: 192.168.1.9: UDP: 5060
- Los teléfonos SIP envían un paquete de REGISTRO con credenciales de usuario y el servidor de registro de Centralitasbaratas.esguarda la ubicación del terminal como WAN: 123.224.10.6: UDP: 15723
Nota: Puede haber más de un teléfono SIP en la LAN privada, ya que el enrutador NAT creará un enlace de puerto WAN_IP: aleatorio único para cada dispositivo, como se muestra (2) en la Figura 1 anterior.
SIP Keepalive
Normalmente, el dispositivo NAT apaga la vinculación NAT que se muestra en el paso (2), Figura 1 anterior, después de un breve período de inactividad (generalmente de 60 a 900 segundos, según el dispositivo). Esto hará que los servidores de Centralitasbaratas.esno puedan comunicarse con el teléfono y le alertarán sobre las llamadas entrantes. Para mantener abierto el enlace NAT, utilizamos la técnica SIP Keepalive, que envía el paquete SIP OPTIONS (que no tiene otra función que hacer que el teléfono SIP responda con SIP OK) cada 30 segundos.
Figura 2. SIP NAT transversal: Keepalive
- Paquete de OPCIONES SIP enviado desde la dirección IP pública del puerto UDP 5060 del servidor Centralitasbaratas.es(la misma PublicIP: UDP_port que se usó anteriormente para el registro) al enrutador NAT PublicIP: UDP: puerto almacenado durante el registro.
- El teléfono responde con SIP OK actualizando NAT vinculante LAN: 192.168.1.9: UDP: 5060 <-> WAN: 123.224.10.6: UDP: 15723 y manténgala abierta para futuras comunicaciones.
Llamada saliente
Cuando realiza una llamada saliente, el teléfono SIP envía el paquete SIP INVITE al servidor Centralitasbaratas.es, el cual es cuestionado por las credenciales de usuario y enviado nuevamente. Después de una verificación exitosa, el servidor Centralitasbaratas.esresponde con un paquete SIP OK que contiene información sobre la IP pública y el número de puerto UDP del servidor RTP (medios) al que el teléfono debe enviar el flujo de audio.
Figura 3. SIP NAT transversal: llamada saliente
- El teléfono SIP envía un paquete de invitación al servidor SIP, que solicita las credenciales.
- Después de una autenticación exitosa, el servidor SIP responde con SIP OK y proporciona la dirección IP pública y el número de puerto (en nuestro ejemplo anterior 66.228.45.12 puerto 12321) del servidor de medios (audio) al que el teléfono SIP debe enviar su flujo de audio.
- El teléfono SIP comienza a enviar datos de audio RTP desde el puerto UDP preestablecido (5685 en nuestro ejemplo anterior).
- El enrutador NAT reescribe el puerto UDP 5685 en un puerto UDP aleatorio (23589 en nuestro ejemplo anterior) y crea un enlace NAT.
- El servidor de medios comienza a enviar flujo de audio a la dirección IP pública del enrutador NAT y al puerto UDP de origen 23589. El dispositivo enrutador NAT basado en la información de la tabla de enlace NAT, envía paquetes de audio RTP al teléfono en LAN: 192.168.1.9 : UDP: 5685.
Llamada entrante
El servidor SIP de Centralitasbaratas.esutiliza una ubicación de terminal (dirección IP pública y número de puerto) que se muestra durante el proceso de registro en la Figura 1 anterior.
Figura 4. SIP NAT transversal: llamada entrante
- El servidor SIP de Centralitasbaratas.esenvía el paquete INVITE al enrutador NAT que lo usa enviando la tabla de enlace NAT al teléfono SIP. Contiene información sobre la dirección IP pública del servidor RTP (audio) y el número de puerto (en nuestro ejemplo anterior 62.228.45.12 puerto 16232) al que el teléfono debe enviar el flujo de audio RTP.
- El teléfono responde con SIP OK, que contiene información sobre el número de puerto al que el servidor de medios Centralitasbaratas.es(RTP) debe enviar sus transmisiones de audio.
- El servidor de medios (RTP) comienza a enviar audio a la dirección IP pública del puerto UDP 5685 del enrutador NAT. Sin embargo, es posible que estos paquetes no lleguen inicialmente al teléfono, ya que todavía no existe un enlace NAT.
- El teléfono SIP comienza a enviar audio desde el puerto UDP preestablecido 5685.
- El enrutador NAT reescribe el puerto UDP 5685 en un puerto UDP aleatorio (27483 en nuestro ejemplo anterior) y crea un enlace NAT.
- El servidor de medios cambia el puerto de destino al asignado por el dispositivo de enrutador NAT, y el audio RTP comienza a fluir en ambas direcciones.
Nota: el tiempo entre los pasos 3 y 6 descritos anteriormente es de 20 a 50 ms, por lo que no hay un silencio notable al comienzo de la llamada.
Resumen
La mayoría de los enrutadores NAT y teléfonos SIP modernos funcionan como se muestra en los diagramas anteriores “listos para usar”. Sin embargo, si tiene problemas con las llamadas entrantes, el sonido unidireccional u otro comportamiento inusual, asegúrese de que su equipo esté configurado de la siguiente manera:
Requisitos de interoperabilidad de Centralitasbaratas.es
Enrutador NAT
- Debe permitir el tráfico saliente a destinos con puerto UDP 5060 (SIP) y puertos UDP 10000-2000 (RTP). La mayoría de los cortafuegos solo bloquean el tráfico entrante. Sin embargo, si su dispositivo también bloquea las conexiones salientes, es posible que deba ajustar la configuración.
- Debe crear un enlace NAT durante un período no inferior a 30 segundos (intervalo de paquetes de actividad SIP).
Teléfono SIP
- Debe utilizar señales SIP simétricas y flujos RTP. Es decir, debe enviar y recibir datos por el mismo número de puerto. Afortunadamente, la mayoría de los teléfonos SIP modernos utilizan este estándar de comunicación.
Y este post ha llegado a su fin,, si te ha gustado, compártelo