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

rubenrojas - Trc.es rubenrojas en trc.es
Jue Jun 25 13:40:25 CEST 2009


Gracias por la pronta respuesta, asi da gusto unirse a una comunidad,

he colocado varios xlog en onreply_route[1] y lo he dejado asi:

onreply_route[1] {
        xdbg("incoming reply\n");

        xlog("L_INFO", "*** onreply_route antes de forzar rtpproxy ***");
        if ((isflagset(5) || isbflagset(6)) && status=~"(183)|(2[0-9][0-9])") {
                xlog("L_INFO", "*** rtpproxy forzado en onreply_route ***");
                force_rtp_proxy();
        }
        if (isbflagset(6)) {
                xlog("L_INFO", "*** fix_nated_contact en onreply_route ***");
                fix_nated_contact();
        }
}



haciendo un tail -f /var/log/syslog veo lo siguiente:

Jun 25 13:39:51 kamailio /usr/local/sbin/kamailio[22088]: *** onreply_route antes de forzar rtpproxy ***
Jun 25 13:39:51 kamailio /usr/local/sbin/kamailio[22087]: *** onreply_route antes de forzar rtpproxy ***
Jun 25 13:39:55 kamailio /usr/local/sbin/kamailio[22088]: *** onreply_route antes de forzar rtpproxy ***
Jun 25 13:39:55 kamailio /usr/local/sbin/kamailio[22088]: *** rtpproxy forzado en onreply_route ***
Jun 25 13:39:55 kamailio /usr/local/sbin/kamailio[22088]: ACC: transaction answered: timestamp=1245929995;method=INVITE;from_tag=5c805948a0455e5b;to_tag=c0a80101-3569b;call_id=d1b81cbb5fbb9e6e en 192.168.254.110;code=200;reason=OK;src_user=20000004;src_domain=212.4.107.250;dst_ouser=20000000;dst_user=20000000;dst_domain=192.168.254.101
Jun 25 13:39:55 kamailio /usr/local/sbin/kamailio[22089]: ACC: request acknowledged: timestamp=1245929995;method=ACK;from_tag=5c805948a0455e5b;to_tag=c0a80101-3569b;call_id=d1b81cbb5fbb9e6e en 192.168.254.110;code=200;reason=OK;src_user=20000004;src_domain=212.4.107.250;dst_ouser=20000000;dst_user=20000000;dst_domain=192.168.254.101
Jun 25 13:39:55 kamailio /usr/local/sbin/kamailio[22088]: *** onreply_route antes de forzar rtpproxy ***
Jun 25 13:39:55 kamailio /usr/local/sbin/kamailio[22088]: *** rtpproxy forzado en onreply_route ***
Jun 25 13:39:56 kamailio /usr/local/sbin/kamailio[22089]: *** onreply_route antes de forzar rtpproxy ***
Jun 25 13:39:56 kamailio /usr/local/sbin/kamailio[22089]: *** rtpproxy forzado en onreply_route ***
Jun 25 13:39:58 kamailio /usr/local/sbin/kamailio[22087]: *** onreply_route antes de forzar rtpproxy ***
Jun 25 13:39:58 kamailio /usr/local/sbin/kamailio[22087]: *** rtpproxy forzado en onreply_route ***


por lo que veo si hace el force_rtp_proxy() pero no hace nunca el fix_nated_contact() en onreply_route



----- Mensaje original -----
De: "Iñaki Baz Castillo" <ibc en aliax.net>
Para: users-es en lists.kamailio.org
Enviados: Jueves, 25 de Junio de 2009 13:25:18 GMT +01:00 Amsterdam / Berlín / Berna / Roma / Estocolmo / Viena
Asunto: Re: [SR-Users-ES] No Audio con clientes detras de una NAT, el audio funciona con clientes que usan IPs publicas (Estoy utilizando rtpproxy)

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>

_______________________________________________
SR-Users-ES mailing list
SR-Users-ES en lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users-es

_________________________________________________________________ 
Este mensaje ha sido escaneado en busca de virus por MailScanner.





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