IMPLEMENTATION OF IMS TESTBEDS USING OPEN SOURCE PLATFORMS IMPLEMENTATION OF IMS TESTBEDS USING OPEN SOURCE PLATFORMS

open source products which are suitable for IMS testbed establishment. It also describes the experience with implementation, establishment and running an IMS testbed which has been built up on open source client and server entities. The paper is organized into ﬁve chapters. Chapter two provides the overview of NGN and IMS system architecture, chapter three analyzes key open source solutions suitable for establishing an IMS testbed, chapter four provides a description of our approach and chapter ﬁve concludes the article. The objective of NGN is to enable convergence of diﬀerent ﬁxed and mobile networks whose central component is IMS. The IP Multimedia Subsystem (IMS) is a control architecture framework for the Next Generation Network (NGN). It is expected that this new network architecture will provide a new kind of IP multimedia services delivered in network converged environments. The NGN and IMS, even after the years of a standardization effort, are still hot networking topics. One of the communities, which adopt emerging communications standards into their products fast, is the open source community. In present days, there are a few open source products, which allow building the IMS environment. However, there are at least two domains for which they are especially helpful. It is teaching/learning of the IMS architecture and testing service deployment in a nearly real environment. This article provides a survey of available open source products. It also describes the experience with the implementation, establishment and running an IMS testbed, which has been built up on an open source client and server entities. At the server side, the focus is on the Kamailio IMS platform.


Introduction
Next Generation Network (NGN) presents an interesting concept which merge different communications paradigms, wireline and wireless, mobile and Internet. The idea behind the NGN is to operate a universal communications platform covering existing network heterogeneity; which is multiservice, multiprotocol, multiaccess, IP-based and providing feature rich multimedia services. The fixed-mobile converged network enables to create a single communication environment allowing its users a unified access to their services from any fixed or mobile terminal via any access network. NGN framework was introduced by the International Telecommunication Union-Telecommunication Standardization Sector (ITU-T), and ETSI (European Telecommunications Standards Institute). The key component of the NGN is IP Multimedia Subsystem (IMS) control layer, formerly defined by the 3 rd Generation Partnership Project (3GPP) for mobile networks of 3 rd generation [1,2] and incorporated then into the NGN. IMS allows the move from circuit-switched services toward IP packet-based services and allows building up "All-IP" communications architecture with all of its benefits [3]. IMS allows providing of multimedia services in secure, chargeable environment with different levels of quality guarantees. IMS specifies a set of standardized entities and interfaces and allows building different kinds of integrated innovative services, which should combine features of legacy telecommunication and IP services. This concept brings a new Internet and IT way of the service creation approach to the development of innovative and attractive services.
Prototyping and delivering of such multimedia services or trial concepts is a challenging task which requires testing environments that allow understanding and evaluating of the behavior and impacts of proposed solutions. This should be one of many factors which help to speed up IMS adoptions. One of the communities, which adopt emerging communications standards into their products very fast, is the open source community. There are a few open source products which allow building up IMS testing/teaching environment to support learning models, service and components development. This article provides the survey of existing open source products which are suitable for IMS testbed establishment. It also describes the experience with implementation, establishment and running an IMS testbed which has been built up on open source client and server entities.
The paper is organized into five chapters. Chapter two provides the overview of NGN and IMS system architecture, chapter three analyzes key open source solutions suitable for establishing an IMS testbed, chapter four provides a description of our approach and chapter five concludes the article.

NGN architecture overview
The objective of NGN is to enable convergence of different fixed and mobile networks whose central component is the IMS.
The NGN functional reference architecture [4] is designed as a system of horizontally oriented layers consisting of a number of cooperating subsystems. The subsystem design enables future subsystems to be added extending the main functionality and services, (for example, an IPTV in NGN Release 3). Each subsystem is specified as a set of entities interconnected through related interfaces. The essential NGN specification defines the NGN transport layer and the NGN service layer. The NGN transport layer provides IP connectivity for NGN users (UE) and hides the transport technology of the access and core networks below the IP. The transport layer is divided into two sub-layers, the transport processing functions sub-layer and the transport control sub-layer. In general, transport processing functions provide packet forwarding and routing functions together with more specific functions such as media processing/transcoding, relaying, IP level interconnection, resource control, etc. The transport control sub-layer provides attachment control (addressing, access authentication, authorization, location management) provided by the Network Attachment Subsystem (NASS) and functions responsible for the implementation of procedures and mechanisms handling policy-based resource reservation (Quality of Service (QoS), Network Address Translation (NAT)) and admission control provided by the Resource and Admission Control Subsystem (RACS) [4]. NGN service layer comprises a number of sub-systems such as Core IP Multimedia Subsystem (IMS), PSTN/ISDN emulation subsystem (PES), IPTV subsystem, other subsystems and common components whose functionalities are shared by the related subsystems. Finally, there is a user equipment (UE) subsystem defined as: "One or more devices allowing user access to network services delivered by TISPAN NGN networks" [5]. As an example of the UE, a telephone set can be mentioned which has to be NGN-compatible to make the full use of NGN services. The UE is sending/receiving user data over the transport layer. At the signalling layer, the UE communicates with NASS for network authentication/configuration and with IMS for handling services.

IMS architecture overview
The IMS is a core component around which the NGN is defined (Fig. 1). The IMS is end-to-end IP control framework that allows applications and services to be supported seamlessly across all types of networks. The IMS architecture capabilities are specified in a set of 3GPP documents that define components, services and interfaces [1,2]. ETSI TISPAN NGN [6, 7] adopted the 3GPP IMS [1] for the NGN network architecture [4]. From an architectural point of view, the NGN IMS subsystem, also known as "Core IMS", is a subset of the 3GPP IMS, where some entities such as Application servers (AS) and transport/media related entities (Multimedia Resource Function Processor function (MRFP), IP Multimedia Gateway Functions (IM-MGW)) are considered to be outside of the "core IMS" [7] (Fig. 2). From a functional point of view, the 3GPP IMS has been extended to support additional access network types, such as xDSL and WLAN. The control functionality of the Core IMS handles session signalling and comprises a number of distinct functions to process signalling flows, such as Call Session Control Functions (CSCF), Breakout Control Gateway Functions (BGCF), Media Gateway Control Function (MGCF), Multimedia Resource Function Controller (MRFC) and Interconnection Border Control Function (IBCF). Using protocols such as SIP [8], Diameter and H.248 MEGACO, the different elements are able to establish requested subscriber services. The ETSI TISPAN is harmonizing with the 3GPP on any modifications or improvements that may be needed for the NGN/IMS.

Core IMS components
The functionalities of a core IMS are included in the Call Session Control Function (CSCF). A CSCF is a SIP server which processes the IMS signalling traffic in order to control IMS sessions. There are three types of CSCF, Proxy CSCF (P-CSCF), Serving CSCF (S-CSCF) and Interrogating CSCF (I-CSCF) (Fig.  2).
The P-CSCF is the entry point for signalling traffic flowing into the IMS. A user is allocated to a P-CSCF as a part of the registra-R E V I E W tion process. P-CSCF stays for a registered client on signalling traffic path for the duration of the session. P-CSCF should provide other functionalities as signalling compression, security association and resources management. The I-CSCF is usually located at the boundary of a domain that serves as a gateway to other domains, such as other service provider networks. I-CSCF may encrypt sensitive domain information (Topology Hiding Internetwork Gateway (THIG)) before forwarding the traffic. The S-CSCF is always located at a home provider network, provides the service logic which controls the delivery of requested service. The S-CSCF interacts with a profile database (HSS in a 3GPP environments, UPSF in a NGN environment) in order to determine user service eligibility by downloading the user profile; the S-CSCF is allocated for the duration of the registration.

Open Source IMS Testbed
Motivations behind the establishment of an IMS testbed are different; to expose complex communications concepts and components, to enable advanced NGN/IMS services development, to enable trial and performance testing, etc. For university education, there are all mentioned with an accent to popularize IMS technology on an advanced learning platform, to enable technology, protocol and services analyses and to provide safe and controlled environments to facilitate research and experimentations.
Similarly to SIP and IMS, an open source usually speeds up the implementation of emerging industry standards. Today's open source products allow the building of IMS testbed using standard hardware and operating systems (OSs) that provide cost effective solutions. This chapter provides a survey and feature analysis of suitable open source products available at the time of writing this paper.

Survey of IMS Core components
As defined in [1, 2, 6 and 7], the IMS consists of numerous entities mentioned before, including media and gateway controllers. It should provide services in secure, chargeable environments with different levels of QoS. This is a really challenging task which currently cannot be fulfilled by any of open source solutions. However, for establishing a simple IMS system with basic functionalities allowing call establishment and registrations, four components are necessary only, P-CSCF, S-CSCF, I-CSCF and a database (Home Subscriber Server -HSS) used to store user profiles. Therefore, main research and development effort is focusing on the control and application layer of the IMS, while the transport layer with QoS reservation concept, RACS and NASS subsystems, is currently omitted. IP connectivity is required as a fundamental prerequisite. Control layer components which perform signalling routing, authorization, registration and service provisioning are central parts of a testbed. To build up an IMS testbed, there are two open source solutions available, the Open IMS Core developed by the Fraunhofer Institute FOKUS [9] and Kamailio IMS extensions developed by the NG Voice [10].

Open IMS Core
Main motivation behind the development of the Open IMS Core, led by the Fraunhofer Institute FOKUS, was to provide an IMS core reference implementation suitable for IMS technology testing, service prototyping, technology research and many others. The Open IMS Core is neither designed nor suitable for commercial IMS architecture deployment. The Open IMS Core is an open source implementation (GPLv2 license) of IMS CSCFs signalling entities and the HSS [9] (Fig. 3) compliant with 3GPP specifications. The Open IMS Core is based upon open source solutions such as the SIP Express Router (SER) implementation of SIP Proxy server and the MySQL database. SER is characterized by powerful modular design and may act as a SIP registrar, a SIP redirect and proxy server. The Open IMS Core extends main IETF SIP functionalities of the SER express router with IMS modules (namely CDiameterPeer, IMS Service Control, Proxy-CSC, Interrogating-CSCF, Serving-CSCF modules [11,12]) to provide core IMS signalling functionalities of IMS CSCF entities (called Open IMS CSCFs). As the IMS requires some information lookup (user and service profiles), a simple, lightweight version of an HSS entity (called Fokus HSS -FHoSS) has been developed and added to the Open IMS Core project. The FHoSS is written in Java and uses the MySQL database. The FHoSS contains its own Java based Diameter stack which supports Cx, Sh and Zh IMS Diameter interfaces. The FHoSS provides functions such as storage of user profiles and service subscriptions, charging information, generation of authentication/authorization data, and a support of subscriber locations. The Open IMS Core provides an ISC (IMS Service Control) interface to allow the development of IMS applications or modifications of routing rules or events.
The Open IMS Core project provides quite comprehensive web documentation which describes the required steps for the testbed installation with basic IMS functionalities. The Open IMS R E V I E W Fig. 3 The Fraunhofer Institute FOKUS Open IMS Core architecture Core entities run over standard Linux based OSs. The installation requires compilation of installation packages, but the source codes contain the pre-prepared configuration files of CSCF entities. Main configuration requires small changes only related to the DNS names used in a testbed environment and port numbers on which CSCFs entities are listening. The user and service management is provided over the web-based FHoSS management graphical user interface (GUI).
The Open IMS Core project started on November 16, 2006. One of the goals of the project was to make the Open IMS Core an enabler for other testbeds and to create a community of IMS testers and developers that are using the Open IMS Core for their projects. Having analyzed the information available through the Internet, we found that this goal was met successfully [11,13]. However, the last modification of the project was during 2009 and since that time the project has not been actively maintained.

Kamailio based IMS solution
As mentioned before, the Open IMS Core project is a perfect tool for the IMS playground establishment. However, there are several issues that could limit its future deployment. The Open IMS Core project is no more evolving neither supported now. Core Kamailio (former OpenSER) [14] is a very popular and viable SER based SIP proxy. The Kamailio server, released under the GPL license, is able to handle thousands of call setups per second. The Kamailio features include a support for asynchronous TCP, UDP and SCTP, secure communication via TLS for VoIP (voice, video), SIMPLE instant messaging and presence, ENUM, least cost routing, load balancing, routing fail-over, accounting, authentication and authorization against MySQL, Postgres, Oracle, Radius, LDAP, XMLRPC control interface, SNMP monitoring [14]. During 2011 the Kamailio IMS module extensions were introduced, which allow to build an IMS testbed with the latest Kamailio SIP server releases. The main developer of the Kamailio IMS extensions is Mr. Carsten Bock, a member of the Kamailio development team [10]. The Kamailio IMS module project aims to create an open-source based stable IMS infrastructure based on different GPL solutions [10].
As a basement for Kamailio IMS modules, former Open IMS Core modules were taken and ported for re-using with Kamailio. However, there are several issues identified. Since the Open IMS Core deployed all the IMS functionalities into a few modules, whose functionalities and programming code are partially duplicated by the Kamailio server, the development is progressing fast with many improvements (architecture re-designs, performance improvements, feature extensions, etc.). The future modules rebuild is being developed with the objective to define modular IMS modules design without duplicating functionalities of the Kamailio server and IMS modules, re-using functionalities of Kamailio modules wherever possible (for example, a dialog module), enhancing an IMS module wherever necessary, reusing Kamailio presence functionalities, and finally adding new features [15]. Actually, some improvements have been already provided, for example, support for Reg-Event, enhancements of a dialog module and RTP activity detection. Developers are currently working on other improvements (especially, on Diameter protocol). Kamailio IMS intended to provide high-performance, open-source and standards-compliant implementation of HSS for the use in IMS context. Due to lack of human resources the project was frozen. Instead, the Open IMS Core FHoSS is used. At present days, the Kamailio IMS project, although short-lived, allows to build up an operational IMS testbed. Kamailio based CSCF entities provide many features, many of them are fully open source based, standards compliant and providing stability and performance with full IPv6 support. The whole feature list is available at [10].
The Kamailio project provides wide, high-quality and up-to-date web based documentation flesh out with a lot of external internet documentation sources. The information about a Kamailio IMS testbed installation is documented in [10]. The knowledge base is also provided on the knowledge portal of the Department of information networks [16]. Kamailio IMS runs over standard Linux based OSs. Installation packages for 32bit debian operating systems are available through the package repository, while the other operating systems require their compilation. Configuration of Kamailio based IMS requires modifications of configuration files with correct DNS names of a testbed environment, modifications of port numbers on which CSCFs entities are listening and finally, modifications of Diameter configuration files with correct IP addresses and port numbers required for Diameter interconnection [16]. Comparing to the Open IMS Core installation process, Kamailio IMS configuration process is more difficult, which is caused by missing lines inside the Diameter configuration files which are required for establishing correct Diameter interconnection interfaces. Boghe is an IMS client for windows OSs which supports Rich Communication Suite (RCS). RCS is managed by the GSM Association (GSMA) with a goal to provide a set of fully interoperable rich services to be used inside the fixed-mobile environment and to speed up the evolution of mobile phone communication towards service rich communication. To become a RCS compliant, a client must at least support Enhanced Address Book (defined by the OMA), Enhanced Messaging (OMA), Content Sharing (GSMA) and File Transfer (OMA) services. A Boghe IMS client is based on a Doubango RCS framework which is shared with co-projects developing IMS clients for iOS and Android. A client provides user friendly GUI supporting comfortable configuration, many types of audio and video codecs. Comparing to other IMS clients, Boghe IMS client feature analysis. Table 1.

Survey of available IMS clients
is the most recent initiative (released in 2011). The project is alive, the latest released version of the client is 2.0.85. Clients iDoubs (iOS, Mac X) and IMSDroid (Android) are very similar to a Boghe client, they are produced by the same developing team using the same Doubango developing framework [17] and they share most of the functionalities with a Boghe client.
The myMonster TCS IMS client is a feature rich client, based on the Telco Communicator Suite (TCS). TCS is a java based telecommunication framework from the myMONSTER toolkit (Multimedia Open InterNet Services and Telecommunication Envi-Ronment) developed at the Fraunhofer Institute FOKUS. The myMONSTER TCS supports 3GPP IMS, GSMA RCS and OMA service enabler access as Presence, XML Document Management (XDM), SIMPLE IM-based instant messaging and other functions. A client provides a user friendly GUI, it can be configured quite easily and supports multiple accounts. The latest released version is 0.9.19 from 2009 for Windows mobile, Windows and Linux OSs. Since that time, the project has not been actively evolving.
The UCT IMS client is developed by the University of Cape Town, South Africa. UCT IMS client is intended for Linux users only and it is intended especially for developers. It contains a message debug window and two preconfigured testing accounts for Alice and Bob. The latest version is 1.0.13 released in 2009. Again, since that time it has not been actively evolving. However, the support for an IPTv service with RTSP provides an interesting feature.
The IMS communicator is a Java based IMS client (JAIN), which does not require installation. Originally, it was developed by the PT Innovacao to support IMS service testing and IMS service development. The GUI interface is simple, however, client configuration is quite comprehensive and requires deeper knowledge. To make configuration more friendly, it provides a simplified configuration wizard. A client contains hard coded DNS resolving, and without java files modification a client is useless. The IMS Communicator has not been updated since 2007, and the project itself is not active anymore. Active tests executed over an IMS testbed show the ability to use vanilla IETF SIP clients for simple voice/video call scenarios.
For the reasons mentioned above, we recommend to use Boghe, followed by the myMonster TCS as the most feature rich and promising IMS clients.

Deploying an IMS testbed
To popularize IMS technology as an advanced learning platform, an enabler technology for a future protocol and services analyses, research and experimentations, we have analyzed the possibilities of using an open source platform for building up an IMS testbed. The IMS platform should provide a living environment that may be used for learning master degree courses offered by our department. It also should allow an access to the IMS technology and provide basic IMS services accessible from IMS clients. The Having used open source components mentioned above, we built our laboratory prototype environment which fulfills all these requirements. Even though in our research we are focusing on a Kamailio SIP server [14], the topology simulates two IMS providers and it is based on the both open source IMS projects. The first provider is based on the Kamailio IMS; the second one uses the Open IMS Core. The IMS testbed consists of core IMS entities only (CSCFs and FHoSSs). Our tesbed is realized with two servers (even though one of them is required only) and several software IMS clients connected over a LAN network. The first server is the departmental DNS server which keeps DNS NAPTR and SRV records required for the both virtual IMS providers. An example of the DNS configuration for virtual provider called IMS1 (DNS FQDN domain ims1.sip.uniza.sk) is described in Fig. 4.
Thanks to Xen server virtualization technology, the second server is hosting all eight virtual servers with CSCFs and HSSs IMS control entities (Fig. 5). As the OS platform, 32 bit linux Debian OS release Squezze was used, and all testbed components are based on open source software (Kamailio IMS, Open Core IMS, Mysql, Apache, Boghe, Monster IMS clients, RTPproxy). To support a call establishment behind the Network Address Translator (NAT), the RTPProxy media proxy is used.
Over the testbed, we have provided several testing interconnection scenarios for different basic services such as audio/video calls, file transfers and messaging, different IMS clients, and simulating intra and inter domain connectivity. The signalling message exchange have been captured, analyzed and evaluated to proof the interconnectivity. Some scenarios demonstrated the applicability of "vanilla" IETF SIP clients which were able to register into an IMS domain and to make simple calls. The quality of IMS client implementations differs and the tests of interoperability show that while the basic connectivity is usually successful, the interoperability of clients using advanced services is not. Similar results are declared in [18]. In these cases a deeper structural testing and diagnostic is needed. We can recommend the Boghe IMS client following by Monster TCS as the most appropriate IMS clients. The testbed is possible to be extended and to be redundant with the deployment of more S-CSCF and P-CSCF servers. Both IMS solutions provide basic IMS feature set, with different UE authentication methods, as Digest-AKAv1/v2-MD5, Diget-MD5, SIP Digest. Additionally, both solutions support transport (Transport Layer security -TLS) and network layer (IP Security -IPSec) security mechanisms. As a result of our experiments, several articles have been published at the web site of the Department of InfoCom Networks [16].

Advanced services and other extendibility
The development of new IP services is one of the assets of IMS. We have shown that the both IMS solutions can be extended with new components providing new features and services, for which other open source solutions may be used. Our testbed was simply extended with a presence service based on the Kamailio SIP server that was used as the Presence AS. Kamailio provides an embedded XCAP server which supports the IETF SIMPLE messaging and presence standards. The Kamailio SIP server may be used as a standalone AS server as it supports Lua programming language for service creation. We identified other open source pro-jects such as Mobicent Open Source Cloud Communications framework [19] (it consists of many subprojects as the Presence service for OMA SIMPLE, JAIN servers, SIP servlet server, media server and so on), the OpenVCS for video conferencing [20], the UCT Advanced IPTv for IPTV service [21], popular B2BUA as Asterisk and FreeSWITCH as media servers.
Tests of SIP based presence and messaging documents different level of standards adoption. The SIMPLE page mode and presence status indication work successfully. More advanced services such as the session mode which uses MSRP protocol or contact lists (address book) services (XCAP with XDM) reached poor results.

Conclusions
The deployment of the both open source IMS solutions with basic functionalities is quite easy and fast. It can be deployed with relatively low costs (apart from the costs required for a hosting hardware platform). Documentation is publically available; this, of course, accelerates research possibilities of universities, operators and vendors and enables the development of new IMS applications and testing new communications components. We tested the deployment of IMS testbeds which will be used in our learning and scientific practice. We also compared the two IMS frameworks; the Open IMS Core provides a bigger range in terms of installed solutions and users. This may be a result of its exclusive position for years. The Open IMS Core has simpler installation procedure than the Kamailio IMS. It has more detailed information database spread around the world describing many interesting extendibility solutions. However, the Open IMS core has not been actively evolving. Moreover, technological improvements of an underlying Kamailio SIP Server component against the SER SIP server 2.0, which is used as the basement of CSCF IMS entities, are notable. The technological advance and improvements of Kamailio SIP (actually, version 3.2.2), on which the Kamailio IMS was built, provides better future prospects. The Kamailio SIP server is a viable open source solution with many developers, testers and many installations. The number of new Kamailio IMS based installation will grow in a near future and will exploit a rich feature set of integrated solutions, based on Kamailio IMS and Kamailio AS. Even though the vision of open source projects is always difficult to be provided, the vitality of the Kamailio project is very promising.