Hola a todos (Especialmente a Iñaqui :-)) )
Bueno, luego de haber leido bastante y haber comenzado con el RFC 3261 (Muy buena recomendacion de Iñaqui) llegue a una nueva encrucijada.
Les comento mi escenario: Por ciertas razones que no vienen al caso, necesito situar a Kamailio antes de mi PBX (Asterisk).
Seria algo asi:
Asterisk -------- Kamailio --------- Internet IP privada 200.xx.xx.53
Kamailio no debe hacer mas que un pass del trafico y enviarlo a Asterisk. Asterisk registra los tel, etc. Esto funciona fantastico siempre y cuando los telefonos no esten haciendo NAT. Cuando estos hacen NAT, Asterisk no los puede registrar. Supongo (y digo supongo porque aca me han bajado el copete muchas veces, por lo cual ya no asevero nada) que esto sucede ya que Kamailio no esta tratando NAT.
Me dispongo entonces a configurar NAT en Kamailio, pero no llego a lograr que funcione, y por eso les pido ayuda. Segun la documentacion que lei, se deben cargar los modulos:
loadmodule "dialog.so" loadmodule "nat_traversal.so"
Luego definir:
modparam("nat_traversal", "keepalive_from", "sip:6001@200.xx.xx.53") modparam("nat_traversal", "keepalive_method", "OPTIONS")
Nota: en "keepalive_from" le defini la direccion del telefono junto con la direccion publica de Kamailio.
Luego en:
if (is_method("REGISTER")) { nat_keepalive(); route(x); ... }
Que estoy olvidando definir en el REGISTER?
Asterisk ve que se le envio el metodo, pero no llega al tel:
6001/6001 200.xx.xx.53 D N 5060 UNREACHABLE
Les agradecere toda ayuda que puedan ofrecer!!
Gracias!