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, stringValue
boolean 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()