[SR-Users-ES] No Audio con clientes detras de una NAT, el audio funciona con clientes que usan IPs publicas (Estoy utilizando rtpproxy)

Iñaki Baz Castillo ibc en aliax.net
Jue Jun 25 13:25:18 CEST 2009


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 en aliax.net>



Más información sobre la lista de distribución SR-Users-ES