12 Configuring Condition List Objects

Condition lists help define the criteria by which decisions are made as to how to manipulate or forward calls. You can set conditions to determine policy application and to select applicable dial or registration plans (and their components).

The policy configuration object allows you to create policies that govern the routing of SIP phone calls and instant messages to recipients, and then back to the original caller or sender. A policy is identified by a unique name and can contain one or more rules. With each rule, you configure a condition list with a set of properties, (as well as the session configuration properties).

Both dial and registration plans use condition lists as a ”first pass” filter when matching a plan entry. The ME compares an incoming request against the configured conditions, and returns a list of matching plan entries. The match statements within the plan components then determine the final selection and/or alteration.

The following registration-plan components use condition lists:

  • normalization

  • arbiter

  • route

The following dial-plan components use condition lists:

  • normalization

  • arbiter

  • route

  • source-route

The following calling-groups components use condition lists:

  • route

  • source-route

The following objects in the carriers switch and trunk-group subobjects use condition lists:

  • outbound-normalization

  • inbound-normalization

The following server-pool server subobjects use condition lists:

  • outbound-normalization

  • inbound-normalization

In addition, the condition list selection is available as a match component for URI matching that defines to which calls the ME should apply the configured plan. See Using the Match Properties for more information.

condition-list

Defines the conditions for policy, dial plan, or registration plan matching. If conditions match, the settings of the session configuration apply. Otherwise, default session configuration settings apply. Match statements in a condition-list include matching messages; exclude statements omit them. In some cases, you can specify a substring of a regular expression, which if found, will be a match. Specify a property and a regular expression or value for the corresponding variables. You must re-execute the command for each field you want included.

See Using Relational Operators for definitions of the operators used in condition construction.

Syntax

config vsp carriers carrier name gateway name inbound-normalization name condition-list
config vsp carriers carrier name gateway name outbound-normalization name condition-list
config vsp carriers carrier name gateway name trunk-group name inbound-normalization name condition-list
config vsp carriers carrier name gateway name trunk-group name outbound-normalization name condition-list
config vsp dial-plan normalization name condition-list
config vsp dial-plan arbiter name condition-list
config vsp dial-plan route name condition-list
config vsp dial-plan fork name condition-list
config vsp dial-plan voice-mail name condition-list
config vsp calling-groups group name route name condition-list
config vsp calling-groups group name source-route name condition-list
config vsp enterprise servers serverType serverName server-pool server serverName outbound-normalization name condition-list
config vsp enterprise servers serverType serverName server-pool server serverName inbound-normalization name condition-list
config vsp policies session-policies policy name rule name condition-list
config vsp registration-plan normalization name condition-list
config vsp registration-plan arbiter name condition-list
config vsp registration-plan route name condition-list
config vsp route-server-config route-server-sequence name query name condition-list

Properties

operation: Specifies the decision operation to use (AND/OR) should a condition match occur in the SIP call session.

If multiple condition matches occur, the AND operation applies the matching rule with the highest precedence. The OR operation can use any of the matched conditions.

Default: and
Values: and | or

Example: set operation or

mode: Sets how the system applies the condition list. If set to evaluate, the system runs the conditions to determine whether or not to apply the session configuration settings. If set to always-true, the system applies the session configuration settings, no conditions need to be configured. You may want to use this setting, for example, to apply session settings for a configured group without making up conditions to match the group.

Default: evaluate
Values: evaluate | always-true

Example: set mode always-true

sip-message-condition: See SIP Message Condition Options.

from-uri-condition: See From, To, and Request URI Condition Options.

to-uri-condition: See From, To, and Request URI Condition Options.

request-uri-condition: See From, To, and Request URI Condition Options.

date-time-condition: See Date and Time Condition Options.

action-condition: Specifies whether the configured rule is applied to normal SIP traffic or to a specific action. Select none to apply the rule to SIP traffic or select one of the supported actions.

Default: none
Values: none | call-control | presence-subscribe | presence-end-subscription

Example: set action-condition call-control

SIP Message Condition Options

Matches on general fields within the received SIP message.

Properties

box: Includes or excludes messages based on the ME box number within the cluster on which this SIP message was received.

Values: <eq | ne | gt | lt | ge | le> number

Example: set sip-message-condition box exclude 3

vsp: Includes or excludes messages based on the VSP on which this SIP message was received.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition vsp match 1

to-uid: Includes or excludes messages based on the identity of the recipient of the packet. The UID is a system-generated number that assigned to all SIP users known to the system. You can view this value using the ME Management System accounting/users screen.

Values: <eq | ne | gt | lt | ge | le> UID

Example: set sip-message-condition to-user gt 013

from-uid: Includes or excludes messages based on the user identity of the sender of the packet. The UID is a system-generated number that assigned to all SIP users known to the system. You can view this value using the ME Management System accounting/users screen.

Values: <eq | ne | gt lt | ge | le> UID

Example: set sip-message-condition from-user eq 025

ip-interface: Includes or excludes messages based on the ME network interface on which the SIP message was received.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition ip-interface match 192.168*

direction: Includes or excludes messages based on the direction of the packet: either TX (outbound) or RX (inbound).

Values: <match | exclude > <RX | TX>

Example: set sip-message-condition direction exclude outbound

transport: Includes or excludes messages based on the protocol type of the packet.

Values: <match | exclude> <any | udp | tcp | tls>

Example: set sip-message-condition protocol exclude tls

remote-ip: Includes or excludes messages based on the originating IP address. Enter an address and mask using CIDR notation.

Values: <match | exclude> ipAddress

Example: set sip-message-condition remote-ip match 10.10.0.0/24

local-ip: Includes or excludes messages based on the destination IP address. Enter a port number between 1 an d65535.

Values: <match | exclude> ipAddress

Example: set sip-message-condition local-ip match 20.20.0.0/24

remote-port: Includes or excludes messages based on the originating port of the packet. Enter a port number between 1 and 65535.

Values: <eq | ne | gt lt | ge | le> port

Example: set sip-message-condition

local-port: Includes or excludes messages based on the ME port over which the packet is received. Enter a port number between 1 and 65535.

Values: <eq | ne | gt lt | ge | le> port

Example: set sip-message-condition local-port gt 1010

private-remote-ip: Includes or excludes messages based on the private IP address of the remote device when NAT is being used and detected by the system.

Values: <match | exclude> ipAddressmask

Example: set sip-message-condition private-remote-ip match 172.168.10.10/24

private-remote-port: Includes or excludes messages based on the private port of the remote device when NAT is being used and detected by the system.

<eq | ne | gt lt | ge | le> port

Example: set sip-message-condition private-remote-port eq 3660

uac-public-ip: Includes or excludes messages based on the public IP address of the UAC (the user agent initiating the call leg), which is present if the UAC is doing NAT.

Values: <match | exclude> ipAddressmask

Example: set sip-message-condition exclude 10.10.0.0/32

uac-public-port: Includes or excludes messages based on the public port of the UAC (the user agent initiating the call leg), which is present if the UAC is doing NAT.

Values: <eq | ne | gt lt | ge | le> port

Example: set sip-message-condition eq 10.10.0.0/32

call-leg: Includes or excludes messages based on the direction of the packet: inbound or outbound.

Values: <match | exclude> <inbound | outbound>

Example: set sip-message-condition call-leg exclude outbound

message-type: Includes or excludes table rows based on the type of message: request or response.

Values: <match | exclude> <inbound | outbound>

Example: set sip-message-condition message-type match response

request-method: Includes or excludes messages based on their request method. Select a standard method.

  • INVITE

  • ACK

  • OPTIONS

  • BYE

  • CANCEL

  • REGISTER

  • MESSAGE

  • INFO

  • NOTIFY

  • SUBSCRIBE

  • REFER

  • PRACK

  • PUBLISH

  • UPDATE

Values: <match | exclude> method

Example: set sip-message-condition request-method exclude info

request-uri: Includes or excludes table rows based on the string found in the request URI field.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition match *badguy*

response-code: Includes or excludes messages based on the value in the response code field. Enter a code number or select a standard code. (Enter a ? after the mathematical operator to see the list of standard codes. For example, set sip-message-condition response-code eq ?) You can use the mathematical operators to specify a range of codes.

Values: <eq | ne | gt lt | ge | le> code

Example: set sip-message-condition response-code match ge 600

response-string: Includes or excludes messages based on the string found in the response field of the SIP header.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition response-string exclude OK

call-id: Includes or excludes messages based on the value in the call ID field.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition call-id match 3ab7d43aab0d43dbbec041a*

from: Includes or excludes messages based on the value in the From: field of the SIP header.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition from exclude mis@companyABC.com

to: Includes or excludes messages based on the value in the To: field of the SIP header.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition to match *.eng.*@companyABC.com

cseq: Includes or excludes messages based on the value in the command sequence field. Use quotation marks to enclose strings that include spaces.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition cseq match ”3 invite”

content-type: Includes or excludes messages based on the string in the content type field of the SIP header.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition content-type match application/*

user-agent: Includes or excludes messages based on the specified string being found in the SIP header field of the packet.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition user-agent exclude *.win.*

header: Includes or excludes messages based on the specified string being found in the SIP header field of the packet.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition header match .*boom.*

content: Includes or excludes messages based on the specified string found in the packet payload.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition content match ”What are you doing?”

result-code: Includes or excludes messages based on the value of the result field.

Values: <match | exclude>
  • Values: success: the packet went through.

  • bad-header: the system could not parse the header and so discarded the packet.

  • policy-discard: the system immediately discarded the packet due to a session policy firing with an action set to discard.

  • policy-refuse: the system discarded the packet, due to a session policy firing with an action set to discard, but sent a response to indicate having done so.

  • socket-timeout: the packet was dropped due to a socket timeout.

Example: set sip-message-condition result exclude success

result-description: Includes or excludes messages based on any further information they may have been included in the results (such as a descriptive string for the resultCode).

Values: <match | exclude | contains> regExp

Example: set sip-message-condition result-string match ”from badguy.policy”

uac-public-transport: Includes or excludes messages based on the transport protocol used by the UAC (the user agent initiating the call leg), which is present if the UAC is doing NAT.

Values: <match | exclude> <any | udp | tcp | tls>

Example: set sip-message-condition uac-public-transport match tls

request-uri-user-host: Includes or excludes messages based on the ”user@host” portion of the Request URI.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition request-uri-user-host match exec@company.com

to-user-host: Includes or excludes messages based on the ”user@host” portion of the TO URI

Values: <match | exclude | contains> regExp

Example: set sip-message-condition to-user-host match admin@company.com

from-user-host: Includes or excludes messages based on the ”user@host” portion of the FROM URI.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition from-user-host exclude joe@company.com

cseq-message-type: Includes or excludes messages based on the SIP method type from the CSea: header line. Select one of the following method types.

  • INVITE

  • ACK

  • BYE

  • REGISTER

  • REFER

  • NOTIFY

  • OTHER

  • PRACK

  • CANCEL

  • SUBSCRIBE

  • OPTIONS

  • MESSAGE

  • INFO

  • PUBLISH

  • UPDATE

  • SERVICE

  • NONE

Default: match and INVITE
Values: <match | exclude> methodType

Example: set sip-message-condition cseq-message-type exclude INFO

media-types: Includes or excludes messages based on the media (CODEC) type. If you set this attribute, you must enable the prescan-media-types property of the VSP settings object. Note that this attribute is case-insensitive.

Values: <match | exclude | contains> regExp

Example: set sip-message-condition media-types contains g726

From, To, and Request URI Condition Options

Includes or excludes messages based on the content of the To, From, or Request URI field strings in the SIP message.

Properties

scheme: Includes or excludes messages based on the URI type: SIP, SIPS, or Tel.

Values: <match | exclude> regExp

Example: set from-uri-condition scheme match sips

user: Includes or excludes messages based on the user portion of the To, From, or Request URI.

Values: <match | exclude> regExp

Example: set from-uri-condition user exclude *bob.roberts*

user-param: Includes or excludes messages based on a user parameter in the SIP header of the To, From, or Request URI.

Values: <match | exclude> regExp

Example: set from-uri-condition user-param exclude *=internal

host: Includes or excludes messages based on the SIP server host portion of the To, From, or Request URI.

Values: <match | exclude> regExp

Example: set from-uri-condition-host exclude *cov.com*

port: Includes or excludes messages based on the port number recorded in the To, From, or Request URI.

Values: <match | exclude> regExp

Example: set from-uri-condition-port match 5060

ttl: Includes or excludes messages based on the time-to-life value associated with the UDP multicast packet for the particular URI type.

Values: <match | exclude> regExp­

Example: set from-uri-condition ttl exclude 15

method: Includes or excludes messages based on the SIP request method: INVITE, REGISTER, NOTIFY, etc.

Values: <match | exclude> regExp

Example: set from-uri-condition method match invite

url: Includes or excludes messages based on the SIP URL.

Values: <match | exclude> regExp

Example: set from-uri-condition url match *companyABC*.com

other: Includes or excludes messages based on any parameters in the SIP header of the To, From, or Request URI except the user parameter.

Values: <match | exclude> regExp

Example: set from-uri-condition other exclude match *=temp

transport: Includes or excludes messages based on the transport protocol type of the packet: UDP, TCP, TLS, or any protocol.

Values: <match | exclude> <any | udp | tcp | tls>

Example: set from-uri-condition protocol exclude tls

named-variable-condition: Specifies the named variable to match to this policy rule and how you want to compare them.

  • Values: named-variable-value<variable-name><match-type><regexp-value>: Compare the specified variable value.

Named match values for this argument are:

  • match: Allow values which match the specified expression.

  • exclude: Exclude values which match the specified expression.

  • contains: Allow values which contain the specified expression.

  • Values: compare-named-variables<variable-name-1><match-type><variable-name-2>: Compare the values of two different named variables. The default match-type and only option is match, which means the ME compares if the named variable values match.

Example: set named-variable-condition named-variable-value var1 exclude \s

Date and Time Condition Options

Creates a match condition based on the date and time of the SIP message. You can enter as many date time conditions as you wish. Use multiple conditions to further refine the date/time.

Properties

hour: Specifies the hour in the time string of the SIP message to match on for this rule to apply. Enter a whole number between 0 (midnight) and 23. To create times that do not fall on the hour boundary, for example, 1:30, use the hour and minute conditions

Values: <eq | ne | gt | lt | ge | le> value

Example: set date-time-condition hour gt 5

minute: Specifies the minute in the time string of the SIP message to match on for this rule to apply. Enter a whole number between 0 and 59.

Values: <eq | ne | gt | lt | ge | le> value

Example: set date-time-condition minute eq 30

day: specifies the day of the week in the time string of the SIP message to match on for this rule to apply.

Values: <match | exclude> <Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday>

Example: set date-time-condition exclude saturday

date: Specifies the date in the time string of the SIP message to match on for this rule to apply. Enter a whole number between 1 and 31.

Values: <eq | ne | gt | lt | ge | le> value

Example: set date-time-condition date gt 15

month: Specifies the month in the time string of the SIP message to match on for this rule to apply. Enter the name of a month.

Values: <match | exclude> month

Example: set date-time-condition month exclude january

year: Specifies the year in the time string of the SIP message to match on for this rule to apply. Enter any value.

Values: <eq | ne | gt | lt | ge | le> value

Example: set date-time-condition year eq 2011

Route Server Query Condition Options

Defines the conditions required for the ME to execute a route server query.

from-server-condition: Specifies the criteria against which the SIP server that sent the SIP message is compared to match this policy rule.

Default: Not configured
Values: tag | address | server-type <match> <server-type>

Example: set from-server-condition server-type match sip-proxy

user-group-condition: Specifies the user group names in the To: and From: fields to match in this policy rule. The match indicates that the SIP message caller (From:) and the recipient (To:) are members of the specified group.

Default: Not configured
Values: to-user-group | from-user-group | <match> <user-group>

Example: set user-group-condition to-user-group exclude group

named-variable-condition: Specifies the named variable to match this policy rule.

Default: Not configured
Values: named-variable-value <variablename> <match> <value> | compare-named-variables <variable-name1> <match> <variable-name2>

Example: set named-variable-condition compare-named-variables var1 match var2

abort-on-failure: Specifies the ME's behavior when a query fails. When true, the ME stops querying the route server.

Default: false
Values: true | false

Example: set abort-on-failure true

stop-on-success: Specifies the ME's behavior when a query is successful. When true, the ME stops querying the route server.

Default: false
Values: true | false

Example: set stop-on-success true