This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
cookbooks:devel:pseudovariables [2020/04/01 15:44] miconda [$xavp(id) - XAVPs] |
cookbooks:devel:pseudovariables [2020/04/02 21:57] miconda [$xavp(id) - XAVPs] |
||
---|---|---|---|
Line 248: | Line 248: | ||
**$fn** - reference to display name of ' | **$fn** - reference to display name of ' | ||
- | ==== $fs - Forced | + | ==== $fs - Forced |
- | **$fs** - reference to the forced socket for message | + | **$fs** - reference to the forced |
<fc # | <fc # | ||
+ | |||
+ | Example: | ||
+ | |||
+ | <code c> | ||
+ | listen=udp: | ||
+ | ... | ||
+ | $fs = " | ||
+ | </ | ||
+ | |||
+ | ==== $fsn - Forced Send Socket Name ==== | ||
+ | |||
+ | **$fsn** - reference to the name of the forced send socket for the SIP message. The name can be assigned to this variable to select a send socket via its name. | ||
+ | |||
+ | <code c> | ||
+ | listen=udp: | ||
+ | ... | ||
+ | $fsn = " | ||
+ | ... | ||
+ | $fs = " | ||
+ | xdbg(" | ||
+ | </ | ||
==== $ft - From tag ==== | ==== $ft - From tag ==== | ||
Line 714: | Line 735: | ||
===== $xavp(id) - XAVPs ===== | ===== $xavp(id) - XAVPs ===== | ||
- | xavp - extended AVP' | + | **xavp** - eXtended AVPs - are variables |
+ | |||
+ | They work like a stack, | ||
+ | |||
+ | Each xavp has a string | ||
+ | |||
+ | To assign a single | ||
<code c> | <code c> | ||
- | $xavp(root=> | + | $xavp(root)=" |
+ | $xavp(root)=intnumber; | ||
+ | </code> | ||
+ | |||
+ | To assign a named value use: | ||
+ | |||
+ | <code c> | ||
+ | $xavp(root=> | ||
+ | $xavp(root=> | ||
</ | </ | ||
Like avps, xavp act like a stack. To refer to an existing value, use an index. The newest xavp has index zero [0]. | Like avps, xavp act like a stack. To refer to an existing value, use an index. The newest xavp has index zero [0]. | ||
+ | |||
<code c> | <code c> | ||
- | $xavp(root[0]=> | + | $xavp(root[0]=> |
</ | </ | ||
If you assign a value without an index, a new xavp is allocated and the old one is pushed up the stack, becoming index [1]. Old index [1] becomes [2] etc. | If you assign a value without an index, a new xavp is allocated and the old one is pushed up the stack, becoming index [1]. Old index [1] becomes [2] etc. | ||
+ | |||
<code c> | <code c> | ||
- | $xavp(example=>name)="one"; | + | # new item (person => [(lastname = " |
- | #create | + | $xavp(person=>lastname)="Smith"; |
- | $xavp(example=>name)="two"; | + | |
- | #add extra value to "two" | + | # add new item (person => [(lastname = " |
- | $xavp(example[0]=>value)=" | + | $xavp(person=>lastname)="Doe"; |
- | #add value to first variable - "one" | + | |
- | $xavp(example[1]=>value)="Anna"; | + | # add another named value to the last example item |
+ | # | ||
+ | $xavp(person[0]=>firstname)=" | ||
+ | |||
+ | # add another named value to first example item | ||
+ | # | ||
+ | xavp(person[1]=>firstname)="Alice"; | ||
</ | </ | ||
Line 738: | Line 782: | ||
Another example: | Another example: | ||
<code c> | <code c> | ||
- | # Create | + | # create |
$xavp(sf=> | $xavp(sf=> | ||
- | #assign | + | # add named values |
$xavp(sf[0]=> | $xavp(sf[0]=> | ||
$xavp(sf[0]=> | $xavp(sf[0]=> | ||
$xavp(sf[0]=> | $xavp(sf[0]=> | ||
- | #create new xavp, moving previous one to sf[1] | + | # create new (the second) root xavp with a named value of string type, moving previous one to sf[1] |
$xavp(sf=> | $xavp(sf=> | ||
+ | # add named values (child values) | ||
$xavp(sf[0]=> | $xavp(sf[0]=> | ||
$xavp(sf[0]=> | $xavp(sf[0]=> | ||
- | #Create a third xavp | + | # create new (the third) xavp with a named value of string type, moving previous one to sf[1] and the other one to sf[2] |
$xavp(sf=> | $xavp(sf=> | ||
+ | # add named values (child values) | ||
$xavp(sf[0]=> | $xavp(sf[0]=> | ||
$xavp(sf[0]=> | $xavp(sf[0]=> | ||
Line 758: | Line 804: | ||
</ | </ | ||
- | xavps are read and write variables. You can create multilevel xavps, as xavps may contain xavps. | + | xavps are read and write variables. |
===== $xavu(id) - XAVUs ===== | ===== $xavu(id) - XAVUs ===== |