Login | Register


About -> News -> Pseudovariable implementation extended

Pseudovariable implementation extended

The pseudovariable implementation has been extended with new operations to give more power to the script writer:

1. Added 2 new operations on pseudovariables values from the script:

  • delete the pseudovariable at a certain index; syntax: pvar[_index_]=NULL.
  • overwrite the value of a pseudovariable at a certain index; syntax: pvar[_index_]=_value_.

Ex: $(avp(i:10)[1])=NULL.

2. Added one new function for avp: inserts a value to an avp set at a certain position

  • syntax: avp_insert.

3. Added operations for set values of pseudovariables:

  • count the number of values; syntax: set_count(_pvar_name_).
  • select an element from the set based on fitness. The selection algorithm is the genetic algorithm roulette-wheel selection. One usage example is selecting a route based on costs. syntax: set_select_weight(_pvar_name_); it returns the index of the selected value.

4. Added a new transformation: extract a parameter from a To like header

  • syntax: {nameaddr.param,param_name}
  • example: "test" <sip:test@opensips.org>;tag=dat43h' {nameaddr.param,tag} = dat43h

5. Added context meaning to pseudovariables - a new token added in front of the pv type name that specifies the context where the pv should be taken from The implementation is made general - with a mechanism of registering pv context functions, allowing for extensions and addition of custom contexts. For now there are 2 pv contexts: reply and request, registered by the tm module.

  • example:
    • referencing $(<request>ru) from a reply route will get the Request-URI from the request
    • the <reply> context can be used from failure route to access information from the reply.

Page last modified on September 29, 2009, at 02:15 PM