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?
Gracias por cualquier pista.
Saludos.
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
sr-users-es@lists.kamailio.org