[OpenSER-Users-ES] Y nos topamos con el NAT y t_replicate() ...

Raúl Alexis Betancor Santana rabs at dimension-virtual.com
Tue Jan 22 16:32:14 CET 2008


On Tue, Jan 22, 2008 at 01:25:32PM +0100, Iñaki Baz Castillo wrote:
> On Tuesday 22 January 2008 10:25:22 Raúl Alexis Betancor Santana wrote:
> > La cosa es que el INVITE que entra por el P1 y vá para un UA que está
> > registrado en el P2 llega, pero el P1 al hacer el lookup("location")
> > cambia el RURI por los datos del contact y cuando eso llega al P2,
> > este lo rechaza porque la comprobación de is_local_domain($rd) falla
> > (el $rd contiene ahora los datos del contact).
> 
> Se me ocurre de idea feliz que podrías hacer un "append_branch()" para manejar 
> dos instancias del INVITE, hacer el "lookup" sobre una de ellas y en caso de 
> que tenga PATH y todo eso redirigir el INVITE al otro nodo.

La pregunta mágica es .. ¿Y como averiguar que tienen path? .. porque
he intentado con un $hdr(Path) y nanai, con un is_present_hf("Path") y
tampoco.
Estoy revisando el código de lookup() a ver donde demonios tiene el
tio en cuenta el Path, porque el módulo path.so solo registra un
callback hacia el módulo rr.

> Pero esta última redirección debería hacerse en plan:
>   t_relay("nodo2",flags)
> Es decir, sin alterar el RURI del INVITE original para que no tengas problemas 
> con los dominios y tal.

La cuestión es lo que he dicho antes .. como averiguar que ese
lookup("location"), va a volver con Path.

> > He probado guardando el $ru antes de hacer el location y volviendolo a
> > setear antes de hacer el t_relay al P2, esto hace que la señalización
> > funcione perfecta .. pero los UA's que intervienen en la prueba solo
> > reciben su própio RTP, como si en vez de llamar de UA1 a UA2
> > estubiesen llamando a un EchoTest.
> 
> Esto ya se me escapa por completo, no entiendo qué es eso de que un UAC sólo 
> se escuche a sí mismo, ¿cómo es posible? ¿has monitorizado entre qué 
> entidades se está enviando RTP?

Si, ambos UAC están registrados en proxies diferentes y ambos negocian
con mediaproxy para salvar el NAT, pero por algún misterio de la vida
que aun tengo por comprobar ... lo que hacen es montar un bucle con el
RTP del UAC1 y el UAC2, osea .. a UAC1 le envía su propio RTP de
vuelta y a UAC2 lo mismo.

De esta salgo escaldao de NAT ... XP

Saludos
--
Raúl Alexis Betancor Santana
Dimensión Virtual S.L.




More information about the Users-es mailing list