El Jueves, 25 de Junio de 2009, Iñaki Baz Castillo escribió:
El Jueves, 25 de Junio de 2009, rubenrojas - Trc.es
escribió:
# Caller NAT detection route
/* uncomment the whole following route for enabling Caller NAT Detection
*/ route[4]{
force_rport();
if (nat_uac_test("19")) {
if (method=="REGISTER") {
fix_nated_register();
} else {
fix_nated_contact();
}
setflag(5);
}
return;
}
Lo anterior NO se está ejecutando. Fíjate que el Contact del 200 Ok llega
con la IP provada al llamante, por lo que el ACK que envía llega al proxy
con el RURI conteniendo una IP privada del llamado, así que el proxy ruta
el ACK a la IP privada (que obiviamente no llega). Por eso no oyes audio,
porque la negociación del INVITE no acaba (no llega el ACK al llamado, y
por eso hay tantas retransmissiones del 200 OK que no pareces haber
observado).
Perdona, lo de arriba sí se está ejecutando (el Contact del INVITE cambia). Lo
que no cambia es el de la respuesta, o sea, no se ejecuta esto:
onreply_route[1] {
xdbg("incoming reply\n");
if ((isflagset(5) || isbflagset(6)) &&
status=~"(183)|(2[0-9][0-9])")
{
force_rtp_proxy();
}
if (isbflagset(6)) {
fix_nated_contact();
}
}
Lo que no sé es porqué no se ejecuta puesto que tienes puesto en
t_onreply("1") en route[1]. Eso tendrás que descubrirlo a base de poner
"xlog"
para ver si se están eejcutando los bloques o no. Nadie garantiza que el
config file que viene por defecto sea 100% correcto.
--
Iñaki Baz Castillo <ibc(a)aliax.net>