User Tools

Site Tools


cookbooks:devel:pseudovariables

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
cookbooks:devel:pseudovariables [2019/10/30 21:59]
127.0.0.1 external edit
cookbooks:devel:pseudovariables [2020/01/22 15:43] (current)
miconda
Line 20: Line 20:
   * avpops   * avpops
   * htable   * htable
 +  * http_async_client
   * textops   * textops
   * uac   * uac
Line 856: Line 857:
 <fc #​0000ff>​It is R/W variable (you can assign values to it directly in configuration file)</​fc>​ <fc #​0000ff>​It is R/W variable (you can assign values to it directly in configuration file)</​fc>​
  
 +===== $dsv(key) - Dispatcher variables =====
 +
 +Return attributes related to dispatcher module.
 +
 +The key can be:
 +
 +  * code - the SIP response code that caused the execution of event_route '​dispatcher:​dst-up'​ or '​dispatcher:​dst-down',​ if available
 +  * reason - the SIP response reason that caused the execution of event_route '​dispatcher:​dst-up'​ or '​dispatcher:​dst-down',​ if available
 +  * flags - flags set internally when executing event_route '​dispatcher:​dst-up'​ or '​dispatcher:​dst-down'​
 ===== $time(name) - Broken-down time ===== ===== $time(name) - Broken-down time =====
  
Line 984: Line 994:
 </​code>​ </​code>​
  
-===== Benchmark module Pseudo-Variables ​=====+===== SIPDUMP Module ===== 
 + 
 +==== $sipdump(name) ==== 
 + 
 +**$sipdump(name)** ​return attributes of the message handled in the event_route[sipdump:​msg]. 
 + 
 +The name can be: 
 + 
 +  * tag - the tag of processing (rcv or snd) 
 +  * buf - entire message buffer as string 
 +  * len - length of the message (length of above buf) 
 +  * af - address family 
 +  * src_ip - source IP address 
 +  * dst_ip - destination IP address 
 +  * src_port - port of source address 
 +  * dst_port - port of source address 
 +  * proto - transport protocol 
 + 
 +Example: 
 + 
 +<code c> 
 + 
 +event_route[sipdump:​msg] { 
 +  if($sipdump(len) > 1024) { 
 +    ... 
 +  } 
 +
 +</​code>​ 
 + 
 + 
 +===== Benchmark Module ​=====
  
 ==== $BM_time_diff ==== ==== $BM_time_diff ====
 $BM_time_diff - the time difference elapsed between calls of bm_start_timer(name) and bm_log_timer(name). The value is 0 if no bm_log_timer() was called. ​ $BM_time_diff - the time difference elapsed between calls of bm_start_timer(name) and bm_log_timer(name). The value is 0 if no bm_log_timer() was called. ​
  
-===== Dialog ​module Pseudo-Variables ​=====+===== Dialog ​Module ​=====
  
 ==== $dlg(attr) ==== ==== $dlg(attr) ====
Line 1045: Line 1085:
 The '​key'​ can be any string. The '​key'​ can be any string.
  
-===== Erlang ​module Pseudo-Variables ​=====+===== Erlang ​Module ​=====
  
-==== Erlang pseudo-variable attributes ​===+==== Attributes ​===
  
 * type - get variable type. Possible types are: atom, integer, list, string, tuple, pid and ref. * type - get variable type. Possible types are: atom, integer, list, string, tuple, pid and ref.
Line 1056: Line 1096:
  
 ==== $erl_atom(name) ==== ==== $erl_atom(name) ====
 +
 //​$erl_atom(name)//​ pseudo variable allows create analog to Erlang atom data type. //​$erl_atom(name)//​ pseudo variable allows create analog to Erlang atom data type.
 Erlang atom is a literal, a constant with name. Formatted output pseudo variable Erlang atom is a literal, a constant with name. Formatted output pseudo variable
Line 1115: Line 1156:
 module. module.
  
-===== HTable ​module Pseudo-Variables ​=====+===== HTable ​Module ​=====
  
 ==== $sht(htable=>​key) ==== ==== $sht(htable=>​key) ====
Line 1121: Line 1162:
 Access hash table entries. Access hash table entries.
  
-<fc #​0000ff>​It is R/W variable, you can assign values to it directly in configuration file.  Hash table entry can be deleted by assigning value $null to it.</​fc>​+<fc #​0000ff>​It is R/W variable, you can assign values to it directly in configuration file.  Hash table entry can be deleted by assigning value $null to it.  Value of a non-existing hash table entry is $null.</​fc>​
  
 The “htname” must be a hash table name defined via “htable” parameter. The “htname” must be a hash table name defined via “htable” parameter.
Line 1268: Line 1309:
 } }
 </​code>​ </​code>​
-===== Memcached ​module Pseudo-Variables ​=====+===== Memcached ​Module ​=====
  
 ==== $mct(key) ==== ==== $mct(key) ====
Line 1344: Line 1385:
 ... ...
 </​code>​ </​code>​
 +
 +===== http_async_client Module =====
 +
 +==== $http_req_id ====
 +
 +The $http_req_id read-only variable can be used in REQUEST_ROUTE to retrive the unique identifier for a query after sending it or in the HTTP callback route to retrive the id of the query the reply belongs to. Useful mainly in non-transactional context.
 +
 +==== $http_req(key) ====
 +
 +The $http_req(key) write-only variable can be used to set custom parameters before sending a HTTP query.
 +
 +**key** can be one of:
 +  * all: if set to $null, resets all the parameters to their default value (the ones defined in modparam)
 +  * hdr: sets/​modifies/​removes a HTTP header. N.B.: setting this variable multiple times will add several headers to the query.
 +  * body: sets/​modifies/​removes the request body
 +  * method: sets the HTTP method: either "​GET",​ "​POST",​ "​PUT"​ or "​DELETE"​ (these are the supported methods). (Note: if the method is not set, curl will use GET, or POST if a body is specified)
 +  * timeout: sets the HTTP timeout. (Note, this timeout should be normally less than tm.fr_timer timeout, because transaction timeout has a higher priority over HTTP timeout)
 +  * tls_client_cert:​ sets the client certificate to use
 +  * tls_client_key:​ sets the client certificate key to use
 +  * tls_ca_path:​ sets the CA certificate path to use
 +  * authmethod: Sets the preferred authentication mode for HTTP/HTTPS requests. The value is a bitmap and multiple methods can be used. Note that in this case, the CURL library will make an extra request to discover server-supported authentication methods. You may want to use a specific value. Valid values are:
 +      * 1 - BASIC authentication
 +      * 2 - HTTP Digest authentication
 +      * 4 - GSS-Negotiate authentication
 +      * 8 - NTLM authentication
 +      * 16 - HTTP Digest with IE flavour.
 +      * (Default value is 3 - BASIC and Digest authentication.)
 +  * username: sets the username to use for authenticated requests
 +  * password: sets the password to use for authenticated requests
 +  * suspend: if set to 0 it doesn'​t suspend the current transaction before performing the query
 +  * tcp_keepalive:​ enable TCP keepalive
 +  * tcp_ka_idle:​ set TCP keepalive idle time wait
 +  * tcp_ka_interval:​ set TCP keepalive interval
 +
 +==== Other read-only variables ====
 +
 +The following read-only pseudo variables can only be used in the callback routes executed by http_async_query()
 +
 +=== $http_ok ===
 +1 if cURL executed the request successfully,​ 0 otherwise (check $http_err for details).
 +
 +=== $http_err ===
 +cURL error string if an error occurred, $null otherwise.
 +
 +=== $http_rs ===
 +HTTP status.
 +
 +=== $http_rr ===
 +HTTP reason phrase.
 +
 +=== $http_hdr(Name) ===
 +Value of the Name header (the $(http_hdr(Name)[N]) syntax can also be used, check the SIP $hdr() PV documentation for details).
 +
 +=== $http_mb and $http_ml ===
 +HTTP response buffer (including headers) and length.
 +
 +=== $http_rb and $http_bs ===
 +HTTP response body and body length,
  
 ===== XMLOPS Pseudo-Variables ===== ===== XMLOPS Pseudo-Variables =====
Line 1362: Line 1461:
 </​code>​ </​code>​
  
-===== TMX module Pseudo-Variables ​=====+===== TMX Module ​=====
  
 ==== $T_branch_idx ==== ==== $T_branch_idx ====
Line 1451: Line 1550:
  
  
-===== UAC module Pseudo-Variables ​=====+===== UAC Module ​=====
  
 ==== $uac_req(key) ==== ==== $uac_req(key) ====
Line 1487: Line 1586:
 } }
 </​code>​ </​code>​
-===== Nathelper ​module Pseudo-Variables ​=====+===== Nathelper ​Module ​=====
  
 ==== $rr_count ==== ==== $rr_count ====
Line 1497: Line 1596:
   * If topmost Record Route in received SIP request or reply is a double Record Route, value of $rr_top_count is 2. If it a single Record Route, value of $rr_top_count is 1. If there is no Record Route(s), value of $rr_top_count is 0.   * If topmost Record Route in received SIP request or reply is a double Record Route, value of $rr_top_count is 2. If it a single Record Route, value of $rr_top_count is 1. If there is no Record Route(s), value of $rr_top_count is 0.
  
-===== MQueue ​module Pseudo-Variables ​=====+===== MQueue ​Module ​=====
  
 ==== $mqk(q) ==== ==== $mqk(q) ====
Line 1630: Line 1729:
 </​code>​ </​code>​
  
-===== TLS module Pseudo-Variables ​=====+===== TLS Module ​=====
  
 ==== $tls_version ==== ==== $tls_version ====
Line 1759: Line 1858:
   * $msg(fline) - sip message first line   * $msg(fline) - sip message first line
  
-===== XHTTP module Pseudo-Variables ​=====+===== XHTTP Module ​=====
  
 ==== $hu ==== ==== $hu ====
Line 1765: Line 1864:
   * URL of http request.   * URL of http request.
  
-===== MSRP Module ​Pseudo Variables ​=====+===== MSRP Module =====
  
 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.
Line 1834: Line 1933:
 The internal integer id for TCP/TLS connection. The internal integer id for TCP/TLS connection.
  
-===== SIPT module Pseudo-Variables ​=====+===== SIPT Module ​=====
  
 ==== $sipt(calling_party_number.presentation) / $sipt_presentation ==== ==== $sipt(calling_party_number.presentation) / $sipt_presentation ====
Line 2049: Line 2148:
   * body - the body of the JSONRPC response   * body - the body of the JSONRPC response
  
-===== Presence Module ​Pseudo-Variables ​=====+===== Presence Module =====
  
 ==== $subs(key) - Subscription Attributes ==== ==== $subs(key) - Subscription Attributes ====
Line 2058: Line 2157:
   * uri - subscription URI. Useful in particular for subscriptions within the dialog, when the request URI in SUBSCRIBE is the Contact address from the initial subscription.   * uri - subscription URI. Useful in particular for subscriptions within the dialog, when the request URI in SUBSCRIBE is the Contact address from the initial subscription.
  
-===== Registrar Module ​Pseudo-Variables ​=====+===== Registrar Module =====
  
 ==== $ulc(profile=>​attr) - Registered Contact Attributes ==== ==== $ulc(profile=>​attr) - Registered Contact Attributes ====
Line 2066: Line 2165:
 It must be used after a call of “reg_fetch_contacts()”. It must be used after a call of “reg_fetch_contacts()”.
  
-===== sipcapture ​Module ​Pseudo-Variables ​=====+===== Sipcapture ​Module =====
  
 ==== $hep(key) - HEP Packet Attributes ==== ==== $hep(key) - HEP Packet Attributes ====
Line 2126: Line 2225:
   * c_sp - connection source port (useful with HAProxy connections)   * c_sp - connection source port (useful with HAProxy connections)
   * conid - connection id   * conid - connection id
 +
 +
 +===== pv_headers module variables =====
 +
 +  * $x_hdr(//​header_name//​):​ //​header_name//​ header value
 +  * $x_fu: Full From header
 +  * $x_fU: From header user part
 +  * $x_fd: From header domain part
 +  * $x_fn: From header Display Name part
 +  * $x_ft: From header Tag
 +  * $x_tu: Full To header
 +  * $x_tU: To header user part
 +  * $x_td: To header domain part
 +  * $x_tn: To header Display Name part
 +  * $x_tt: To header Tag
 +  * $x_rs: ​
 +  * $x_rr:
  
 ===== $C(xy) - Foreground and background colors ===== ===== $C(xy) - Foreground and background colors =====
cookbooks/devel/pseudovariables.1572469157.txt.gz · Last modified: 2019/10/30 21:59 by 127.0.0.1