El Sunday 17 February 2008 15:20:45 Iñaki Baz Castillo escribió:
No, podrías usar un único t_on_reply en el cual miras
haces:
on_replyroute(1) {
ifbflagset(NAT) {
use_media_proxy();
...
}
}
No funciona, lo he comprobado, puesto que si solo UNO de los branches tiene el
bflag(NAT) activado .. ese if será TRUE para todos los branches.
De hecho he tenido que cambiar ese códigos por
onreply_route[1]
{
if(isbflagset(NAT) || nat_uac_test("19"))
{
use_media_proxy();
}
}
Recuerda que un bflag persiste durante toda la
transacción de su branch, lo
cual incluye las respuestas. O sea, si envías un INVITE en cuyo branch
tenía activado el bflag(NAT) verás ese bflag activo en el on_replyroute
correspondiente.
Eso es la teoría, la práctica dice que las llamadas a setbflag,resetbflag y
isbflagset actuan sobre el branch 0 (todos los branches) a no ser que le
especifiques el branch_idx sobre el que comprobar, lo cual no seria ningún
problema sino fuera proque ninguna de las tres funciones admite ni una
variable, ni una pseudovariable ni un AVP como parámetro branch_idx, lo cual
imposibilita DIRECTAMENTE utilizar dicha funcionalidad.
Además no lo digo yo .. es un bug reportado.
http://66.102.9.104/search?q=cache:7_2_51k69wcJ:openser.org/pipermail/users…
No te entiendo. Si haces:
branch_route[2]
{
if(isbflagset(NAT))
Sencillamente comprobarás para cada branch si está activo ese bflag, no sé
a qué te refieres con "solo comprueba si para TODOS los branches esta
seteado el flag". Por ejemplo:
Que no, que no funciona así .. eso es lo que uno esperaría .. pero no funciona
de esa manera, mira la discursión del link que pongo más arriba.
branch_route[2]
{
if(isbflagset(NAT)) {
xlog("bflag(NAT) activado para este branch con RURI $ru \n");
}
}
Ese xlog sólo lo verás para los branches pertenecientes a localizaciones
del usuario tras NAT.
Ese log lo veré para todos los branches, con que solo uno sea NAT. Juraito
Iñaki .. que lo he tenido que arreglar a base de meter cabeceras extras en
las transacciones que llevan NAT.
--
Saludos.
Raúl Alexis Betancor Santana
Dimensión Virtual S.L.