In this section:
A criteria identifies which conditions to meet before a modification specified in an action part is executed. Different criteria elements and their use cases include:
Do not use SMM to manipulate To, From, Contact and Request URIs in incoming REGISTER messages.
Different SIP elements are used while identifying the criteria, as described below.
The SBC uses GNU Extended Regular Expressions character sets, which does not support the characters "\d" and "\D". Ribbon recommends not using "\d" and "\D" in the regular expressions of SMM rule criteria. As an alternative, use the [0-9] format.
The Message criteria optionally specifies a SIP request or response for a particular method or response (status) code, as follows:
The Header criteria specify the presence, absence, or value of a specific SIP Header as follows:
Per RFC 3261 section 7, the Field Value is defined per header-name. As either an opaque sequence of TEXT-UTF8 octets, or a combination of white space, tokens, separators, and quoted strings. Many existing header fields adhere to the general form of a value followed by a semicolon (;) separated sequence of parameter-name, parameter-value pairs, as shown below:
field-name: field-value *(;parameter-name=parameter-value)
In the following example, "terminated" is a field value:
Subscription-State: terminated; reason=rejected
A set of criteria must always include a single SIP Header instance that specifies the SIP Header/Request-URI to be used for the indicated action.
Regular expressions are based on the following W3C regular expressions pattern which is defined as a pattern, or sub-pattern, containing any white space or none white space string for up to 128 characters. The pattern can occur zero or one time.
"(((([\s\S])){0,128})){0,1}"
SIP parameter criteria specify the presence, absence, or value of a specific SIP Parameter as follows:
If a criterion contains a SIP parameter component, it is evaluated together with the SIP header component. For example, if the SIP header component = presence of P-CALLED-PARTY-ID, and the SIP parameter component = absence of OPERATOR parameter, the rule matches if P-CALLED-PARTY-ID is present and no operator parameter is present in the P-CALLED-PARTY-ID.
Three different types of parameters may be specified as detailed in the table below. The parameter type allows the criterion to locate the position of specified parameter.
Table 1: SIP Parameter Types
SIP Parameter Type | Description | Example |
---|---|---|
Generic | Generic parameters are added to headers after the field value. | In the following example, "
|
URI | URI Parameters follow addresses in different URI schemes. They are distinguished from generic parameters by being present before the greater-than (>) symbol in a URI value. | In following example, "
|
User | User Parameters are embedded in SIP/SIPS URI schemes and are present in the userpart, i.e. they are positioned before the @ and are separated from the actual userpart value by a semi-colon (;). | In following example, "
|
ISUP parameter criteria specify the presence, absence, or value of a specific ISUP parameter as follows:
Refer to SIP-I Support for additional parameter details.
Token criteria specify the following:
Tokens displayname, username, hostname, scheme and hostport are available to define a token criterion. A criterion may or may not have a token component. If token component is present, it must be evaluated together with the SIP header component or with SIP header/SIP parameter components.
The Internal Variable criteria specify the following:
Internal variables temporarily store values of SIP elements in a message. Internal variables have predefined names in the range VAR1, VAR2,... VAR30. An internal variable with a specified value can also be a criteria. A defined internal variable is available to all rules in a SIP Adaptor Profile when a message is being modified.
A value specified for a criteria component can be a static value, e.g. phonecompany.com, or an internal variable, e.g. VAR6. If an internal variable is given, its value is used.
The Global Variable criteria specify the following:
Global variables are another type of internal variable. Currently seven global variables are supported: srcipaddr, srcport, sigportID, localIP, localPort, ingressTgName and egressTgName. A global variable with a specified value can also be a criteria. Global variables always exist; unlike internal variables, it is not necessary to create them. Plus, a global variable is always read-only, and its value is set when applying the rules in the SIP Adaptor Profiles.
The Message Body criteria specify the following:
A criterion may or may not have a message body component. If a criterion contains a message body component matching the message body of a SIP Message, the SIP Message is manipulated as specified in message body rules.