org.cipango.diameter.base
Class Accounting

java.lang.Object
  extended by org.cipango.diameter.base.Accounting

public class Accounting
extends java.lang.Object

See Also:
RFC 3588

Nested Class Summary
static class Accounting.AccountingRealtimeRequired
           
static class Accounting.AccountingRecordType
           
 
Field Summary
static DiameterCommand ACA
          The Accounting-Answer (ACA) command, indicated by the Command-Code field set to 271 and the Command Flags' 'R' bit cleared, is used to acknowledge an Accounting-Request command.
static int ACA_ORDINAL
           
static ApplicationId ACCOUNTING_ID
           
static int ACCOUNTING_ORDINAL
           
static Type<Accounting.AccountingRealtimeRequired> ACCOUNTING_REALTIME_REQUIRED
           
static int ACCOUNTING_REALTIME_REQUIRED_ORDINAL
           
static Type<java.lang.Integer> ACCOUNTING_RECORD_NUMBER
          The Accounting-Record-Number AVP (AVP Code 485) is of type Unsigned32 and identifies this record within one session.
static int ACCOUNTING_RECORD_NUMBER_ORDINAL
           
static Type<Accounting.AccountingRecordType> ACCOUNTING_RECORD_TYPE
          The Accounting-Record-Type AVP (AVP Code 480) is of type Enumerated and contains the type of accounting record being sent.
static int ACCOUNTING_RECORD_TYPE_ORDINAL
           
static Type<java.lang.Integer> ACCOUNTING_SUB_SESSION_ID
          The Accounting-Sub-Session-Id AVP (AVP Code 287) is of type Unsigned64 and contains the accounting sub-session identifier.
static int ACCOUNTING_SUB_SESSION_ID_ORDINAL
           
static Type<java.lang.Integer> ACCT_INTERIM_INTERVAL
          The Acct-Interim-Interval AVP (AVP Code 85) is of type Unsigned32 and is sent from the Diameter home authorization server to the Diameter client.
static int ACCT_INTERIM_INTERVAL_ORDINAL
           
static Type<java.lang.String> ACCT_MULTI_SESSION_ID
          The Acct-Multi-Session-Id AVP (AVP Code 50) is of type UTF8String, following the format specified in Section 8.8.
static int ACCT_MULTI_SESSION_ID_ORDINAL
           
static Type<byte[]> ACCT_SESSION_ID
          The Acct-Session-Id AVP (AVP Code 44) is of type OctetString is only used when RADIUS/Diameter translation occurs.
static int ACCT_SESSION_ID_ORDINAL
           
static DiameterCommand ACR
          The Accounting-Request (ACR) command, indicated by the Command-Code field set to 271 and the Command Flags' 'R' bit set, is sent by a Diameter node, acting as a client, in order to exchange accounting information with a peer.
static int ACR_ORDINAL
           
 
Constructor Summary
Accounting()
           
 
Method Summary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ACCOUNTING_ORDINAL

public static final int ACCOUNTING_ORDINAL
See Also:
Constant Field Values

ACCOUNTING_ID

public static final ApplicationId ACCOUNTING_ID

ACR_ORDINAL

public static final int ACR_ORDINAL
See Also:
Constant Field Values

ACA_ORDINAL

public static final int ACA_ORDINAL
See Also:
Constant Field Values

ACCT_SESSION_ID_ORDINAL

public static final int ACCT_SESSION_ID_ORDINAL
See Also:
Constant Field Values

ACCT_MULTI_SESSION_ID_ORDINAL

public static final int ACCT_MULTI_SESSION_ID_ORDINAL
See Also:
Constant Field Values

ACCT_INTERIM_INTERVAL_ORDINAL

public static final int ACCT_INTERIM_INTERVAL_ORDINAL
See Also:
Constant Field Values

ACCOUNTING_SUB_SESSION_ID_ORDINAL

public static final int ACCOUNTING_SUB_SESSION_ID_ORDINAL
See Also:
Constant Field Values

ACCOUNTING_RECORD_TYPE_ORDINAL

public static final int ACCOUNTING_RECORD_TYPE_ORDINAL
See Also:
Constant Field Values

ACCOUNTING_REALTIME_REQUIRED_ORDINAL

public static final int ACCOUNTING_REALTIME_REQUIRED_ORDINAL
See Also:
Constant Field Values

ACCOUNTING_RECORD_NUMBER_ORDINAL

public static final int ACCOUNTING_RECORD_NUMBER_ORDINAL
See Also:
Constant Field Values

ACR

public static final DiameterCommand ACR
The Accounting-Request (ACR) command, indicated by the Command-Code field set to 271 and the Command Flags' 'R' bit set, is sent by a Diameter node, acting as a client, in order to exchange accounting information with a peer.
 < ACR > ::= < Diameter Header: 271, REQ, PXY >
          < Session-Id >
          { Origin-Host }
          { Origin-Realm }
          { Destination-Realm }
          { Accounting-Record-Type }
          { Accounting-Record-Number }
          [ Acct-Application-Id ]
          [ Vendor-Specific-Application-Id ]
          [ User-Name ]
          [ Accounting-Sub-Session-Id ]
          [ Acct-Session-Id ]
          [ Acct-Multi-Session-Id ]
          [ Acct-Interim-Interval ]
          [ Accounting-Realtime-Required ]
          [ Origin-State-Id ]
          [ Event-Timestamp ]
        * [ Proxy-Info ]
        * [ Route-Record ]
        * [ AVP ]
 


ACA

public static final DiameterCommand ACA
The Accounting-Answer (ACA) command, indicated by the Command-Code field set to 271 and the Command Flags' 'R' bit cleared, is used to acknowledge an Accounting-Request command. The Accounting-Answer command contains the same Session-Id and includes the usage AVPs only if CMS is in use when sending this command. Note that the inclusion of the usage AVPs when CMS is not being used leads to unnecessarily large answer messages, and can not be used as a server's proof of the receipt of these AVPs in an end-to-end fashion. If the Accounting- Request was protected by end-to-end security, then the corresponding ACA message MUST be protected by end-to-end security. Only the target Diameter Server, known as the home Diameter Server, SHOULD respond with the Accounting-Answer command. One of Acct-Application-Id and Vendor-Specific-Application-Id AVPs MUST be present. If the Vendor-Specific-Application-Id grouped AVP is present, it must have an Acct-Application-Id inside.
 
 < ACA > ::= < Diameter Header: 271, PXY >
           < Session-Id >
           { Result-Code }
           { Origin-Host }
           { Origin-Realm }
           { Accounting-Record-Type }
           { Accounting-Record-Number }
           [ Acct-Application-Id ]
           [ Vendor-Specific-Application-Id ]
           [ User-Name ]
           [ Accounting-Sub-Session-Id ]
           [ Acct-Session-Id ]
           [ Acct-Multi-Session-Id ]
           [ Error-Reporting-Host ]
           [ Acct-Interim-Interval ]
           [ Accounting-Realtime-Required ]
           [ Origin-State-Id ]
           [ Event-Timestamp ]
         * [ Proxy-Info ]
         * [ AVP ]
 


ACCOUNTING_RECORD_TYPE

public static final Type<Accounting.AccountingRecordType> ACCOUNTING_RECORD_TYPE
The Accounting-Record-Type AVP (AVP Code 480) is of type Enumerated and contains the type of accounting record being sent.


ACCT_INTERIM_INTERVAL

public static final Type<java.lang.Integer> ACCT_INTERIM_INTERVAL
The Acct-Interim-Interval AVP (AVP Code 85) is of type Unsigned32 and is sent from the Diameter home authorization server to the Diameter client. The client uses information in this AVP to decide how and when to produce accounting records. With different values in this AVP, service sessions can result in one, two, or two+N accounting records, based on the needs of the home-organization. The following accounting record production behavior is directed by the inclusion of this AVP: 1. The omission of the Acct-Interim-Interval AVP or its inclusion with Value field set to 0 means that EVENT_RECORD, START_RECORD, and STOP_RECORD are produced, as appropriate for the service. 2. The inclusion of the AVP with Value field set to a non-zero value means that INTERIM_RECORD records MUST be produced between the START_RECORD and STOP_RECORD records. The Value field of this AVP is the nominal interval between these records in seconds. The Diameter node that originates the accounting information, known as the client, MUST produce the first INTERIM_RECORD record roughly at the time when this nominal interval has elapsed from the START_RECORD, the next one again as the interval has elapsed once more, and so on until the session ends and a STOP_RECORD record is produced. The client MUST ensure that the interim record production times are randomized so that large accounting message storms are not created either among records or around a common service start time.


ACCOUNTING_RECORD_NUMBER

public static final Type<java.lang.Integer> ACCOUNTING_RECORD_NUMBER
The Accounting-Record-Number AVP (AVP Code 485) is of type Unsigned32 and identifies this record within one session. As Session-Id AVPs are globally unique, the combination of Session-Id and Accounting- Record-Number AVPs is also globally unique, and can be used in matching accounting records with confirmations. An easy way to produce unique numbers is to set the value to 0 for records of type EVENT_RECORD and START_RECORD, and set the value to 1 for the first INTERIM_RECORD, 2 for the second, and so on until the value for STOP_RECORD is one more than for the last INTERIM_RECORD.


ACCT_SESSION_ID

public static final Type<byte[]> ACCT_SESSION_ID
The Acct-Session-Id AVP (AVP Code 44) is of type OctetString is only used when RADIUS/Diameter translation occurs. This AVP contains the contents of the RADIUS Acct-Session-Id attribute.


ACCT_MULTI_SESSION_ID

public static final Type<java.lang.String> ACCT_MULTI_SESSION_ID
The Acct-Multi-Session-Id AVP (AVP Code 50) is of type UTF8String, following the format specified in Section 8.8. The Acct-Multi- Session-Id AVP is used to link together multiple related accounting sessions, where each session would have a unique Session-Id, but the same Acct-Multi-Session-Id AVP. This AVP MAY be returned by the Diameter server in an authorization answer, and MUST be used in all accounting messages for the given session.


ACCOUNTING_SUB_SESSION_ID

public static final Type<java.lang.Integer> ACCOUNTING_SUB_SESSION_ID
The Accounting-Sub-Session-Id AVP (AVP Code 287) is of type Unsigned64 and contains the accounting sub-session identifier. The combination of the Session-Id and this AVP MUST be unique per sub- session, and the value of this AVP MUST be monotonically increased by one for all new sub-sessions. The absence of this AVP implies no sub-sessions are in use, with the exception of an Accounting-Request whose Accounting-Record-Type is set to STOP_RECORD. A STOP_RECORD message with no Accounting-Sub-Session-Id AVP present will signal the termination of all sub-sessions for a given Session-Id.


ACCOUNTING_REALTIME_REQUIRED

public static final Type<Accounting.AccountingRealtimeRequired> ACCOUNTING_REALTIME_REQUIRED
Constructor Detail

Accounting

public Accounting()


Copyright © 2010. All Rights Reserved.