[SR-Users] Problem using ds_is_from_list in failure_route
Joel Serrano | VOZELIA
joel at vozelia.com
Tue Sep 20 23:36:42 CEST 2016
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 at 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. .
More information about the sr-users
mailing list