[OpenSER-Users-ES] Enrutamiento por el campo From

Ramona Modroiu ramona at openser.org
Tue Aug 21 11:17:05 CEST 2007


Iñaki Baz Castillo wrote:
> El 20/08/07, Ramona Modroiu <ramona at openser.org> escribió:
>
>   
>> Un ejemplo de codigo seria lo siguiente:
>>
>> if(avp_check("$fU", "eq/xxx9/i")) {
>> ...
>> } else if(avp_check("$fU", "re/^xxx[0-8]$/i")) {
>> ...
>> }
>>
>>     
>
>   
>> En openser 1.2.x:
>>
>> if($fU == "xxx9")) {
>> ...
>> } else if($fU =~ "^xxx[0-8]$") {
>> ...
>> }
>>     
>
> Vaya, no había caído yo en la cuenta de que también se pueden aplicar
> expresiones regulares sin AVP's.
>
> Por cierto, de cara a la eficiencia ¿existe alguna diferencia entre
> usar AVPs de texto y variables? Quiero decir, ¿qué es más costoso
> computacionalmente?:
>
>
> a)
>   $avp(s:texto) = "XXXXXXXX";
>   if ( avp_check("$avp(s:texto)", "re/^xxx[0-8]$/i") ) { ...
>
> b)
>   $var(texto) = "XXXXXXXX";
>   if ( $var(texto) =~" ^XXX") { ...
>
>
> ¿O tal vez sean igual de eficientes?
>   
La variante b) es mas eficiente. Las variables suponen referencia 
directa a la memoria privada. Sobre los AVPs ... hay una lista de AVPs 
en la memoria compartida y significa mas busqueda dentro de esa lista.

avp_check() te hace falta si hay mas de un avp y quieres verificar las 
todas. En el ejemplo anterior vale escribir if($avp(s:texto)) =~"^XXX") 
{....}. 

>
> En caso de que sean igualmente costosas: ¿qué sentido tienen entonces
> los AVP's de texto existiendo variables (las cuáles son más
> "digestibles")?
>
>   
Las variables viven dentro de un proceso. Las AVPs viven dentro de una 
transaccion ... estan accesible dentro de la failure_route donde hay 
otro proceso que el que habia procesado el mensaje original.
Tambien, las AVPs permiten  valores multiples.

> Y ya puestos: sé que los AVP numéricos en plan $avp(i:12) son más
> eficientes que los AVP de texto en plan $var(s:cadena), ya que cuesta
> menos referirse a un entero que a una cadena de texto. Pero, ¿no
> tendría sentido que en tiempo de compilación se convirtiesen los AVP
> de texto a AVP numéricos sin más? ya sé que existen los alias, pero
> sigue siendo una solución un poco "fea".
>   
eso es una idea :)

Saludos,
Ramona
>
> En fin, cosillas que tenía previstas preguntar algún día y
> aprovechando la conversación lo saco ahora... XD
>
>
> Saludos.
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users-es mailing list
> Users-es at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users-es
>   





More information about the Users-es mailing list