Hola gente,
Estoy intentando hacer lo siguiente:
tengo dos variables con la IP y el PUERTO des gw de destino por donde quiero enviar el request, pero parece que openser no "expande" las variables, lo hago:
rewritehostport("$avp(s:destip)");
pero lo dicho, no expande las variables... me da:
Mar 31 19:08:30 [333] ERROR:core:parse_uri: bad port in uri (error at char d in state 8) parsed: sip:13058883456@$avp(s:(23) /sip:13058883456@$avp(s:destip) (30) Mar 31 19:08:30 [333] ERROR:core:parse_sip_msg_uri: bad uri sip:13058883456@$avp(s:destip) Mar 31 19:08:30 [333] ERROR:core:do_action: forward: bad_uri dropping packet
¿Alguna idea?
Gracias
David
El Monday 31 March 2008 17:12:39 David Villasmil escribió:
Hola gente,
Estoy intentando hacer lo siguiente:
tengo dos variables con la IP y el PUERTO des gw de destino por donde quiero enviar el request, pero parece que openser no "expande" las variables, lo hago:
rewritehostport("$avp(s:destip)");
pero lo dicho, no expande las variables... me da:
Mar 31 19:08:30 [333] ERROR:core:parse_uri: bad port in uri (error at char d in state 8) parsed: sip:13058883456@$avp(s:(23) /sip:13058883456@$avp(s:destip) (30) Mar 31 19:08:30 [333] ERROR:core:parse_sip_msg_uri: bad uri sip:13058883456@$avp(s:destip) Mar 31 19:08:30 [333] ERROR:core:do_action: forward: bad_uri dropping packet
¿Alguna idea?
David, ya te había respondido a esto hace muy poco:
$ru = $rU + "@" + $avp(s:ip) + ":" + $avp(s:port);
Tal vez no te sea válido por alguna razón, pero podrías mencionarlo.
saludos.
Iñaki,
Sí que es válida la expresión, funciona bien, PERO cuando la pones en: rewritehostport() queda como literal, no se "resuelve" la expresión. Es o un bug, o simplemente que rewritehostport no expande variables, sólo funciona con literales... :S una faena.
O, claro está, no lo estoy haciendo de la forma que debe ser..
saludos.
David
2008/4/1 Iñaki Baz Castillo ibc@in.ilimit.es:
El Monday 31 March 2008 17:12:39 David Villasmil escribió:
Hola gente,
Estoy intentando hacer lo siguiente:
tengo dos variables con la IP y el PUERTO des gw de destino por donde quiero enviar el request, pero parece que openser no "expande" las variables, lo hago:
rewritehostport("$avp(s:destip)");
pero lo dicho, no expande las variables... me da:
Mar 31 19:08:30 [333] ERROR:core:parse_uri: bad port in uri (error at char d in state 8) parsed: sip:13058883456@$avp(s:(23) /sip:13058883456@$avp(s:destip) (30) Mar 31 19:08:30 [333] ERROR:core:parse_sip_msg_uri: bad uri sip:13058883456@$avp(s:destip) Mar 31 19:08:30 [333] ERROR:core:do_action: forward: bad_uri dropping packet
¿Alguna idea?
David, ya te había respondido a esto hace muy poco:
$ru = $rU + "@" + $avp(s:ip) + ":" + $avp(s:port);
Tal vez no te sea válido por alguna razón, pero podrías mencionarlo.
saludos.
-- Iñaki Baz Castillo ibc@in.ilimit.es
Users-es mailing list Users-es@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
El Tuesday 01 April 2008 09:42:55 David Villasmil escribió:
Iñaki,
Sí que es válida la expresión, funciona bien, PERO cuando la pones en: rewritehostport() queda como literal, no se "resuelve" la expresión. Es o un bug, o simplemente que rewritehostport no expande variables, sólo funciona con literales... :S una faena.
O sea, que lo que estás haciendo es:
$ru = $rU + "@" + $avp(s:ip) + ":" + $avp(s:port); reqritehostport($ru);
¿es así? ¿y por qué haces eso?
La variable $ru, o sea, el Request-URI puede usarse para ESCRITURA DIRECTA: http://www.openser.org/dokuwiki/doku.php/core-cookbook:1.3.x#assignment
Assignment Assignments can be done like in C, via '=' (equal). The following pseudo-variables can be used in left side of an assignment: AVPs - to set the value of an AVP script variables ($var(…)) - to set the value of a script variable $ru - to set R-URI $rd - to set domain part of R-URI $rU - to set user part of R-URI $du - to set dst URI $fs - to set send socket $br - to set branch
O sea, que te olvides del rewritehostport, como bien dices sólo le vale recibir una cadena, no una variable. Pero es más, ¡¡¡no te hace falta!!! lo único que tienes que hacer es:
$ru = $rU + "@" + $avp(s:ip) + ":" + $avp(s:port)
Saludos.
Si, es así como lo había hecho:
$ru = "sip:" + $avp(s:prefix) + $rU + "@" + $avp(s:ip) + ":" + $avp(s:port); ... route(1); ...
Pero sigue pareciéndome raro que rewritehostport no acepte expresiones...
Gracias de todas formas!
David
2008/4/1 Iñaki Baz Castillo ibc@in.ilimit.es:
El Tuesday 01 April 2008 09:42:55 David Villasmil escribió:
Iñaki,
Sí que es válida la expresión, funciona bien, PERO cuando la pones en: rewritehostport() queda como literal, no se "resuelve" la expresión. Es o un bug, o simplemente que rewritehostport no expande variables, sólo funciona con literales... :S una faena.
O sea, que lo que estás haciendo es:
$ru = $rU + "@" + $avp(s:ip) + ":" + $avp(s:port); reqritehostport($ru);
¿es así? ¿y por qué haces eso?
La variable $ru, o sea, el Request-URI puede usarse para ESCRITURA DIRECTA: http://www.openser.org/dokuwiki/doku.php/core-cookbook:1.3.x#assignment
Assignment Assignments can be done like in C, via '=' (equal). The following pseudo-variables can be used in left side of an assignment: AVPs - to set the value of an AVP script variables ($var(…)) - to set the value of a script variable $ru - to set R-URI $rd - to set domain part of R-URI $rU - to set user part of R-URI $du - to set dst URI $fs - to set send socket $br - to set branch
O sea, que te olvides del rewritehostport, como bien dices sólo le vale recibir una cadena, no una variable. Pero es más, ¡¡¡no te hace falta!!! lo único que tienes que hacer es:
$ru = $rU + "@" + $avp(s:ip) + ":" + $avp(s:port)
Saludos.
Iñaki Baz Castillo ibc@in.ilimit.es
Users-es mailing list Users-es@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users-es
sr-users-es@lists.kamailio.org