public interface ChargingRuleDefinition extends GroupedAvp
5.3.4 Charging-Rule-Definition
The Charging-Rule-Definition AVP (AVP code 1003) is of type Grouped, and it defines the PCC rule for a service flow sent by the PCRF to the PCEF. The Charging-Rule-Name AVP uniquely identifies the PCC rule and it is used to reference to a PCC rule in communication between the PCEF and the PCRF within one IP CAN session. The Flow-Information AVP(s) determines the traffic that belongs to the service flow.
If optional AVP(s) within a Charging-Rule-Definition AVP are omitted, but corresponding information has been provided in previous Gx messages, the previous information remains valid. If Flow-Information AVP(s) are supplied, they replace all previous Flow-Information AVP(s). If Flows AVP(s) are supplied, they replace all previous Flows AVP(s).
Flows AVP may appear if and only if AF-Charging-Identifier AVP is also present.
AF-Signalling-Protocol AVP may appear if the PCC Rule applies for IMS signalling.
Monitoring-Key AVP contains the monitoring key that may apply to the PCC rule.
Sponsor-Identity AVP contains the information regarding the 3rd party organization (i.e. the sponsor) willing to pay for the operator's charge for connectivity required to deliver a service to the end user. Application-Service-Provider-Identity AVP contains the information regarding the 3rd party organization (i.e. the ASP) delivering service to the end user. Sponsor-Identity AVP and Application-Service-Provider-Identity AVP shall be included if offline charging is applicable for the service data flow.
It has the following ABNF grammar:
Charging-Rule-Definition ::= < AVP Header: 1003 >
{ Charging-Rule-Name }
[ Service-Identifier ]
[ Rating-Group ]
*[ Flow-Information ]
[ Flow-Status ]
[ QoS-Information ]
[ Reporting-Level ]
[ Online ]
[ Offline ]
[ Metering-Method ]
[ Precedence ]
[ AF-Charging-Identifier ]
*[ Flows ]
[ Monitoring-Key]
[ AF-Signalling-Protocol ]
[ Sponsor-Identity ]
*[ AVP ]
FLAG_RULE_MAY, FLAG_RULE_MUST, FLAG_RULE_MUSTNOT| Modifier and Type | Method and Description |
|---|---|
byte[] |
getAfChargingIdentifier()
Returns the value of the AF-Charging-Identifier AVP, of type OctetString.
|
AfSignallingProtocol |
getAfSignallingProtocol()
Returns the value of the AF-Signalling-Protocol AVP, of type Enumerated.
|
byte[] |
getChargingRuleName()
Returns the value of the Charging-Rule-Name AVP, of type OctetString.
|
DiameterAvp[] |
getExtensionAvps()
Returns the set of extension AVPs.
|
FlowInformation[] |
getFlowInformations()
Returns the set of Flow-Information AVPs.
|
Flows[] |
getFlowses()
Returns the set of Flows AVPs.
|
FlowStatus |
getFlowStatus()
Returns the value of the Flow-Status AVP, of type Enumerated.
|
MeteringMethod |
getMeteringMethod()
Returns the value of the Metering-Method AVP, of type Enumerated.
|
byte[] |
getMonitoringKey()
Returns the value of the Monitoring-Key AVP, of type OctetString.
|
Offline |
getOffline()
Returns the value of the Offline AVP, of type Enumerated.
|
Online |
getOnline()
Returns the value of the Online AVP, of type Enumerated.
|
long |
getPrecedence()
Returns the value of the Precedence AVP, of type Unsigned32.
|
QosInformation |
getQosInformation()
Returns the value of the QoS-Information AVP, of type Grouped.
|
long |
getRatingGroup()
Returns the value of the Rating-Group AVP, of type Unsigned32.
|
ReportingLevel |
getReportingLevel()
Returns the value of the Reporting-Level AVP, of type Enumerated.
|
long |
getServiceIdentifier()
Returns the value of the Service-Identifier AVP, of type Unsigned32.
|
byte[] |
getSponsorIdentity()
Returns the value of the Sponsor-Identity AVP, of type OctetString.
|
boolean |
hasAfChargingIdentifier()
Returns true if the AF-Charging-Identifier AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasAfSignallingProtocol()
Returns true if the AF-Signalling-Protocol AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasChargingRuleName()
Returns true if the Charging-Rule-Name AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasFlowStatus()
Returns true if the Flow-Status AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasMeteringMethod()
Returns true if the Metering-Method AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasMonitoringKey()
Returns true if the Monitoring-Key AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasOffline()
Returns true if the Offline AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasOnline()
Returns true if the Online AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasPrecedence()
Returns true if the Precedence AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasQosInformation()
Returns true if the QoS-Information AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasRatingGroup()
Returns true if the Rating-Group AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasReportingLevel()
Returns true if the Reporting-Level AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasServiceIdentifier()
Returns true if the Service-Identifier AVP is present in the Charging-Rule-Definition AVP.
|
boolean |
hasSponsorIdentity()
Returns true if the Sponsor-Identity AVP is present in the Charging-Rule-Definition AVP.
|
void |
removeAfChargingIdentifier()
Removes the AF-Charging-Identifier AVP from the Charging-Rule-Definition AVP.
|
void |
removeAfSignallingProtocol()
Removes the AF-Signalling-Protocol AVP from the Charging-Rule-Definition AVP.
|
void |
removeChargingRuleName()
Removes the Charging-Rule-Name AVP from the Charging-Rule-Definition AVP.
|
void |
removeExtensionAvps()
Removes all extension AVPs from the Charging-Rule-Definition AVP.
|
void |
removeFlowInformations()
Removes all Flow-Information AVPs from the Charging-Rule-Definition AVP.
|
void |
removeFlowses()
Removes all Flows AVPs from the Charging-Rule-Definition AVP.
|
void |
removeFlowStatus()
Removes the Flow-Status AVP from the Charging-Rule-Definition AVP.
|
void |
removeMeteringMethod()
Removes the Metering-Method AVP from the Charging-Rule-Definition AVP.
|
void |
removeMonitoringKey()
Removes the Monitoring-Key AVP from the Charging-Rule-Definition AVP.
|
void |
removeOffline()
Removes the Offline AVP from the Charging-Rule-Definition AVP.
|
void |
removeOnline()
Removes the Online AVP from the Charging-Rule-Definition AVP.
|
void |
removePrecedence()
Removes the Precedence AVP from the Charging-Rule-Definition AVP.
|
void |
removeQosInformation()
Removes the QoS-Information AVP from the Charging-Rule-Definition AVP.
|
void |
removeRatingGroup()
Removes the Rating-Group AVP from the Charging-Rule-Definition AVP.
|
void |
removeReportingLevel()
Removes the Reporting-Level AVP from the Charging-Rule-Definition AVP.
|
void |
removeServiceIdentifier()
Removes the Service-Identifier AVP from the Charging-Rule-Definition AVP.
|
void |
removeSponsorIdentity()
Removes the Sponsor-Identity AVP from the Charging-Rule-Definition AVP.
|
void |
setAfChargingIdentifier(byte[] afChargingIdentifier)
Sets the value of the AF-Charging-Identifier AVP, of type OctetString.
|
void |
setAfSignallingProtocol(AfSignallingProtocol afSignallingProtocol)
Sets the value of the AF-Signalling-Protocol AVP, of type Enumerated.
|
void |
setChargingRuleName(byte[] chargingRuleName)
Sets the value of the Charging-Rule-Name AVP, of type OctetString.
|
void |
setExtensionAvps(DiameterAvp[] avps)
Sets the set of extension AVPs with all the values in the given array.
|
void |
setFlowInformation(FlowInformation flowInformation)
Sets a single Flow-Information AVP in the Charging-Rule-Definition AVP, of type Grouped.
|
void |
setFlowInformations(FlowInformation[] flowInformations)
Sets the set of Flow-Information AVPs, with all the values in the given array.
|
void |
setFlows(Flows flows)
Sets a single Flows AVP in the Charging-Rule-Definition AVP, of type Grouped.
|
void |
setFlowses(Flows[] flowses)
Sets the set of Flows AVPs, with all the values in the given array.
|
void |
setFlowStatus(FlowStatus flowStatus)
Sets the value of the Flow-Status AVP, of type Enumerated.
|
void |
setMeteringMethod(MeteringMethod meteringMethod)
Sets the value of the Metering-Method AVP, of type Enumerated.
|
void |
setMonitoringKey(byte[] monitoringKey)
Sets the value of the Monitoring-Key AVP, of type OctetString.
|
void |
setOffline(Offline offline)
Sets the value of the Offline AVP, of type Enumerated.
|
void |
setOnline(Online online)
Sets the value of the Online AVP, of type Enumerated.
|
void |
setPrecedence(long precedence)
Sets the value of the Precedence AVP, of type Unsigned32.
|
void |
setQosInformation(QosInformation qosInformation)
Sets the value of the QoS-Information AVP, of type Grouped.
|
void |
setRatingGroup(long ratingGroup)
Sets the value of the Rating-Group AVP, of type Unsigned32.
|
void |
setReportingLevel(ReportingLevel reportingLevel)
Sets the value of the Reporting-Level AVP, of type Enumerated.
|
void |
setServiceIdentifier(long serviceIdentifier)
Sets the value of the Service-Identifier AVP, of type Unsigned32.
|
void |
setSponsorIdentity(byte[] sponsorIdentity)
Sets the value of the Sponsor-Identity AVP, of type OctetString.
|
byteArrayValue, clone, doubleValue, floatValue, getCode, getMandatoryRule, getName, getProtectedRule, getType, getVendorID, groupedAvpValue, intValue, longValue, stringValueboolean hasChargingRuleName()
byte[] getChargingRuleName()
void setChargingRuleName(byte[] chargingRuleName)
java.lang.NullPointerException - if chargingRuleName is null.void removeChargingRuleName()
boolean hasServiceIdentifier()
long getServiceIdentifier()
hasServiceIdentifier() to check the existence of this AVP.java.lang.IllegalStateException - if the Service-Identifier AVP has not been set.void setServiceIdentifier(long serviceIdentifier)
void removeServiceIdentifier()
boolean hasRatingGroup()
long getRatingGroup()
hasRatingGroup() to check the existence of this AVP.java.lang.IllegalStateException - if the Rating-Group AVP has not been set.void setRatingGroup(long ratingGroup)
void removeRatingGroup()
FlowInformation[] getFlowInformations()
void setFlowInformation(FlowInformation flowInformation)
java.lang.NullPointerException - if flowInformation is null.void setFlowInformations(FlowInformation[] flowInformations)
java.lang.NullPointerException - if flowInformations is null.void removeFlowInformations()
boolean hasFlowStatus()
FlowStatus getFlowStatus()
void setFlowStatus(FlowStatus flowStatus)
java.lang.NullPointerException - if flowStatus is null.void removeFlowStatus()
boolean hasQosInformation()
QosInformation getQosInformation()
void setQosInformation(QosInformation qosInformation)
java.lang.NullPointerException - if qosInformation is null.void removeQosInformation()
boolean hasReportingLevel()
ReportingLevel getReportingLevel()
void setReportingLevel(ReportingLevel reportingLevel)
java.lang.NullPointerException - if reportingLevel is null.void removeReportingLevel()
boolean hasOnline()
Online getOnline()
void setOnline(Online online)
java.lang.NullPointerException - if online is null.void removeOnline()
boolean hasOffline()
Offline getOffline()
void setOffline(Offline offline)
java.lang.NullPointerException - if offline is null.void removeOffline()
boolean hasMeteringMethod()
MeteringMethod getMeteringMethod()
void setMeteringMethod(MeteringMethod meteringMethod)
java.lang.NullPointerException - if meteringMethod is null.void removeMeteringMethod()
boolean hasPrecedence()
long getPrecedence()
hasPrecedence() to check the existence of this AVP.java.lang.IllegalStateException - if the Precedence AVP has not been set.void setPrecedence(long precedence)
void removePrecedence()
boolean hasAfChargingIdentifier()
byte[] getAfChargingIdentifier()
void setAfChargingIdentifier(byte[] afChargingIdentifier)
java.lang.NullPointerException - if afChargingIdentifier is null.void removeAfChargingIdentifier()
Flows[] getFlowses()
void setFlows(Flows flows)
java.lang.NullPointerException - if flows is null.void setFlowses(Flows[] flowses)
java.lang.NullPointerException - if flowses is null.void removeFlowses()
boolean hasMonitoringKey()
byte[] getMonitoringKey()
void setMonitoringKey(byte[] monitoringKey)
java.lang.NullPointerException - if monitoringKey is null.void removeMonitoringKey()
boolean hasAfSignallingProtocol()
AfSignallingProtocol getAfSignallingProtocol()
void setAfSignallingProtocol(AfSignallingProtocol afSignallingProtocol)
java.lang.NullPointerException - if afSignallingProtocol is null.void removeAfSignallingProtocol()
boolean hasSponsorIdentity()
byte[] getSponsorIdentity()
void setSponsorIdentity(byte[] sponsorIdentity)
java.lang.NullPointerException - if sponsorIdentity is null.void removeSponsorIdentity()
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()