El Lunes, 27 de Agosto de 2007, Iñaki Baz Castillo escribió:
# ----------------------------------------------------------------- # Forwarding # ----------------------------------------------------------------- route[11] {
if ($hdr(Forwarding)) { xlog("L_INFO", "Encontrada cabecera 'Forwarding' -> No miramos tabla 'forwarding' para $ru\n"); return(-1); } avp_db_query("SELECT uri FROM forwarding WHERE username='$rU'", "$avp(s:forwarding_uri)"); if ($rc == 1) { # Cabecera para que el nuevo branch y el actual (via outbound) # no pasen por "trusted": append_hf("No-Trusted: Forwarding\r\n"); # Cabecera para que el nuevo branch no vuelva a pasar por "forwarding": append_hf("Forwarding: Yes\r\n"); # Cabecera para que el nuevo branch y el actual (via outbound) # no se tengan que volver a autenticar en "auth". append_hf("Authenticated: Yes\r\n");
append_branch(); $ru = $avp(s:forwarding_uri); remove_hf("Forwarding"); # En el INVITE original modificado a la URI del forwarding quitamos esta cabecera pues la URI del forwarding podría contener a su vez otro forwarding.
# Enviamos el INVITE modificado con la URI del forwarding a outbound. # Si tiene que volver ya volverá. route(9); # Outbound. exit;
Bueno, corrijo esto último, ya que el outbound sólo tiene sentido si el forwarding es a un dominio externo. Realmente lo dejo así:
if (is_uri_host_local()) { route(1); # t_route y tal. } else { route(9); # Outbound. }
exit;
}
}