El Sunday 17 February 2008 17:28:32 Iñaki Baz Castillo escribió:
route { t_on_branch("ON_BRANCH_DEFAULT"); t_on_reply("ON_REPLY_DEFAULT"); ... lookup("location"); t_relay(); }
branch_route[ON_BRANCH_DEFAULT] { xlog("*********************** branch_route[ON_BRANCH_DEFAULT] \n"); xlog("----------------------- branch con RURI = $ru \n"); xlog("----------------------- $rr \n"); if (isbflagset(BFLAG_NAT_CALLED)) xlog("----------------------- bflag(BFLAG_NAT_CALLED) activo \n"); }
onreply_route[ON_REPLY_DEFAULT] { xlog("*********************** onreply_route[ON_REPLY_DEFAULT] \n"); xlog("----------------------- branch con RURI = $ru \n"); xlog("----------------------- $rr \n"); if (isbflagset(BFLAG_NAT_CALLED)) xlog("----------------------- bflag(BFLAG_NAT_CALLED) activo \n"); }
Como ves es exactamente de lo que estamos hablando.
Ahora llamo a ese usuario y estos son los xlogs que veo:
Ok, punto y set ... pero no partido ... ;-)
Sigue pendiente la parte de q ue no se pueden setear branch flags desde un branch, porque setea el flag para todos los branches. Me explico:
route[0] { t_on_branch(2); t_on_reply(1); lookup(location); t_relay(); }
onbrach_route[2] { if($dd = IP1) { setbflag(PARA_IP1); # Esto no funciona } }
... y que no funcione el setbflag ahi es un crimen gordo, si en vez de llamar a setbflag ahí, haces un route(n) y desde route(n) haces el setbflag tampoco funciona, porque cambia el flag para todos los branches y no puedes especificar el branch_idx de forma dinámica.