The following table outlines the header manipulation language.

EdgeMarc Header Manipulation Language

Item or Header NameValue or VariableDescription

HMR Syntax

Enter the header value as a concatenation of segments using the “+” sign.

Example: segment + segment + segment + ...

Literal

A string literal that needs to be copied verbatim into the resulting header value. The string literal should be enclosed in single quotes. Example: ‘sip:’

Variable

One of the pre-defined variables. Variables extract a value from the received SIP message or the environment and place it into the value. Variables are preceded with a “$” sign. Example: $from.uri.user

Function

Functions operate on the variables and insert the result into the value.

Example: replace ($diversion, ‘88’, ‘408’)

Headers

Includes the following Headers:

Request-URI

• From

To

Contact

Route

• User Agent

• Subject

Value of From parameter 'tag'

P-Asserted-Identity (PAI)

• History Info

P-Preferred-Identity (PPF)

• Referred-By

$from.dispnameDisplay name
$from.uri.userUser name portion of the URI
$from.uri.hostHost portion of the URI
$from.uri.port

Port from the URI

$from.uri.parameter[use r]

Value of URI Parameter ‘user’

$from.uri.header[h1]Value of URI header ‘h1’
$from.parameterValue of From parameter ‘tag’

Via

$via.ip.hostValue of sent-by
$via.ip.portValue of sent-by port
$via.parameter[branch]Value of parameter ‘branch’
Request URI$request.methodSIP method
$request.uri.userRequest-URI user
$request.uri.hostRequest-URI host
$request.uri.portRequest-URI port

Other headers

$diversion.text

Extract the entire diversion header from the received message.

nth header<header-name>#<numb er>.<sub-field>.<sub-fie ld>

$via.ip.host returns the sent-by value of the top most Via header. This is the same as $via#0.ip.host. To refer to a second Via header, the syntax is $via#1.ip.host. A third Via header is $via#2.ip.host, and so on.

Environmental Variables

$env.in_intf_hostIP Address of the interface on which the message was received
$env.in_intf_portTCP/IP Port on which the message was received
$env.out_intf_hostIP Address of the interface from which the message will leave EM
$env.out_intf_portSource port that is used for sending the message
$env.target_hostIP Address of the destination of the message
$env.target.portDestination port of the message
$env.target_domainDomain name of the destination of the message
Functionssubstr (src_string, start_index, len)

The substr() function extracts a sub-string of length “len” from the src_string starting at index “start_index.” The index is zero-based. For example, the first character is index “0”, and the second character is index “1.” If the start_index is negative, counting starts from the end of the string. For example “-1” would be the last character, and “-2” would be the second to last character. This can be useful when stripping characters from the left side of “src_string.”

replace (src_string, 'search_string', 'replace_value')

replace() function searches the “src_string” for all occurrences of “search_string” and replaces them with “replace_value."