cookbooks:devel:pseudovariables
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cookbooks:devel:pseudovariables [2021/09/29 07:40] – [XHTTP Module] miconda | cookbooks:devel:pseudovariables [2022/04/11 13:24] (current) – geoip2 henningw | ||
---|---|---|---|
Line 171: | Line 171: | ||
<code c> | <code c> | ||
xlog(" | xlog(" | ||
+ | </ | ||
+ | |||
+ | **$cnt(xavp)** - return the number of xavps | ||
+ | |||
+ | < | ||
+ | * $cnt($xavp(key[*])) : number of XAVPs " | ||
+ | * $cnt($xavp(key[n]=> | ||
+ | * $cnt($xavp(key[*]=> | ||
+ | |||
+ | * $cnt($xavp(key[n])) : 1 or 0 (if this index exists or not). | ||
+ | * $cnt($xavp(key[-n])) : same but with reverse indexing (-1 is the last index). | ||
+ | |||
+ | * $cnt($xavp(key[*]=> | ||
+ | |||
+ | * $cnt($xavp(key)) is the same as $cnt($xavp(key[*])). | ||
+ | * $cnt($xavp(key=> | ||
</ | </ | ||
==== $conid - TCP Connection ID ==== | ==== $conid - TCP Connection ID ==== | ||
Line 269: | Line 285: | ||
**$fd** - reference to domain in URI of ' | **$fd** - reference to domain in URI of ' | ||
- | <fc # | + | <fc # |
==== $fn - From display name ==== | ==== $fn - From display name ==== | ||
**$fn** - reference to display name of ' | **$fn** - reference to display name of ' | ||
+ | |||
+ | <fc # | ||
==== $fs - Forced Send Socket ==== | ==== $fs - Forced Send Socket ==== | ||
Line 317: | Line 335: | ||
**$fu** - reference to URI of ' | **$fu** - reference to URI of ' | ||
- | <fc # | + | <fc # |
Note that changing the From: header may break backwards compatibility with SIP 1.0 devices. | Note that changing the From: header may break backwards compatibility with SIP 1.0 devices. | ||
Line 325: | Line 343: | ||
**$fU** - reference to username in URI of ' | **$fU** - reference to username in URI of ' | ||
- | <fc # | + | <fc # |
Note that changing the From: header may break backwards compatibility with SIP 1.0 devices. | Note that changing the From: header may break backwards compatibility with SIP 1.0 devices. | ||
Line 564: | Line 582: | ||
**$Rp** - reference to the port where the message was received | **$Rp** - reference to the port where the message was received | ||
+ | |||
+ | ==== $Rn - Received socket name ==== | ||
+ | |||
+ | **$Rn** - reference to the name of the socket where the message was received | ||
==== $RAu - Advertised socket URI ==== | ==== $RAu - Advertised socket URI ==== | ||
Line 654: | Line 676: | ||
**$td** - reference to domain in URI of ' | **$td** - reference to domain in URI of ' | ||
+ | |||
+ | <fc # | ||
==== $tn - To display name ==== | ==== $tn - To display name ==== | ||
**$tn** - reference to display name of ' | **$tn** - reference to display name of ' | ||
+ | |||
+ | <fc # | ||
==== $tt - To tag ==== | ==== $tt - To tag ==== | ||
Line 673: | Line 699: | ||
**$tu** - reference to URI of ' | **$tu** - reference to URI of ' | ||
+ | |||
+ | <fc # | ||
==== $tU - To URI Username ==== | ==== $tU - To URI Username ==== | ||
**$tU** - reference to username in URI of ' | **$tU** - reference to username in URI of ' | ||
+ | |||
+ | <fc # | ||
==== $tUl - To URI Username Length ==== | ==== $tUl - To URI Username Length ==== | ||
Line 1890: | Line 1920: | ||
* hdrs - SIP Headers | * hdrs - SIP Headers | ||
* body - Body | * body - Body | ||
+ | * flags - flags for processing | ||
+ | * 1 - the password is provided in HA1 format | ||
* auser - authentication username | * auser - authentication username | ||
* apasswd - authentication password | * apasswd - authentication password | ||
Line 2049: | Line 2081: | ||
if($gip(src=> | if($gip(src=> | ||
+ | { | ||
+ | # source and destination from same country | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== $gip2(pvc=> | ||
+ | |||
+ | Variables exported by GeoIP2 module, returning geo-location attributes. The attributes are populated upon calling function **geoip_match2(ipaddr, | ||
+ | |||
+ | **pvc** (container id) is second parameter of geoip_match2(..) and **key** can be: | ||
+ | |||
+ | * cc - country code | ||
+ | * tz - time zone | ||
+ | * zip - postal code | ||
+ | * lat - latitude | ||
+ | * lon - longitude | ||
+ | * dma - dma code | ||
+ | * ips - ip start | ||
+ | * ipe - ip end | ||
+ | * city - city | ||
+ | * area - area code | ||
+ | * regc - region | ||
+ | * regn - region name | ||
+ | * metro - metro code | ||
+ | * contc - continent code | ||
+ | |||
+ | You can call several time **geoip_match(ipaddr, | ||
+ | |||
+ | <code c> | ||
+ | geoip_match2(" | ||
+ | geoip_match2(" | ||
+ | |||
+ | if($gip2(src=> | ||
{ | { | ||
# source and destination from same country | # source and destination from same country | ||
Line 2056: | Line 2122: | ||
===== TLS Module ===== | ===== TLS Module ===== | ||
+ | |||
+ | ==== $tls(key) ==== | ||
+ | |||
+ | Variables related to TLS communication and certificates. | ||
+ | |||
+ | The **key** can be: | ||
+ | |||
+ | * **m_issuer_line** - return local (my) certificate issuer line | ||
+ | * **p_issuer_line** - return remote (peer) certificate issuer line | ||
+ | * **m_subject_line** - return local (my) certificate subject line | ||
+ | * **p_subject_line** - return remote (peer) certificate subject line | ||
+ | |||
+ | Example: | ||
+ | |||
+ | <code c> | ||
+ | if(proto==TLS) { | ||
+ | xinfo(" | ||
+ | } | ||
+ | </ | ||
==== $tls_version ==== | ==== $tls_version ==== | ||
+ | |||
The TLS/SSL version which is used on the TLS connection from which the message was received. String type. | The TLS/SSL version which is used on the TLS connection from which the message was received. String type. | ||
==== $tls_description ==== | ==== $tls_description ==== | ||
Line 2193: | Line 2279: | ||
* $msg(body) - sip message body | * $msg(body) - sip message body | ||
* $msg(body_len) - sip message body length | * $msg(body_len) - sip message body length | ||
- | * $msg(hdrs) - sip message headers | + | * $msg(hdrs) - sip message headers |
- | * $msg(fline) - sip message first line | + | * $msg(fline) - sip message first line (surrounding white space and EoL chars trimmed) |
+ | * $msg(fpart) - sip message first line and the headers | ||
+ | * $msg(lpart) - sip message headers and the body | ||
===== POSOPS Module ===== | ===== POSOPS Module ===== | ||
Line 2217: | Line 2304: | ||
This class of pseudo-variables is exported by MSRP module and give access to attributes of MSRP frames. | This class of pseudo-variables is exported by MSRP module and give access to attributes of MSRP frames. | ||
+ | |||
==== $msrp(buf) ==== | ==== $msrp(buf) ==== | ||
The entire content of MSRP frame - first line, headers, body and end-line. | The entire content of MSRP frame - first line, headers, body and end-line. | ||
+ | |||
==== $msrp(body) ==== | ==== $msrp(body) ==== | ||
The body of MSRP frame. | The body of MSRP frame. | ||
+ | |||
==== $msrp(code) ==== | ==== $msrp(code) ==== | ||
The code of MSRP replies. | The code of MSRP replies. | ||
+ | |||
==== $msrp(hdrs) ==== | ==== $msrp(hdrs) ==== | ||
The headers in a MSRP frame. | The headers in a MSRP frame. | ||
+ | |||
==== $msrp(msgid) ==== | ==== $msrp(msgid) ==== | ||
The body of Message-Id header. | The body of Message-Id header. | ||
+ | |||
==== $msrp(method) ==== | ==== $msrp(method) ==== | ||
The method of a MSRP request. | The method of a MSRP request. | ||
+ | |||
==== $msrp(buflen) ==== | ==== $msrp(buflen) ==== | ||
The length of entire MSRP frame. | The length of entire MSRP frame. | ||
+ | |||
==== $msrp(sessid) ==== | ==== $msrp(sessid) ==== | ||
The session id for MSRP frame. It is taken from the first MSRP URI in To-Path header. | The session id for MSRP frame. It is taken from the first MSRP URI in To-Path header. | ||
+ | |||
==== $msrp(reason) ==== | ==== $msrp(reason) ==== | ||
The reason text in a MSRP reply. | The reason text in a MSRP reply. | ||
+ | |||
==== $msrp(crthop) ==== | ==== $msrp(crthop) ==== | ||
The URI for current hop - it is the first URI in To-Path header. | The URI for current hop - it is the first URI in To-Path header. | ||
+ | |||
==== $msrp(bodylen) ==== | ==== $msrp(bodylen) ==== | ||
Line 2254: | Line 2352: | ||
The transaction ID from the first line of MSRP frame. | The transaction ID from the first line of MSRP frame. | ||
+ | |||
==== $msrp(prevhop) ==== | ==== $msrp(prevhop) ==== | ||
The MSRP URI of the previous hop - the first address in From-Path header. | The MSRP URI of the previous hop - the first address in From-Path header. | ||
+ | |||
==== $msrp(nexthop) ==== | ==== $msrp(nexthop) ==== | ||
The URI of the next hop - the second address in To-Path header. | The URI of the next hop - the second address in To-Path header. | ||
+ | |||
==== $msrp(lasthop) ==== | ==== $msrp(lasthop) ==== | ||
The last hop URI - the last address in To-Path header. | The last hop URI - the last address in To-Path header. | ||
+ | |||
==== $msrp(srcaddr) ==== | ==== $msrp(srcaddr) ==== | ||
The address of the previous hop set as MSRP URI using received source IP and port. | The address of the previous hop set as MSRP URI using received source IP and port. | ||
+ | |||
==== $msrp(srcsock) ==== | ==== $msrp(srcsock) ==== | ||
- | The local socket where the MSRP frame was received, set as **proto: | + | The local socket where the MSRP frame was received, set as **proto: |
==== $msrp(firsthop) ==== | ==== $msrp(firsthop) ==== | ||
The URI of the first hop - the last address in From-Path header. | The URI of the first hop - the last address in From-Path header. | ||
+ | |||
==== $msrp(prevhops) ==== | ==== $msrp(prevhops) ==== | ||
The number of previous hops - it is the number of addresses in From-Path header. | The number of previous hops - it is the number of addresses in From-Path header. | ||
+ | |||
==== $msrp(nexthops) ==== | ==== $msrp(nexthops) ==== | ||
Line 2606: | Line 2712: | ||
* text - text of the code for the JSONRPC response | * text - text of the code for the JSONRPC response | ||
* body - the body of the JSONRPC response | * body - the body of the JSONRPC response | ||
+ | |||
+ | ===== $lsock(expr) ===== | ||
+ | |||
+ | Get attributes for listen sockets (from corex module). | ||
+ | |||
+ | The **expr** is an expression specifying what to match and return, the format is: | ||
+ | |||
+ | < | ||
+ | matchid/ | ||
+ | </ | ||
+ | |||
+ | The **expr** can contain variables that are evaluated before parsing the expression. | ||
+ | |||
+ | The **matchid** can be: | ||
+ | |||
+ | * n - match on name | ||
+ | * l - match on listen address | ||
+ | |||
+ | The **value** specifies what to match with. | ||
+ | |||
+ | The **field** can be (only first character matches): | ||
+ | |||
+ | * name - return name | ||
+ | * listen - return the listen address | ||
+ | * advertise - return the advertise address | ||
+ | * index - return the index in the list of all sockets | ||
+ | |||
+ | Example: | ||
+ | |||
+ | < | ||
+ | listen=udp: | ||
+ | ... | ||
+ | xinfo(" | ||
+ | xinfo(" | ||
+ | $var(s0) = " | ||
+ | xinfo(" | ||
+ | </ | ||
+ | |||
+ | ===== Evrexec Module ===== | ||
+ | |||
+ | ==== $evr(key) ==== | ||
+ | |||
+ | evrexec attributes: | ||
+ | |||
+ | * $evr(data) - processing data | ||
+ | * $evr(srcip) - source ip | ||
+ | * $evr(srcport) - sourceport as string | ||
+ | * $evr(srcportno) - source port as number | ||
+ | |||
===== Presence Module ===== | ===== Presence Module ===== |
cookbooks/devel/pseudovariables.1632901203.txt.gz · Last modified: 2021/09/29 07:40 by miconda