The SIP Express Router
An Open Source SIP Platform
Y. Rebahi, D. Sisalem, J. Kuthan, A. Pelinescu-Oncicul, B. Iancu, J. Janak, D. C. Mierla
Fraunhofer Institut Fokus, Kaiserin-Augusta-Allee 31, 10589 Berlin, Germany
{rebahi, sisalem, kuthan, Pelinscu-oncicul, iancu, janak, mierla}@fokus.fraunhofer.de
project, was close to impossible for research labs,
Abstract universities and small enterprises.
With this background, the SIP Express Router was
The session initiation protocol (SIP) is constantly gaining
designed and realized to fill in the gap and provide the
in popularity and acceptance as the signaling protocol for
research community with a powerful toll for
next generation multimedia communication. This paper
experimenting with SIP services and usage and for
describes a scalable and reliable open source SIP
providers with a full-featured SIP infrastructure at open-
platform called the SIP Express Router (SER). SER does
source conditions.
not only support basic SIP features but also advanced
In this paper we give a brief description of the
features such as messaging and presence, translation
architecture of SER in Sec.II. In Sec.III, we describe the
between SIP and SMS or Jabber as well as full featured
different features and components supported by SER. The
application programming interfaces. In this paper we will
technical specification of SER is described in Sec.IV.
describe the architecture of SER, its different features and
Sec.V gives an overview of the usage of SER in the
technical specifications.
research community and Sec.VI summarizes the current
usage of SER and next developments planned.
I. Introduction
VoIP and multimedia communication services have been II. General Architecture
hyped as the next revolution in the Internet since the mid
nineties. However, due to low communication quality, The SIP Express Router was designed in a highly
complicated and expensive technologies and vague modular manner as depicted in Figure 1, SER consists of
advantages this promised revolution has been postponed a highly efficient core that is responsible for receiving,
over and over again. Only now, with the gradual move parsing SIP and forwarding messages.
towards next generation networks and increased
availability of high speed access networks VoIP and S E R C o re M o d u les
multimedia communication services are finally on the rise M a x fw d M ySQ L
with various providers of different sizes offering their P a rsin g
H a n d ler RR J a b b er
users VoIP services. SL A u th en tic a tio n
S c rip t U srlo c S IP /S M S
The session initiation protocol (SIP) is a signaling In terp re ter
R e g istr a r CPL
protocol that is often used to establish Voice over IP calls,
advertise their presence status, send and receive instant
messages, and maintain any kind of session including Figure 1: General Architecture of SER
games and chats. A major benefit of SIP is, it creates an
open framework for composing services out of multiple The core is also responsible for invoking certain
components. The same argumentation mentioned above procedures that are provided as extension modules. These
regarding the speed of deployment of VoIP technology modules are dedicated to providing certain features. Such
applies for the session initiation protocol (SIP) as well. modules include:
While SIP has been hailed as the driving force behind the − Registration and user location: This part is
VoIP revolution and the basis for future multimedia responsible for handling registration requests and
communication, the deployment of SIP has been only managing the user location database.
very slow as well. While SIP was promising a low cost − Transaction management: when acting in a
alternative to other well-established solutions such as statefull mode SER must maintain per transaction
intelligent telecommunication services on the one side state, generate replies, match replies to requests and
and H.323 on the other, SIP-based products were up-to deal with forking.
recently expensive and often immature. With the
availability of lower cost and mature products on the one − User authentication: SIP uses HTTP digest for
side and the increased interest in VoIP we are finally authenticating user requests. This part of SER
watching a rapidly increasing number of large interacts with the database, which maintains the
deployments of SIP based service offers in various places user’s identity and password and is responsible for
in the world. checking the credentials of the users.
With available SIP implementation, including − SIP handling: While the core deal with the message
commercial and open source products either too processing, the transaction management deal with
expensive, immature, not-extendable or all of those state handling and taking the appropriate SIP actions,
together, research and development work to be conducted this type of modules deals with additional processing
in the area of SIP-based services in next generation logic such as handling of record-route headers, loop
networks, such as the work conducted in the Evolute detection or support for ENUM.
− Application modules: These modules provide some A p p lic a tio n
application level services such as SIP to Jabber g a te w a y s
AAA
translation for example.
− Application programming modules: To enable U ser
In te rfa c e
P ro v id e r
In te rfa c e
A p p lic a tio n
In te rfa c e
external programmers to use the features of
functionalities of this class of modules provides a V o IP IM & P
clear and simple to use interface that allows the S IP E x p re s s R o u te r
separation between the SER and the application S e rv ic e S u p p o rt UMS
code.
´
Each module exports a set of functional procedures and
Figure 2: Conceptual model of the SIP Express Router
utilizes procedures exported by other modules. The
integration between the different modules and the core is
In this context and as depicted in Figure 2, SER was
realized through a configuration language. The SER
designed to offer different functional components ranging
configuration language (SCL) is a rich and flexible
from basic SIP services up to application programming
scripting language. With SCL the administrator of the
interfaces and unified messaging features.
SER platform can specify the actions to take when
certain events occur. That is, with the rule specified in
the figure below, the administrator can for example A. Support of Basic SIP Services
specify that after receiving a registration request, the The first task of any SIP implementation is to provide the
core should invoke the authentication module before basic SIP services as described in [1]. In conformance
handing the registration to the registration module for with the SIP standard [1], SER offers the basic
example. functionalities of SIP proxy, redirect and registrar. To
support messaging and presence, SER was extended to
If(method==”REGISTER”) support the SIMPLE model [2]. Thereby, SER not only
www_challenge(“iptel.org”/*realm*/, “0”); supports message routing but also presence management.
break; In this context SER can act also as a message inbox,
managing messages sent to a user currently offline and
enabling the user to retrieve his messages after logging in.
III. Goals and Functional Architecture
To provide the research community as well as service B. Programming and Service Creation Interface
providers with a flexible and powerful SIP platform the
One of the biggest promises of SIP was to provide a
SIP Express Router was designed to fulfil the following
unified basis for different communication modes such as
goals:
audio, video, gaming and messaging and to ease the
− Offer service providers with a fully featured SIP introduction of novel services. By supporting messaging
infrastructure supporting powerful control interfaces and presence in addition to the routing and handling of
allowing the utilization of SER under various usage SIP messages, SER already supports the first part of the
scenarios and provider policies. SIP promise. To ease the introduction of novel services
and the realization of intelligent services, SER further
− Allow application programmers and research units to provides different extension and programming interfaces
introduce new features and experiment with novel covering the needs of various user communities.
ideas by designing SER in a modular manner with
open extension interfaces. a. User service creation interfaces
− Provide the users of the SIP technology with simple To enable users to specify their own call preferences,
interfaces for indicating their own preferences and SER supports the usage of CPL [3] and offers the users a
preferred services in a simple an intuitive manner. simple graphical interface for creating their own
intelligent call management logic.
The call processing language (CPL) is a tool that gives
the user the possibility to implement his own call routing
logic. It is meant to be simple, extensible, easily edited by
graphical clients, and independent of operating system or
signaling protocol. CPL is based on XML, which is a
widely accepted industry standard.
A CPL service consists of a CPL server that interprets the expressions and allowing the administrator to define
CPL scripts, a CPL editor for composing the scripts, a certain rules in the manner of
database for managing the scripts and the signaling
If (event) then (action);
infrastructure (e.g., SIP proxy) that consults the CPL
server about the actions to take after receiving a Using SCL the administrator can also define arbitrary
signalling message. SER integrates a CPL server as an routing decisions, e.g.
extension module.
If (method=="MESSAGE" && uri=~"sip:0179")
forward(sms_gw);
b. Application Programmer Interface
To enable application programmers to utilize the different Using an expression such as
features provided by SER in a language independent if (method=="REGISTER") {
manner, SER provides a textual interface allowing
external applications to communicate with the server www_challenge( "iptel.org" /* realm */,"0" /* noqop -
called FIFO. This interface can be used to manipulate - M$ can't deal with it */); break; };
user contacts, send instant messages, watch server health, the administrator can define for example that if a
etc. As a result, SER can be easily integrated with a lot of registration message is received then the authentication
existing applications even if they are SIP unaware. With procedures of the authentication modules should be
the FIFO interface, the application programmer can invoked before processing the registration.
implement his application in any language he wishes and
simple execute various procedures provided by SER
C. Service Support
through this interface. In this context, the FIFO interface
acts as an inter-process communication mechanism Besides the support for basic SIP features as defined in
allowing the application to be run in a process Sec.I.A, a SIP platform that is to be deployed in a large
independent from SER but still use the SER features. commercial environment needs to support additional
As an example, the PHP based SER’s web inteface – features such as ENUM, traversal of NATs or IPv6.
serweb- launches the FIFO interface when displaying and In this context SER supports the following features:
changing the user location information stored in the
server’s local store. Serweb also leverages the FIFO − ENUM: To enable simpler representation of SIP
interface to send instant messages without any knowledge addresses, ENUM [4] provides the possibility of
of the underlying SIP stack. Another application using the using E.164 numbers for representing SIP users. In
FIFO interface is the ser management utility command- this case, SER is capable of communicating with
line (serctl) which browses the server’s in-memory user ENUM servers and resolving the addresses in the
location database and display running processes as well appropriate manner.
as operational statistics.
− Firewall and NAT traversal: The basic NAT [6]
operation is the translation and mapping of one set of
c. Extension Interfaces IP addresses (usually private) to another (usually
To enable the extension of the functionality of SER as public). It was originally developed to hide private
well as experimenting with novel ideas concepts, SER addresses from being seen on public networks.
provides an open programming interface that enables the Unfortunately, this translation is not compatible with
user to utilize the current functionalities of SER and add SIP and the mechanisms to handle NATs traversal
novel ones. have some limitations. The easiest way to establish
This is achieved by implementing a new module that SIP sessions through NATs is to use a STUN [7]
provides these new features. Such a new module would enabled phone, however, the traversal is not
use the exported procedures of the other modules as well guaranteed. For the case of user agents that do not
as functionalities of the core. The new module in its turn support STUN, SER is capable of rewriting the
exports new procedures that could be invoked by the core contact and SDP [8] headers. That is, SER would
and other modules as well. rewrite the included private addresses with the public
As already mentioned in Sec.II, the SER scripting address included by the NAT in the IP header of the
language (SCL) is then used for integrating the new SIP message. Further, SER maintains this binding
functionalities in the general functionality of SER. Using alive by periodically pinging the user agents.
SCL, the administrator of the SER platform can define
the exact behavior of the platform based on available − Support for IPv6: Besides IPv4, SER is one of the
modules and needed actions. In this context SCL is few available implementations that support IPv6 as
similar to shell languages with support for regular well as the translation between IPv4 and IPv6 SIP
messages, SER supports thereby a smooth transition IM&P protocols into an XML-based form. With the
between IPv4 and IPv6 networks. SER JABBER gateway, SER translated between
SIMPLE and Jabber IM (XMPP) ([13]). This
Besides the support for additional features, SER provides
gateway supports SIP/Jabber conference, sends
the users and administrators with an intuitive web
received SIP Message messages to different IM
interface called SERWeb. Using SERWeb, the user can
systems (Jabber, ICQ, AIM, Yahoo) using Jabber
check any missed calls, look at the call logs, indicate
server and the incoming instant messages as SIP
further SIP aliases under which he is available and so on.
Message messages. The Jabber gateway is also able
to manage all kinds of Jabber messages
D. Authentication, Authorization and (message/presence/iq) and can provide reliability, e.g
Accounting the ability to detect if an IM gateway failed.
To be able to support SIP services in a professional
manner, service providers need an efficient infrastructure F. Unified Messaging Applications
for authenticating users, authorizing the requested As an example for some of the applications that might run
services and account their usage. on top of SER and provide users with value added
To comply with these needs SER supports: features, the SER platform supports voicemail-2-mail
services. Here unanswered calls are directed to a
− Authentication mechanisms as defined by [9] voicemail server that records the voice message. The
recorded message is then sent as an Email-attachment to
− Authorization of users based on admission control the user. This not only eases the retrieval of voice
lists. In this context the administrator can define messages but enables the user to get a notification about
different control lists for certain services such the availability of new messages as soon as he is on-line.
international. National and local calls for example. A
user can only request and international call if he is
IV. Technical Specification
included in that list.
The SIP Express Router is available as open source
− SER provides the needed mechanisms for collecting software under the GNU GPL licence [17]. It is
detailed information about the used services by a user implemented in conformance with [1] in ANSI-C and is
and to save this information in a call detail record ported and tested under all flavours of UNIX such as
(CDR). Such CDRs list then the duration, destination Linux, BSD and Solaris.
and identity of the callers and callee in addition to SER has been tested both in public by powering the SIP
other information. service offer of www.iptel.org as well as in various SIP
interoperability tests.
To further comply with the varying needs of the wide
Performance tests have shown that SER is capable of
scope of possible users, SER supports also different AAA
handling up to 5000 calls per second on a dual 1GHz
databases and protocols. This includes simple text files
processor with 250 Mbytes of memory.
and MySQL databases up to ISP level protocols such as
RADIUS [10]. Work on DIAMETER [11] is on its way
as well. V. SER in the European Research
Community
E. Application Gateways One of the major development goals of SER was to
provide the research community in general and the
The SIP Express Router allows a communication European in specific with a powerful and extendable
establishment even in a heterogeneous environment. This open-source SIP platform. SER has been developed
is realized by using translation gateways between SER partially under the umbrella of different IST funded
and the other messaging systems. projects such as EVOLUTE and 6NET. In the context of
− SMS Gateway: This provides a way of the EVOLUTE project, SER was extended with
communication between SIP networks (via SIP messaging and AAA mechanisms namely support for
MESSAGE) and GSM networks (via Short Message RADIUS and HTTP digest. In the context of 6NET, SER
Service). Communication will be possible from SIP was enhanced with IPv6 capabilities.
to SMS and also in the revert direction. In the international level, SER is being deployed in the
− JABBER Gateway: JABBER ([12]) is currently Internet2 ([16]) community as well as various universities
being discussed as an approach for providing such as Yale.
translation between the heterogeneous messages and With the increased interest in SIP-based technologies, the
presence systems available in the market. This is usage of SER in the European research community will
achieved by translating the features of the different be further intensified in the upcoming projects.
VI. Summary and Next Steps [10] C. Rigney, et al, “Remote Authentication Dial In
User Service (RADIUS)”, RFC 2138, April 1997
With its high level of configurability, open interfaces and
scalability SER is turning into one of the most successful [11] P. Calhoun, et al, “Diameter Base Protocol”, RFC
SIP implementations used in both academic and 3588, September 2003
commercial environments. As most prominent
deployments we mention the free world dialup service [12] P. Saint-Andre, J. Miller, “XMPP Instant
([15]) and SIPPhone.com in the USA as well as Vozetele Messaging”, draft-ietf-xmpp-im-17
in Spain. SER is also providing the basis for ENUM trials [13] D. Mierla, “SIMPLE-XMPP Interworking”, draft-
in Germany, Austria and Spain. From the academic point mierla-simple-xmpp-interworking-00
of view, SER is being used in different universities and
research labs for experimentation, teaching as well as [14] 3rd Generation Partnership Project (3GPP),
service provisioning. http://www.3gpp.org
Based on the current implementation SER provides an [15] Free World Dialup, http://www.pulver.com/fwd/
ideal candidate for experimenting with 3GPP [14]
technologies. Due to its configurability, SER can easily [16] Internet2, http://www.internet2.edu/
resume the different roles of the various service control [17] GNU General Public License,
functions defined in 3GPP. Additional required features http://www.gnu.org/licenses/licenses.html
such as enhanced routing capabilities, AKA based user
authentication [18] or DIAMETER based AAA can be [18] A. Niemi, et al, “Hypertext Transfer Protocol
added to SER as further extension modules. (HTTP) Digest Authentication Using Authentication
and Key Agreement (AKA)”, RFC 3310, September
Remark: The work presented here was partially 2002
supported by the IST project EVOLUTE (seamlEss Formatiert
multimedia serVices Over alL IP-based infrastructures) Formatiert
under contract IST-2001-32449
Formatiert
Formatiert
VII. References Formatiert
[1] J. Rosenberg, et al, “SIP: Session Initiation
Protocol”, RFC 3261, June 2002
[2] B. Campbell, et al, “Session Initiation Protocol (SIP)
Extension for Instant Messaging”, RFC 3428,
December 2002
[3] J. Lennox, et al, “Call Processing Language
Framework and Requirements”, RFC2824, May
2000
[4] P. Faltstrom, et al, “E.164 number and DNS”, RFC
2916, September 2000
[5] K. Egevang, et al, “The IP Network Address
Translator (NAT)”, RFC 1631, May 1994
[6] K. Egevang, et al, “The IP Network Address
Translator (NAT)”, RFC 1631, May 1994
[7] J. Rosenberg, et al, “STUN - Simple Traversal of
User Datagram Protocol (UDP) Through Network
Address Translators (NATs)”, RFC 3489, March
20043
[8] M. Handley, V. Jacobson, “SDP: Session Description
Protocol”, RFC 2327, April 1998
[9] C. de Laat, et al, “Generic AAA Architecture”, RFC
2903, August 2000