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 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) or the application detection filter referenced by the TDF-Application-Identifier AVP determines the traffic that belongs to the service data flow. Either Flow-Information AVP(s) or TDF-Application-Identifier AVP shall exist in a Charging-Rule-Definition AVP. 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). The PS-to-CS-Session-Continuity AVP indicates if a service data flow is a candidate for PS to CS session continuity. 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. Mute-Notification AVP value shall not be changed during an active IP-CAN session. Sponsor-Identity AVP and Application-Service-Provider-Identity AVP shall be included if the Reporting-Level AVP is set to the value SPONSORED_CONNECTIVITY_LEVEL for the service data flow. Required-Access-Info AVP may appear if the AF requests PCRF to report user access network information. It has the following ABNF grammar: Charging-Rule-Definition ::= < AVP Header: 1003 > { Charging-Rule-Name } [ Service-Identifier ] [ Rating-Group ] *[ Flow-Information ] [ TDF-Application-Identifier ] [ Flow-Status ] [ QoS-Information ] [ PS-to-CS-Session-Continuity ] [ Reporting-Level ] [ Online ] [ Offline ] [ Metering-Method ] [ Precedence ] [ AF-Charging-Identifier ] *[ Flows ] [ Monitoring-Key] [ Redirect-Information ] [ Mute-Notification ] [ AF-Signalling-Protocol ] [ Sponsor-Identity ] [ Application-Service-Provider-Identity ] *[ Required-Access-Info ] *[ 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[] |
getApplicationServiceProviderIdentity()
Returns the value of the Application-Service-Provider-Identity AVP, of type OctetString.
|
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.
|
MuteNotification |
getMuteNotification()
Returns the value of the Mute-Notification AVP, of type Enumerated.
|
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.
|
PsToCsSessionContinuity |
getPsToCsSessionContinuity()
Returns the value of the PS-to-CS-Session-Continuity AVP, of type Enumerated.
|
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.
|
RedirectInformation |
getRedirectInformation()
Returns the value of the Redirect-Information AVP, of type Grouped.
|
ReportingLevel |
getReportingLevel()
Returns the value of the Reporting-Level AVP, of type Enumerated.
|
RequiredAccessInfo[] |
getRequiredAccessInfos()
Returns the set of Required-Access-Info AVPs.
|
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.
|
byte[] |
getTdfApplicationIdentifier()
Returns the value of the TDF-Application-Identifier 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 |
hasApplicationServiceProviderIdentity()
Returns true if the Application-Service-Provider-Identity 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 |
hasMuteNotification()
Returns true if the Mute-Notification 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 |
hasPsToCsSessionContinuity()
Returns true if the PS-to-CS-Session-Continuity 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 |
hasRedirectInformation()
Returns true if the Redirect-Information 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.
|
boolean |
hasTdfApplicationIdentifier()
Returns true if the TDF-Application-Identifier 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 |
removeApplicationServiceProviderIdentity()
Removes the Application-Service-Provider-Identity 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 |
removeMuteNotification()
Removes the Mute-Notification 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 |
removePsToCsSessionContinuity()
Removes the PS-to-CS-Session-Continuity 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 |
removeRedirectInformation()
Removes the Redirect-Information AVP from the Charging-Rule-Definition AVP.
|
void |
removeReportingLevel()
Removes the Reporting-Level AVP from the Charging-Rule-Definition AVP.
|
void |
removeRequiredAccessInfos()
Removes all Required-Access-Info AVPs 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 |
removeTdfApplicationIdentifier()
Removes the TDF-Application-Identifier 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 |
setApplicationServiceProviderIdentity(byte[] applicationServiceProviderIdentity)
Sets the value of the Application-Service-Provider-Identity AVP, of type OctetString.
|
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 |
setMuteNotification(MuteNotification muteNotification)
Sets the value of the Mute-Notification AVP, of type Enumerated.
|
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 |
setPsToCsSessionContinuity(PsToCsSessionContinuity psToCsSessionContinuity)
Sets the value of the PS-to-CS-Session-Continuity AVP, of type Enumerated.
|
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 |
setRedirectInformation(RedirectInformation redirectInformation)
Sets the value of the Redirect-Information AVP, of type Grouped.
|
void |
setReportingLevel(ReportingLevel reportingLevel)
Sets the value of the Reporting-Level AVP, of type Enumerated.
|
void |
setRequiredAccessInfo(RequiredAccessInfo requiredAccessInfo)
Sets a single Required-Access-Info AVP in the Charging-Rule-Definition AVP, of type Enumerated.
|
void |
setRequiredAccessInfos(RequiredAccessInfo[] requiredAccessInfos)
Sets the set of Required-Access-Info AVPs, with all the values in the given array.
|
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.
|
void |
setTdfApplicationIdentifier(byte[] tdfApplicationIdentifier)
Sets the value of the TDF-Application-Identifier 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 hasTdfApplicationIdentifier()
byte[] getTdfApplicationIdentifier()
void setTdfApplicationIdentifier(byte[] tdfApplicationIdentifier)
java.lang.NullPointerException
- if tdfApplicationIdentifier
is null
.void removeTdfApplicationIdentifier()
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 hasPsToCsSessionContinuity()
PsToCsSessionContinuity getPsToCsSessionContinuity()
void setPsToCsSessionContinuity(PsToCsSessionContinuity psToCsSessionContinuity)
java.lang.NullPointerException
- if psToCsSessionContinuity
is null
.void removePsToCsSessionContinuity()
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 hasRedirectInformation()
RedirectInformation getRedirectInformation()
void setRedirectInformation(RedirectInformation redirectInformation)
java.lang.NullPointerException
- if redirectInformation
is null
.void removeRedirectInformation()
boolean hasMuteNotification()
MuteNotification getMuteNotification()
void setMuteNotification(MuteNotification muteNotification)
java.lang.NullPointerException
- if muteNotification
is null
.void removeMuteNotification()
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()
boolean hasApplicationServiceProviderIdentity()
byte[] getApplicationServiceProviderIdentity()
void setApplicationServiceProviderIdentity(byte[] applicationServiceProviderIdentity)
java.lang.NullPointerException
- if applicationServiceProviderIdentity
is null
.void removeApplicationServiceProviderIdentity()
RequiredAccessInfo[] getRequiredAccessInfos()
void setRequiredAccessInfo(RequiredAccessInfo requiredAccessInfo)
java.lang.NullPointerException
- if requiredAccessInfo
is null
.void setRequiredAccessInfos(RequiredAccessInfo[] requiredAccessInfos)
java.lang.NullPointerException
- if requiredAccessInfos
is null
.void removeRequiredAccessInfos()
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()