Product Documentation

TCP_OPTIONS_TYPE_T

Sep 12, 2016

TCP Protocol Options Type

This topic lists the expressions that are provided by this class.

Note: Expressions with the * symbol are inherited/promoted from text_t.

* AFTER_REGEX (re regex)

Selects the text after the portion that matches the given regular expression argument. The first match is returned when multiple matches occur in the text. The match may occur anywhere within the text - if you wish to "anchor" this, use "^" at the start of the regex and/or "$" at the end of the regex. When the regular expression does not match the given string, a Text object of length of 0 is returned.

Example: HTTP.REQ.HEADER("etag").AFTER_REGEX(re/KX/) will select "DAPPER" from "KXDAPPER".

Parameters (expressions not allowed):

regex - Regular Expression

Returns: text_t

* AFTER_STR_ANY (text_t patset_name)

Selects the Text that is present after the first occurrence of any of the strings that are bound to the patset named by the string argument. If there is no match to any of the strings bound to the patset in the current Text object then the result Text object has 0 length. The patset cannot have strings longer than 255 characters.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: text_t

* AFTER_STR (text_t s)

Selects the Text that is present after the first occurrence of the string argument. If there is no match for the argument in the current Text then the result Text object has 0 length. The input string cannot be bigger than 255 characters.

Parameters (expressions not allowed):

s - String

Returns: text_t

* APPEND (bool_at b)

Appends the given boolean's string representation to the current string.

Parameters:

b - the boolean value to append.

Returns: text_t

* APPEND (double_at i)

Appends the given double's string representation to the current string.

Parameters:

i - the double value to append.

Returns: text_t

* APPEND (ip_address_at addr)

Appends the given IPv4's string representation to the current string.

Parameters:

addr - the IPv4 address to append.

Returns: text_t

* APPEND (num_at i)

Appends the given number's string representation to the current string.

Parameters:

i - the number value to append.

Returns: text_t

* APPEND (time_at t)

Appends the given time's string representation to the current string.

Parameters:

t - the time value to append.

Returns: text_t

* APPEND (unsigned_long_at i)

Appends the given unsigned long's string representation to the current string.

Parameters:

i - the unsigned long value to append.

Returns: text_t

* APPEND (ipv6_address_at addr)

Appends the given IPv6's string representation to the current string.

Parameters:

addr - the IPv6 address to append.

Returns: text_t

* APPEND (ipv6_subnet_at addr)

Appends the given IPv6 subnet's string representation to the current string.

Parameters:

addr - the IPv6 subnet to append.

Returns: text_t

* APPEND (mac_address_at addr)

Appends the given MAC's string representation to the current string.

Parameters:

addr - the MAC address to append.

Returns: text_t

* APPEND (text_t str)

Appends the given string to the current string.

Parameters:

str - the string to append.

Returns: text_t

* APPEND (time_at t)

Appends the given time's string representation to the current string.

Parameters:

t - the time value to append.

Returns: text_t

* B64DECODE

Decodes the selected text using base64 decoding.

For example, the string "TWFu" is converted to "Man"

Returns: text_t

* B64ENCODE

Encodes the selected text using base64 encoding.

For example, the string "Man" is converted to "TWFu"

Returns: text_t

* BEFORE_REGEX (re regex)

Selects the text before the portion that matches the given regular expression argument. The first match is returned when multiple matches occur in the text. The match may occur anywhere within the text - if you wish to "anchor" this, use "^" at the start of the regex and/or "$" at the end of the regex. When the regular expression does not match the given string, a Text object of length of 0 is returned.

For example: HTTP.RES.HEADER("content-type").BEFORE_REGEX(re#/#) will select "text" from "text/plain".

Parameters (expressions not allowed):

regex - Regular Expression

Returns: text_t

* BEFORE_STR_ANY (text_t patset_name)

Selects the Text that is present before the first occurrence of any of the strings that are bound to the patset or datasetnamed by the string argument. If there is no match to any of the strings bound to the patset in the current Text object then the result Text object has 0 length. The patset cannot have strings longer than 255 characters.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: text_t

* BEFORE_STR (text_t s)

Selects the Text that is present before the first occurrence of the string argument. If there is no match for the argument in the current Text object then the result Text object has 0 length. The input string cannot be bigger than 255 characters.

Parameters (expressions not allowed):

s - String

Returns: text_t

* BETWEEN (text_t start, text_t end)

Results in Boolean TRUE value if length of the Text object is greater than or equal to the sum of the Start and End argument lengths and if the prefix of the Text object matches the Start string argument and if the Suffix of the Text object matches the End string argument.

Parameters:

start - Start

end - End

Returns: bool_at

* BLOB_TO_HEX

Convert to hexadecimal representation and select text.

For example, the byte string
abc
is converted to
61:62:63.

Returns: text_t

* COMPARE (text_t s)

Results in a Number Value which is the result of comparison of the input argument with the Text object. The result is greater than 0 if the Text object is lexicographically greater than the argument. The result is 0 if the Text object and the argument match. The result is less than 0 if the Text object is lexicographically lesser than the argument.

Parameters:

s - String

Returns: num_at

* CONTAINS_ANY (text_t patset_name)

Results in Boolean TRUE value if the Text contains any of the strings that are bound to the patset or dataset named by the string argument.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: bool_at

* CONTAINS_INDEX (text_t patset_name)

Returns the numerical index of the matching string, if the Text contains any of the strings that are bound to the patset or dataset named by the string argument. Returns 0 if there is no match.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: num_at

* CONTAINS (text_t s)

Results in Boolean TRUE value if the Text contains the string given in the argument. The input string cannot be bigger than 255 characters.

Parameters (expressions not allowed):

s - String

Returns: bool_at

* CRC32

Returns a 32-bit integer computed by applying a CRC (cyclic redundancy check) function to the selected text. This is the CRC function used by Ethernet, MPEG-2, PKZIP, GZIP, PNG, and many other applications. For example, the expression to compute the CRC value of the (first 1000 bytes of the) body of an HTTP request is: HTTP.REQ.BODY(1000).CRC32

Returns: num_at

* DECODE_USING_TEXT_MODE

Decodes the selected text using the currently configured text encoding methods like URLENCODED, BACKSLASH_ENCODED, PLUS_AS_SPACE, NOURLENCODED, NO_BACKSLASH_ENCODED and NO_PLUS_AS_SPACE. Text encoding methods are set using SET_TEXT_MODE method.

Returns: text_t

* DECRYPT

Decrypt the selected base64-encoded encrypted bytes using the configured encryptionParams.

Returns: text_t

* DIGEST (digest_method_e method)

Returns a byte sequence computed by applying the the specified message digest method to the selected text. The message digest value can be encoded as hex or base64 if needed for comparison. For example, the expression to compute the MD5 digest of the (first 1000 bytes of the) body of an HTTP request and encode it as hex is: HTTP.REQ.BODY(1000).DIGEST(MD5).BLOB_TO_HEX.STRIP_CHARS(":")

Parameters (expressions not allowed):

method - digest method to apply to the input text

Returns: text_t

* ENCRYPT

Encrypt the selected cleartext bytes using the configured encryptionParams.

Returns: text_t

* ENDSWITH_ANY (text_t patset_name)

Results in Boolean TRUE value if the Text ends with any of the strings that are bound to the patset or dataset named by the string argument.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: bool_at

* ENDSWITH_INDEX (text_t patset_name)

Returns the numerical index of the matching string, if the Text ends with any of the strings that are bound to the patset or dataset named by the string argument. Returns 0 if there is no match.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: num_at

* ENDSWITH (text_t end)

Results in Boolean TRUE value if a suffix of the Text object matches the string argument.

Parameters:

end - String

Returns: bool_at

* EQUALS_ANY (text_t patset_name)

Results in Boolean TRUE value if the Text equals any of the strings that are bound to the patset or dataset named by the string argument.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: bool_at

* EQUALS_INDEX (text_t patset_name)

Returns the numerical index of the matching string, if the Text equals any of the strings that are bound to the patset or dataset named by the string argument. Returns 0 if there is no match.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: num_at

* EQ (text_t s)

Results in Boolean TRUE value if the Text object matches the input argument.

Parameters:

s - String

Returns: bool_at

EXISTS

Returns TRUE if an instance of the current tcp option type exists.

Returns: bool_at

* GET_SIGNED16 (uint n, endian_e endianness)

Get the 16-bit signed binary integer at the given offset.

Parameters (expressions not allowed):

n - Offset in bytes

endianness - Select little or big endian

Returns: num_at

* GET_SIGNED32 (uint n, endian_e endianness)

Get the 32-bit signed binary integer at the given offset.

Parameters (expressions not allowed):

n - Offset in bytes

endianness - Select little or big endian

Returns: num_at

* GET_SIGNED8 (uint n)

Get the 8-bit signed binary integer at the given offset.

Parameters:

n - Offset in bytes

Returns: num_at

* GET_UNSIGNED16 (uint n, endian_e endianness)

Get the 16-bit unsigned binary integer at the given offset.

Parameters (expressions not allowed):

n - Offset in bytes

endianness - Select little or big endian

Returns: num_at

* GET_UNSIGNED32 (uint n, endian_e endianness)

Get the 32-bit unsigned binary integer at the given offset.

Parameters (expressions not allowed):

n - Offset in bytes

endianness - Select little or big endian

Returns: unsigned_long_at

* GET_UNSIGNED64 (uint n, endian_e endianness)

Get the 64-bit unsigned binary integer at the given offset.

Parameters (expressions not allowed):

n - Offset in bytes

endianness - Select little or big endian

Returns: unsigned_long_at

* GET_UNSIGNED8 (uint n)

Get the 8-bit unsigned binary integer at the given offset.

Parameters:

n - Offset in bytes

Returns: num_at

* GE (text_t s)

Results in Boolean TRUE value if the Text object is greater than or equal to the input argument.

Parameters:

s - String

Returns: bool_at

* GT (text_t s)

Results in Boolean TRUE value if the Text object is greater than the input argument.

Parameters:

s - String

Returns: bool_at

* HASH

Returns a positive 31 bit integer value computed by applying a proprietary NetScaler hash function to the selected text. This function is not case- sensitive and ignores whitespaces. For example, applying the HASH function to two strings "Ab c" and "abc" would produce the same value. This function should not be used for security purposes; use instead the DIGEST function with one of the standard digest methods.

Returns: num_at

* HTML_XML_SAFE

Apply XML safe transform and select text.

Converts '<', '>' and '&' in the input text to '&lt;', '&gt;' and '&amp;' respectively; other characters in the input are not modified.
This transform safeguards against XSS based attacks. This is a read only operation.

Returns: text_t

* HTTP_HEADER_SAFE

Apply Header safe transform and select text. Converts all new line ('\n') characters present in the input text to '%0A' so that they can safely be used in HTTP headers. This transform safeguards against response-splitting attacks. This is a read only operation.

Returns: text_t

* HTTP_URL_SAFE

Apply URL safe transform and select text. Converts URL unsafe characters to corresponding '%xx' values and retains the rest. This is a read only operation.

  Based on RFC2396, following are considered URL safe characters:  Alpha-numeric characters: a-z, A-Z, 0-9  Hyphen and underscore: "-", "_"  Dot: "."  Exclamation mark: "!"  Tilde: "~"  Asterix: "*"  Single quote: "'"  Open and close parentheses: "(", ")"  Semi-colon: ";"  Colon: ":"  At symbol: "@"  Question mark: "?"  Equals: "="  Dollar: "$"  Percent: "%"  Ampersand: "&"  Plus: "+"  Comma: ","  Forward slash: "/"  
The rest are converted to %XX encoding, 'XX' is the hex-based representation of the input character. If the requirement is to encode all but URL unreserved characters, please consider using URL_RESERVED_CHARS_SAFE method.

Returns: text_t

* IS_BOOL_AT

Results in Boolean TRUE value if the Text is of boolean type.

Returns: bool_at

* IS_DOUBLE_AT

Results in Boolean TRUE value if the Text is of double data type.

Returns: bool_at

* IS_IPV6_AT

Results in Boolean TRUE value if the Text is of IPv6 data type.

Returns: bool_at

* IS_IPV6_SUBNET_AT

Results in Boolean TRUE value if the Text is of IPv6 subnet data type.

Returns: bool_at

* IS_IP_AT

Results in Boolean TRUE value if the Text is of IPv4 data type.

Returns: bool_at

* IS_MAC_ADDRESS_AT

Results in Boolean TRUE value if the Text is of mac address data type.

Returns: bool_at

* IS_NUM_AT

Results in Boolean TRUE value if the Text is of number type.

Returns: bool_at

* IS_NUM_AT (num_format_e format)

Results in Boolean TRUE value if the Text is of number type with given input base.

Parameters (expressions not allowed):

format - number format

Returns: bool_at

* IS_STRINGMAP_KEY (text_t string_map_name)

Returns true if the string that it operates on is present in the string map. IGNORECASE, NOIGNORECASE - controls whether key lookup in string map is case sensitive or not. For example:

  • HTTP.REQ.URL.IS_STRINGMAP_KEY("url_stringmap") returns true if value of HTTP.REQ.URL is present as key in the string map whose name is "url_stringmap".
  • HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE). IS_STRINGMAP_KEY("url_stringmap") returns true if value of HTTP.REQ.URL is present as key in the string map whose name is "url_stringmap". Key lookup in this case is done case-insensitively.

Parameters (expressions not allowed):

string_map_name - identifies the string map.

Returns: bool_at

* IS_TIME_AT

Results in Boolean TRUE if the Text follows any of the standard time formats given below, otherwise false. Tue, 05 Nov 1994 08:12:31 GMT RFC822 Tuesday, 05-Nov-94 08:12:31 GMT RFC850 Tue Nov 4 08:12:31 1994 asctime

Returns: bool_at

* IS_UNSIGNED_LONG_AT

Results in Boolean TRUE value if the Text is of unsigned long data type.

Returns: bool_at

* IS_UNSIGNED_LONG_AT (num_format_e format)

Results in Boolean TRUE value if the Text is of unsigned long data type with given input base.

Parameters (expressions not allowed):

format - number format

Returns: bool_at

* LENGTH

Results in a Number Value that is the number of characters (not bytes) in the Text object.

Returns: num_at

* LE (text_t s)

Results in Boolean TRUE value if the Text object is less than or equal to the input argument.

Parameters:

s - String

Returns: bool_at

* LT (text_t s)

Results in Boolean TRUE value if the Text object is less than the input argument.

Parameters:

s - String

Returns: bool_at

* MAP_STRING_DEFAULT_TO_KEY (text_t string_map_name)

Returns the value corresponding to the key in the string map. This is similar to the MAP_STRING method, but if the key is not present then instead of returning a null string, it returns the key itself.

Parameters (expressions not allowed):

string_map_name - identifies the string map.

Returns: text_t

* MAP_STRING (text_t string_map_name)

Returns value corresponding to key in the string map. Key is the string that it is given as input. IGNORECASE, NOIGNORECASE - controls whether key lookup in string map is case sensitive or not. For example:

  • HTTP.REQ.URL.MAP_STRING("url_stringmap") returns value when the value of HTTP.REQ.URL is used as key in the string map whose name is "url_stringmap".
  • HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE). MAP_STRING("url_stringmap") returns value when the value of HTTP.REQ.URL is used as key in the string map whose name is "url_stringmap". Key lookup in this case is done case-insensitively.

Parameters (expressions not allowed):

string_map_name - identifies the string map.

Returns: text_t

* MARK_SAFE

Mark the PIXL expression safe without applying any safe transform.

Returns: text_t

* NE (text_t s)

Results in Boolean TRUE value if the Text object is not equal to the input argument.

Parameters:

s - String

Returns: bool_at

* NORMALIZE_URL

Normalize URL. Normalizes a URL by doing "percent" decoding. See the description for URLENCODED in the SET_TEXT_MODE function. This performs the equivalent of SET_TEXT_MODE(URLENCODED).DECODE_USING_TEXT_MODE, except that it does not change the value of the current text mode.

Returns: text_t

OPTION_LENGTH

Returns length of the current tcp option type in bytes This is the total length of the TCP option that got inserted in the TCP header and is not same as the string length of the option value

Returns: num_at

* PREFIX (char c, uint i)

Select a prefix of the Text. The selected prefix is the longest prefix that has at most Count (2nd argument) occurrences of character in the 1st argument.

Parameters (expressions not allowed):

c - Character

i - Count

Returns: text_t

* PREFIX (uint i)

Select a prefix of the Text. The length of the prefix is equal to the number in the argument. If there aren't enough characters in the Text object then the entire Text is selected.

Parameters:

i - Prefix Length

Returns: text_t

* REGEX_MATCH (re regex)

Returns TRUE if and only if the text contains at least one match of the regular expression argument. The match may occur anywhere within the text - if you wish to "anchor" this, use "^" at the start of the regex and/or "$" at the end of the regex.

The regular expression has to be of the format: re<delimiter>regular expression<same delimiter>

The regular expression cannot be bigger than 1499 characters.

The regular expression should be acceptable by the PCRE regular expression library. Look at http://www.pcre.org/pcre.txt for documentation on the regular expression syntax. In particular, look at the pcrepattern man page.

There are some differences in the allowed syntax w.r.t PCRE syntax. Backreferences are not allowed. It is recommended not to use recursive regular expressions. The dot metacharacter matches newlines also. Unicode is not supported. SET_TEXT_MODE(IGNORECASE) overrides the (?i) internal option specified in the regular expression.

The PCRE library configuration can be seen in the system log, after executing 'nsapimgr -B" call ns_pixl_regex_show_config()"' at the shell prompt.

Some examples:

  • HTTP.REQ.HOSTNAME.REGEX_MATCH(re/[[:alpha:]]+(abc){2,3}/)
  • HTTP.REQ.URL.SET_TEXT_MODE(URLENCODED).REGEX_MATCH(re#(a*b+c*)#)
  • HTTP.REQ.URL.REGEX_MATCH(re/a(?i)b/) matches ab and aB
  • HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).REGEX_MATCH(re/ab/) matches ab, aB, Ab and AB
  • HTTP.REQ.BODY.REGEX_MATCH(re/(?ixm) (^ab (.*) cd$) /) does a case-insensitive, multiline match where the dot metacharacter matches newline also. The regex itself can contain whitespace which will be ignored during the matching (x - extended regex).

Parameters (expressions not allowed):

regex - Regular Expression

Returns: bool_at

* REGEX_SELECT (re regex)

Selects the text that matches the given regular expression argument. The first match is returned when multiple matches occur in the text. The match may occur anywhere within the text - if you wish to "anchor" this, use "^" at the start of the regex and/or "$" at the end of the regex. When the regular expression does not match the given string, a Text object of length of 0 is returned.

For example: HTTP.REQ.HEADER("via").REGEX_SELECT(re!NS-CACHE-\d\.\d:\s*\d{1,3}!) will select "NS-CACHE-7.0: 70"

Parameters (expressions not allowed):

regex - Regular Expression

Returns: text_t

* REPEAT (uint i)

Produces a string which contains 'i' sequential copies of the input string.

Parameters:

i - the number of times to repeat the string (0 or more)

Returns: text_t

* SET_CHAR_SET (charset_e charset)

Set the character set to use for subsequent functions that use text.

Parameters (expressions not allowed):

charset - Character Set

Returns: tcp_options_type_t

* SET_TEXT_MODE (textmode_e mode)

The mode setting of a Text object controls the behavior of many Text operations. The Text mode settings may also control the behavior of some operations in objects (like List) that build upon the Text object. IGNORECASE, NOIGNORECASE - controls whether string comparison is case sensitive or not. URLENCODED - If set then all Text operations are carried out after translating all %HH or %uHHHH encodings in the underlying byte stream. 1. %HH will be translated to the character Y where HH denotes the ascii value of character Y in hexadecimal. For example, the encoded text "http%3a//" will be decoded to "http://" 2. %uWWHH will be translated to the character sequence YZ where WW denotes the ascii value of character Y in hexadecimal and HH denotes the ascii value of character Z in hexadecimal. For example, the encoded text "http%u3a2f/" and "http%u003a//" will both be decoded to"http://" NOURLENCODED - Indicates that no percent encodings are present in the Text object. No percent decoding will be performed on the Text object. PLUS_AS_SPACE - If set then all Text operations are carried out after converting occurrences of the plus character to whitespace. For example, the text "hello+world" will be decoded to "hello world" NO_PLUS_AS_SPACE - If set, then the plus character will not be converted to whitespace in the Text object. BACKSLASH_ENCODED - If set, then all Text operations are carried out after performing the following operations: 1. \XXX will be translated to the character Y where XXX denotes the ascii value of character Y in octal. The valid range of octal values for this type of encoding is \0 to \377. For example, the encoded text "http\72//" and "http\072//" will both be decoded to "http://" 2. \xHH will be translated to the character Y where HH denotes the ascii value of character Y in hexadecimal. For example, the encoded text "http\x3a//" will be decoded to "http://" 3. \\uWWXX will be translated to the character sequence YZ where WW denotes the ascii value of character Y in hexadecimal and XX denotes the ascii value of character Z in hexadecimal. For example, the encoded text "http%u3a2f/" and "http%u003a//" will both be decoded to"http://" 4. Occurences of "\b", "\n", "\t", "\f" and "\r" are translated to the corresponding ascii characters. NO_BACKSLASH_ENCODED - If set, then backslash decoding will not be performed on the Text object. BAD_ENCODE_RAISE_UNDEF - If set, then UNDEF is raised if either the URLENCODED or BACKSLASH_ENCODED mode is set and a bad encoding corresponding to the specified encoding mode is encountered. NO_BAD_ENCODE_RAISE_UNDEF - If set, then UNDEF will not be raised when a bad encoding is encountered in the Text object. The Text operations operate on characters (as opposed to operating on bytes). By default a single byte represents a character using the ASCII encoding. But if URLENCODED mode is set then 3 bytes may represent a character. A PREFIX(3) operation will select the first 3 characters in the Text object. That means it may select up to 9 bytes for URLENCODED Text object. In the case of multibyte decodings as a result of %uXXXX or \\uXXXX, Text operations which attempt to treat the multiple decoded bytes as distinct characters are not allowed.

Parameters (expressions not allowed):

mode - Text Mode

Returns: tcp_options_type_t

* SKIP (char c, uint i)

Select the Text after skipping over a prefix of the current Text. The skipped over prefix is the longest prefix that has at most Count (2nd argument) occurrences of character in the 1st argument.

Parameters (expressions not allowed):

c - Character

i - Count

Returns: text_t

* SKIP (uint i)

Select the Text after skipping over a prefix in the current Text. The length of the prefix is equal to the number in the argument. If there aren't enough characters in the Text object then the entire Text is skipped over.

Parameters (expressions not allowed):

i - Prefix Length

Returns: text_t

* STARTSWITH_ANY (text_t patset_name)

Results in Boolean TRUE value if the Text starts with any of the strings that are bound to the patset or dataset named by the string argument.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: bool_at

* STARTSWITH_INDEX (text_t patset_name)

Returns the numerical index of the matching string, if the Text starts with any of the strings that are bound to the patset or dataset named by the string argument. Returns 0 if there is no match.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: num_at

* STARTSWITH (text_t start)

Results in Boolean TRUE value if a prefix of the Text object matches the string argument.

Parameters:

start - String

Returns: bool_at

* STRIP_CHARS (text_t s)

From the selected text remove the characters specified in the string.

For example: Say the selected text is / "foo.xyz=bar" /. Then on executing STRIP_CHARS('.=') or STRIP_CHARS('..=') the selected text will become /fooxyzbar /. Note that repeating character has same effect as it would be if it present only once.

Parameters (expressions not allowed):

s - String

Returns: text_t

* STRIP_END_CHARS (text_t s)

Selects the Text after stripping off characters in the end of the current Text object.

For example: Say the selected text is / "foo.xyz=bar" /. Then on executing STRIP_END_CHARS('ar') the selected text will become /foo.xyz=b /. Note that repeating character has same effect as it would be if it present only once.

Parameters (expressions not allowed):

s - String

Returns: text_t

* STRIP_END_WS

Selects the Text after stripping off white space in the end of the current Text object.

Returns: text_t

* STRIP_START_CHARS (text_t s)

Selects the Text after stripping off characters in the beginning of the current Text object.

For example: Say the selected text is / "foo.xyz=bar" /. Then on executing STRIP_START_CHARS('of') the selected text will become /.xyz=bar /. Note that repeating character has same effect as it would be if it present only once.

Parameters (expressions not allowed):

s - String

Returns: text_t

* STRIP_START_WS

Selects the Text after stripping off white space in the beginning of the current Text object.

Returns: text_t

* SUBSTR_ANY (text_t patset_name)

Select any one sub-string that matches any string in the given patset or dataset. The patset cannot have strings longer than 255 characters.

Parameters (expressions not allowed):

patset_name - Pattern Set Name

Returns: text_t

* SUBSTR (uint start, uint len)

Select the Text object of the given length at the given offset. Offset it 0 based. If there aren't enough characters after the offset then all the remaining characters are selected.

Parameters:

start - Offset

len - Length

Returns: text_t

* SUBSTR (text_t s)

Select the first Text object that matches the input string argument. The input string cannot be bigger than 255 characters.

Parameters (expressions not allowed):

s - String

Returns: text_t

* SUFFIX (char c, uint i)

Select a suffix of the Text. The selected suffix is the longest possible suffix containing at most Count (2nd arg) occurrences of the character in the 1st argument.

Parameters (expressions not allowed):

c - Character

i - Count

Returns: text_t

* SUFFIX (uint i)

Select a suffix of the Text. The length of the suffix is equal to the number in the argument. If there aren't enough characters in the Text object then the entire Text is selected.

Parameters:

i - Suffix Length

Returns: text_t

* TO_LOWER

Converts the selected text to lower case.

For example, the string "ABCd" is converted to "abcd"

Returns: text_t

* TO_UPPER

Converts the selected text to upper case.

For example, the string "abcD" is converted to "ABCD"

Returns: text_t

* TRUNCATE (char c, uint i)

Select the Text after truncating a suffix from the current Text object. The truncated suffix is the longest possible suffix containing at most Count (2nd arg) occurrences of the character in the 1st argument.

Parameters (expressions not allowed):

c - Character

i - Count

Returns: text_t

* TRUNCATE (uint i)

Select the Text after truncating a suffix of the Text. The length of the suffix truncated is equal to the number in the argument. If there aren't enough characters in the Text then then all the characters are truncated.

Parameters:

i - Suffix Length

Returns: text_t

* TYPECAST_AVP_T

Convert text_t to avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (avp_t : Operations that can be performed on the returned AVPs.

Note: An AVP can have multiple instances in a Diameter message. However, the system can access only the first 16 instances.

Example:

  • To get the first value of AVP code 266 from a request, use: DIAMETER.REQ.AVP(266).VALUE(0).
  • To get the fourth value of AVP code 266 from a request, use: DIAMETER.REQ.AVP(266).VALUE(3).
  • To check if AVP code 1000 in the response has the vendor-specific bit set, use: DIAMETER.RES.AVP(1000).IS_VENDOR_SPECIFIC.
)

Returns: avp_t

* TYPECAST_AVP_UNUM_T

Convert text_t to avp_unum_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (avp_unum_t : In Diameter AVP based expressions can be written as DIAMETER.REQ.AVP(<avpcode>). For example Auth-Application-Id AVP (AVP code 258) can be extracted as DIAMETER.REQ.AVP(258) For few of the important AVPs we provide aliases. For example this AVP based expression can also be written as DIAMETER.REQ.AUTH_APPLICATION_ID. This expression returns either a object of class avp_t or returns a numerical value (object of class unsigned_long_at). The numerical value for this object is derived from the value in first instance of the AVP.)

Returns: avp_unum_t

* TYPECAST_BOOL_AT

Convert text_t to bool_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (bool_at : Boolean Operations)

Returns: bool_at

* TYPECAST_COOKIE_T

Convert text_t to cookie_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (cookie_t : The HTTP Cookie type provides operations for a cookie as it appears in the Set-Cookie and Set-Cookie2 header. In this type the Name-Value List operations are also available. The first delimiter is = and the element delimiter is ;. Multiple consecutive ; are treated as one. (Same as applying the method IGNORE_EMPTY_ELEMENTS on a Name-Value List. You can use the Name-value List operations to access cookie attributes. In this type Text operations are also available.
Each cookie begins with a COOKIE_NAME=COOKIE_VALUE pair followed by zero or more semi-colon separated attribute-value pairs. If an attribute appears more than once in a cookie, the value associated with the first appearance of the attribute is returned.

Format Cookie: Cookie1=Value;Version=decimal;Value;Domain=Value;Path=Value)

Returns: cookie_t

* TYPECAST_DIAMETER_FLAG_T

Convert text_t to diameter_flag_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (diameter_flag_t : Provides operation to treat the underlying 1 byte as set of bit flags. then set/unset/test/reset_all operations can be done on flag)

Returns: diameter_flag_t

* TYPECAST_DNS_DOMAINNAME_T

Convert text_t to dns_domainname_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (dns_domainname_t : This object provides operations for parsing the DNS domain name as it appears at various places in the DNS data. The format is abc.foo.com.)

Returns: dns_domainname_t

* TYPECAST_DNS_FLAG_T

Convert text_t to dns_flag_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (dns_flag_t : Provides operations to test/set/unset a flag in dns header.)

Returns: dns_flag_t

* TYPECAST_DOUBLE_AT

Convert text_t to double_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_at : Double Value)

Returns: double_at

* TYPECAST_DOUBLE_T (double_format_e format)

Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The supported formats are DECIMAL, DECIMAL_PREFIX. All the formats strip off the beginning white space. DECIMAL also strips off trailing white space. DECIMAL requires that all the remaining characters must be a proper double value. DECIMAL_PREFIX requires that at least one or more more characters in the prefix must be a proper double value. In case of overflow, there will be a parsing error.)

Parameters (expressions not allowed):

format - Format

Returns: double_t

* TYPECAST_DOUBLE_T (double_format_e format, double_at default_value)

Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The supported formats are DECIMAL, DECIMAL_PREFIX. All the formats strip off the beginning white space. DECIMAL also strips off trailing white space. DECIMAL requires that all the remaining characters must be a proper double value. DECIMAL_PREFIX requires that at least one or more more characters in the prefix must be a proper double value. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Double

Returns: double_t

* TYPECAST_DOUBLE_T (double_format_e format, ip_address_at default_value)

Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The supported formats are DECIMAL, DECIMAL_PREFIX. All the formats strip off the beginning white space. DECIMAL also strips off trailing white space. DECIMAL requires that all the remaining characters must be a proper double value. DECIMAL_PREFIX requires that at least one or more more characters in the prefix must be a proper double value. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Double

Returns: double_t

* TYPECAST_DOUBLE_T (double_format_e format, num_at default_value)

Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The supported formats are DECIMAL, DECIMAL_PREFIX. All the formats strip off the beginning white space. DECIMAL also strips off trailing white space. DECIMAL requires that all the remaining characters must be a proper double value. DECIMAL_PREFIX requires that at least one or more more characters in the prefix must be a proper double value. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Double

Returns: double_t

* TYPECAST_DOUBLE_T (double_format_e format, time_at default_value)

Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The supported formats are DECIMAL, DECIMAL_PREFIX. All the formats strip off the beginning white space. DECIMAL also strips off trailing white space. DECIMAL requires that all the remaining characters must be a proper double value. DECIMAL_PREFIX requires that at least one or more more characters in the prefix must be a proper double value. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Double

Returns: double_t

* TYPECAST_DOUBLE_T (double_format_e format, unsigned_long_at default_value)

Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The supported formats are DECIMAL, DECIMAL_PREFIX. All the formats strip off the beginning white space. DECIMAL also strips off trailing white space. DECIMAL requires that all the remaining characters must be a proper double value. DECIMAL_PREFIX requires that at least one or more more characters in the prefix must be a proper double value. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Double

Returns: double_t

* TYPECAST_HTTP_CACHE_CONTROL_T

Convert text_t to http_cache_control_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_cache_control_t : This object provides for the ability to work on HTTP Cache-Control headers.)

Returns: http_cache_control_t

* TYPECAST_HTTP_CONTENT_LENGTH_T

Convert text_t to http_content_length_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_content_length_t : The HTTP.REQ.CONTENT_LENGTH or HTTP.RES.CONTENT_LENGTH object can be treated as a HTTP Header or as a Number. The numerical value for this object is derived from the value in the last instance of the Content-Length header.)

Returns: http_content_length_t

* TYPECAST_HTTP_COOKIE_T

Convert text_t to http_cookie_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_cookie_t : This object provides operations for parsing the HTTP cookie header. The name-value pair is derived from the value in the last instance of Cookie header. The format is Cookie : name0=value0; name1=value1; An HTTP Cookie header can have multiple occurrences. COUNT will return a Number containing how many headers of the current type exist. The system does not keep track of more than 15 HTTP headers. The result will be undefined if there are more than 15 instances of the header.)

Returns: http_cookie_t

* TYPECAST_HTTP_DATE_T

Convert text_t to http_date_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_date_t : The HTTP.REQ.DATE or HTTP.RES.DATE object can be treated as a HTTP header or a Time object. The Time value is derived from the value in the last instance of the Date header. The date formats supported are RFC 822 (updated by RFC 1123), RFC 1036 (obsoletes RFC850) and ANSI C asctime() formats.)

Returns: http_date_t

* TYPECAST_HTTP_HEADER_T (text_t name)

Convert text_t to http_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_header_t : When typecasting a Text object to HTTP Header a header name must be provided.For example: HTTP.REQ.HEADER("MyHdr").TYPECAST_HTTP_HEADER_T("InHdr"))

Parameters (expressions not allowed):

name - Header Name

Returns: http_header_t

* TYPECAST_HTTP_HOSTNAME_T

Convert text_t to http_hostname_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_hostname_t : This object provides operations for parsing the HTTP hostname as it appears at various places in the HTTP protocol data. The format is abc.foo.com:8080.)

Returns: http_hostname_t

* TYPECAST_HTTP_METHOD_T

Convert text_t to http_method_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_method_t : This object provides Text operations and HTTP Request Method Enum operations on the HTTP request method.)

Returns: http_method_t

* TYPECAST_HTTP_SET_COOKIE_T

Convert text_t to http_set_cookie_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_set_cookie_t : HTTP.RES.SET_COOKIE provides operations for parsing and operating on the SET-COOKIE header that is present in the HTTP response. HTTP Set-Cookie header supports Text and HTTP Header operations. For most Text operations the value in the last Set-Cookie header is selected. HTTP Set-Cookie header also supports special operations to extract cookies from the response. It is assumed that there will be only one cookie in a Set-Cookie header.)

Returns: http_set_cookie_t

* TYPECAST_HTTP_URL_T

Convert text_t to http_url_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_url_t : HTTP.REQ.URL provides operations for parsing and operating on the URL that is present in the first line of the HTTP request header.
The supported format is [<protocol>://<hostname>]<path>?<query>. The Text object backing a HTTP URL object has the Text Mode set to URLENCODED by default.)

Returns: http_url_t

* TYPECAST_HTTP_VERSION_T

Convert text_t to http_version_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_version_t : HTTP.REQ.VERSION or HTTP.RES.VERSION provide operations to extract HTTP version information.)

Returns: http_version_t

* TYPECAST_IPV6_ADDRESS_AT

Convert text_t to ipv6_address_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_address_at : Provides operations for the 128-bit IPv6 address value. Some general information regarding IPv6 expressions:
IPv6 PIXL expressions can be combined with other PIXL expressions using the '+' operator. The output is expected to be the concatenation of the string representations of the individual PIXL expressions. No other operator other than '+' is expected to work when any of the operands is an IPv6 PIXL expression. Also, IPv6 PIXL expressions can be combined with any other type of PIXL expression except a PIXL expression that produces a bool result. In other words, if A and/or B are two IPv6 addresses, A+B should result in the string AB. When one of A or B is an IPv6 address, the other can only be a number or a string and not a boolean. Further, when A and/or B is an IPv6 address, the only operator allowed between them is '+'.

Example: Let the client source IPv6 address be ABCD:1234::ABCD. Let the server destination IPv4 address be 10.100.10.100. Then the expression CLIENT.IPV6.SRC + SERVER.IP.DST should produce the output "ABCD:1234::ABCD10.100.10.100".
Similarly, CLIENT.IPV6.SRC + 5 should produce the result ABCD:1234::ABCD5)

Returns: ipv6_address_at

* TYPECAST_IPV6_ADDRESS_T

Convert text_t to ipv6_address_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_address_t : This object represents an IPv6 address present in the 1000:1001:CD10:0000:0000:89AB:4567:CDEF format.)

Returns: ipv6_address_t

* TYPECAST_IPV6_SUBNET_AT

Convert text_t to ipv6_subnet_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_subnet_at : Provides operations for the integral IPv6 subnet address value.)

Returns: ipv6_subnet_at

* TYPECAST_IPV6_SUBNET_T

Convert text_t to ipv6_subnet_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_subnet_t : This object represents an IPv6 subnet address present in the 1000:1001:CD10:0000:0000:89AB:4567:CDEF/64 format.)

Returns: ipv6_subnet_t

* TYPECAST_IP_ADDRESS_AT

Convert text_t to ip_address_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ip_address_at : Provides operations for the 32-bit integral IP address value.)

Returns: ip_address_at

* TYPECAST_IP_ADDRESS_T

Convert text_t to ip_address_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ip_address_t : Represents an IP address present in the 10.100.200.1 format.)

Returns: ip_address_t

* TYPECAST_LIST_T (char sep)

Convert text_t to list_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (list_t : The character separator has to be provided when typecasting a textual context to list type. The current text mode has no effect on the character separator. For example if the current text mode is IGNORECASE and the separator is p then P will not be treated as a separator.)

Parameters (expressions not allowed):

sep - Separator

Returns: list_t

* TYPECAST_MAC_ADDRESS_AT

Convert text_t to mac_address_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (mac_address_at : Provides operations for the 48-bit MAC address value.)

Returns: mac_address_at

* TYPECAST_MAC_ADDRESS_T

Convert text_t to mac_address_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (mac_address_t : Represents a MAC address present in the 12:34:56:78:9a:bc format.)

Returns: mac_address_t

* TYPECAST_NUM_AT

Convert text_t to num_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_at : Number Value)

Returns: num_at

* TYPECAST_NUM_T (num_format_e format)

Convert text_t to num_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_t : Treat the underlying text as a Number in the given format. The supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All the formats strip off the beginning white space. DECIMAL and HEX also strip off trailing white space. DECIMAL and HEX require that all the remaining characters must be proper digits. DECIMAL_PREFIX and HEX_PREFIX require that at least one or more more characters in the prefix must be proper digits. In case of overflow, there will be a parsing error.)

Parameters (expressions not allowed):

format - Format

Returns: num_t

* TYPECAST_NUM_T (num_format_e format, num_at default_value)

Convert text_t to num_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_t : Treat the underlying text as a Number in the given format. The supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All the formats strip off the beginning white space. DECIMAL and HEX also strip off trailing white space. DECIMAL and HEX require that all the remaining characters must be proper digits. DECIMAL_PREFIX and HEX_PREFIX require that at least one or more more characters in the prefix must be proper digits. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Number

Returns: num_t

* TYPECAST_NVLIST_T (char sep1, char sep2)

Convert text_t to nvlist_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (nvlist_t : Two character delimiters have to be provided when typecasting a Text object to a Name-Value List. The first delimited separates the name from the value. The second delimiter separates list items. For example typecast_nvlist_t('=', '&') handles a URL query string. The Text Mode has no effect on the character delimiters. For example if the current text mode is IGNORECASE and a delimiter is p then P will not be treated as a delimiter.)

Parameters (expressions not allowed):

sep1 - delimiter1

sep2 - delimiter2

Returns: nvlist_t

* TYPECAST_NVLIST_T (char sep1, char sep2, char quote)

Convert text_t to nvlist_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (nvlist_t : Two character delimiters and quote-character have to be provided when typecasting a Text object to a Name-Value List that supports quote-character. The first delimited separates the name from the value. The second delimiter separates list items. The third value specifies the quote character. For example typecast_nvlist_t('=', ';', '"') handles a name-value list separated by semi-colons that allows quoting. The quote-character specifies that the value can occur within the quotes and the delimiters within the quote-characters should not be taken into account. The Text Mode has no effect on the character delimiters. For example if the current text mode is IGNORECASE and a delimiter is p then P will not be treated as a delimiter.)

Parameters (expressions not allowed):

sep1 - delimiter1

sep2 - delimiter2

quote - quote-character.

Returns: nvlist_t

* TYPECAST_RADIUS_AVP_T

Convert text_t to radius_avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (radius_avp_t : Operations that can be performed on the returned AVPs.

Note: An AVP can have multiple instances in a radius message. However, the system can access only the first 16 instances.

Example:

  • To get the first value of AVP code 26 from a request, use: radius.REQ.AVP(26).VALUE(0).
  • To get the fourth value of AVP code 26 from a request, use: radius.REQ.AVP(26).VALUE(3).
)

Returns: radius_avp_t

* TYPECAST_RADIUS_AVP_VALUE_T

Convert text_t to radius_avp_value_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (radius_avp_value_t : Provides operations to typecast RADIUS AVP value to Integer value or IP Address.)

Returns: radius_avp_value_t

* TYPECAST_SEQ_TEXT_T

Convert text_t to seq_text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (seq_text_t : Represents the Text Sequence class.)

Returns: seq_text_t

* TYPECAST_SERVICEPATH_T

Convert text_t to servicepath_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (servicepath_t : Operations that can be performed on the service path.

Example:

  • To get the name of the service path applicable to current subscriber, use: SUBSCRIBER.SERVICEPATH
  • To determine If the service function is the next in the service path applicable to scubscriber, use: SUBSCRIBER.SERVICEPATH.IS_NEXT().
)

Returns: servicepath_t

* TYPECAST_SIP_CALLID_HEADER_T

Convert text_t to sip_callid_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_callid_header_t : This object provides operations for parsing the SIP callid header.)

Returns: sip_callid_header_t

* TYPECAST_SIP_CONTENT_LENGTH_T

Convert text_t to sip_content_length_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_content_length_t : The SIP.REQ.CONTENT_LENGTH or SIP.RES.CONTENT_LENGTH object can be treated as a SIP Header or as a Number. The numerical value for this object is derived from the value in the last instance of the Content-Length header.)

Returns: sip_content_length_t

* TYPECAST_SIP_FROM_HEADER_T

Convert text_t to sip_from_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_from_header_t : This object provides operations for parsing the SIP From header.)

Returns: sip_from_header_t

* TYPECAST_SIP_HEADER_T (text_t name)

Convert text_t to sip_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_header_t : When typecasting a Text object to SIP Header a header name must be provided.For example: SIP.REQ.HEADER("MyHdr").TYPECAST_SIP_HEADER_T("InHdr"))

Parameters (expressions not allowed):

name - Header Name

Returns: sip_header_t

* TYPECAST_SIP_HOSTNAME_T

Convert text_t to sip_hostname_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_hostname_t : This object provides operations for parsing the SIP hostname as it appears at various places in the SIP protocol data. The format is abc.foo.com:5060.)

Returns: sip_hostname_t

* TYPECAST_SIP_METHOD_T

Convert text_t to sip_method_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_method_t : This object provides Text operations and SIP Request Method Enum operations on the SIP request method.)

Returns: sip_method_t

* TYPECAST_SIP_TO_HEADER_T

Convert text_t to sip_to_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_to_header_t : This object provides operations for parsing the SIP From header.)

Returns: sip_to_header_t

* TYPECAST_SIP_URL_T

Convert text_t to sip_url_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_url_t : SIP.REQ.URL provides operations for parsing and operating on the URL that is present in the first line of the SIP request header.
The supported format is [<protocol>://<hostname>]<path>?<query>. The Text object backing a SIP URL object has the Text Mode set to URLENCODED by default.)

Returns: sip_url_t

* TYPECAST_SIP_VERSION_T

Convert text_t to sip_version_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_version_t : SIP.REQ.VERSION or SIP.RES.VERSION provide operations to extract SIP version information.)

Returns: sip_version_t

* TYPECAST_SIP_VIA_HEADER_T

Convert text_t to sip_via_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_via_header_t : This object provides operations for parsing the SIP Via header.)

Returns: sip_via_header_t

* TYPECAST_SSLVPN_MODE_T

Convert text_t to sslvpn_mode_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sslvpn_mode_t : This object provides Text operations and SSLVPN Mode Enum operations on the SSLVPN request method.)

Returns: sslvpn_mode_t

* TYPECAST_TCP_OPTIONS_T

Convert text_t to tcp_options_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (tcp_options_t : TCP Protocol Options)

Returns: tcp_options_t

* TYPECAST_TCP_OPTIONS_TYPE_T

Convert text_t to tcp_options_type_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (tcp_options_type_t : TCP Protocol Options Type)

Returns: tcp_options_type_t

* TYPECAST_TCP_REPEATER_OPTION_T

Convert text_t to tcp_repeater_option_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (tcp_repeater_option_t : TCP Protocol Option : Repeater)

Returns: tcp_repeater_option_t

TYPECAST_TEXT_T

Convert tcp_options_type_t to text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (text_t : Designates any piece of text.)

Returns: text_t

* TYPECAST_TIME_AT

Convert text_t to time_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (time_at : Treats a number value as number of seconds since GMT Jan 1 1970 0h 0m 0s.)

Returns: time_at

* TYPECAST_TIME_T

Convert text_t to time_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (time_t : This object treats a Text object as a date string. The formats supported are

1. RFC822 :: Sun, 06 Nov 1994 08:49:37 GMT
2. RFC850 :: Sunday, 06-Nov-94 08:49:37 GMT
3. ASCTIME :: Sun Nov 6 08:49:37 1994
4. ASCTIME like :: Sun Nov 6 08:49:37 1994
5. ASCTIME like :: Sun Nov 06 08:49:37 1994
6. Http Set-Cookie Expiry date :: Sun, 06-Nov-1994 08:49:37 GMT)

Returns: time_t

* TYPECAST_UNSIGNED_LONG_AT

Convert text_t to unsigned_long_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_at : Unsigned Long(64bit) Value)

Returns: unsigned_long_at

* TYPECAST_UNSIGNED_LONG_T (unsigned_long_format_e format)

Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All the formats strip off the beginning white space. DECIMAL and HEX also strip off trailing white space. DECIMAL and HEX require that all the remaining characters must be proper digits. DECIMAL_PREFIX and HEX_PREFIX require that at least one or more more characters in the prefix must be proper digits. In case of overflow, there will be a parsing error.)

Parameters (expressions not allowed):

format - Format

Returns: unsigned_long_t

* TYPECAST_UNSIGNED_LONG_T (unsigned_long_format_e format, ip_address_at default_value)

Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All the formats strip off the beginning white space. DECIMAL and HEX also strip off trailing white space. DECIMAL and HEX require that all the remaining characters must be proper digits. DECIMAL_PREFIX and HEX_PREFIX require that at least one or more more characters in the prefix must be proper digits. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Number

Returns: unsigned_long_t

* TYPECAST_UNSIGNED_LONG_T (unsigned_long_format_e format, unsigned_long_at default_value)

Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All the formats strip off the beginning white space. DECIMAL and HEX also strip off trailing white space. DECIMAL and HEX require that all the remaining characters must be proper digits. DECIMAL_PREFIX and HEX_PREFIX require that at least one or more more characters in the prefix must be proper digits. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Number

Returns: unsigned_long_t

* TYPECAST_UNSIGNED_LONG_T (unsigned_long_format_e format, num_at default_value)

Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All the formats strip off the beginning white space. DECIMAL and HEX also strip off trailing white space. DECIMAL and HEX require that all the remaining characters must be proper digits. DECIMAL_PREFIX and HEX_PREFIX require that at least one or more more characters in the prefix must be proper digits. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Number

Returns: unsigned_long_t

* TYPECAST_UNSIGNED_LONG_T (unsigned_long_format_e format, time_at default_value)

Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All the formats strip off the beginning white space. DECIMAL and HEX also strip off trailing white space. DECIMAL and HEX require that all the remaining characters must be proper digits. DECIMAL_PREFIX and HEX_PREFIX require that at least one or more more characters in the prefix must be proper digits. In case of overflow, there will be a parsing error. In case of parsing error the default value will be assumed.)

Parameters (expressions not allowed):

format - Format

default_value - Number

Returns: unsigned_long_t

* TYPECAST_UNUM_TEXT_T

Convert text_t to unum_text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unum_text_t : Provides operations to treat the underlying OctectString as Binary String or unsigned long value .)

Returns: unum_text_t

* TYPECAST_VENDOR_SPEC_APPID_AVP_T

Convert text_t to vendor_spec_appid_avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (vendor_spec_appid_avp_t : Retrieves AVPs that are nested in the grouped AVP Vendor-Specific-Application-Id (code 260). The nested AVPs are:

  • Vendor-Id
  • Auth-Application-Id
  • Acct-Application-Id
For example, to retrieve the Auth-Application-Id AVP from the Vendor-Specific-Application-Id AVP:
  • For requests: DIAMETER.REQ.VENDOR_SPECIFIC_APPLICATION_ID.AUTH_APPLICATION_ID
  • For responses: DIAMETER.RES.VENDOR_SPECIFIC_APPLICATION_ID.AUTH_APPLICATION_ID
)

Returns: vendor_spec_appid_avp_t

* TYPECAST_VENDOR_SPEC_RADIUS_AVP_T

Convert text_t to vendor_spec_radius_avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (vendor_spec_radius_avp_t :

  • Vendor-Id
To retrieve the Vendor-Id from the Vendor-Specific AVP:
  • RADIUS.REQ.VENDOR_SPECIFIC.VENDORID
)

Returns: vendor_spec_radius_avp_t

* UNQUOTE (char c)

If selected text is quoted by character c, Remove character c from beginning and end.

For example: Say the selected text is / "foo xyz bar " /. Then on executing UNQUOTE('"') the selected text will become /foo xyz bar /

Parameters (expressions not allowed):

c - Character

Returns: text_t

* URL_RESERVED_CHARS_SAFE

Converts URL reserved characters to corresponding '%XX' values and retains the rest. This is a read only operation.

  Based on RFC3986, following are considered URL unreserved characters:  Alpha-numeric characters: a-z, A-Z, 0-9  Hyphen and underscore: "-", "_"  Dot: "."  Tilde: "~"  
The rest are converted to %XX encoding, 'XX' is the hex-based representation of the input character. If the requirement is to encode all but URL safe characters, please consider using HTTP_URL_SAFE method.

Returns: text_t

* XML_DECRYPT (text_t certKeyName)

Decrypt the selected content, which was encrypted using the W3C XML Encryption standard.

Parameters (expressions not allowed):

certKeyName - identifies the certkey object containing the RSA private key to be used to decrypt the bulk encryption key in the selected EncryptedData element.

Returns: text_t

* XML_ENCRYPT (text_t certKeyName, encrypt_method_e method)

Encrypt the selected cleartext using the W3C XML Encryption standard.

Parameters (expressions not allowed):

certKeyName - identifies the certkey object containing an X.509 certificate with the RSA public key to be used to encrypt the generated bulk encryption key. Note that the certKey object need not, and usually will not, include the associated RSA private key.

method - specifies the bulk encryption method (rc4, des3, aes128, aes192, or aes256) used to encrypt the content.

Returns: text_t

* XML_ENCRYPT (text_t certKeyName, encrypt_method_e method, uint flags)

Encrypt the selected cleartext using the W3C XML Encryption standard.

Parameters (expressions not allowed):

certKeyName - identifies the certkey object containing an X.509 certificate with the RSA public key to be used to encrypt the generated bulk encryption key. Note that the certKey object need not, and usually will not, include the associated RSA private key.

method - specifies the bulk encryption method (rc4, des3, aes128, aes192, or aes256) used to encrypt the content.

flags - optional bit mask to specify optional elements in the EncryptedData element. These are hints to tell the receiver what private key to use to decrypt the bulk encryption key, providing information from the certKey's X.509 certificate.

  • 1 - include a KeyName element with the certKeyName;
  • 2 - include a KeyValue element with the RSA public key from the certificate;
  • 4 - include an X509IssuerSerial element with the certificate serial number and issuer DN;
  • 8 - include an X509SubjectName element with the certificate subject DN;
  • 16 - include an X509Certificate element with the entire certificate;

Returns: text_t

* XPATH_HTML_WITH_MARKUP (xpath_str xpathex)

Applies an XPath expression to the DOM for an HTML document and returns the selected node-set or string, including markup like element tags. node-sets are converted to strings using the standard XPath string conversion routine. The selected portion of the document can be used as the target for rewrite actions.

Examples: HTTP.REQ.BODY(1000).XPATH_HTML_WITH_MARKUP(xp%//html/head/title%) returns the <title> element in the document's <head> This can be used in a rewrite action to replace or delete the <title> element.

Parameters (expressions not allowed):

xpathex - XPath Expression

Returns: text_t

* XPATH_HTML (xpath_bool xpathex)

Applies an XPath expression to the DOM for an HTML document and a boolean value.

Examples: HTTP.RES.BODY(1000).XPATH_HTML(xp%boolean(/html/head/meta)%) returns true if the <meta> element exists as a child of <head> element.

Parameters (expressions not allowed):

xpathex - XPath Expression

Returns: bool_at

* XPATH_HTML (xpath_double xpathex)

Applies an XPath expression to the DOM for an HTML document and a double value.

Examples: HTTP.RES.BODY(1000).XPATH_HTML(xp%number(//video/@height)%) returns the numeric value of the height attribute of the first <video> element.

Parameters (expressions not allowed):

xpathex - XPath Expression

Returns: double_at

* XPATH_HTML (xpath_str xpathex)

Applies an XPath expression to the DOM for an HTML document and returns the selected node-set or string. node-sets are converted to strings using the standard XPath string conversion routine.

Examples: HTTP.REQ.BODY(1000).XPATH_HTML(xp%//img/@src%) returns the string value of the src attribute of the first <img> element in the document.

Parameters (expressions not allowed):

xpathex - XPath Expression

Returns: text_t

* XPATH_JSON_WITH_MARKUP (xpath_str xpathex)

xpath(1.0) expression evaluation. xpath_json_with_markup operates on XML file and returns a string that contains the entire portion of the document for the result node including markup, such as including the enclosing element tags

Examples: For the JSON file: { "Book":{ "creator":{ "person":{ "name":'Milton' } }, "title":'Paradise Lost' } } HTTP.REQ.BODY(1000).XPATH_JSON_WITH_MARKUP(xp%/Top/Book/creator%) This expression when operated on the above JSON file, will select "all the nodes enclosed by /Book/creator" in the first 1000 bytes of the body which is creator:{ person:{ name:'Milton' } } The original JSON document is not disturbed but the part of the JSON body selected by the expression is marked for further processing.

Parameters (expressions not allowed):

xpathex - XPath Expression

Returns: text_t

* XPATH_JSON (xpath_bool xpathex)

xpath(1.0) expression evaluation. xpath_json operates on JSON file and returns boolean value.

Examples: For the JSON file: { "Book":{ "creator":{ "person":{ "name":'Milton' } }, "title":'Paradise Lost' } } HTTP.REQ.BODY(1000).XPATH_JSON(xp%boolean(/Top/Book/creator)%) This will return true as there is a node named 'creator' with parent 'Book' in the first 1000 bytes of the document.

Parameters (expressions not allowed):

xpathex - XPath Boolean Expression

Returns: bool_at

* XPATH_JSON (xpath_double xpathex)

xpath(1.0) expression evaluation. xpath_json operates on JSON file and returns double value.

Examples: For the JSON file: { "Book":{ "creator":{ "person":{ "name":'Milton' } }, "title":'Paradise Lost', "price":"36" } } HTTP.REQ.BODY(1000).XPATH_JSON(xp%number(/Top/Book/price)%) This will convert the string '36' string to double if it is in the first 1000 bytes of the document.

Parameters (expressions not allowed):

xpathex - XPath Numeric Expression

Returns: double_at

* XPATH_JSON (xpath_str xpathex)

xpath(1.0) expression evaluation. xpath_json operates on JSON file and returns node-set or string. node-sets are converted into corresponding strings using the standard xpath string conversion routine.

Examples: For the JSON file: { "Book":{ "creator":{ "person":{ "name":'Milton' } }, "title":'Paradise Lost' } } HTTP.REQ.BODY(1000).XPATH_JSON(xp%/Top/Book%) This will select "all the nodes enclosed by /Book" in the first 1000 bytes of the body. Since this is a node-set the corresponding string value will be returned which is "MiltonParadise Lost".

Parameters (expressions not allowed):

xpathex - XPath Expression

Returns: text_t

* XPATH_WITH_MARKUP (xpath_str xpathex)

xpath(1.0) expression evaluation. xpath operates on XML file and returns a string that contains the entire portion of the document for the result node including markup, such as including the enclosing element tags

Examples: Milton Paradise Lost HTTP.REQ.BODY(1000).XPATH_WITH_MARKUP(xp%/Book/creator%) This expression when operated on the above XML file, will select "all the nodes enclosed by /Book/creator" in the first 1000 bytes of the body which is Milton The original XML document is not disturbed but the part of the XML body selected by the xpath expression is marked for further processing.

Parameters (expressions not allowed):

xpathex - XPath Expression

Returns: text_t

* XPATH (xpath_bool xpathex)

xpath(1.0) expression evaluation. xpath operates on XML file and returns boolean value.

Examples: For the XML file: Milton Paradise Lost HTTP.REQ.BODY(1000).XPATH(xp%boolean(//Book/creator)%) This will return true as there is a node called creator under the node Book with in the first 1000 bytes of the document.

Parameters (expressions not allowed):

xpathex - XPath Boolean Expression

Returns: bool_at

* XPATH (xpath_double xpathex)

xpath(1.0) expression evaluation. xpath operates on XML file and returns double value.

Examples: For the XML file: Milton Paradise Lost 36 HTTP.REQ.BODY(1000).XPATH(xp%number(/Book/price)%) This will convert the string '36' to double if it is in the first 1000 bytes of the document.

Parameters (expressions not allowed):

xpathex - XPath Numeric Expression

Returns: double_at

* XPATH (xpath_str xpathex)

xpath(1.0) expression evaluation. xpath operates on XML file and returns node-set or string. node-sets are converted into corresponding strings using the standard xpath string conversion routine.

Examples: For the XML file: Milton Paradise Lost HTTP.REQ.BODY(1000).XPATH(xp%/Book/creator%) This expression will select "all the nodes enclosed by /Book/creator" in the first 1000 bytes of the body. Since this is a node-set its string value is returned which is: "Milton"

Parameters (expressions not allowed):

xpathex - XPath Expression

Returns: text_t