User Tools

Site Tools


cookbooks:devel:transformations

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
cookbooks:devel:transformations [2020/08/29 21:21]
miconda [{uri.suri}]
cookbooks:devel:transformations [2021/06/25 10:01]
miconda [{s.after,x}]
Line 1: Line 1:
 ====== Transformations ====== ====== Transformations ======
  
-Version: Kamailio SIP Server v5.5.x (devel)+Version: Kamailio SIP Server v5.6.x (devel)
  
 <code> <code>
Line 375: Line 375:
  
 <code c> <code c>
-abababa"{s.count,a}+"abababa"{s.count,a}
 # will return 4 # will return 4
 </code> </code>
  
 +==== {s.after,x} ====
  
 +Return the part of the string after the character **x** searched from the start of the value. If the character **x** is not found, it returns empty string.
 +
 +<code c>
 +"abcdef"{s.after,c}
 +# will return "def"
 +</code>
 +
 +==== {s.rafter,x} ====
 +
 +Return the part of the string after the character **x** searched from the end of the value. If the character **x** is not found, it returns empty string.
 +
 +<code c>
 +"abcdefcgh"{s.rafter,c}
 +# will return "gh"
 +</code>
 +==== {s.before,x} ====
 +
 +Return the part of the string before the character **x**. If the character **x** is not found, it returns the entire input string.
 +
 +<code c>
 +"abcdef"{s.before,c}
 +# will return "ab"
 +</code>
 ==== {s.urlencode.param} ==== ==== {s.urlencode.param} ====
  
Line 475: Line 499:
 $var(ouri) = "sip:alice@server.com:5060;nat=yes;transport=tcp;line=xyz"; $var(ouri) = "sip:alice@server.com:5060;nat=yes;transport=tcp;line=xyz";
 $var(duri) = $(var(ouri){uri.duri}); # => "sip:server.com:5060;transport=tcp" $var(duri) = $(var(ouri){uri.duri}); # => "sip:server.com:5060;transport=tcp"
 +</code>
 +
 +==== {uri.saor} ====
 +
 +Return the SIP AoR, keeping only schema, user and host. If user is not in the original value, it is also not in the returned value.
 +
 +Example:
 +
 +<code c>
 +$var(ouri) = "sip:alice@server.com:5060;nat=yes;transport=tcp;line=xyz";
 +$var(suri) = $(var(ouri){uri.saor}); # => "sip:alice@server.com"
 </code> </code>
  
Line 503: Line 538:
 <code> <code>
 "a=1;b=2;c=3"{param.value,c} = "3" "a=1;b=2;c=3"{param.value,c} = "3"
 +</code>
 +
 +'name' can be a pseudo-variable
 +
 +'delimiter' allows you to specify a single character to use as the parameter delimiter. For example, when parsing HTTP URL query strings use '&'.
 +
 +==== {param.in,name[,delimiter]} ====
 +
 +Return 1 if the parameter 'name' is found in parameters list, 0 if not found.
 +
 +Example:
 +<code>
 +"a=1;b=2;c=3"{param.in,c} = 1
 </code> </code>
  
Line 621: Line 669:
 ==== {line.at,pos} ==== ==== {line.at,pos} ====
  
-Return the line at position 'pos'. The index start from 0. Negative position can be used to count from last line (which is -1).+Return the line at position 'pos'. The index start from 0. Negative position can be used to count from last line (which is -1). The pos can be also a variable holding the index value.
  
 Example: Example:
Line 803: Line 851:
 $var(Custom-Data) = $(rb{json.parse,Custom-Data}); $var(Custom-Data) = $(rb{json.parse,Custom-Data});
  
 +</code>
 +
 +===== URI Alias Transformations =====
 +
 +Transformations related to URI alias values (**addr~port~protoid**).
 +
 +==== {urialias.encode} ====
 +
 +Encode SIP URI to alias value.
 +
 +<code c>
 +"sip:127.0.0.1:5060;transport=udp"{urialias.encode} => "127.0.0.1~5060~1"
 +</code>
 +
 +==== {urialias.decode} ====
 +
 +Decode from alias value to SIP URI.
 +
 +<code c>
 +"127.0.0.1~5060~1"{urialias.decode} => "sip:127.0.0.1:5060;transport=udp"
 </code> </code>
  
cookbooks/devel/transformations.txt ยท Last modified: 2022/04/08 18:08 by miconda