Implementation of The Diameter-Based CX Interface in The IP Multimedia Subsystem
Implementation of The Diameter-Based CX Interface in The IP Multimedia Subsystem
Implementation of The Diameter-Based CX Interface in The IP Multimedia Subsystem
The Diameter protocol was initially developed by the Internet II. ROLE OF DIAMETER IN IMS
Engineering Task Force (IETF) as an Authentication, The IMS is based on a horizontally layered architecture,
Authorization, and Accounting (AAA) framework intended
consisting of three layers, namely, Service Layer, Control
for applications such as remote network access and IP
Layer, and Connectivity Layer. Service Layer comprises
mobility. Diameter was further embraced by the Third
application and content servers to execute value-added
Generation Partnership Project (3GPP) as the key protocol
for AAA and mobility management in 3G networks. The
services for the user. Control layer comprises network
paper discusses the use of Diameter in the scope of the IP control servers for managing call or session set-up,
Multimedia Subsystem (IMS) as specified by 3GPP, with modification and release. The most important of these is
special emphasis on its use on the Cx interface between the the Call Session Control Function (CSCF). Connectivity
Call Session Control Function (CSCF) and the Home Layer comprises routers and switches, for both the
Subscriber Server (HSS). The goal of this work was to backbone and the access network.
implement basic Diameter functionality corresponding to the
Cx interface. The paper compares a number of open source A. IMS functions
implementations of the Diameter Base Protocol, and provides
the rationale for choosing the Open Diameter solution for
A somewhat simplified IMS architecture is shown in
implementation purposes. Experiences regarding installation,
Figure 1. As mentioned earlier, one of the key functions in
configuration and implementation of basic authorization
functionality using Open Diameter are discussed. The
the control layer is the CSCF. In this paper, we focus on
resulting implementation is verified in a laboratory testbed. the interface between the Home Subscriber Server (HSS)
and the CSCF. The HSS serves as the main data storage
for user related information, such as IMS user profiles
I. INTRODUCTION (including location), security and registration information,
access parameters, and application server profiles.
Evolution of the 3rd generation network architecture is
driven, among other factors, by the requirement to provide
a rather fast, flexible and cost-efficient way of introducing AS AS
new services for operators, as well as third-party service
and content providers. The IP Multimedia Subsystem Service Layer
(IMS), as specified by the 3rd Generation Partnership
project (3GPP), represents the key element for supporting Control Layer
ubiquitous service access to multimedia Internet services,
with adequate support for Quality of Service as well as MRF
advanced, service-differentiated charging [1]. Initially
specified by 3GPP/3GPP2, the IMS standards are now HSS CSCF
being adopted by other standards bodies including
ETSI/TISPAN. For the purposes of Authentication, SG/MGCF
Authorization, and Accounting (AAA) and mobility
management in 3G networks, 3GPP has adopted the
Diameter protocol [2], developed by the Internet
Connectivity MGW
Engineering Task Force (IETF). This paper discusses the
Layer
use of Diameter within the scope of the IMS.
IP/MPLS
The paper is organized as follows. Section II briefly
describes IMS, its functions and interfaces, and the role of PSTN/PLMN
the Diameter protocol as applied to the Cx interface.
Section III provides an overview of publicly available
Figure 1. The IMS architecture
open source implementations of the Diameter protocol,
while Section IV describes the selected implementation,
Open Diameter, in more detail. Section V describes our The CSCF may serve three different purposes, as the
implementation of basic Diameter functionality Proxy CSCF (P-CSCF), the Interrogating CSCF (I-CSCF),
corresponding to the Cx interface, as an extension to the and the Serving CSCF (S-CSCF).
existing Open Diameter implementation. Section VI The P-CSCF is a Session Initiation Protocol (SIP) proxy
concludes the paper. that acts as the first contact point between the IMS
terminal and the IMS network. It is assigned to an IMS
terminal during IMS registration. The I-CSCF is also a SIP
proxy, usually located in the home network, at the edge of Registration-Termination-Request (RTR) command,
the administrative domain. Main functions of the I-CSCF stating the reason for de-registration. The RTR command
are to contact HSS in order to obtain the name of the is acknowledged by a Registration-Termination-Answer
S-CSCF that is serving the user, and to assign the S-CSCF (RTA) command. If an I-CSCF receives any SIP method
to the user based on received information received from other than REGISTER, a procedure for finding S-CSCF
the HSS. uses the Location-Info-Request (LIR) command
The S-CSCF is the central node of the signaling plane, containing public user identity and routing information.
the “brain” of the IMS. The S-CSCF is located in the home The HSS responds to LIR with Location-Info-Answer
network and it uses the Diameter-based Cx and Dx (LIA) command, containing the name of the S-CSCF.
interfaces (reference points) towards the HSS to download
and upload the user profiles. User-data handling procedures. During the registration
process, user and service-related data are downloaded from
B. The Cx reference point the HSS to the S-CSCF via the Cx reference point by using
SAR and SAA commands. It is possible, however, for this
data to be changed later, during the time while the S-CSCF
As per IMS technical specifications [3][4], the Cx
is still serving the user. To update the data in the S-CSCF,
reference point is located between the S-CSCF/I-CSCF
the HSS sends a Push-Profile-Request (PPR) command
and the HSS, as shown in Figure 2. The Subscription
with private user identity, routing information, and user
Location Function (SLF) is required in a network in which
data. The response to the PPR command is
there is more than one HSS; it provides the mapping
Push-Profile-Answer (PPA) command.
between a particular user address and its corresponding
HSS. As already noted, the protocol used at the Cx
reference point is Diameter. (The unmarked interface Authentication procedures. In the IMS, authentication
between the S-CSCF/I-CSCF and the SLF is Dx, which relies on a pre-configured shared secret and a sequence
also uses Diameter.) number stored within the IP Multimedia Services Identity
Module (ISIM) in the User Equipment (UE) as well as in
the HSS in the network. To authenticate the user, the
Cx S-CSCF sends a Multimedia-Auth-Request (MAR)
S-CSCF HSS
command to the HSS. MAR contains the private and the
Cx public user identities, S-CSCF name, routing information,
number of authentication items, and authentication data.
The HSS responds to the MAR command with the
Multimedia-Auth-Answer (MAA).
I-CSCF SLF
C. Diameter Protocol
TABLE I. Diameter Base Protocol implementations The WIRE Diameter is an open source implementation
of the Diameter Base Protocol and Diameter EAP
Open Diameter Application, developed by the Wireless Internet Research
WIRE
Name DISC Charging & Engineering (WIRE) Laboratory at the NTHU Taiwan
Diameter Diameter SDK (http://wire.cs.nthu.edu.tw/WIREDiameter). The software
Programmin is in part based on OD, but the source code has been
C C++ C++ Java modified (support for two functions of Diameter Base
g language
only
Protocol is missing) and it is differently organized.
partially The WIRE Diameter provides various authentication
Source code yes yes yes schemes, including EAP-MD5, EAP-TLS, EAP-TTLS,
(client yes,
availability (GPL) (GPL) (GPL) and PEAP. WIRE Diameter is written in C++, and it is
emulator
no) platform independent. Supported platforms include Linux,
Platform FreeBSD, and various versions of MS Windows.
Linux/ Cross- Cross-
Platform Independen
FreeBSD Platform Platform D. Diameter Charging SDK
t
yes; partial
Diameter vendor- The Diameter Charging Software Development Kit
(8 out of
Base Protocol yes; full yes; full specific (SDK) is developed by Ericsson, and it intended to support
10
support extensions client applications. It is written in Java, and it is platform
functions)
independent. The software is made available through the
Ericsson Web site at RFC 3588 [2]. Session classes handle message
http://www.ericsson.com/mobilityworld/sub/open/technolo transmission, message processing, and event handling.
gies/charging_solutions/tools/diameter_charging_sdk. It Applications can implement their own AAA functionality
includes the Diameter Charging API, Diameter Charging by using the appropriate session classes. Figure 3, taken
Emulator (which emulates the charging server), Diameter from OD documentation and somewhat simplified, shows
Charging Client, and documentation. Due to its intended the architecture of the OD framework.
use for client applications, only the Diameter Charging In general, session classes may be either client classes or
Client source code is available, and the rest is provided in server classes, providing AAA capabilities for clients and
form of Java class files. The package uses a vendor- servers, respectively. Classes may also be further divided
specific Service Charging Application Protocol (SCAP), into authentication/authorization classes and accounting
which is based on Diameter Base Protocol. classes.
The Diameter Charging API isolates the core protocol The main difference between client and server classes is
implementation and allows the application to use the in the way they are instantiated. For application classes
Diameter interface with operations that are relevant to the based on client sessions, it is the responsibility of the AAA
application. The Diameter Charging Client is a reference client application to create and manage the instances of
application that uses the Diameter Charging API. It is used these sessions. For application classes based on server
for setting up connections to Diameter server. By using the sessions, the library is responsible in creating and deleting
client, it is possible to insert data, send requests to and instances of these classes. Server classes are deleted by
receive responses from the (emulated) charging server. using an internal garbage collector, once a server session
has completed its execution as defined by its state
Having considered the implementations listed above, we machine. To facilitate the instantiation of application
decided to base our implementation on OD, because it was derived server session classes, the library provides a server
an open source solution, fairly well documented, and it session factory that an application may instantiate and
was under active development and discussion by the register.
community. OD is now described in more detail. Once properly registered, these session factories will
create AAA session objects every time a new authorization
IV. OPEN DIAMETER and/or accounting request arrive. The only criterion for
This section describes the software architecture of OD. this action is whether the local AAA application supports
Parts of this text have been taken verbatim from OD the application ID advertised in the initial request message.
documentation. It should be noted that both client and server session
The Open Diameter API is a session based API, in which classes only provide Diameter session management.
each type of Diameter session is being represented by a Diameter peer connectivity management is provided within
C++ class. Each session class is derived from a specific another class called the application class.
AAA state machine framework as defined in Section 8 of