Buenas,

Estoy intentando configurar Kamailio 3.3.1 como proxy SIP detras de un NAT y como dispatcher de 2 Asterisk 1.8.7 detras del mismo NAT.

Las llamadas vienen de carriers externos hacia Kamailio que sera el que tenga que balancear la carga entre los Asterisk.
He intentado manualmente reescribir la record-route hacia afuera con la ip publica (advertised_address="...")
El problema viene cuando el carrier externo manda un ACK hacia la IP_PUBLICA_NAT y éste no lo reconoce como su propia ip y lo reenvia (me imagino que es por la cabecera Record-Route que apunta a la ip publica)


He probado forzando al Centos 5.8 a que escuche en una ip no local cambiando en el fichero /etc/sysctl.conf:
net.ipv4.ip_nonlocal_bind = 1

Y en la configuracion de Kamailio:

listen:udp:IP_PUBLICA_NAT:5060

Para que Kamailio escuche en la IP_PUBLICA_NAT pero sigue sin funcionar. Cuando le llegan paquetes SIP del tipo:

ACK sip:IP_PUBLICA_NAT:5060;lr=on

Envia el paquete a la IP del NAT y no se como decir a Kamailio que reenvie ese paquete al Asterisk correspondiente.

¿Es posible esta configuración o es indispensable que Kamailio tenga una IP publica escuchando en la interfaz?  ¿Es posible una configuracion de Kamailio detras de un NAT y que gestione llamadas entrantes?


Gracias de antemano y un saludo.
--
Victor Torre