<div dir="ltr">Glad to see that <span style="font-family:monospace">pv_isset</span> can be used, I will use this one more, it seems more consistent than some other alternatives !<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 21, 2020 at 7:35 AM 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">Here's something that works:<br>
    $xavp(x=>a) = "1";<br>
    $xavp(x[0]=>b) = "2";<br>
    $xavp(x=>a) = "10";<br>
    $xavp(x[0]=>b) = "20";<br>
    $xavp(x=>a) = "100";<br>
    $xavp(x[0]=>b) = "200";<br>
<br>
<br>
    $var(i) = 0;<br>
    while (pv_isset("$xavp(x[$var(i)])")) {<br>
        xlog("L_INFO", "[$mi] xavp_copy $var(i)\n");<br>
        xavp_copy("x", "$var(i)", "y");<br>
        $var(i) = $var(i) + 1;<br>
    }<br>
    xlog("L_INFO", "[$mi] x is duplicated to y\n");<br>
<br>
    $var(i) = 0;<br>
    while (pv_isset("$xavp(y[0])")) {<br>
        xavp_params_implode("y", "$var(out)");<br>
        xlog("L_INFO", "[$mi] xavp(y[$var(i)])=$var(out)\n");<br>
        pv_unset("$xavp(y[0)");<br>
        $var(i) = $var(i) + 1;<br>
    }<br>
<br>
<br>
The output:<br>
Jan 21 10:18:12 asrock k[29060]: INFO: <script>: [1258] xavp_copy 0<br>
Jan 21 10:18:12 asrock k[29060]: INFO: <script>: [1258] xavp_copy 1<br>
Jan 21 10:18:12 asrock k[29060]: INFO: <script>: [1258] xavp_copy 2<br>
Jan 21 10:18:12 asrock k[29060]: INFO: <script>: [1258] x is duplicated to y<br>
Jan 21 10:18:12 asrock k[29060]: INFO: <script>: [1258] xavp(y[0])=b=200;a=100;<br>
Jan 21 10:18:12 asrock k[29060]: INFO: <script>: [1258] xavp(y[1])=b=20;a=10;<br>
Jan 21 10:18:12 asrock k[29060]: INFO: <script>: [1258] xavp(y[2])=b=2;a=1;<br>
<br>
-ovidiu<br>
<br>
On Tue, Jan 21, 2020 at 12:54 AM Julien Chavanton <<a href="mailto:jchavanton@gmail.com" target="_blank">jchavanton@gmail.com</a>> wrote:<br>
><br>
> This code as it is is useless, unless we print the content or do something before making the copy but can provide a way to to duplicate/reorder stacks.<br>
><br>
> Maybe looping over<br>
><br>
>   if (defined $xavp(x[$var(i)]))<br>
><br>
> Is sufficient, no need to pv_unset<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>