The SmartAVP feature allows you to manipulate any Attribute Value Pair (AVP) or Information Element (IE) in any outgoing message processed by a SmartEvents state machine. With SmartAVP, you have control over the addition, removal, and modification of the AVPs/IEs in messages, with the ability to position the modified AVP/IE in the message as desired.
Optional, proprietary or vendor specific signaling information or introduction of corrupt or invalid AVPs/IEs can be added to messages to facilitate negative testing. SmartAVP allows precise control of AVPs/IEs within any message exchange. SmartAVPs can be added to outgoing messages/response only, incoming messages cannot be modified.
SmartAVP supports container, grouped, and nested AVPs/IEs, and allows AVPs/IEs to be inserted, deleted, or replaced in messages in real-time.
In the case of adding or removing AVPs contained in container/grouped AVPs, dsTest requires the entire container AVP be specified in the SmartAVP down to the level of the AVP that is to be added or removed. Depending upon the AVP, this may require multiple levels of nesting. In the XML example below, AVP 458 is being removed from the container AVP 517 in a Rx AAR message. In this case the AVP is contained inside a container AVP, so the SmartAVP configuration is specified from the top level (container) AVP down to the AVP that is to be removed. The same concepts applies if the contained AVP was being added instead of removed.
<SmartAVP current_state="State 2" app="rx" event="auth">
<avp name='Media-Component-Description' action="container">
<avp name="remove_reservation_priorityAVP" action="remove">
In dsClient Desktop, the above SmartAVP configuration looks like this:
When dsTest is processing a SmartEvents state machine, it will immediately progress to the next state after satisfying the requirements of the current state. If you are inserting a custom AVP into a message, you must be sure that you design your SmartEvents flow such that the processing will stay in the state in which the message is generated so that dsTest can insert the custom AVP in the message before the state is advanced to the next state. If you have questions about this, please contact Developing Solutions Support.
Import from Dictionary to SmartAVP
When defining SmartAVPs in SmartEvents, data from the Diameter Dictionary can be imported to help define the SmartAVP contents. The action is invoked using the import icon shown in SmartAVP properties panel in SmartEvents.
See some more SmartAVP examples/Use Cases.