<div dir="ltr"><div><br></div><div>Only available in dev yes ... you could cherry-pick the 2 commits.<br><br>I think this code should work to copy an full stack of xavps without knowing how many there is.</div><div><span style="font-family:monospace"><br></span></div><div><span style="font-family:monospace">if (defined $xavp(x[0]))<br>    $avp_copy("x", 0, "y");<br>while (pv_unset("$xavp(x)")) {<br>    if(!defined $xavp(x)) {<br>        break;<br>    }<br>    $avp_copy("x",0,"y");<br>}</span><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 20, 2020 at 4:48 PM Ovidiu Sas <<a href="mailto:osas@voipembedded.com">osas@voipembedded.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">xavp_copy() is available only in dev.<br>
How can you copy an entire xavp, not just an element, without knowing<br>
the size of the stack?<br>
This doesn't work:<br>
    $var(i) = 0;<br>
    while (pv_isset("$xavp(x[$var(i)])")) {<br>
        xavp_copy("x", "$var(i)", "y");<br>
        $var(i) = $var(i) + 1;<br>
    }<br>
<br>
<br>
-ovidiu<br>
<br>
On Mon, Jan 20, 2020 at 6:34 PM Julien Chavanton <<a href="mailto:jchavanton@gmail.com" target="_blank">jchavanton@gmail.com</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> To print all the elements in the stack, you will have to do a while loop.<br>
> (You can make a copy using xavp_copy, it may come in handy in some cases)<br>
> while (pv_unset("$xavp(name)")) {<br>
>          // xavp_params_implode<br>
>         if(!defined $xavp(name)) {<br>
>                 break;<br>
>         }<br>
> }<br>
><br>
><br>
> Or if you know how many elements are present in the stack or you could use<br>
> while ($var(i) < x) {<br>
>     xavp_params_implode($xavp(route_set[$var(i)]....))<br>
>     $var(i) = $var(i) + 1;<br>
> }<br>
><br>
> Quick answer ...<br>
><br>
><br>
> On Mon, Jan 20, 2020 at 2:08 PM Ovidiu Sas <<a href="mailto:osas@voipembedded.com" target="_blank">osas@voipembedded.com</a>> wrote:<br>
>><br>
>> What's the best way to print the entire content of an xavp?<br>
>> The xavp_params_implode() doesn't print the entire stack of an xavp,<br>
>> only the top layer:<br>
>><br>
>> The following code produces "c=d;e=f;"<br>
>>     $xavp(x=>e) = "f";<br>
>>     $xavp(x[0]=>c) = "d";<br>
>>     $xavp(x[1]=>e) = "z";<br>
>>     $xavp(x[1]=>c) = "y";<br>
>>     xavp_params_implode("x", "$var(out)");<br>
>><br>
>> Is there a way to print everything inside $xavp(x)?<br>
>><br>
>> Thanks,<br>
>> Ovidiu<br>
>><br>
>> _______________________________________________<br>
>> Kamailio (SER) - Users Mailing List<br>
>> <a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
>> <a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
><br>
> _______________________________________________<br>
> Kamailio (SER) - Users Mailing List<br>
> <a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
> <a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
<br>
<br>
<br>
-- <br>
VoIP Embedded, Inc.<br>
<a href="http://www.voipembedded.com" rel="noreferrer" target="_blank">http://www.voipembedded.com</a><br>
<br>
_______________________________________________<br>
Kamailio (SER) - Users Mailing List<br>
<a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
</blockquote></div>