public interface FinalUnitIndication extends GroupedAvp
8.34. Final-Unit-Indication AVP
The Final-Unit-Indication AVP (AVP Code 430) is of type Grouped and
indicates that the Granted-Service-Unit AVP in the Credit-Control-
Answer, or in the AA answer, contains the final units for the
service. After these units have expired, the Diameter credit-control
client is responsible for executing the action indicated in the
Final-Unit-Action AVP (see section 5.6).
If more than one unit type is received in the Credit-Control-Answer,
the unit type that first expired SHOULD cause the credit-control
client to execute the specified action.
In the first interrogation, the Final-Unit-Indication AVP with
Final-Unit-Action REDIRECT or RESTRICT_ACCESS can also be present
with no Granted-Service-Unit AVP in the Credit-Control-Answer or in
the AA answer. This indicates to the Diameter credit-control client
to execute the specified action immediately. If the home service
provider policy is to terminate the service, naturally, the server
SHOULD return the appropriate transient failure (see section 9.1) in
order to implement the policy-defined action.
The Final-Unit-Action AVP defines the behavior of the service element
when the user's account cannot cover the cost of the service and MUST
always be present if the Final-Unit-Indication AVP is included in a
command.
If the Final-Unit-Action AVP is set to TERMINATE, no other AVPs MUST
be present.
If the Final-Unit-Action AVP is set to REDIRECT at least the
Redirect-Server AVP MUST be present. The Restriction-Filter-Rule AVP
or the Filter-Id AVP MAY be present in the Credit-Control-Answer
message if the user is also allowed to access other services that are
not accessible through the address given in the Redirect-Server AVP.
If the Final-Unit-Action AVP is set to RESTRICT_ACCESS, either the
Restriction-Filter-Rule AVP or the Filter-Id AVP SHOULD be present.
The Filter-Id AVP is defined in [NASREQ]. The Filter-Id AVP can be
used to reference an IP filter list installed in the access device by
means other than the Diameter credit-control application, e.g.,
locally configured or configured by another entity.
The Final-Unit-Indication AVP is defined as follows (per the
grouped-avp-def of RFC 3588 [DIAMBASE]):
Final-Unit-Indication ::= < AVP Header: 430 >
{ Final-Unit-Action }
*[ Restriction-Filter-Rule ]
*[ Filter-Id ]
[ Redirect-Server ]
Note:FLAG_RULE_MAY, FLAG_RULE_MUST, FLAG_RULE_MUSTNOT| Modifier and Type | Method and Description |
|---|---|
DiameterAvp[] |
getExtensionAvps()
Returns the set of extension AVPs.
|
java.lang.String[] |
getFilterIds()
Returns the set of Filter-Id AVPs.
|
FinalUnitAction |
getFinalUnitAction()
Returns the value of the Final-Unit-Action AVP, of type Enumerated.
|
RedirectServer |
getRedirectServer()
Returns the value of the Redirect-Server AVP, of type Grouped.
|
IPFilterRule[] |
getRestrictionFilterRules()
Returns the set of Restriction-Filter-Rule AVPs.
|
boolean |
hasFinalUnitAction()
Returns true if the Final-Unit-Action AVP is present in the Final-Unit-Indication AVP.
|
boolean |
hasRedirectServer()
Returns true if the Redirect-Server AVP is present in the Final-Unit-Indication AVP.
|
void |
removeExtensionAvps()
Removes all extension AVPs from the Final-Unit-Indication AVP.
|
void |
removeFilterIds()
Removes all Filter-Id AVPs from the Final-Unit-Indication AVP.
|
void |
removeFinalUnitAction()
Removes the Final-Unit-Action AVP from the Final-Unit-Indication AVP.
|
void |
removeRedirectServer()
Removes the Redirect-Server AVP from the Final-Unit-Indication AVP.
|
void |
removeRestrictionFilterRules()
Removes all Restriction-Filter-Rule AVPs from the Final-Unit-Indication AVP.
|
void |
setExtensionAvps(DiameterAvp[] avps)
Sets the set of extension AVPs with all the values in the given array.
|
void |
setFilterId(java.lang.String filterId)
Sets a single Filter-Id AVP in the Final-Unit-Indication AVP, of type UTF8String.
|
void |
setFilterIds(java.lang.String[] filterIds)
Sets the set of Filter-Id AVPs, with all the values in the given array.
|
void |
setFinalUnitAction(FinalUnitAction finalUnitAction)
Sets the value of the Final-Unit-Action AVP, of type Enumerated.
|
void |
setRedirectServer(RedirectServer redirectServer)
Sets the value of the Redirect-Server AVP, of type Grouped.
|
void |
setRestrictionFilterRule(IPFilterRule restrictionFilterRule)
Sets a single Restriction-Filter-Rule AVP in the Final-Unit-Indication AVP, of type IPFilterRule.
|
void |
setRestrictionFilterRules(IPFilterRule[] restrictionFilterRules)
Sets the set of Restriction-Filter-Rule AVPs, with all the values in the given array.
|
byteArrayValue, clone, doubleValue, floatValue, getCode, getMandatoryRule, getName, getProtectedRule, getType, getVendorID, groupedAvpValue, intValue, longValue, stringValueboolean hasFinalUnitAction()
FinalUnitAction getFinalUnitAction()
void setFinalUnitAction(FinalUnitAction finalUnitAction)
java.lang.NullPointerException - if finalUnitAction is null.void removeFinalUnitAction()
IPFilterRule[] getRestrictionFilterRules()
void setRestrictionFilterRule(IPFilterRule restrictionFilterRule)
java.lang.NullPointerException - if restrictionFilterRule is null.void setRestrictionFilterRules(IPFilterRule[] restrictionFilterRules)
java.lang.NullPointerException - if restrictionFilterRules is null.void removeRestrictionFilterRules()
java.lang.String[] getFilterIds()
void setFilterId(java.lang.String filterId)
java.lang.NullPointerException - if filterId is null.void setFilterIds(java.lang.String[] filterIds)
java.lang.NullPointerException - if filterIds is null.void removeFilterIds()
boolean hasRedirectServer()
RedirectServer getRedirectServer()
void setRedirectServer(RedirectServer redirectServer)
java.lang.NullPointerException - if redirectServer is null.void removeRedirectServer()
DiameterAvp[] getExtensionAvps()
void setExtensionAvps(DiameterAvp[] avps) throws AvpNotAllowedException
AvpNotAllowedException - if an AVP is encountered of a type already known to this class
(i.e. an AVP for which get/set methods already appear in this class)java.lang.NullPointerException - if avps is null.void removeExtensionAvps()