<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Sorry Daniel, missed off list!<div><br></div><div><span style="color: rgb(68, 68, 68); font-size: 15px; line-height: 21.3px; background-color: rgb(255, 255, 255);">Hi Daniel,</span><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.3px;"></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">Great thanks for that response, I have been working with AVPs and Im almost there.</div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.3px;"></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">I will certainly check out the jansson module, is that new to 4.3 as Im currently on 4.2?</div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.3px;"></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">In terms of AVPs, if you have an array structure in place, I appreciate it pushes entries up the stack, but can you set a specific index value to an AVP?</div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.3px;"></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">As I basically want to move the first entry in the Array and move it to the end, ie I have;</div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.3px;"></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><div style="line-height: 21.3px;">$(avp(Pgrp1)[0]);</div><div style="line-height: 21.3px;">$(avp(Pgrp1)[1]);</div><div style="line-height: 21.3px;">$(avp(Pgrp1)[2]);</div></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.3px;"></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">Can I swap <span style="line-height: 22.72px; font-size: 12pt;">[0] with </span><span style="line-height: 22.72px; font-size: 12pt;">[2] without setting entries to null and rebuilding the avp from scratch?</span></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><span style="line-height: 22.72px; font-size: 12pt;"><br style="line-height: 22.72px;"></span></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><span style="line-height: 22.72px; font-size: 12pt;">Thanks</span></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><span style="line-height: 22.72px; font-size: 12pt;"><br style="line-height: 22.72px;"></span></div><div style="line-height: 21.3px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><span style="line-height: 22.72px; font-size: 12pt;">Jon</span></div><br><div><hr id="stopSpelling">To: sr-users@lists.sip-router.org<br>From: miconda@gmail.com<br>Date: Wed, 28 Oct 2015 15:39:15 +0100<br>Subject: Re: [SR-Users] Multi-Array with AVPs<br><br>
Hello,<br>
<br>
when adding an xavp structure, use:<br>
<br>
$xavp(a=>b) = "...";<br>
<br>
Now, adding another fieldx to the structure:<br>
<br>
$xavp(a[0]=>c) = "...";<br>
$xavp(a[0]=>d) = "...";<br>
<br>
Pushing another new structure means starting from beginning:<br>
<br>
$xavp(a=>b) = "...";<br>
<br>
The previous structure will be available at index 1:<br>
<br>
$xavp(a[1]=>b) = "...";<br>
<br>
As alternative, maybe it is easier to return (or pack) all those
attributes in a json document and then use jansson module to
navigate through it via json-path mechanism.<br>
<br>
Cheers,<br>
Daniel<br>
<br>
<div class="ecxmoz-cite-prefix">On 24/10/15 21:38, Jonathan Hunter
wrote:<br>
</div>
<blockquote cite="mid:DUB127-W33480CF7FA2CBBC7691360BD250@phx.gbl">
<style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}
.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}
--></style>
<div dir="ltr">Hi Alex and guys,
<div><br>
</div>
<div>Are there any further examples of XAVPs used in this
manner?</div>
<div><br>
</div>
<div>So associate a number of variables by another variable?</div>
<div><br>
</div>
<div>I am trying with a number of scenarios but the penny is
yet to drop!</div>
<div><br>
</div>
<div>Sorry!</div>
<div><br>
</div>
<div>Jon</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div>From: <a class="ecxmoz-txt-link-abbreviated" href="mailto:hunterj91@hotmail.com">hunterj91@hotmail.com</a><br>
To: <a class="ecxmoz-txt-link-abbreviated" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><br>
Date: Fri, 23 Oct 2015 17:13:47 +0000<br>
Subject: [SR-Users] Multi-Array with AVPs<br>
<br>
<style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}
.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}
--></style>
<div dir="ltr">Alex,
<div><br>
</div>
<div>Thanks for the fast response!</div>
<div><br>
</div>
<div>I dont like hard mode, my lifes tough enough :)</div>
<div><br>
</div>
<div>Will try the XAVPs.</div>
<div><br>
</div>
<div>Thanks</div>
<div><br>
</div>
<div>Jon</div>
<div><br>
<div>> To: <a class="ecxmoz-txt-link-abbreviated" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><br>
> From: <a class="ecxmoz-txt-link-abbreviated" href="mailto:abalashov@evaristesys.com">abalashov@evaristesys.com</a><br>
> Date: Fri, 23 Oct 2015 13:07:27 -0400<br>
> Subject: Re: [SR-Users] Multi-Array with AVPs<br>
> <br>
> Jon,<br>
> <br>
> For complex, nonscalar structures where members
can be other AVP <br>
> nonscalars, you might wish to consider XAVPs
instead:<br>
> <br>
>
<a class="ecxmoz-txt-link-freetext" href="http://www.kamailio.org/wiki/cookbooks/4.3.x/pseudovariables#xavp_id_-_xavps" target="_blank">http://www.kamailio.org/wiki/cookbooks/4.3.x/pseudovariables#xavp_id_-_xavps</a><br>
> <br>
> Otherwise, you're playing life on hard mode. ;-)<br>
> <br>
> -- Alex<br>
> <br>
> On 10/23/2015 01:00 PM, Jonathan Hunter wrote:<br>
> <br>
> > Hi Guys,<br>
> ><br>
> > Hope all are well?<br>
> ><br>
> > sorry to post but Im just trying to get
something working where Im<br>
> > trying to convert a php function script into
the kamailio.cfg.<br>
> ><br>
> > Im getting there but wonder how I can group
results of sets of avps with<br>
> > another avp.<br>
> ><br>
> > Say I have these variables;<br>
> ><br>
> > $(avp(NTgrp)) =<br>
> >
'<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000361@1.2.3.4">SB100_000361@1.2.3.4</a>|<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000213@1.2.3.5">SB100_000213@1.2.3.5</a>|<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000225@1.2.3.6">SB100_000225@1.2.3.6</a>|<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000361@1.2.3.7">SB100_000361@1.2.3.7</a>|<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000213@1.2.3.8">SB100_000213@1.2.3.8</a>';<br>
> > $(avp(Prio)) = '1|1|1|2|2';<br>
> > $(avp(Wgt)) =
'10000|10000|80000|30000|70000';<br>
> > $(avp(CInc)) = '0|0|1|0|1';<br>
> > $(avp(WTot))=
'100000|100000|100000|100000|100000';<br>
> > I then run a while script to split up their
variables via the delimiter<br>
> > | in user;<br>
> ><br>
> > $var(j)=0;<br>
> > while($var(j)<$var(count)) {<br>
> >
$(avp(NTgrpP))=$(avp(NTgrp){s.select,$var(j),|});<br>
> >
$(avp(PrioP))=$(avp(Prio){s.select,$var(j),|});<br>
> >
$(avp(WgtP))=$(avp(Wgt){s.select,$var(j),|});<br>
> >
$(avp(CIncP))=$(avp(CInc){s.select,$var(j),|});<br>
> >
$(avp(WTotP))=$(avp(WTot){s.select,$var(j),|});<br>
> > xlog("L_INFO"," Now Each time we have
$(avp(NTgrpP)) $(avp(PrioP))<br>
> > $(avp(WgtP)) $(avp(CIncP))
$(avp(WTotP))\n");<br>
> > $var(j)=$var(j)+1;<br>
> > }<br>
> ><br>
> > This then results in;<br>
> > INFO: <script>: Now Each time we have
<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000223@1.2.3.4">SB100_000223@1.2.3.4</a> 1 10000 0 100000<br>
> > INFO: <script>: Now Each time we have
<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000225@1.2.3.5">SB100_000225@1.2.3.5</a> 1 10000 0 100000<br>
> > INFO: <script>: Now Each time we have
<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000386@1.2.3.6">SB100_000386@1.2.3.6</a> 1 80000 0 100000<br>
> > INFO: <script>: Now Each time we have
<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000213@1.2.3.7">SB100_000213@1.2.3.7</a> 2 30000 0 100000<br>
> > INFO: <script>: Now Each time we have
<a class="ecxmoz-txt-link-abbreviated" href="mailto:SB100_000361@1.2.3.8">SB100_000361@1.2.3.8</a> 2 70000 0 100000<br>
> ><br>
> > Now what Id like to do is group them via
priorities so I can do some<br>
> > further functional checks on them when in
same priority group, as you<br>
> > can see there are 3 results at priority 1
and 2 at priority 2.<br>
> ><br>
> > Is there away I can create something of a
multi-array using the AVP<br>
> > $(avp(PrioP)) I just created so I can group
by priority?<br>
> ><br>
> > As in php I would do something like;<br>
> ><br>
> > $multi_arr[$prio_arr[$p]][] = array(<br>
> > "ntgrp" => $ntgrp_arr[$p],<br>
> > "prio" => $prio_arr[$p],<br>
> > "wght" => $wght_arr[$p],<br>
> > "cinc" => $cinc_arr[$p],<br>
> > "wtot" => $wtot_arr[$p],<br>
> > );<br>
> > }<br>
> ><br>
> > Any help would be great.<br>
> ><br>
> > Many thanks<br>
> ><br>
> > Jon<br>
> ><br>
> ><br>
> ><br>
> >
_______________________________________________<br>
> > SIP Express Router (SER) and Kamailio
(OpenSER) - sr-users mailing list<br>
> > <a class="ecxmoz-txt-link-abbreviated" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><br>
> >
<a class="ecxmoz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><br>
> ><br>
> <br>
> <br>
> -- <br>
> Alex Balashov | Principal | Evariste Systems LLC<br>
> 303 Perimeter Center North, Suite 300<br>
> Atlanta, GA 30346<br>
> United States<br>
> <br>
> Tel: +1-800-250-5920 (toll-free) /
+1-678-954-0671 (direct)<br>
> Web: <a class="ecxmoz-txt-link-freetext" href="http://www.evaristesys.com/" target="_blank">http://www.evaristesys.com/</a>,
<a class="ecxmoz-txt-link-freetext" href="http://www.csrpswitch.com/" target="_blank">http://www.csrpswitch.com/</a><br>
> <br>
> _______________________________________________<br>
> SIP Express Router (SER) and Kamailio (OpenSER) -
sr-users mailing list<br>
> <a class="ecxmoz-txt-link-abbreviated" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><br>
>
<a class="ecxmoz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><br>
</div>
</div>
</div>
<br>
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
mailing list
<a class="ecxmoz-txt-link-abbreviated" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a>
<a class="ecxmoz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a></div>
</div>
</div>
<br>
<fieldset class="ecxmimeAttachmentHeader"></fieldset>
<br>
<pre>_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
<a class="ecxmoz-txt-link-abbreviated" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a>
<a class="ecxmoz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
</blockquote>
<br>
<pre class="ecxmoz-signature">--
Daniel-Constantin Mierla
<a class="ecxmoz-txt-link-freetext" href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a class="ecxmoz-txt-link-freetext" href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a>
Book: SIP Routing With Kamailio - <a class="ecxmoz-txt-link-freetext" href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
Kamailio Advanced Training, Nov 30-Dec 2, Berlin - <a class="ecxmoz-txt-link-freetext" href="http://asipto.com/kat" target="_blank">http://asipto.com/kat</a></pre>
<br>_______________________________________________
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</div></div> </div></body>
</html>