Hi,
I managed to solve this problem using ds_is_from_list in failure_route like this:
ds_is_from_list("8201", "3",
"sip:$T_rpl($si):$T_rpl($sp)"))
But I don't understand why I needed to do it that way.
I would still like anyone to explain if they know the reason!
Thanks.. :)
Joel.
----- Original Message -----
From: "Joel Serrano | VOZELIA"
<joel(a)vozelia.com>
To: "Kamailio (SER) - Users Mailing List"
<sr-users(a)lists.sip-router.org>
Sent: Tuesday, September 20, 2016 2:36:42 PM
Subject: [SR-Users] Problem using ds_is_from_list in failure_route
Hi all,
I'm facing a strange problem using ds_is_from_list in the failure_route block.
I have 4 servers in a dispatcher group 8201.
Scenario:
A call comes in, gets routed to a backend server from 8201 dispatcher group, the
backend replies with a 480.
Then we have:
onreply_route[MANAGE_REPLY] {
[...]
if (ds_is_from_list("8201")) && t_check_status("480")
{ <<<<<< This gets
executed, because the node is in 8201 and the reply was a 480
if (is_present_hf("X-UserID")) {
$var(UserId) = $hdr(X-UserID);
}
}
[...]
}
So far so good, next is:
failure_route[MANAGE_FAILURE] {
[...]
if (ds_is_from_list("8201")) &&
(t_check_status("480")) { <<<<<< This does
NOT get executed.
append_hf("X-UserID: $var(UserId)\r\n");
if (!ds_select_domain("8205","4")) {
xlog("L_ERR", "[$ci] - No additional
gateways\n");
t_reply("502","Bad Gateway");
exit;
}
t_set_fr(0,2000);
route(RELAY);
}
[...]
}
To find the problem, I added some logging in the failure_route before entering
the IF statement:
if (ds_is_from_list("8201")) xlog("L_NOTICE", "DS is in group
8201"); <<<<<
No log, so did NOT match.
if (t_check_status("480")) xlog("L_NOTICE", "Status is
480"); <<<<<
Yes log, so DID match.
According to the docs, ds_is_from_list can be used in any route block, so I
think I am definitely doing something wrong... or maybe it's a bug??
The idea is to achieve this:
Call comes in from softphone into proxy, proxy sends it to backend, if backend
replies with a 480, send it to another dispatcher set (8205). If the 480 comes
from somewhere that is not the backend (8201), then do nothing.
Any suggestions?
Thanks in advanced.
Best regards,
Joel.
Este mensaje y, en su caso, los ficheros anexos son confidenciales,
especialmente en lo que respecta a los datos personales, y se dirigen
exclusivamente al destinatario referenciado.Les informamos que los datos
contenidos en el presente mail, han sido facilitados por usted o recogidos de
Fuentes Accesibles al Público. Dicha información personal, será incluida en un
fichero bajo la responsabilidad de VOZELIA TELECOM S.L.Todos los ficheros que
trata nuestra empresa se encuentran debidamente inscritos ante la Agencia
Española de Protección de Datos.Vd. Como propio interesado podrá ejercitar sus
derechos de Acceso, Cancelación, Rectificación u Oposición, en el mail:
administracion(a)vozelia.com o en la dirección Avenida de Manoteras 8 escalera 3
2ºB, 28050 Madrid.Tal y como establece la Ley Orgánica de Protección de Datos
15/1999 de 13 de Diciembre.Para ejercer sus derechos desde Panama podrá hacerlo
en la dirección Vía Argentina, Edificio Mediteranean Loft. Panama.En caso
de no ser el destinatario y haya recibido este mensaje por error, agradeceremos
que nos lo comunique inmediatamente al remitente sin difundir, almacenar o
copiar su contenido.La divulgación o el suministro, en todo o en parte, a
cualquier tercero, no podrá ser realizada sin el previo, expreso y escrito
consentimiento de VOZELIA TELECOM S.L. .
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users Este mensaje y, en su
caso, los ficheros anexos son confidenciales, especialmente en lo que respecta a los datos
personales, y se dirigen exclusivamente al destinatario referenciado.Les informamos que
los datos contenidos en el presente mail, han sido facilitados por usted o recogidos de
Fuentes Accesibles al Público. Dicha información personal, será incluida en un fichero
bajo la responsabilidad de VOZELIA TELECOM S.L.Todos los ficheros que trata nuestra
empresa se encuentran debidamente inscritos ante la Agencia Española de Protección de
Datos.Vd. Como propio interesado podrá ejercitar sus derechos de Acceso, Cancelación,
Rectificación u Oposición, en el mail: administracion(a)vozelia.com o en la dirección
Avenida de Manoteras 8 escalera 3 2ºB, 28050 Madrid.Tal y como establece la Ley Orgánica
de Protección de Datos 15/1999 de 13 de Diciembre.Para ejercer sus derechos desde Panama
podrá hacerlo en la dirección Vía Argentina, Edificio Mediteranean Loft. Panama.En caso
de no ser el destinatario y haya recibido este mensaje por error, agradeceremos que nos
lo comunique inmediatamente al remitente sin difundir, almacenar o copiar su contenido.La
divulgación o el suministro, en todo o en parte, a cualquier tercero, no podrá ser
realizada sin el previo, expreso y escrito consentimiento de VOZELIA TELECOM S.L. .