El Tuesday 04 September 2007 18:28:49 Iñaki Baz Castillo escribió:
Hola, por desgracia el tema de añadir cabeceras es muy
limitado y no
funciona como se espera (no es un bug, es que es así sin más).
Mi problema es que tras un forwarding (crear otro branch en paralelo a otro
número) quería añadir una cabecera pero sólo al branch del forwarding, para
evitar que cuando vuelva a pasar por el script no se le examine a él de
nuevo posibles forwarding. Entonces se me ocurre:
route[11] {
- Si tiene cabecera "Forwarding" no miramos recursivamente y salimos.
return(-1);
- Buscamos forwarding en la tabla.
if ($rc == 1) {
$var(ru_original)=$ru;
$ru = $avp(s:forwarding_uri);
}
append_branch(); # Generamos un nuevo INVITE a la URI del forwarding.
$ru=$var(ru_original); # Recuperamos la URI original y seguimos con ella.
# Tratamiento de branches:
t_on_branch("11");
}
branch_route[11] {
# Añadir aquí cabecera "Forwarding" sólo al nuevo branch creado,
# pero... ¿cómo las distingo?
xlog("branch_route: URI = $ru \n");
¿?¿?¿?
}
Bueno, que estamos en las mismas: Y ahora ¿cómo puedo diferenciar en
ese "branch_route[11]" qué branch es el original y el que he creado por el
forwarding para añadir la cabecera sólo a éste último?
Bueno, maś o menos lo tengo:
# -----------------------------------------------------------------
# Forwarding
# -----------------------------------------------------------------
route[11] {
...
...
$var(ru_original)=$ru;
$ru = $avp(s:forwarding_ru);
append_branch(); # Generamos un nuevo INVITE a la URI del forwarding.
$ru=$var(ru_original); # Recuperamos la URI original y seguimos con ella.
t_on_branch("11");
...
}
# -----------------------------------------------------------------
# branch_route de Forwarding
# -----------------------------------------------------------------
branch_route[11] {
if ($ru == $avp(s:forwarding_ru)) {
añadir cabeceras
}
}
Y ya está XD
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es