IMPORTANT

The Transparency Profile is the recommended method of configuring transparency on the SBC Core for new deployments as well as when applying additional transparency configurations to existing deployments. Do not use IP Signaling Profile flags in these scenarios because the flags will be retired in upcoming releases.

Refer to the SBC SIP Transparency Implementation Guide for additional information.


Overview

Each SIP Adaptor Profile contains up to 64 rules that are applied sequentially to messages. Each rule can have up to 20 criteria and up to 128 actions. The SIP Message Manipulation (SMM) rule inspects each SIP message and looks for a match with its defined criteria. If all the criteria are met, the SMM rule applies its defined action(s) to the message and sends the message for further processing.

Rules within a profile are applied to messages sequentially in order of the rule index numbers.

  • If a message meets a rule criteria, it is processed by that rule and then passed on to the next rule. Therefore, a message might be modified by more than one rule.
  • If a message does not meet a rule criteria, it is passed on to the next rule.
  • If a message does not meet any criteria in any of the rules, it is passed on unmodified.

Each rule consists of two main parts:

  • One or more Criteria
  • One or more Actions

Criteria includes the conditions to execute the rules. The action part specifies the actual modifications to perform.

SMM Rule Categories


Rules are logically grouped into the following categories.

  • Message Rule—Ignore an inbound message by dropping silently or by not sending an outbound message. Reject a message (requests) with the configured response code. Create a URI.
  • Header Rule—Add/delete headers or modify their content.
  • Parameter Rule—Add/delete parameters in a header or modify their content.
  • Token Rule—Add/delete tokens in a header or modify their content.
  • Internal Variable Rule—Set or compare the values of internal variables. Criteria should specify that modification must be performed on the variable and the variable ID.
  • Global Variable Rule—Use Global Variables to modify a header/parameter/token/message body/variable etc. Criteria should specify the Global Variable name and the name of the header/parameter/token/variable etc. which needs to be modified with global variable.
  • Message Body Rule—Add/delete or modify the message body contents. Criteria should specify that modification must be performed on the Message Body.

Unknown Headers and Parameters

As rules are defined, some headers or parameters may be unknown to the SBC (e.g., a rule to remove a proprietary header). In such cases, even though the SBC does not have any information about the type of header or parameter, it can still refer to the tokens in these constructs.
It is assumed that if a rule refers to a userpart or hostpart, the corresponding header or parameter is in URL format.

  • Userpart value is the content before "@". If there is a ";" in that portion, the userpart value contains only the parts present before it.
  • Hostpart value is the content after "@". The value contains the content until the end of the header line or until a ";" or ">" is met.

SMM Rules on a Live System

SBC supports SMM rules on a live system. SBC allows the user to modify the SMM rules on a live system when SMM rules are applied. The existing rules continue to exist. The new rules are active once confirmed or applied. SBCuser can edit or update the SMM rules of the Sip Adaptor profile without changing the admin state in a Live environment.

Two Variables comparison Support

A new SMM functionality is added to compare two variables. Two new criterion values, variables-equal and variables-not-equal, are added to determine:

  • If the two variables exist and are equal.
    or
  • If the two variables exist and are not equal.

Write CDRs using SMM Rules Support

Five new CDR fields of 256 bytes each are introduced to log the proprietary information to the accounting records using the SMM rules:

  • SMM-Field-1
  • SMM-Field-2
  • SMM-Field-3
  • SMM-Field-4
  • SMM-Field-5

These new fields are present in Sip Specific Protocol string of the START, STOP, IMMEDIATE, and ATTEMPT records for session based accounting.

The value of the above SMM CDR fields are stored with:

  • Header value of the SMM rules.
  • Parameter value of the SMM rules.
  • The value stored in the variable.
  • The token value.

Dropping "18x with 100Rel" and Handling Prack

The SBC supports generating and sending a PRACK messages internally and sending the PRACK back to the IAD if an incoming 18x with 100Rel is dropped.

Feature limitations:

  • It is assumed that the dropped 18x will not carry a new offer.
  • If a 18x is dropped by the SMM rule, for a call to succeed, the "200 OK for INVITE" contains the SDP.
  • If End-to-End PRACK is enabled, do not use SMM rules to drop "18x with 100Rel".
  • If a "18x with 100Rel" is dropped on Egress, the Required Header received from the Ingress will not be passed to the Egress when Required Header Transparency is enabled.
  • If a "18x with 100Rel" is dropped by the SMM rule, the INVITE with "Require:100 rel" is not supported.

Native SDP Manipulation Support

The SBC uses SMM to manipulate SDP by using a regular expression. 

There is only CLI command and no EMA support for Native SDP Manipulation Support.

The SBC is also able to create SMM rules to directly manipulate SDP in the following manner:

ADD Operation

Use the ADD operation to:

  • add a line to the session block
  • add a line to the specific media stream
  • add a parameter to the specific SDP line in either session block or media stream
  • add a codec (codec name) to a specific instance of a particular media stream or all instances of that particular media stream
  • add a new stream to the SDP

DELETE Operation

Use the DELETE operation to:

  • delete a line in the session block
  • delete a line in a specific media stream
  • delete a parameter from a specific SDP line
  • delete a codec (codec name) in a specific instance of a particular media stream or all instances of that particular media stream
  • delete a codec by the position as it appears in the "m=" line in a specific instance of a particular media stream or all instances of that particular media stream

GET Operation

Use the GET operation to store the:

  • payload type for a given codec (full codec name) in a specific instance of a particular media stream
  • codec position as it appears in the "m=" line for given codec (partial codec will be supported) in a specific instance of a particular media stream

STORE Operation

Use the STORE operation to store:

  • a line in the session
  • a line in a specific media stream
  • a parameter in a specific SDP line

FILTER-CODEC Operation

Use the FILTER-CODEC operation to filter or re-arrange the codec in a particular media stream. The from operand value represents the codec pattern being applied for the filtering. The patterns contains up to 25 comma-separated codec names or wildcard codec "*". There should be not more than one wildcard "*" codec appears in the codec pattern.

Limitations:

  • You can use the Value type as "From" to specify up to 25 comma-separated codec pattern. However, the total length of the pattern cannot exceed 128 bytes.
  • You can use the Variable type as "From" to specify up to 25 comma-separated codec pattern. However, the total length of the pattern cannot exceed 256 bytes.

CONDITION EXIST Criterion

Use the CONDITION EXIST Criterion option to:

  • use criterion type "sdpContent" to determine whether specific media stream contains any codec specific criterion
  • use messageBody type "messageBody: SDP" to determine whether the SDP content exists in the message body

SMM Switch Semantics

The SBC is enhanced to reduce the usage of SMM rules significantly, using switch semantics. When a value or a regular expression string matches the defined SMM rule, the corresponding action is performed. The switch semantics of the SMM rules are applicable only to the variables, global variables, headers, parameters, and tokens. To support this functionality, a new object switch is added to the sipAdaptorProfile.

  • You can configure up to 128 switch values.
  • This feature is not applicable for message body and isup parameters.
  • Actions configured in switch should be present in list of actions created.
  • The keyword others is used for switchValue which represents all the values which are not explicitly specified.