The term “pseudo-variable” is used for special
tokens that can be given as parameters to different script functions and they
will be replaced with a value before the execution of the function.
The beginning of a “pseudo-variable” is marked by
the character “$”. If you want to have the character
“$” just double it “$$”.
There is a set of predefined pseudo-variables, which have the name composed
from one to three letters, and special pseudo-variables that are references to
dynamic fields (AVP and Headers)
3. The list of
pseudo-variables in OpenSER
Predefined pseudo-variables are listed in alphabetical order.
3.1. Pseudo-variable
marker
$$ - represents the character '$'
$ar - realm from Authorization or
Proxy-Authorization header
$au - username from Authorization or
Proxy-Authorization header
3.4. Request's first
branch
$br - reference to request's first branch
3.5. Request's all
branches
$bR - reference to request's all branches
$ci - reference to body of call-id header
$cl - reference to body of content-length
header
$cs - reference to body of cseq header
$ct - reference to body of contact header
$cT - reference to body of content-type header
3.11. Domain of destination
URI
$dd - reference to domain of destination uri
3.12. Port of destination
URI
$dp - reference to port of destination uri
3.13. Transport protocol of destination
URI
$dP - reference to transport protocol of
destination uri
$ds - reference to destination set
$du - reference to destination uri
$fd - reference to domain in URI of 'From'
header
$fn - reference to display name of 'From'
header
$ft - reference to tag parameter of 'From'
header
$fu - reference to URI of 'From' header
$fU - reference to username in URI of 'From'
header
$mb - reference to SIP message buffer
$mf - reference to flags set for current SIP
request
3.23. Flags in
hexadecimal
$mF -reference to flags set for current SIP
request in hexa
$mi - reference to SIP message id
$ml - reference to SIP message length
3.26. Domain in SIP Request's original
URI
$od - reference to domain in request's
original URI
3.27. Port of SIP request's original
URI
$op - reference to port of original R-URI
3.28. Transport protocol of SIP request
original URI
$oP - reference to transport protocol of
original R-URI
3.29. SIP Request's original
URI
$ou - reference to request's original URI
3.30. Username in SIP Request's original
URI
$oU - reference to username in request's
original URI
$pp - reference to process id (pid)
3.32. Domain in SIP Request's
URI
$rd - reference to domain in request's URI
3.33. Body of
request/reply
$rb - reference to message body
$rc - reference to returned code by last
invoked function
3.35. SIP request's
method
$rm - reference to request's method
$rp - reference to port of R-URI
3.37. Transport protocol of SIP request
URI
$rP - reference to transport protocol of R-URI
$rr - reference to reply's reason
$rs - reference to reply's status
$rt - reference to URI of refer-to header
$ru - reference to request's URI
3.42. Username in SIP Request's
URI
$rU - reference to username in request's URI
3.43. Received IP
address
$Ri - reference to IP address of the interface
where the request has been received
$Rp - reference to the port where the message
was received
$si - reference to IP source address of the
message
$sp - reference to the source port of the
message
$fs - reference to the forced socket for the
message sending (if any)
$td - reference to domain in URI of 'To'
header
$tn - reference to display name of 'To' header
$tt - reference to tag parameter of 'To'
header
$tu - reference to URI of 'To' header
$tU - reference to username in URI of 'To'
header
3.53. String formatted
time
$Tf - reference string formatted time
$Ts - reference to unix time stamp
$ua - reference to user agent header field
3.56. Remote-Party-ID header
URI
$re - reference to Remote-Party-ID header URI
3.57. Diversion header URI
$di - reference to Diversion header URI
$avp(id[N]) - represents the value of N-th AVP
identified by 'id'.
The 'id' can be:
-
"[si]:name" - name is the id of an AVP; 's' and 'i' specifies if the id is
string or integer. If missing, it is considered to be string.
-
"$name" - the name is an AVP alias
$hdr(name[N]) - represents the body of the
N-th header identified by 'name'. If [N] is omitted then the body of the first
header is printed. The first header is got when N=0, for the second N=1, a.s.o.
To print the last header of that type, use -1, no other negative values are
supported now. No white spaces are allowed inside the specifier (before },
before or after {, [, ] symbols). When N='*', all headers of that type are
printed.
The module should identify most of compact header names (the ones recognized
by OpenSER which should be all at this moment), if not, the compact form has to
be specified explicitly. It is recommended to use dedicated specifiers for
headers (e.g., %ua for user agent header), if they are available -- they are
faster.