Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
ref_manual:selects [2009/05/05 00:24] janakj created |
ref_manual:selects [2012/05/24 21:17] (current) oej |
||
---|---|---|---|
Line 4: | Line 4: | ||
You might ask, why the select framework was introduced at all? The main reason | You might ask, why the select framework was introduced at all? The main reason | ||
was that everytime you wanted to check any part (header, etc.) of the | was that everytime you wanted to check any part (header, etc.) of the | ||
- | incomming | + | incoming |
Moreover this function (due to historic limitations) might get at most two | Moreover this function (due to historic limitations) might get at most two | ||
parameters. If you need more you have to use workaround and set attributes | parameters. If you need more you have to use workaround and set attributes | ||
Line 39: | Line 39: | ||
text with the select identifier, so it must be enclosed in double quotes.) | text with the select identifier, so it must be enclosed in double quotes.) | ||
Xlog formatting also support selects as a element while composing the final | Xlog formatting also support selects as a element while composing the final | ||
- | value - the formatting element is '' | + | value - the formatting element is '' |
Return value of the select is text string, but be aware, it might be also | Return value of the select is text string, but be aware, it might be also | ||
Line 109: | Line 109: | ||
You can use the select in the conditional expressions like these: | You can use the select in the conditional expressions like these: | ||
- | | + | if (@select.value) {...} |
the test is true, when the select returns NON-EMPTY string. | the test is true, when the select returns NON-EMPTY string. | ||
- | * '' | + | < |
- | * '' | + | This way of using select |
+ | For sip-router the if will be true only if it returns a non-empty, non-zero numerical | ||
+ | The preferred correct ways for sip-router are: | ||
- | the result is true, when the select | + | if (@select.value!="" |
- | Instead of constant | + | |
- | @yet.another.select | + | |
- | * '' | + | or |
- | | + | |
+ | if (!strempty(@select.value)) | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | if (@select.value==" | ||
+ | if (" | ||
+ | |||
+ | the result is true, when the select is error-free and its return value is equal to " | ||
+ | Instead of a constant value, you can use any expression (it could involve avps, pvars or other selects). | ||
+ | |||
+ | | ||
+ | if (" | ||
in this case the test checks whether the two strings are different. If | in this case the test checks whether the two strings are different. If | ||
there is error during the select evaluation, the result is also false. | there is error during the select evaluation, the result is also false. | ||
- | * '' | + | |
true, when the string returned by select function matches the regular | true, when the string returned by select function matches the regular | ||
expression. In this case swapping of the left and right values matter, so | expression. In this case swapping of the left and right values matter, so | ||
- | * '' | + | |
is true when the " | is true when the " | ||
obtained as select' | obtained as select' | ||
- | You can also use the select | + | You can also use the select |
- | assignment. A new string-type attribute is created and the result value of | + | |
- | the select function call is assigned to this attribute. | + | |
- | * '' | + | E.g.: |
+ | | ||
===== Selects in Parameters ===== | ===== Selects in Parameters ===== | ||
Line 158: | Line 170: | ||
are system selects which' | are system selects which' | ||
- | * '' | + | * '' |
- | returns string representation of current process # | + | * '' |
- | * '' | + | * '' |
- | unix timestamp or | + | * '' |
- | * '' | + | |
- | UTC timestamp if you use different time zones | + | |
- | * '' | + | |
- | generates and returns random UUID (type 2) | + | |
===== Selects in Modules ===== | ===== Selects in Modules ===== | ||
Line 180: | Line 188: | ||
select, just make sure you have loaded all neccessary modules. | select, just make sure you have loaded all neccessary modules. | ||
+ | |||
+ | ===== Select List ===== | ||
+ | |||
+ | For a list with all the defined selects in the sip-router devel version (master branch), see | ||
+ | [[http:// |