Gracias por la aclaración, porque es cierto que da dolor de cabeza mezclar
NAT y SIP ;)
He pegado la captura en pastebin:
Si te fijas el ultimo ACK (linea 162) lo envia a IP_PRIVADA_ROUTER cuando
en realidad deberia reenviarlo al Asterisk.
Aqui tienes la configuracion de Kamailio:
Creo que la linea donde hace ese reenvio es la 686 (justo donde tengo un
log ("Within dialog, with loose route....") y no se como puedo decir a
Kamailio que lo envie a uno de los Asterisk.
¿Como sabe el modulo dispatcher a que nodo tiene que mandarlo? No me queda
claro como funciona este modulo exactamente, particularmente como sabe a
donde tiene que enviar los ACK de las transacciones. En el primer INVITE
queda claro que es mediante la funcion "ds_select_dst" pero ¿en el resto de
los paquetes?
Gracias de nuevo!
El 9 de octubre de 2012 23:13, Iñaki Baz Castillo <ibc(a)aliax.net> escribió:
El día 9 de octubre de 2012 18:01, Victor Torre
Antunez
<victor.torre(a)stoneworksolutions.net> escribió:
Buenas,
Hola, entre líneas:
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)
Te refieres a la cabecera Route del ACK ;)
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?
Un proxy detrás de NAT hablando con un nodo SIP fuera del NAT es
sinónimo de todo el dolor que estás experimentando. Honestamente en mi
vida me he esforzado por hacer funcionar ese escenario.
Si quieres pega una traza de un INVITE entrante, sustituyendo la IP
pública del router por IP_PUBLICA_ROUTER, la IP privada de kamailio
por IP_PRIVADA_KAMAILIO, la IP privada del Asterisk por
IP_PRIVADA_ASTERISK y la IP de tu proveedor SIP por IP_PROVEEDOR. Yo
lo veo complicado pero se le puede echar un vistazo.
--
Iñaki Baz Castillo
<ibc(a)aliax.net>
_______________________________________________
SR-Users-ES mailing list
SR-Users-ES(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users-es
--
*Victor Torre Antúnez
Ingeniero de Soporte*
victor.torre(a)stoneworksolutions.net
0034 925 01 81 06