[OpenSIPS-Users] overwriting AVPs at certain index

Jayesh Nambiar jayesh.voip at gmail.com
Mon Nov 8 08:38:00 CET 2010


Thank you Bogdan, actually this does a proper job. What I was doing was
slightly different which I realized later, I was trying to initialize the
AVP like this directly in my script:
$avp(i:999) = 0;
$(avp(variable)[$avp(i:999]) = $avp(value);

This results an error in syslog saying:
ERROR:core:pv_set_avp: Failed to replace avp
ERROR:core:do_assign: setting PV failed

I guess initializing an AVP is important with some value before assigning a
value to certain index, something like this:
$avp(variable) = $avp(default_value);
$avp(i:999) = 0;
$(avp(variable)[$avp(i:999]) = $avp(value);

This works properly !!! So is it good to conclude that initializing an AVP
is important before trying to assign a value at any particular index.

--- Jayesh


> Hi Jayesh,
>
> Just tried the following script and it did the right job:
>
> <snap>
>    $avp(s:value1) = "abc";
>    $avp(s:value2) = "ABC";
>
>    $avp(s:variable) = $avp(s:value1);
>    $avp(i:999) = 0;
>    $(avp(s:variable)[$avp(i:999)]) = $avp(s:value2);
>
>    avp_print();
> </snap>
>
> and the result (from avp_print()) :
>
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp: p=0xb5ab5e48,
> flags=0x0000
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp:
> id=<999>
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp:
> val_int=<0>
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp: p=0xb5ab5e70,
> flags=0x0003
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp:
> name=<variable>
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp:
> val_str=<ABC / 3>
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp: p=0xb5ab5dc8,
> flags=0x0003
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp:
> name=<value2>
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp:
> val_str=<ABC / 3>
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp: p=0xb5ab5d88,
> flags=0x0003
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp:
> name=<value1>
> Nov  4 11:32:49 [12046] INFO:avpops:ops_print_avp:
> val_str=<abc / 3>
>
>
> Can you post the error/log you get?
>
> Regards,
> Bogdan
>
> Jayesh Nambiar wrote:
> > Hi All,
> > I am trying to overwrite certain values at specific index of AVP and
> > it doesn't work as expected. How I do it is:
> >
> > $avp(variable) = $avp(value1);
> > $avp(i:999) = 0;
> > $(avp(variable)[$avp(i:999)]) = $avp(value2);
> >
> > While executing this, opensips logs an error saying unable to replace
> > AVPs. Is the syntax wrong somewhere? I do this as I don't want to add
> > multiple values into single AVP and also I dont want to call
> > avp_delete function before assigning a new value to the AVP. Moreover
> > the value at $avp(i:999) can change and thus it is assigned to another
> > AVP.
> >
> > Any help related to AVP overwriting function would be very helpful.
> >
> > --- Jayesh
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20101108/775feeec/attachment.htm 


More information about the Users mailing list