[SR-Users] Multi-Array with AVPs

Daniel-Constantin Mierla miconda at gmail.com
Wed Oct 28 15:39:15 CET 2015


Hello,

when adding an xavp structure, use:

$xavp(a=>b) = "...";

Now, adding another fieldx to the structure:

$xavp(a[0]=>c) = "...";
$xavp(a[0]=>d) = "...";

Pushing another new structure means starting from beginning:

$xavp(a=>b) = "...";

The previous structure will be available at index 1:

$xavp(a[1]=>b) = "...";

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.

Cheers,
Daniel

On 24/10/15 21:38, Jonathan Hunter wrote:
> Hi Alex and guys,
>
> Are there any further examples of XAVPs used in this manner?
>
> So associate a number of variables by another variable?
>
> I am trying with a number of scenarios but the penny is  yet to drop!
>
> Sorry!
>
> Jon
>
>
>  
> From: hunterj91 at hotmail.com
> To: sr-users at lists.sip-router.org
> Date: Fri, 23 Oct 2015 17:13:47 +0000
> Subject: [SR-Users] Multi-Array with AVPs
>
> Alex,
>
> Thanks for the fast response!
>
> I dont like hard mode, my lifes tough enough :)
>
> Will try the XAVPs.
>
> Thanks
>
> Jon
>
> > To: sr-users at lists.sip-router.org
> > From: abalashov at evaristesys.com
> > Date: Fri, 23 Oct 2015 13:07:27 -0400
> > Subject: Re: [SR-Users] Multi-Array with AVPs
> >
> > Jon,
> >
> > For complex, nonscalar structures where members can be other AVP
> > nonscalars, you might wish to consider XAVPs instead:
> >
> >
> http://www.kamailio.org/wiki/cookbooks/4.3.x/pseudovariables#xavp_id_-_xavps
> >
> > Otherwise, you're playing life on hard mode. ;-)
> >
> > -- Alex
> >
> > On 10/23/2015 01:00 PM, Jonathan Hunter wrote:
> >
> > > Hi Guys,
> > >
> > > Hope all are well?
> > >
> > > sorry to post but Im just trying to get something working where Im
> > > trying to convert a php function script into the kamailio.cfg.
> > >
> > > Im getting there but wonder how I can group results of sets of
> avps with
> > > another avp.
> > >
> > > Say I have these variables;
> > >
> > > $(avp(NTgrp)) =
> > >
> 'SB100_000361 at 1.2.3.4|SB100_000213 at 1.2.3.5|SB100_000225 at 1.2.3.6|SB100_000361 at 1.2.3.7|SB100_000213 at 1.2.3.8';
> > > $(avp(Prio)) = '1|1|1|2|2';
> > > $(avp(Wgt)) = '10000|10000|80000|30000|70000';
> > > $(avp(CInc)) = '0|0|1|0|1';
> > > $(avp(WTot))= '100000|100000|100000|100000|100000';
> > > I then run a while script to split up their variables via the
> delimiter
> > > | in user;
> > >
> > > $var(j)=0;
> > > while($var(j)<$var(count)) {
> > > $(avp(NTgrpP))=$(avp(NTgrp){s.select,$var(j),|});
> > > $(avp(PrioP))=$(avp(Prio){s.select,$var(j),|});
> > > $(avp(WgtP))=$(avp(Wgt){s.select,$var(j),|});
> > > $(avp(CIncP))=$(avp(CInc){s.select,$var(j),|});
> > > $(avp(WTotP))=$(avp(WTot){s.select,$var(j),|});
> > > xlog("L_INFO"," Now Each time we have $(avp(NTgrpP)) $(avp(PrioP))
> > > $(avp(WgtP)) $(avp(CIncP)) $(avp(WTotP))\n");
> > > $var(j)=$var(j)+1;
> > > }
> > >
> > > This then results in;
> > > INFO: <script>: Now Each time we have SB100_000223 at 1.2.3.4 1 10000
> 0 100000
> > > INFO: <script>: Now Each time we have SB100_000225 at 1.2.3.5 1 10000
> 0 100000
> > > INFO: <script>: Now Each time we have SB100_000386 at 1.2.3.6 1 80000
> 0 100000
> > > INFO: <script>: Now Each time we have SB100_000213 at 1.2.3.7 2 30000
> 0 100000
> > > INFO: <script>: Now Each time we have SB100_000361 at 1.2.3.8 2 70000
> 0 100000
> > >
> > > Now what Id like to do is group them via priorities so I can do some
> > > further functional checks on them when in same priority group, as you
> > > can see there are 3 results at priority 1 and 2 at priority 2.
> > >
> > > Is there away I can create something of a multi-array using the AVP
> > > $(avp(PrioP)) I just created so I can group by priority?
> > >
> > > As in php I would do something like;
> > >
> > > $multi_arr[$prio_arr[$p]][] = array(
> > > "ntgrp" => $ntgrp_arr[$p],
> > > "prio" => $prio_arr[$p],
> > > "wght" => $wght_arr[$p],
> > > "cinc" => $cinc_arr[$p],
> > > "wtot" => $wtot_arr[$p],
> > > );
> > > }
> > >
> > > Any help would be great.
> > >
> > > Many thanks
> > >
> > > Jon
> > >
> > >
> > >
> > > _______________________________________________
> > > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing
> list
> > > sr-users at lists.sip-router.org
> > > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
> > >
> >
> >
> > --
> > Alex Balashov | Principal | Evariste Systems LLC
> > 303 Perimeter Center North, Suite 300
> > Atlanta, GA 30346
> > United States
> >
> > Tel: +1-800-250-5920 (toll-free) / +1-678-954-0671 (direct)
> > Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
> >
> > _______________________________________________
> > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> > sr-users at lists.sip-router.org
> > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
> _______________________________________________ SIP Express Router
> (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio - http://www.asipto.com
Kamailio Advanced Training, Nov 30-Dec 2, Berlin - http://asipto.com/kat

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20151028/37be7453/attachment.html>


More information about the sr-users mailing list