El Wednesday 21 November 2007 14:10:45 Iñaki Baz Castillo escribió:
Hola, tengo una duda de concepto sobre el ALG para SIP
que implementan
algunos routers.
Todavía no he encontrado uno que lo implemente bien.
Ya os comenté que el SpeedTouch no mantiene el puerto
abierto y redirigido,
y mi duda es si debería o no hacerlo.
No debe, más allá del tiempo de keepalive
Es decir, para realizar llamadas y solventar el NAT el
router ALG sólo
tiene que interceptar el INVITE y cambiar el Contact y SDP. En ese momento
se produce una conexión UDP que dura poco y se mantiene el keepalive UDP
del router (normalmente 20-30 segundos creo).
Pero pare recibir llamadas es necesario que el router, al detectar un
REGISTER saliente (con éxito) deje el puerto abierto y redirigido al host
local indefinidamente. Pero claro, el router no puede saber cuándo se envía
un un-REGISTER ya que desde un mismo dispositivo SIP puede haber varias
cuentas registradas. Y dudo muchísimo que el router almacena datos SIP para
saber qué cuentas se han registrado.
Pero es que entonces ya no es un "router" propiamente dicho, es algo "más
avanzado" un transparent proxy sip, que los hay.
Y por supuesto, el cliente SIP no tiene razón alguna
para enviar ningún
tipo de keepalive (sólo lo haría si usa STUN).
A no ser que le fuerces a ello, como los Grandstream, que se pueden forzar
para enviar keepalives y así mantener abiertos siempre los puertos en los
routers.
Sólo se me ocurre poner la periodicidad del REGISTER a
menos tiempo del
keepalive UDP del router (o aumentar éste si se puede), pero me parece una
guarrada (sobre todo porque el proxy SIP puede limitar el tiempo mínimo de
entre registros)
O sea, mi conclusión un poco alarmista es que el ALG de los routers sólo
sirve para corregir el NAT en llamadas salientes.
Alarmista no .. es la realidad.
¿Me equivoco en algo? ¿es correcta mi conclusión?
En lo que te equivocas, querido Iñaki, es en seguir insistiendo en resolver el
problema de los NAT desde el lado del cliente, deja de comerte la cabeza con
cada posible combinación de NAT y usa nathelper y rtpproxy.
El día que tengamos IPv6 de forma masiva y los fabricantes de los cacharros
SIP actualicen las firmwares, se acabaron los problemas de NAT, a no ser que
el administrador de turno se quiera complicar la vida.
Saludos
--
Raúl Alexis Betancor Santana
Dimensión Virtual S.L.