This feature is intended for advanced users who are familiar with the details of RFC-3261. The feature is only available to Admin users. Incorrect use of this feature may adversely impact system performance or may disable SIP call processing.
SIP Message Manipulation feature is used by a SIP Signaling Group to manipulate the incoming or outgoing messages. This feature is intended to enhance interoperability with different vendor equipment and applications, and for correcting any fixable protocol errors in SIP messages on fly without any changes to firmware/software.
Although SIP is considered a mature protocol there are still devices running old firmware and systems that interpret the standard in a non-conforming way. In addition there are cases where a compliant message may be modified to adapt to an application specific requirement. In a typical deployment there may be hundreds or even thousands of endpoints that use the services of the SBC. In these environments when an interoperability issue arises or an application expects a specific behavior the only remedy is to escalate the issue and wait for a maintenance release. This is neither scalable nor very responsive so the SIP Message Manipulation feature was developed to solve this issue.
This capability consists of two components, condition rules and message rules. Condition rules provide a means to identify which messages and what components in the message must present before any modifications are performed. For example, I want to modify all INVITE messages with a from uri host of "ribbon.net".
The message rule does the actual modification of a message. Once the conditions of a rule have been met the message rule(s) are applied. Continuing with the example above, a message rule may change the from uri display name to "Ribbon".
Another common problem in the field is decoding failures from endpoints that are not in compliance with the SIP protocol. In these instances the protocol problems can be fixed before the message is passed to the applications, and broken (restored) when the message is sent back to the non-conforming endpoint.
The feature's Message Manipulation Engine (MME) manipulates SIP messages in order to compensate for interoperability issues between differing vendor equipment and for dynamically correcting reparable protocol errors in SIP messages. The flows described in this article are message flows and should not be confused with call flows.
(1) The SIP Signaling Group receives a message from a SIP endpoint and(2) passes that message to the Message Manipulation Engine (MME) the message is examined using Rule and Condition Tables, then manipulated as required and (3)sent back to the SIP Signaling Group which then sends (4) it to the SIP Application.
Outbound message flows are essentially a mirror image of inbound message flows. The SIP application sends messages, which could be replies, request, or responses, to an endpoint. The Messages move from the SIP application to the Signaling Group, to the MME where they are modified appropriately to be successfully understood by the endpoint, passed back to the Signaling Group, and then transmitted to the end point.
Message Manipulation Components
The Message Manipulation feature comprises two primary components that work in concert to modify SIP messages. Those component are Condition Rules and Rule Tables.
Condition rules are simple rules that apply to a specific component of a message (e.g., diversion.uri.host, from.uri.host, etc.) the value of the field specified in the Match Type list box can be matched against a; literal value, token, or REGEX.
The following example demonstrates a token match where the URI in the p-asserted-identity header is matched against the URI in the From header.
Condition Rule Table
The Condition Rule Table a collection of all the user created Condition Rules.
Message Rule Tables
Rule Tables and Condition Rules
Message Rule tables are tables of tables. The inner tables are essentially sets (tables) of Condition Rules.
Application of Rule Tables
Message Rule Tables are simply sets of Condition Rules and are applied in SIP Signaling Groups when Message Manipulation is enabled.
- Adding and Modifying Entries to Message Rule Tables
- Testing Message Rules