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:transformations [2017/08/16 09:21] miconda [{uri.r2}] |
cookbooks:devel:transformations [2020/03/24 09:17] miconda [{s.count,c}] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Kamailio SIP Server v5.1.x (devel): Transformations ====== | + | ====== Kamailio SIP Server v5.4.x (devel): Transformations ====== |
< | < | ||
Line 153: | Line 153: | ||
Decode base64 encoded PV and return value | Decode base64 encoded PV and return value | ||
+ | ==== {s.encode.base64t} ==== | ||
+ | |||
+ | Return base64 encoding of PV value without trailing padding characters(' | ||
+ | |||
+ | |||
+ | ==== {s.decode.base64t} ==== | ||
+ | |||
+ | Decode base64 encoded PV, handling missing trailing padding characters, and return value. | ||
+ | |||
+ | ==== {s.encode.base64url} ==== | ||
+ | |||
+ | Return base64-url encoding of PV value | ||
+ | |||
+ | ==== {s.decode.base64url} ==== | ||
+ | |||
+ | Decode base64-url encoded PV and return value | ||
+ | |||
+ | ==== {s.encode.base64urlt} ==== | ||
+ | |||
+ | Return base64-url encoding of PV value without trailing padding characters(' | ||
+ | |||
+ | |||
+ | ==== {s.decode.base64urlt} ==== | ||
+ | |||
+ | Decode base64-url encoded PV, handling missing trailing padding characters, and return value. | ||
Line 307: | Line 332: | ||
$(var(x){s.rm, | $(var(x){s.rm, | ||
</ | </ | ||
+ | |||
+ | ==== {s.rmws} ==== | ||
+ | |||
+ | Remove occurrences of whitespace characters (' ', '\t, ' | ||
+ | |||
+ | <code c> | ||
+ | $(var(x){s.rmws}) | ||
+ | </ | ||
+ | ==== {s.corehash, | ||
+ | |||
+ | Return the hash id computed with Kamailio' | ||
+ | |||
+ | Note: the value is returned as string. | ||
+ | |||
+ | <code c> | ||
+ | $(var(x){s.corehash}) | ||
+ | </ | ||
+ | |||
+ | ==== {s.unquote} ==== | ||
+ | |||
+ | Return the value without surrounding single (') or double quotes ("). | ||
+ | |||
+ | <code c> | ||
+ | $var(x) = " | ||
+ | $var(alice) = $(var(x){s.unquote}); | ||
+ | </ | ||
+ | |||
+ | ==== {s.unbracket} ==== | ||
+ | |||
+ | Return the value without surrounding (), [], {} or <>. | ||
+ | |||
+ | <code c> | ||
+ | $var(x) = "< | ||
+ | $var(uri) = $(var(x){s.unbracket}); | ||
+ | </ | ||
+ | |||
+ | ==== {s.count,c} ==== | ||
+ | |||
+ | Count how many times c appears in the pv value. | ||
+ | |||
+ | <code c> | ||
+ | abababa" | ||
+ | # will return 4 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== {s.urlencode.param} ==== | ||
+ | |||
+ | Encode the value for URL param format. | ||
+ | |||
+ | ==== {s.urldecode.param} ==== | ||
+ | |||
+ | Decode the value from URL param format. | ||
+ | |||
===== URI Transformations ===== | ===== URI Transformations ===== | ||
Line 375: | Line 454: | ||
Return the string value of URI scheme. | Return the string value of URI scheme. | ||
+ | ==== {uri.tosocket} ==== | ||
+ | |||
+ | Return the string value corresponding to socket address matching proto, address and port from the URI. In other words, converts from a format like **sip: | ||
+ | |||
+ | Example: | ||
+ | |||
+ | < | ||
+ | " | ||
+ | </ | ||
===== Parameters List Transformations ===== | ===== Parameters List Transformations ===== | ||
The name of the transformation starts with ' | The name of the transformation starts with ' | ||
- | Available transformations in this class: | + | Available transformations in this class are presented in the next sections. |
+ | |||
+ | **Important Note:** the delimiter cannot be comma (,), because this transformation is using SIP header/URI parameters parser and the comma is a delimiter between serialized SIP header/URI bodies. The workaround is to use the subst transformation to replace the comma with another character that is used then as separator. | ||
Line 563: | Line 653: | ||
==== {re.subst, | ==== {re.subst, | ||
- | Perform | + | Perform |
<code c> | <code c> | ||
Line 674: | Line 764: | ||
$(hu{url.querystring}) => " | $(hu{url.querystring}) => " | ||
+ | </ | ||
+ | |||
+ | ===== JSON Transformations ===== | ||
+ | |||
+ | <fc # | ||
+ | |||
+ | |||
+ | ==== {json.parse} ==== | ||
+ | |||
+ | You can use the transformation to extract values from the json structured pseudo-variables | ||
+ | |||
+ | < | ||
+ | |||
+ | $var(Custom-Data) = $(rb{json.parse, | ||
+ | |||
</ | </ | ||