Package dk.i1.diameter.session

Classes for implementing a session-capable Diameter client.

See:
          Description

Interface Summary
Session The session interface is what the SessionManager operates on
 

Class Summary
AASession A session type that uses the AA messages for authentication/authorization Subclasses should override collectAARInfo() and processAAAInfo().
ACHandler A utility class for dealing with accounting.
ACHandler.SubSession A collection of data belonging to a (sub-)session.
BaseSession A basic implementation of a Diameter session It implements a state model as described in RFC3588 section 8.1, and takes care of generating unique session-ids.
SessionAuthTimers Authorization time calculator.
SessionManager A go-between sessions and NodeManager.
 

Enum Summary
BaseSession.State The state of a session, as per RFC3588 section 8.1
 

Exception Summary
InvalidStateException  
 

Package dk.i1.diameter.session Description

Classes for implementing a session-capable Diameter client. This package contains classes for implementing a Diameter node whose primary role is a client that holds diameter sessions, eg. a NAS, GGSN.

This is done by using two classes. First, you instantiate a SessionManager. It takes care of the details about managing the node, sending and receiving messages (and lost connections), and timers in the sessions. Second you will create a class that implements the Session interface. It is best to make this a subclass of BaseSession og AASession. You will probably want to mix in the ACHandler to support accounting.

Incomplete example

Capability cap = ... //see Capability
NodeSettings settings = ... //see NodeSettings
Peer peers[]= {
    new Peer("somehost.example.net"),
    new Peer("someotherhost.example.net"),
};
SessionManager session_manager = new SessionManager(settings,peers);

BaseSession session = new ExampleSession(...);

session.openSession();