java.net: Wiki

The Source for Java Technology Collaboration


 <<O>>  Difference Topic MobicentsDiameterRA (24 - 10 Jun 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 137 to 137
 
  1. Sbb creates answer with one of factory methods
  2. Sbb calls ACIs answer method to send created answer.
  3. RA sends asnwer through apriopriate connection
Added:
>
>

TIP According to DIME Realm and Host should be equal. Both values are NAI ( Netowrk Address Identifier ) but it conflicts with rfc 3588.

 -- Main.ivelin - 15 Apr 2006

-- Main.baranowb - 19 May 2006


 <<O>>  Difference Topic MobicentsDiameterRA (23 - 09 Jun 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 71 to 71
 

Main Concept of RA/RAType

Deleted:
<
<
So what do we know?

Diameter Request/Response message flow is similar to SIP message flow. So why not use same idea that has been implemented by SIP? SIP Server/ClientTransaction pattern fits here perfectly. We would have two different interface relating to client/server activities. Thus it would be logical to create two different Activity objects. First one implementing ClientTransactions and second Implementing ServerTransactions.

Objects implementing ClientTransactions interface would define methods of creating requests ( and in some cases responses ) with correspondence to appropriate application. Similar behaviour would characterize ServerTransactions. Server/ClientTransactions objects would be SLEE ActivityObjects?. Each instance would be responsible for maintaining one session. ServerTransactions objects would be created by RA when request is beeing handled ( ofcourse when there is no other ServerTransactions object bound to Session-Id AVP value), before delivery to SLEE. One the orher hand ClientTransactions would be created by SLEE application to handle new session.

Lets make it more clear with some diagrams. On first diagram we see data/control flow in scenerio in which Sbb acts as client of one of Diameter Server nodes.

One session example

Now lets look closer to the flow:

  1. Sbb has a need to act as a Diameter Client. It calls __createXXXInterfaceClientTransactions method of some interface ( lets call it TransactionsProvider?).
  2. TransactionsProvider? objects forwards this request to RA.
  3. RA creates new ClientTransactions object and registers it in its Activities storage. ClientTransaction? objects knows to which host messages should be sent it also knows for which application it has been created and for which session it works as activity.
  4. RA returna newly created ClientTransactions in order to provide Sbb with means to create Request to particular host.
  5. Sbb uses ClientTransactions to create and send request.
  6. Request is sent by Diameter stack with use of appropriate method.

Now lets see what actions will be undertaken when response to some request will be received:

  1. Server node creates response and sends it back to originating node.
  2. This step is "internal". RA checks wheather message is Request or Response ( Request processing is explained on other dagram ).
  3. RA simply fires "Response" to SLEE.
  4. Sbb receives Reponse and ClientTransactions object (within ActivityContextInterface? object ) created earlier so it can create new request in the same session.

Scenario in which Sbb is "talking" with two different nodes in two different sessions is quite simple because it does not introduce nothing new to first ones. However lets atleast have a look on it: More than one session

Acting ass server node

  1. Client creates and sends request to our node.
  2. If there is no ServerTransactions object associated with ongoing session RA creates one
  3. RA fires event to SLEE
  4. Sbb receives Requestand ServerTransactions object (within ActivityContextInterface? object ) created earlier so it can create response ( and sometimes requests ) in the same session.
 
Added:
>
>
So what do we know, what do we need? Lets see,what do we know :
  • Diameter is extensible. Extensions are called "Applications" and depending on application kind, application may inherit base protocol messages ( some part of them ).
  • more or less Request/Answer orientated ( exception would be EAP authentication - comment)
  • according to RFC 3588 each Diameter message has to contain value identificating session, unique value.
  • Applications can be distinguished easly by their IDs ( each meassage has it in header )
  • Diameter agents provide other diameter nodes with some functionality( proxy, relay, etc ). depending on type of agent its activity can be transparent or not.
  • RFC 3588 introduces state machines, which have to/should be followed by implementations. It seems that states are changed accordingly to specifical application.
  • Diameter is P2P so nodes are only aware of they neighboors ( see Diameter Agents ).

So now lets see how can we place Diameter Stack into SLEE. Following diagrams are meant to ilustrate approach that looks most reasonable. Time will show if its desired one. Its not finall, it should be treated ass starting point in disscusion. Design assumptions:

  • To standarize way of handling reqeust/responses we assume that each consequent request/response pair in one session will contain valid, unique and constant ( for duration of session ) Session-ID, besides this is what RFC 3588 states.
  • Activities should be aware of destination of their messages and from where messages come or shoul dbe sent ( and ofcourse through which connection).
  • Events delivered to SLEE should identify peer from which we have received message ( by address and connection )
  • Answer not matching any activity should be discarded
  • More ?

Lets see some use cases following guides mentioned above.

Sbb as Client of another node: sending request

What is going on here:

  1. Sbb demands from Provider new activity. Sbb passes some information to Provider regarding this activity. First one is connection thorugh which requests should be sent to that node, second are host name an realm of destination node ( and few more less relevant information ).
  2. Provider creates acitvity - or delegates it to DiameterRA.
  3. Provider registers activity in DiameterRA
  4. DiameterRA adds activity to activities pool.
  5. Provider create ActivityContextInterface coresponding to created activity object.
  6. Provider returns ACI to Sbb.
  7. Sbb calls ACI's factory method and send method
  8. Request is sent through apriopriate connection

Sbb as Client of another node: receiving answer

What is going on here:

  1. Server node creates answer to our request, it fills Session-ID to one specified by us, otherwise no activity will be matched with this answer and it will get dropped.
Server node sends answer back
  1. Resource Adaptor searches for apriopriate activity, if none is found it drops message
  2. SLEE/RA delivers message to sbbs attached to acitivity ACI.

Sbb as Server for another node: receiving request

What is going on here:

  1. Some node creates request destinated to SLEE.
  2. Node sends this request
  3. RA checks with current capabilities of node if application on behalf which this request has been created, is currently supported ( configured from properties file )
  4. If application is supported RA creates apriopriate activity object and adds it to pool.
  5. SLEE/RA delivers event to sbb.
TIP WrappingEvent contains request, peer from which this request has been received ( not originating peer - but it could be when originating peer is our directly connected neighboor ) andconnection identifier which identifies connection through which request has been received.

Sbb as Server for another node: receiving answer

What is going on here:

  1. Sbb creates answer with one of factory methods
  2. Sbb calls ACIs answer method to send created answer.
  3. RA sends asnwer through apriopriate connection
 -- Main.ivelin - 15 Apr 2006

-- Main.baranowb - 19 May 2006


 <<O>>  Difference Topic MobicentsDiameterRA (22 - 08 Jun 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 35 to 35
 

Related HOWTO

I would strongly recommend to read this howto it gives quite good understanding what is going on in RA and how it works with SLEE.
Changed:
<
<

Short Diameter description

Diameter is descendant od RADIUS. It was designed in way it stays compatibile with RADIUS but can be easly extended with new kind of use cases within AAA scenario. Extensions are called "Applications". Each application introduces new kind of messages,codes assigned to those kind by IANA, processing logic and so on.
>
>

Diameter

Diameter is descendant od RADIUS. It was designed in way it stays compatibile with RADIUS but can be easly extended with new kind of use cases within AAA scenario and other IMS scenarios. Extensions are called "Applications". Each application introduces new kind of messages, message and AVP codes ( assigned by IANA ), processing logic and so on.
 Moreover each application has its own code which distinguishes its messages from messages of another application. In addition application code gives means of telling other peers what operations are suported by connecting peer. Diameter is quit simple protocol. Diameter message consists of header and payload. Both consist of AVPs ( Attribute Value Pairs : nameOfAttribute=value). AVP crucial to Base protocol ( and for applications ) has been standarized is related documents ( standarization accepted by IANA ).
Changed:
<
<

Diameter Session State Machines

Here are session state machines which according to rfc 3588 should be implemented in Diameter Services For message codes see [ [http://wiki.java.net/bin/view/Communications/MobicentsDiameterRA#Pure_Diameter][this table] ]

Stateful Client

The following state machine is observed by a client when state is maintained on the server:

State Machine Transitions for Stateful Client
State Transition Cause Response/Action
Idle 1 Client requests access Send to server service specific auth request
Idle 10 ASR Received for unknown session Send ASA to server with Result-Code= UNKNOWN_SESSION_ID
Pending 3 Successful Service-specific authorization answer received with default Auth-Session-State value Grant Access
Pending 4 Successful Service-specific authorization answer received but service not provided Sent STR to server
Pending 4 Error processing successful Service-specific authorization answer Sent STR to server
Pending 2 Failed Service-specific authorization answer received Cleanup - free resources allocated for session
Open 6 User or client device requests access to service Send service specific auth req
Open 6 Successful Service-specific authorization answer received Provide Service
Open 7 Failed Service-specific authorization answer received. Discon. user/device
Open 5 Session-Timeout Expires on Access Device Send STR
Open 5 ASR Received, client will comply with request to end the session Send ASA with Result-Code = SUCCESS,Send STR.
Open 6 ASR Received, client will not comply with request to end the session Send ASA with Result-Code = SUCCESS
Open 5 Authorization-Lifetime + Auth-Grace-Period expires on access device Send STR
Discon 8 ASR Received Send ASA
Discon 9 STA Received Discon. user/device

Stateful Server

The following state machine is observed by a server when it is maintaining state for the session:
State Machine Transitions for Stateful Server
State Transition Cause Response
Idle 1 Service-specific authorization request received, and user is authorized Send successful serv. specific answer
Idle 7 Service-specific authorization request received, and user is not authorized Send failed serv. specific answer
Open 3 Service-specific authorization request received, and user is authorized Send successful serv. specific answer
Open 2 Service-specific authorization request received, and user is not authorized Send failed serv. specific answer, Cleanup
Open 4 Home server wants to terminate the service Send ASR
Open 2 Authorization-Lifetime (and Auth-Grace-Period) expires on home server. Cleanup
Open 2 Session-Timeout expires on home server Cleanup
Discon 5 Failure to send ASR Wait,resend ASR
Discon 6 ASR successfully sent and ASA Received with Result-Code Cleanup
Not Discon None ASA Received None
Any 2,6,7 STR Received Send STA

Stateless Client

The following state machine is observed by a client when state is not maintained on the server:
State Machine Transitions for Stateless Client
State Transition Cause Response
Idle 1 Client or Device Requests access Send service specific auth req
Pending 2 Successful Service-specific authorization answer received with Auth-Session-State set to NO_STATE_MAINTAINED Grant Access
Pending 4 Failed Service-specific authorization answer received Cleanup
Open 3 Session-Timeout Expires on Access Device Discon. user/device
Open 3 Service to user is terminated Discon. user/device

Stateless Server

The following state machine is observed by a server when it is not maintaining state for the session:
State Machine Transitions for Stateless Server
State Transition Cause Response
Idle 1 Service-specific authorization request received, and successfully processed Send serv. specific answer

Resource Adaptor Type

First thing on path to creating Resource adaptor is to create RA Type. It usually consists of XML files describing event types, resurce adaptor type and propably file desribing deployable unit.

Event types

Event "types" are defined in event-jar.xml file. Each event is distinguished by combination of venor, version and name. See section 3.2 of JAIN SLEE spec. for more details. Each application type in defined in Diameter will with high propability define some new message codes and values of standard ( and newly defined AVPs ) AVPs. Here is short listing of message codes and description of messages.

Pure Diameter

>
>

Diameter State Machines

These are finite state machines which should be observered by client or server "talking" with other node. Peer connection state machine is impelmented by stack, session state machine and accounting state machines are not. Therefore last two should be implemented by service ( propably they will be partialy implemented by RA/Activities in the future). Click title to see list of states and graph for each machine.

Diameter Agents

Click the title to see agents description. (In near future basic designs of Agents ).

Diameter Basic Protocol

Base protocol defines common part for each application/node. Half of its messages ( CER-CEA/DWR-DWA/DP-DPA) are meant to manage connection between peers. Other half (ACR-ACA/ASR-ASA/STR-STA/ACR-ACA) are used by applications for accounting/authirization purposes and ofcourse session handling ( particulary for session termination ). Second half does not define stand alone functionality, rather as menioned before common part.

Event/Messages types

These are base protocol request and aswer pairs with short desc.
 
Diameter Base Protocol messages
Message Name Abbreviation Code value Description RFC 3588 location
Abort-Session-Request ASR 274 May be sent by any server to the access device that is providing session service, to request that the session identified by the Session-Id be topped. 8.5.1
Line: 120 to 64
 
Session-Termination-Request STR 275 Is sent by the access device to inform the Diameter Server that an authenticated and/or authorized session is being terminated. 8.4.1
Session-Termination-Answer STA 275 Is sent by the Diameter Server to acknowledge the notification that the session has been terminated. Upon sending or receipt of the STA, the Diameter Server MUST release all resources for the session indicated by the Session-Id AVP. 8.4.2

Changed:
<
<

Sh interface (3GPP Application)

Here are codes and desriptions for message types defined for 3GPP application by IANA
3GPP messages
Message Name Abbreviation Code value Description RFC 3588 location
User-Data-Request UDR 306 Is sent by AS to HSS when AS needs to access/ retireve soem data regarding user 6.1.1
User-Data-Answer UDA 306 Response either conatinin data requested in UDR or apprioriate error code 6.1.2
Profile-Update-Request PUR 307 Is sent by AS to update some data in HSS. 6.1.3
Profile-Update-Answer PUA 307 Response for PUR 6.1.4
Subscribe-Notifications-Request SNR 308 Is sent by AS when it wonts to be notified (or not ) when some data has changed after subsritpion. Works as subsribe/unsubsribe . 6.1.5
Subscribe-Notifications-Answer SNA 308 Response to SNR . 6.1.6
Push-Notification-Request PNR 309 Request sent by HSS to AS which has subsribed itself for notifications 6.1.7
Push-Notification-Answer PNA 309 Reponse to PNA 6.1.8
>
>

Diameter Applications

Here is list of supported applications. ( Or currently in implementation )
 
Deleted:
<
<

Resource Adaptor Type design

 
Added:
>
>

Main Concept of RA/RAType

 So what do we know?

Diameter Request/Response message flow is similar to SIP message flow. So why not use same idea that has been implemented by SIP?


 <<O>>  Difference Topic MobicentsDiameterRA (21 - 08 Jun 2006 - Main.ivelin)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 18 to 18
 
Added:
>
>
 

 <<O>>  Difference Topic MobicentsDiameterRA (20 - 27 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 40 to 40
 Moreover each application has its own code which distinguishes its messages from messages of another application. In addition application code gives means of telling other peers what operations are suported by connecting peer. Diameter is quit simple protocol. Diameter message consists of header and payload. Both consist of AVPs ( Attribute Value Pairs : nameOfAttribute=value). AVP crucial to Base protocol ( and for applications ) has been standarized is related documents ( standarization accepted by IANA ).

Diameter Session State Machines

Changed:
<
<
>
>
Here are session state machines which according to rfc 3588 should be implemented in Diameter Services
 For message codes see [ [http://wiki.java.net/bin/view/Communications/MobicentsDiameterRA#Pure_Diameter][this table] ]

Stateful Client

Added:
>
>
The following state machine is observed by a client when state is maintained on the server:
 
State Machine Transitions for Stateful Client
State Transition Cause Response/Action
Idle 1 Client requests access Send to server service specific auth request
Line: 62 to 64
 
Discon 9 STA Received Discon. user/device

Stateful Server

Added:
>
>
The following state machine is observed by a server when it is maintaining state for the session:
 
State Machine Transitions for Stateful Server
State Transition Cause Response
Idle 1 Service-specific authorization request received, and user is authorized Send successful serv. specific answer
Line: 77 to 80
 
Any 2,6,7 STR Received Send STA

Stateless Client

Added:
>
>
The following state machine is observed by a client when state is not maintained on the server:
 
State Machine Transitions for Stateless Client
State Transition Cause Response
Idle 1 Client or Device Requests access Send service specific auth req
Line: 86 to 90
 
Open 3 Service to user is terminated Discon. user/device

Stateless Server

Added:
>
>
The following state machine is observed by a server when it is not maintaining state for the session:
 
State Machine Transitions for Stateless Server
State Transition Cause Response
Idle 1 Service-specific authorization request received, and successfully processed Send serv. specific answer

 <<O>>  Difference Topic MobicentsDiameterRA (19 - 26 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 37 to 37
 

Short Diameter description

Diameter is descendant od RADIUS. It was designed in way it stays compatibile with RADIUS but can be easly extended with new kind of use cases within AAA scenario. Extensions are called "Applications". Each application introduces new kind of messages,codes assigned to those kind by IANA, processing logic and so on.
Changed:
<
<
Moreover each application has its own code which distinguishes its messages from messages of another application. In addition application code gives means of telling other peers what operations are suported by connecting peer.
>
>
Moreover each application has its own code which distinguishes its messages from messages of another application. In addition application code gives means of telling other peers what operations are suported by connecting peer. Diameter is quit simple protocol. Diameter message consists of header and payload. Both consist of AVPs ( Attribute Value Pairs : nameOfAttribute=value). AVP crucial to Base protocol ( and for applications ) has been standarized is related documents ( standarization accepted by IANA ).
 
Added:
>
>

Diameter Session State Machines

For message codes see [ [http://wiki.java.net/bin/view/Communications/MobicentsDiameterRA#Pure_Diameter][this table] ]

Stateful Client

State Machine Transitions for Stateful Client
State Transition Cause Response/Action
Idle 1 Client requests access Send to server service specific auth request
Idle 10 ASR Received for unknown session Send ASA to server with Result-Code= UNKNOWN_SESSION_ID
Pending 3 Successful Service-specific authorization answer received with default Auth-Session-State value Grant Access
Pending 4 Successful Service-specific authorization answer received but service not provided Sent STR to server
Pending 4 Error processing successful Service-specific authorization answer Sent STR to server
Pending 2 Failed Service-specific authorization answer received Cleanup - free resources allocated for session
Open 6 User or client device requests access to service Send service specific auth req
Open 6 Successful Service-specific authorization answer received Provide Service
Open 7 Failed Service-specific authorization answer received. Discon. user/device
Open 5 Session-Timeout Expires on Access Device Send STR
Open 5 ASR Received, client will comply with request to end the session Send ASA with Result-Code = SUCCESS,Send STR.
Open 6 ASR Received, client will not comply with request to end the session Send ASA with Result-Code = SUCCESS
Open 5 Authorization-Lifetime + Auth-Grace-Period expires on access device Send STR
Discon 8 ASR Received Send ASA
Discon 9 STA Received Discon. user/device

Stateful Server

State Machine Transitions for Stateful Server
State Transition Cause Response
Idle 1 Service-specific authorization request received, and user is authorized Send successful serv. specific answer
Idle 7 Service-specific authorization request received, and user is not authorized Send failed serv. specific answer
Open 3 Service-specific authorization request received, and user is authorized Send successful serv. specific answer
Open 2 Service-specific authorization request received, and user is not authorized Send failed serv. specific answer, Cleanup
Open 4 Home server wants to terminate the service Send ASR
Open 2 Authorization-Lifetime (and Auth-Grace-Period) expires on home server. Cleanup
Open 2 Session-Timeout expires on home server Cleanup
Discon 5 Failure to send ASR Wait,resend ASR
Discon 6 ASR successfully sent and ASA Received with Result-Code Cleanup
Not Discon None ASA Received None
Any 2,6,7 STR Received Send STA

Stateless Client

State Machine Transitions for Stateless Client
State Transition Cause Response
Idle 1 Client or Device Requests access Send service specific auth req
Pending 2 Successful Service-specific authorization answer received with Auth-Session-State set to NO_STATE_MAINTAINED Grant Access
Pending 4 Failed Service-specific authorization answer received Cleanup
Open 3 Session-Timeout Expires on Access Device Discon. user/device
Open 3 Service to user is terminated Discon. user/device

Stateless Server

State Machine Transitions for Stateless Server
State Transition Cause Response
Idle 1 Service-specific authorization request received, and successfully processed Send serv. specific answer
 
Deleted:
<
<
Diameter is quit simple protocol. Diameter message consists of header and payload. Both consist of AVPs ( Attribute Value Pairs : nameOfAttribute=value). AVP crucial to Base protocol ( and for applications ) has been standarized is related documents ( standarization accepted by IANA ).
 

Resource Adaptor Type

First thing on path to creating Resource adaptor is to create RA Type. It usually consists of XML files describing event types, resurce adaptor type and propably file desribing deployable unit.

Event types


 <<O>>  Difference Topic MobicentsDiameterRA (18 - 22 May 2006 - Main.ivelin)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 21 to 21
 
Added:
>
>
 

 <<O>>  Difference Topic MobicentsDiameterRA (17 - 21 May 2006 - Main.ivelin)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 19 to 19
 
Changed:
<
<
  • Diameter interop event.
>
>
 

 <<O>>  Difference Topic MobicentsDiameterRA (16 - 20 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 21 to 21
 
Deleted:
<
<
 
Line: 80 to 77
 Diameter Request/Response message flow is similar to SIP message flow. So why not use same idea that has been implemented by SIP? SIP Server/ClientTransaction pattern fits here perfectly. We would have two different interface relating to client/server activities. Thus it would be logical to create two different Activity objects.
Changed:
<
<
First one implementing ClientTransactions? and second Implementing ServerTransactions?.
>
>
First one implementing ClientTransactions and second Implementing ServerTransactions.
 
Changed:
<
<
Objects implementing ClientTransactions? interface would define methods of creating requests ( and in some cases responses ) with correspondence to appropriate application. Similar behaviour would characterize ServerTransactions?. Server/ClientTransactions objects would be SLEE ActivityObjects?. Each instance would be responsible for maintaining one session. ServerTransactions? objects would be created by RA when request is beeing handled ( ofcourse when there is no other ServerTransactions? object bound to Session-Id AVP value), before delivery to SLEE. One the orher hand ClientTransactions? would be created by SLEE application to handle new session.
>
>
Objects implementing ClientTransactions interface would define methods of creating requests ( and in some cases responses ) with correspondence to appropriate application. Similar behaviour would characterize ServerTransactions. Server/ClientTransactions objects would be SLEE ActivityObjects?. Each instance would be responsible for maintaining one session. ServerTransactions objects would be created by RA when request is beeing handled ( ofcourse when there is no other ServerTransactions object bound to Session-Id AVP value), before delivery to SLEE. One the orher hand ClientTransactions would be created by SLEE application to handle new session.
 Lets make it more clear with some diagrams. On first diagram we see data/control flow in scenerio in which Sbb acts as client of one of Diameter Server nodes.
Added:
>
>
One session example
 

Now lets look closer to the flow:

  1. Sbb has a need to act as a Diameter Client. It calls __createXXXInterfaceClientTransactions method of some interface ( lets call it TransactionsProvider?).
  2. TransactionsProvider? objects forwards this request to RA.
Changed:
<
<
  1. RA creates new ClientTransactions? object and registers it in its Activities storage. ClientTransaction? objects knows to which host messages should be sent it also knows for which application it has been created and for which session it works as activity.
  2. RA returna newly created ClientTransactions? in order to provide Sbb with means to create Request to particular host.
  3. Sbb uses ClientTransactions? to create and send request.
>
>
  1. RA creates new ClientTransactions object and registers it in its Activities storage. ClientTransaction? objects knows to which host messages should be sent it also knows for which application it has been created and for which session it works as activity.
  2. RA returna newly created ClientTransactions in order to provide Sbb with means to create Request to particular host.
  3. Sbb uses ClientTransactions to create and send request.
 
  1. Request is sent by Diameter stack with use of appropriate method.

Now lets see what actions will be undertaken when response to some request will be received:

Deleted:
<
<

The Diameter Resource Adaptor is under active development. Initial binary release is expected in Q3Y06?. Follow the updates on this white board, issue tracker and related forum thread. If you would like to see the RA completed sooner than planned, you're welcome to join the team.

Roadmap

  • Implement IMS Cx interfaces for both client and server access. A Mobicents server should be able to play the roles (simulate?) of I-CSCF/S-CSCF and HSS.
  • Implement IMS Sh intefaces for both client and server access. A Mobicents server should be able to play the roles of an Application Server and HSS (simulator?).

Related Resources

Related HOWTO

I would strongly recommend to read this howto it gives quite good understanding what is going on in RA and how it works with SLEE.

Short Diameter description

Diameter is descendant od RADIUS. It was designed in way it stays compatibile with RADIUS but can be easly extended with new kind of use cases within AAA scenario. Extensions are called "Applications". Each application introduces new kind of messages,codes assigned to those kind by IANA, processing logic and so on. Moreover each application has its own code which distinguishes its messages from messages of another application. In addition application code gives means of telling other peers what operations are suported by connecting peer.

Diameter is quit simple protocol. Diameter message consists of header and payload. Both consist of AVPs ( Attribute Value Pairs : nameOfAttribute=value). AVP crucial to Base protocol ( and for applications ) has been standarized is related documents ( standarization accepted by IANA ).

Resource Adaptor Type

First thing on path to creating Resource adaptor is to create RA Type. It usually consists of XML files describing event types, resurce adaptor type and propably file desribing deployable unit.

Event types

Event "types" are defined in event-jar.xml file. Each event is distinguished by combination of venor, version and name. See section 3.2 of JAIN SLEE spec. for more details. Each application type in defined in Diameter will with high propability define some new message codes and values of standard ( and newly defined AVPs ) AVPs. Here is short listing of message codes and description of messages.

Pure Diameter

Diameter Base Protocol messages
Message Name Abbreviation Code value Description RFC 3588 location
Abort-Session-Request ASR 274 May be sent by any server to the access device that is providing session service, to request that the session identified by the Session-Id be topped. 8.5.1
Abort-Session-Answer ASA 274 Is sent in response to the ASR. Result code determines wheather session has been terminated sucsesfuly 8.5.2
Accounting-Request ACR 271 Is sent by a Diameter node, acting as a client, in order to exchange accounting information with a peer. 9.7.1
Accounting-Answer ACA 271 Is used to acknowledge an Accounting-Request command. 9.7.2
Capabilities-Exchange-Request CER 257 Is sent to exchange local capabilities when connection between peers is beeing estabilished. It contains codes of supported applications 5.3.1
Capabilities-Exchange-Answer CEA 257 Is sent in response to a CER message. 5.3.2
Device-Watchdog-Request DWR 280 Is sent to a peer when no traffic has been exchanged between two peers (see Section 5.5.3 - RFC 3588). 5.5.1
Device-Watchdog-Answer DWA 280 Is sent as a response to the Device-Watchdog-Request message. 5.5.2
Disconnect-Peer-Request DPR 282 Is sent to a peer to inform its intentions to shutdown the transport connection. Upon detection of a transport failure, this message MUST NOT be sent to an alternate peer. 5.4.1
Disconnect-Peer-Answer DPA 282 Is sent as a response to the Disconnect-Peer-Request message. Upon receipt of this message, the transport connection is shutdown. 5.4.2
Re-Auth-Request RAR 258 May be sent by any server to the access device that is providing session service, to request that the user be re-authenticated and/or re-authorized. 8.3.1
Re-Auth-Answer RAA 258 Is sent in response to the RAR. The Result-Code AVP MUST be present, and indicates the disposition of the request. A successful RAA message MUST be followed by an application-specific authentication and/or authorization message. 8.3.2
Session-Termination-Request STR 275 Is sent by the access device to inform the Diameter Server that an authenticated and/or authorized session is being terminated. 8.4.1
Session-Termination-Answer STA 275 Is sent by the Diameter Server to acknowledge the notification that the session has been terminated. Upon sending or receipt of the STA, the Diameter Server MUST release all resources for the session indicated by the Session-Id AVP. 8.4.2

Sh interface (3GPP Application)

Here are codes and desriptions for message types defined for 3GPP application by IANA
3GPP messages
Message Name Abbreviation Code value Description RFC 3588 location
User-Data-Request UDR 306 Is sent by AS to HSS when AS needs to access/ retireve soem data regarding user 6.1.1
User-Data-Answer UDA 306 Response either conatinin data requested in UDR or apprioriate error code 6.1.2
Profile-Update-Request PUR 307 Is sent by AS to update some data in HSS. 6.1.3
Profile-Update-Answer PUA 307 Response for PUR 6.1.4
Subscribe-Notifications-Request SNR 308 Is sent by AS when it wonts to be notified (or not ) when some data has changed after subsritpion. Works as subsribe/unsubsribe . 6.1.5
Subscribe-Notifications-Answer SNA 308 Response to SNR . 6.1.6
Push-Notification-Request PNR 309 Request sent by HSS to AS which has subsribed itself for notifications 6.1.7
Push-Notification-Answer PNA 309 Reponse to PNA 6.1.8
 
Added:
>
>
 
Changed:
<
<

Resource Adaptor Type design

>
>
  1. Server node creates response and sends it back to originating node.
  2. This step is "internal". RA checks wheather message is Request or Response ( Request processing is explained on other dagram ).
  3. RA simply fires "Response" to SLEE.
  4. Sbb receives Reponse and ClientTransactions object (within ActivityContextInterface? object ) created earlier so it can create new request in the same session.
 
Changed:
<
<
So what do we know?
>
>
Scenario in which Sbb is "talking" with two different nodes in two different sessions is quite simple because it does not introduce nothing new to first ones. However lets atleast have a look on it: More than one session
 
Changed:
<
<
Diameter Request/Response message flow is similar to SIP message flow. So why not use same idea that has been implemented by SIP? SIP Server/ClientTransaction pattern fits here perfectly. We would have two different interface relating to client/server activities. Thus it would be logical to create two different Activity objects. First one implementing ClientTransactions? and second Implementing ServerTransactions?.
>
>
 
Changed:
<
<
Objects implementing ClientTransactions? interface would define methods of creating requests ( and in some cases responses ) with correspondence to appropriate application. Similar behaviour would characterize ServerTransactions?. Server/ClientTransactions objects would be SLEE ActivityObjects?. Each instance would be responsible for maintaining one session. ServerTransactions? objects would be created by RA when request is beeing handled ( ofcourse when there is no other ServerTransactions? object bound to Session-Id AVP value), before delivery to SLEE. One the orher hand ClientTransactions? would be created by SLEE application to handle new session.
>
>
 
Changed:
<
<
Lets make it more clear with some diagrams. On first diagram we see data/control flow in scenerio in which Sbb acts as client of one of Diameter Server nodes.
>
>
Acting ass server node
 
Added:
>
>
 
Changed:
<
<
>
>
  1. Client creates and sends request to our node.
  2. If there is no ServerTransactions object associated with ongoing session RA creates one
  3. RA fires event to SLEE
  4. Sbb receives Requestand ServerTransactions object (within ActivityContextInterface? object ) created earlier so it can create response ( and sometimes requests ) in the same session.
 
Deleted:
<
<
  1. Server node creates response and sends it back to originating node.
  2. This step is "internal". RA checks wheather message is Request or Response ( Request processing is explained on other dagram ).
  3. RA simply fires "Response" to SLEE.
  4. Sbb receives Reponse and ClientTransactions? object (within ActivityContextInterface? object ) created earlier so it can create new request in the same session.
 -- Main.ivelin - 15 Apr 2006

-- Main.baranowb - 19 May 2006


 <<O>>  Difference Topic MobicentsDiameterRA (15 - 20 May 2006 - Main.ivelin)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 21 to 21
 
Added:
>
>
 
Line: 98 to 101
 Now lets see what actions will be undertaken when response to some request will be received:
Added:
>
>

The Diameter Resource Adaptor is under active development. Initial binary release is expected in Q3Y06?. Follow the updates on this white board, issue tracker and related forum thread. If you would like to see the RA completed sooner than planned, you're welcome to join the team.

Roadmap

  • Implement IMS Cx interfaces for both client and server access. A Mobicents server should be able to play the roles (simulate?) of I-CSCF/S-CSCF and HSS.
  • Implement IMS Sh intefaces for both client and server access. A Mobicents server should be able to play the roles of an Application Server and HSS (simulator?).

Related Resources

Related HOWTO

I would strongly recommend to read this howto it gives quite good understanding what is going on in RA and how it works with SLEE.

Short Diameter description

Diameter is descendant od RADIUS. It was designed in way it stays compatibile with RADIUS but can be easly extended with new kind of use cases within AAA scenario. Extensions are called "Applications". Each application introduces new kind of messages,codes assigned to those kind by IANA, processing logic and so on. Moreover each application has its own code which distinguishes its messages from messages of another application. In addition application code gives means of telling other peers what operations are suported by connecting peer.

Diameter is quit simple protocol. Diameter message consists of header and payload. Both consist of AVPs ( Attribute Value Pairs : nameOfAttribute=value). AVP crucial to Base protocol ( and for applications ) has been standarized is related documents ( standarization accepted by IANA ).

Resource Adaptor Type

First thing on path to creating Resource adaptor is to create RA Type. It usually consists of XML files describing event types, resurce adaptor type and propably file desribing deployable unit.

Event types

Event "types" are defined in event-jar.xml file. Each event is distinguished by combination of venor, version and name. See section 3.2 of JAIN SLEE spec. for more details. Each application type in defined in Diameter will with high propability define some new message codes and values of standard ( and newly defined AVPs ) AVPs. Here is short listing of message codes and description of messages.

Pure Diameter

Diameter Base Protocol messages
Message Name Abbreviation Code value Description RFC 3588 location
Abort-Session-Request ASR 274 May be sent by any server to the access device that is providing session service, to request that the session identified by the Session-Id be topped. 8.5.1
Abort-Session-Answer ASA 274 Is sent in response to the ASR. Result code determines wheather session has been terminated sucsesfuly 8.5.2
Accounting-Request ACR 271 Is sent by a Diameter node, acting as a client, in order to exchange accounting information with a peer. 9.7.1
Accounting-Answer ACA 271 Is used to acknowledge an Accounting-Request command. 9.7.2
Capabilities-Exchange-Request CER 257 Is sent to exchange local capabilities when connection between peers is beeing estabilished. It contains codes of supported applications 5.3.1
Capabilities-Exchange-Answer CEA 257 Is sent in response to a CER message. 5.3.2
Device-Watchdog-Request DWR 280 Is sent to a peer when no traffic has been exchanged between two peers (see Section 5.5.3 - RFC 3588). 5.5.1
Device-Watchdog-Answer DWA 280 Is sent as a response to the Device-Watchdog-Request message. 5.5.2
Disconnect-Peer-Request DPR 282 Is sent to a peer to inform its intentions to shutdown the transport connection. Upon detection of a transport failure, this message MUST NOT be sent to an alternate peer. 5.4.1
Disconnect-Peer-Answer DPA 282 Is sent as a response to the Disconnect-Peer-Request message. Upon receipt of this message, the transport connection is shutdown. 5.4.2
Re-Auth-Request RAR 258 May be sent by any server to the access device that is providing session service, to request that the user be re-authenticated and/or re-authorized. 8.3.1
Re-Auth-Answer RAA 258 Is sent in response to the RAR. The Result-Code AVP MUST be present, and indicates the disposition of the request. A successful RAA message MUST be followed by an application-specific authentication and/or authorization message. 8.3.2
Session-Termination-Request STR 275 Is sent by the access device to inform the Diameter Server that an authenticated and/or authorized session is being terminated. 8.4.1
Session-Termination-Answer STA 275 Is sent by the Diameter Server to acknowledge the notification that the session has been terminated. Upon sending or receipt of the STA, the Diameter Server MUST release all resources for the session indicated by the Session-Id AVP. 8.4.2

Sh interface (3GPP Application)

Here are codes and desriptions for message types defined for 3GPP application by IANA
3GPP messages
Message Name Abbreviation Code value Description RFC 3588 location
User-Data-Request UDR 306 Is sent by AS to HSS when AS needs to access/ retireve soem data regarding user 6.1.1
User-Data-Answer UDA 306 Response either conatinin data requested in UDR or apprioriate error code 6.1.2
Profile-Update-Request PUR 307 Is sent by AS to update some data in HSS. 6.1.3
Profile-Update-Answer PUA 307 Response for PUR 6.1.4
Subscribe-Notifications-Request SNR 308 Is sent by AS when it wonts to be notified (or not ) when some data has changed after subsritpion. Works as subsribe/unsubsribe . 6.1.5
Subscribe-Notifications-Answer SNA 308 Response to SNR . 6.1.6
Push-Notification-Request PNR 309 Request sent by HSS to AS which has subsribed itself for notifications 6.1.7
Push-Notification-Answer PNA 309 Reponse to PNA 6.1.8

Resource Adaptor Type design

So what do we know?

Diameter Request/Response message flow is similar to SIP message flow. So why not use same idea that has been implemented by SIP? SIP Server/ClientTransaction pattern fits here perfectly. We would have two different interface relating to client/server activities. Thus it would be logical to create two different Activity objects. First one implementing ClientTransactions? and second Implementing ServerTransactions?.

Objects implementing ClientTransactions? interface would define methods of creating requests ( and in some cases responses ) with correspondence to appropriate application. Similar behaviour would characterize ServerTransactions?. Server/ClientTransactions objects would be SLEE ActivityObjects?. Each instance would be responsible for maintaining one session. ServerTransactions? objects would be created by RA when request is beeing handled ( ofcourse when there is no other ServerTransactions? object bound to Session-Id AVP value), before delivery to SLEE. One the orher hand ClientTransactions? would be created by SLEE application to handle new session.

Lets make it more clear with some diagrams. On first diagram we see data/control flow in scenerio in which Sbb acts as client of one of Diameter Server nodes.

 

 <<O>>  Difference Topic MobicentsDiameterRA (14 - 20 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 86 to 86
 

Added:
>
>
Now lets look closer to the flow:
  1. Sbb has a need to act as a Diameter Client. It calls __createXXXInterfaceClientTransactions method of some interface ( lets call it TransactionsProvider?).
  2. TransactionsProvider? objects forwards this request to RA.
  3. RA creates new ClientTransactions? object and registers it in its Activities storage. ClientTransaction? objects knows to which host messages should be sent it also knows for which application it has been created and for which session it works as activity.
  4. RA returna newly created ClientTransactions? in order to provide Sbb with means to create Request to particular host.
  5. Sbb uses ClientTransactions? to create and send request.
  6. Request is sent by Diameter stack with use of appropriate method.

Now lets see what actions will be undertaken when response to some request will be received:

  1. Server node creates response and sends it back to originating node.
  2. This step is "internal". RA checks wheather message is Request or Response ( Request processing is explained on other dagram ).
  3. RA simply fires "Response" to SLEE.
  4. Sbb receives Reponse and ClientTransactions? object (within ActivityContextInterface? object ) created earlier so it can create new request in the same session.
 -- Main.ivelin - 15 Apr 2006

-- Main.baranowb - 19 May 2006


 <<O>>  Difference Topic MobicentsDiameterRA (13 - 20 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 82 to 82
 Objects implementing ClientTransactions? interface would define methods of creating requests ( and in some cases responses ) with correspondence to appropriate application. Similar behaviour would characterize ServerTransactions?. Server/ClientTransactions objects would be SLEE ActivityObjects?. Each instance would be responsible for maintaining one session. ServerTransactions? objects would be created by RA when request is beeing handled ( ofcourse when there is no other ServerTransactions? object bound to Session-Id AVP value), before delivery to SLEE. One the orher hand ClientTransactions? would be created by SLEE application to handle new session.
Added:
>
>
Lets make it more clear with some diagrams. On first diagram we see data/control flow in scenerio in which Sbb acts as client of one of Diameter Server nodes.

 -- Main.ivelin - 15 Apr 2006

-- Main.baranowb - 19 May 2006


 <<O>>  Difference Topic MobicentsDiameterRA (12 - 19 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 40 to 40
 Event "types" are defined in event-jar.xml file. Each event is distinguished by combination of venor, version and name. See section 3.2 of JAIN SLEE spec. for more details. Each application type in defined in Diameter will with high propability define some new message codes and values of standard ( and newly defined AVPs ) AVPs. Here is short listing of message codes and description of messages.

Pure Diameter

Changed:
<
<
Diameter Base Protocol messages
Message Name Abbreviation Code value Description RFC 3588 location
>
>
Diameter Base Protocol messages
Message Name Abbreviation Code value Description RFC 3588 location
 
Abort-Session-Request ASR 274 May be sent by any server to the access device that is providing session service, to request that the session identified by the Session-Id be topped. 8.5.1
Abort-Session-Answer ASA 274 Is sent in response to the ASR. Result code determines wheather session has been terminated sucsesfuly 8.5.2
Accounting-Request ACR 271 Is sent by a Diameter node, acting as a client, in order to exchange accounting information with a peer. 9.7.1
Line: 59 to 59
 

Sh interface (3GPP Application)

Here are codes and desriptions for message types defined for 3GPP application by IANA
Changed:
<
<
3GPP messages
Message Name Abbreviation Code value Description RFC 3588 location
>
>
3GPP messages
Message Name Abbreviation Code value Description RFC 3588 location
 
User-Data-Request UDR 306 Is sent by AS to HSS when AS needs to access/ retireve soem data regarding user 6.1.1
User-Data-Answer UDA 306 Response either conatinin data requested in UDR or apprioriate error code 6.1.2
Profile-Update-Request PUR 307 Is sent by AS to update some data in HSS. 6.1.3
Line: 69 to 69
 
Subscribe-Notifications-Answer SNA 308 Response to SNR . 6.1.6
Push-Notification-Request PNR 309 Request sent by HSS to AS which has subsribed itself for notifications 6.1.7
Push-Notification-Answer PNA 309 Reponse to PNA 6.1.8
Added:
>
>
 

Resource Adaptor Type design

Added:
>
>
So what do we know?

Diameter Request/Response message flow is similar to SIP message flow. So why not use same idea that has been implemented by SIP? SIP Server/ClientTransaction pattern fits here perfectly. We would have two different interface relating to client/server activities. Thus it would be logical to create two different Activity objects. First one implementing ClientTransactions? and second Implementing ServerTransactions?.

Objects implementing ClientTransactions? interface would define methods of creating requests ( and in some cases responses ) with correspondence to appropriate application. Similar behaviour would characterize ServerTransactions?. Server/ClientTransactions objects would be SLEE ActivityObjects?. Each instance would be responsible for maintaining one session. ServerTransactions? objects would be created by RA when request is beeing handled ( ofcourse when there is no other ServerTransactions? object bound to Session-Id AVP value), before delivery to SLEE. One the orher hand ClientTransactions? would be created by SLEE application to handle new session.

 -- Main.ivelin - 15 Apr 2006

-- Main.baranowb - 19 May 2006


 <<O>>  Difference Topic MobicentsDiameterRA (11 - 19 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 28 to 28
 

Related HOWTO

I would strongly recommend to read this howto it gives quite good understanding what is going on in RA and how it works with SLEE.

Short Diameter description

Changed:
<
<
Diameter is meant to be extensible protocol. However this extensibility has to be under some kind of surveillance. IANA holds grasp over Diameter extensibility. This organization assigns message codes and values for protocol related AVPs.
>
>
Diameter is descendant od RADIUS. It was designed in way it stays compatibile with RADIUS but can be easly extended with new kind of use cases within AAA scenario. Extensions are called "Applications". Each application introduces new kind of messages,codes assigned to those kind by IANA, processing logic and so on. Moreover each application has its own code which distinguishes its messages from messages of another application. In addition application code gives means of telling other peers what operations are suported by connecting peer.

Diameter is quit simple protocol. Diameter message consists of header and payload. Both consist of AVPs ( Attribute Value Pairs : nameOfAttribute=value). AVP crucial to Base protocol ( and for applications ) has been standarized is related documents ( standarization accepted by IANA ).

 

Resource Adaptor Type

First thing on path to creating Resource adaptor is to create RA Type. It usually consists of XML files describing event types, resurce adaptor type and propably file desribing deployable unit.

Event types

Line: 41 to 46
 
Abort-Session-Answer ASA 274 Is sent in response to the ASR. Result code determines wheather session has been terminated sucsesfuly 8.5.2
Accounting-Request ACR 271 Is sent by a Diameter node, acting as a client, in order to exchange accounting information with a peer. 9.7.1
Accounting-Answer ACA 271 Is used to acknowledge an Accounting-Request command. 9.7.2
Changed:
<
<
Capabilities-Exchange-Request CER 257 Is sent to exchange local capabilities when connection between peers is beeing estabilished 5.3.1
>
>
Capabilities-Exchange-Request CER 257 Is sent to exchange local capabilities when connection between peers is beeing estabilished. It contains codes of supported applications 5.3.1
 
Capabilities-Exchange-Answer CEA 257 Is sent in response to a CER message. 5.3.2
Device-Watchdog-Request DWR 280 Is sent to a peer when no traffic has been exchanged between two peers (see Section 5.5.3 - RFC 3588). 5.5.1
Device-Watchdog-Answer DWA 280 Is sent as a response to the Device-Watchdog-Request message. 5.5.2
Line: 56 to 61
 Here are codes and desriptions for message types defined for 3GPP application by IANA
3GPP messages
Message Name Abbreviation Code value Description RFC 3588 location
Changed:
<
<
User-Data-Request UDR 306 6.1.1
User-Data-Answer UDA 306 6.1.2
Profile-Update-Request PUR 307 6.1.3
Profile-Update-Answer PUA 307 6.1.4
Subscribe-Notifications-Request SNR 308 6.1.5
Subscribe-Notifications-Answer SNA 308 6.1.6
Push-Notification-Request PNR 309 6.1.7
Push-Notification-Answer PNA 309 6.1.8

Sh interface design

>
>
User-Data-Request UDR 306 Is sent by AS to HSS when AS needs to access/ retireve soem data regarding user 6.1.1
User-Data-Answer UDA 306 Response either conatinin data requested in UDR or apprioriate error code 6.1.2
Profile-Update-Request PUR 307 Is sent by AS to update some data in HSS. 6.1.3
Profile-Update-Answer PUA 307 Response for PUR 6.1.4
Subscribe-Notifications-Request SNR 308 Is sent by AS when it wonts to be notified (or not ) when some data has changed after subsritpion. Works as subsribe/unsubsribe . 6.1.5
Subscribe-Notifications-Answer SNA 308 Response to SNR . 6.1.6
Push-Notification-Request PNR 309 Request sent by HSS to AS which has subsribed itself for notifications 6.1.7
Push-Notification-Answer PNA 309 Reponse to PNA 6.1.8

Resource Adaptor Type design

 -- Main.ivelin - 15 Apr 2006

 <<O>>  Difference Topic MobicentsDiameterRA (10 - 19 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 37 to 37
 

Pure Diameter

Diameter Base Protocol messages
Message Name Abbreviation Code value Description RFC 3588 location
Changed:
<
<
Abort-Session-Request ASR 274   8.5.1
Abort-Session-Answer ASA 274   8.5.2
Accounting-Request ACR 271   9.7.1
Accounting-Answer ACA 271   9.7.2
Capabilities-Exchange-Request CER 257   5.3.1
Capabilities-Exchange-Answer CEA 257 5.3.2
Device-Watchdog-Request DWR 280   5.5.1
Device-Watchdog-Answer DWA 280   5.5.2
Disconnect-Peer-Request DPR 282   5.4.1
Disconnect-Peer-Answer DPA 282   5.4.2
Re-Auth-Request RAR 258   8.3.1
Re-Auth-Answer RAA 258   8.3.2
>
>
Abort-Session-Request ASR 274 May be sent by any server to the access device that is providing session service, to request that the session identified by the Session-Id be topped. 8.5.1
Abort-Session-Answer ASA 274 Is sent in response to the ASR. Result code determines wheather session has been terminated sucsesfuly 8.5.2
Accounting-Request ACR 271 Is sent by a Diameter node, acting as a client, in order to exchange accounting information with a peer. 9.7.1
Accounting-Answer ACA 271 Is used to acknowledge an Accounting-Request command. 9.7.2
Capabilities-Exchange-Request CER 257 Is sent to exchange local capabilities when connection between peers is beeing estabilished 5.3.1
Capabilities-Exchange-Answer CEA 257 Is sent in response to a CER message. 5.3.2
Device-Watchdog-Request DWR 280 Is sent to a peer when no traffic has been exchanged between two peers (see Section 5.5.3 - RFC 3588). 5.5.1
Device-Watchdog-Answer DWA 280 Is sent as a response to the Device-Watchdog-Request message. 5.5.2
Disconnect-Peer-Request DPR 282 Is sent to a peer to inform its intentions to shutdown the transport connection. Upon detection of a transport failure, this message MUST NOT be sent to an alternate peer. 5.4.1
Disconnect-Peer-Answer DPA 282 Is sent as a response to the Disconnect-Peer-Request message. Upon receipt of this message, the transport connection is shutdown. 5.4.2
Re-Auth-Request RAR 258 May be sent by any server to the access device that is providing session service, to request that the user be re-authenticated and/or re-authorized. 8.3.1
Re-Auth-Answer RAA 258 Is sent in response to the RAR. The Result-Code AVP MUST be present, and indicates the disposition of the request. A successful RAA message MUST be followed by an application-specific authentication and/or authorization message. 8.3.2
 
Session-Termination-Request STR 275 Is sent by the access device to inform the Diameter Server that an authenticated and/or authorized session is being terminated. 8.4.1
Session-Termination-Answer STA 275 Is sent by the Diameter Server to acknowledge the notification that the session has been terminated. Upon sending or receipt of the STA, the Diameter Server MUST release all resources for the session indicated by the Session-Id AVP. 8.4.2

Sh interface (3GPP Application)

Added:
>
>
Here are codes and desriptions for message types defined for 3GPP application by IANA
3GPP messages
Message Name Abbreviation Code value Description RFC 3588 location
User-Data-Request UDR 306 6.1.1
User-Data-Answer UDA 306 6.1.2
Profile-Update-Request PUR 307 6.1.3
Profile-Update-Answer PUA 307 6.1.4
Subscribe-Notifications-Request SNR 308 6.1.5
Subscribe-Notifications-Answer SNA 308 6.1.6
Push-Notification-Request PNR 309 6.1.7
Push-Notification-Answer PNA 309 6.1.8
 

Sh interface design

-- Main.ivelin - 15 Apr 2006


 <<O>>  Difference Topic MobicentsDiameterRA (9 - 19 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 35 to 35
 Event "types" are defined in event-jar.xml file. Each event is distinguished by combination of venor, version and name. See section 3.2 of JAIN SLEE spec. for more details. Each application type in defined in Diameter will with high propability define some new message codes and values of standard ( and newly defined AVPs ) AVPs. Here is short listing of message codes and description of messages.

Pure Diameter

Changed:
<
<
Diameter Base Protocol messages
Message Name Abbreviation Code value Description Format RFC 3588 location
Abort-Session-Request ASR 274     8.5.1
Abort-Session-Answer ASA 274     8.5.2
Accounting-Request ACR 271     9.7.1
Accounting-Answer ACA 271     9.7.2
Capabilities-Exchange-Request CER 257     5.3.1
Capabilities-Exchange-Answer CEA 257     5.3.2
Device-Watchdog-Request DWR 280     5.5.1
Device-Watchdog-Answer DWA 280     5.5.2
Disconnect-Peer-Request DPR 282     5.4.1
Disconnect-Peer-Answer DPA 282     5.4.2
Re-Auth-Request RAR 258     8.3.1
Re-Auth-Answer RAA 258     8.3.2
Session-Termination-Request STR 275     8.4.1
Session-Termination-Answer STA 275     8.4.2
>
>
Diameter Base Protocol messages
Message Name Abbreviation Code value Description RFC 3588 location
Abort-Session-Request ASR 274   8.5.1
Abort-Session-Answer ASA 274   8.5.2
Accounting-Request ACR 271   9.7.1
Accounting-Answer ACA 271   9.7.2
Capabilities-Exchange-Request CER 257   5.3.1
Capabilities-Exchange-Answer CEA 257 5.3.2
Device-Watchdog-Request DWR 280   5.5.1
Device-Watchdog-Answer DWA 280   5.5.2
Disconnect-Peer-Request DPR 282   5.4.1
Disconnect-Peer-Answer DPA 282   5.4.2
Re-Auth-Request RAR 258   8.3.1
Re-Auth-Answer RAA 258   8.3.2
Session-Termination-Request STR 275 Is sent by the access device to inform the Diameter Server that an authenticated and/or authorized session is being terminated. 8.4.1
Session-Termination-Answer STA 275 Is sent by the Diameter Server to acknowledge the notification that the session has been terminated. Upon sending or receipt of the STA, the Diameter Server MUST release all resources for the session indicated by the Session-Id AVP. 8.4.2
 

Sh interface (3GPP Application)

Sh interface design


 <<O>>  Difference Topic MobicentsDiameterRA (8 - 19 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 35 to 35
 Event "types" are defined in event-jar.xml file. Each event is distinguished by combination of venor, version and name. See section 3.2 of JAIN SLEE spec. for more details. Each application type in defined in Diameter will with high propability define some new message codes and values of standard ( and newly defined AVPs ) AVPs. Here is short listing of message codes and description of messages.

Pure Diameter

Changed:
<
<
Diameter Base Protocol messages
Message Name Abbreviation Code value Description Format
>
>
Diameter Base Protocol messages
Message Name Abbreviation Code value Description Format RFC 3588 location
Abort-Session-Request ASR 274     8.5.1
Abort-Session-Answer ASA 274     8.5.2
Accounting-Request ACR 271     9.7.1
Accounting-Answer ACA 271     9.7.2
Capabilities-Exchange-Request CER 257     5.3.1
Capabilities-Exchange-Answer CEA 257     5.3.2
Device-Watchdog-Request DWR 280     5.5.1
Device-Watchdog-Answer DWA 280     5.5.2
Disconnect-Peer-Request DPR 282     5.4.1
Disconnect-Peer-Answer DPA 282     5.4.2
Re-Auth-Request RAR 258     8.3.1
Re-Auth-Answer RAA 258     8.3.2
Session-Termination-Request STR 275     8.4.1
Session-Termination-Answer STA 275     8.4.2

 

Sh interface (3GPP Application)

Sh interface design


 <<O>>  Difference Topic MobicentsDiameterRA (7 - 19 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Added:
>
>
 The Diameter Resource Adaptor is under active development. Initial binary release is expected in Q3Y06?. Follow the updates on this white board, issue tracker and related forum thread. If you would like to see the RA completed sooner than planned, you're welcome to join the team.
Added:
>
>
 

Roadmap

  • Implement IMS Cx interfaces for both client and server access. A Mobicents server should be able to play the roles (simulate?) of I-CSCF/S-CSCF and HSS.
  • Implement IMS Sh intefaces for both client and server access. A Mobicents server should be able to play the roles of an Application Server and HSS (simulator?).
Line: 22 to 25
 
Added:
>
>

Related HOWTO

I would strongly recommend to read this howto it gives quite good understanding what is going on in RA and how it works with SLEE.

Short Diameter description

Diameter is meant to be extensible protocol. However this extensibility has to be under some kind of surveillance. IANA holds grasp over Diameter extensibility. This organization assigns message codes and values for protocol related AVPs.

Resource Adaptor Type

First thing on path to creating Resource adaptor is to create RA Type. It usually consists of XML files describing event types, resurce adaptor type and propably file desribing deployable unit.

Event types

Event "types" are defined in event-jar.xml file. Each event is distinguished by combination of venor, version and name. See section 3.2 of JAIN SLEE spec. for more details. Each application type in defined in Diameter will with high propability define some new message codes and values of standard ( and newly defined AVPs ) AVPs. Here is short listing of message codes and description of messages.

Pure Diameter

Diameter Base Protocol messages
Message Name Abbreviation Code value Description Format

Sh interface (3GPP Application)

Sh interface design

 
Deleted:
<
<

Resource Adaptor Type design

 -- Main.ivelin - 15 Apr 2006

-- Main.baranowb - 19 May 2006


 <<O>>  Difference Topic MobicentsDiameterRA (6 - 19 May 2006 - Main.baranowb)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 23 to 23
 
Changed:
<
<
>
>

Resource Adaptor Type design

 -- Main.ivelin - 15 Apr 2006
Added:
>
>
-- Main.baranowb - 19 May 2006

 <<O>>  Difference Topic MobicentsDiameterRA (5 - 06 May 2006 - Main.ivelin)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 18 to 18
 
Added:
>
>
 

-- Main.ivelin - 15 Apr 2006


 <<O>>  Difference Topic MobicentsDiameterRA (4 - 16 Apr 2006 - Main.ivelin)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Changed:
<
<
The Diameter Resource Adaptor is under active development. Initial binary release is expected in Q3Y06?. Follow the updates on this white board and the related forum thread. If you would like to see the RA completed sooner than planned, you're welcome to join the team.
>
>
The Diameter Resource Adaptor is under active development. Initial binary release is expected in Q3Y06?. Follow the updates on this white board, issue tracker and related forum thread. If you would like to see the RA completed sooner than planned, you're welcome to join the team.
 

Roadmap

  • Implement IMS Cx interfaces for both client and server access. A Mobicents server should be able to play the roles (simulate?) of I-CSCF/S-CSCF and HSS.
Line: 16 to 16
 
Added:
>
>
  • Diameter interop event.
 

 <<O>>  Difference Topic MobicentsDiameterRA (3 - 15 Apr 2006 - Main.ivelin)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"

Mobicents Diameter Resource Adaptor

Line: 15 to 15
 
Added:
>
>
 

 <<O>>  Difference Topic MobicentsDiameterRA (2 - 15 Apr 2006 - Main.ivelin)
Line: 1 to 1
 
META TOPICPARENT name="MobicentsFAQ"
Added:
>
>

Mobicents Diameter Resource Adaptor

 The Diameter Resource Adaptor is under active development. Initial binary release is expected in Q3Y06?. Follow the updates on this white board and the related forum thread. If you would like to see the RA completed sooner than planned, you're welcome to join the team.
Added:
>
>

Roadmap

  • Implement IMS Cx interfaces for both client and server access. A Mobicents server should be able to play the roles (simulate?) of I-CSCF/S-CSCF and HSS.
  • Implement IMS Sh intefaces for both client and server access. A Mobicents server should be able to play the roles of an Application Server and HSS (simulator?).

Related Resources

 -- Main.ivelin - 15 Apr 2006

 <<O>>  Difference Topic MobicentsDiameterRA (1 - 15 Apr 2006 - Main.ivelin)
Line: 1 to 1
Added:
>
>
META TOPICPARENT name="MobicentsFAQ"

The Diameter Resource Adaptor is under active development. Initial binary release is expected in Q3Y06?. Follow the updates on this white board and the related forum thread. If you would like to see the RA completed sooner than planned, you're welcome to join the team.

-- Main.ivelin - 15 Apr 2006


Topic MobicentsDiameterRA . { View | Diffs r24 < r23 < r22 < r21 | More }
 XML java.net RSS