group-manip

The group manip action is used to manipulate AVPs inside grouped AVPs. For this diameter manipulation, you must set the avp-type to grouped.

The group manip action is similar to the diameter manip action in that the Oracle Communications Session Border Controller executes the diameter-manipulation configured in the new value.

There is an important difference between group manip and diameter manip. The diameter-manip action is context insensitive, meaning when it jumps from one diameter-manipulation to the next diameter-manipulation, it starts looking for the specified AVP from the top of the message.

The group manip action is context sensitive, meaning when the processing jumps from one diameter-manipulation to the next diameter-manipulation, it will look for the specified AVP within the grouped AVP. In short, the group manip works at an AVP level. All actions are allowed in the subsequent manipulations that are invoked, with the key difference being that those manipulation rules will be applied to the current grouped AVP in the chain. Thus it is possible to apply manipulation to an AVP at any level in the hierarchy.

Consider the following examples:

In order to replace the experimental-result, experimental-result-code AVP value from 5002 to 3002, a group manip can be configured as follows:

diam-manipulation
        name                           manipExpRslt
        description
        diameter-manipulation-rule
                name                           expRslt
                avp-code                       297
                descr-avp-code
                avp-type                       grouped
                action                         group-manip
                comparison-type                case-sensitive
                msg-type                       response
                msg-cmd-codes                  316,317,318
                match-value
                new-value                      expRsltCode
        last-modified-by               admin@console
        last-modified-date             2011-09-13 18:50:33
diam-manipulation
        name                           expRsltCode
        description
        diameter-manipulation-rule
                name                           expRsltCode
                avp-code                       298
                descr-avp-code
                avp-type                       unsignedint32
                action                         replace
                comparison-type                case-sensitive
                msg-type                       response
                msg-cmd-codes                  316,317,318
                match-value                    5002
                new-value                      3002
        last-modified-by               admin@console
        last-modified-date             2011-09-13 18:56:14

Further, if you want to add a new AVP called AvpD at the following location in the chain of AVPs Message: GrpAvpA, GrpAvpB, GrpAvpC, AvpD, then the manipulation chain would look like this

  • diameter-manipulation (name=grpAvpA, action=group-manip, new-value=grpAvpB)
  • diameter-manipulation (name=grpAvpB, action=group-manip, new-value=grpAvpC)
  • diameter-manipulation (name=grpAvpC, action=group-manip new-value=AvpD)
  • diameter-manipulation (name=AvpD action=add new-value="added new value")

    Note:

    using diameter-manip from inside the group-manip chain may have unexpected impact and must be avoided.