[SR-Users] Multi-Array with AVPs

Jonathan Hunter hunterj91 at hotmail.com
Thu Oct 29 09:40:22 CET 2015


Sorry Daniel, missed off list!
Hi Daniel,Great thanks for that response, I have been working with AVPs and Im almost there.I will certainly check out the jansson module, is that new to 4.3 as Im currently on 4.2?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?As I basically want to move the first entry in the Array and move it to  the end, ie I have;$(avp(Pgrp1)[0]);$(avp(Pgrp1)[1]);$(avp(Pgrp1)[2]);Can I swap [0] with [2] without setting  entries to null and rebuilding the avp from scratch?ThanksJon
To: sr-users at lists.sip-router.org
From: miconda at gmail.com
Date: Wed, 28 Oct 2015 15:39:15 +0100
Subject: Re: [SR-Users] Multi-Array with AVPs


  
    
  
  
    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
  


_______________________________________________
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 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20151029/b0827fd3/attachment.html>


More information about the sr-users mailing list