Hello,

On Thu, Mar 10, 2011 at 10:33 AM, Klaus Darilion <klaus.mailinglists@pernau.at> wrote:
Aha, so using an AVP as loop counter (I need the counter for the whole
transcation lifetime) like:

$avp(count) = $avp(count) + 1;

would work (it does), but creates a new array element every calculation?

yes.
 

I guess the workaround to not create an array is to use always an index,
at least on the left side, eg:

$(avp(count)[0]) = $avp(count) + 1;

The right would be:
$(avp(count)[*]) = $avp(count) + 1;

 

btw: Is there a function to dump all currently defined AVPs, XAVPs and
variables?

For avps:

http://kamailio.org/docs/modules/stable/modules/avpops.html#id2867544

Not sure now the one for xavps was exported to config, but it is available internally.

Cheers,
Daniel
 

regards
Klaus

Am 10.03.2011 09:49, schrieb Daniel-Constantin Mierla:
> Hello,
>
> AVPs are multi-value variables, so:
>
> $avp(x) = 1;
> $avp(x) = 2;
>
> Create a list with two values, the last added is first retrieved. You
> can use indexes to access them.
>
> For example:
> - $avp(x) will return now 2 (same as $(avp(x)[0]) )
> - $(avp(x)[1]) will return 1
>
> You can use variable as index:
>
> $var(i) = 0;
>
> then: $(avp(x)[$var(i)]))
>
> To go through the list, you can use while(...) { ... } statement with an
> variable for index that increments in each step.
>
> When there is no value for avp at that index, then the returned value is
> $null, e.g.,
>
> while($(avp(x)[$var(i)]) != $null) {
>    ...
>    $var(i) = $var(i) + 1;
> }
>
> Cheers,
> Daniel
>
> On Wed, Mar 9, 2011 at 2:07 PM, Geoffrey Mina <geoffreymina@gmail.com
> <mailto:geoffreymina@gmail.com>> wrote:
>
>     There is nothing wrong with the carriers, so I wouldn't want to mark
>     them.  Just no route to destination type scenario.
>
>     I like daniels option with the drop on_branch.  Only challenge I
>     have is keeping a list of all the flags I have already tried.  Say I
>     have five carrier groups and I set the flags in gw to 1 2 3 4 or 5
>     respectivley.  How could I use an AVP to efficiently keep a running
>     list and then check against that list?
>
>     Thanks!
>
>     On Mar 8, 2011 9:02 PM, "Juha Heinanen" <jh@tutpro.com
>     <mailto:jh@tutpro.com>> wrote:
>     > Daniel-Constantin Mierla writes:
>     >
>     >> > The issue I am running into is that in a scenario where
>     >> > both my carriers respond with a 5XX, I end up presenting the
>     same call to
>     >> > all 4 gateways. I would like to present the call to one gateway
>     on each
>     >> > carrier and not try the same carriers second gateway for the same
>     >> > call.
>     >
>     > currently only lcr rule can be a stopper rule, i.e., if it matches,
>     > other matching rules are not tried.
>     >
>     > you can disable a failing gateway for some number of seconds, which
>     > should reduce unsuccessful attempts.
>     >
>     > -- juha
>
>
>
>
> --
> Daniel-Constantin Mierla
>   http://www.asipto.com
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users@lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users



--
Daniel-Constantin Mierla
  http://www.asipto.com