Telephony over IP: Experience and Challenges
by Laurent Burgy, Charles Consel, Fabien Latry, Nicolas Palix and Laurent Réveillère
Telephony over IP (ToIP) makes it possible to program telephony platforms that have long been kept closed and proprietary. As new services are developed that enrich telephony with complex features such as database access, Web service invocation, and agenda look-up, the telephony platform is increasingly exposed to software bugs. Because telephony is heavily relied on, the success of its evolution to IP critically depends on the reliability of services.
SIP (Session Initiation Protocol) - a protocol for Telephony over IP - is at the forefront of the rapid emergence of ToIP. It was standardized by the IETF and adopted by the ITU; it is used as the underlying signalling protocol for 3G/UMTS mobile systems and various communication tools running under Unix and Windows. Besides telephony, SIP supports other forms of communication: Internet conferencing, presence, event notification and instant messaging. SIP implementations are available for a variety of devices including desktop computers, wired and wireless phones and PDAs.
A SIP platform is based on a client-server model and consists of a signalling server performing telephony-related operations. In addition, service logic is executed by an application server and can access resources from the computer network such as Web resources, databases and agendas. This evolution brings a host of new functionalities to the domain of telephony, which in turn enables telephony to be customized with respect to the preferences, trends and expectations of ever more demanding users.
Challenges for Service Development
The open nature of an SIP platform makes it possible for a wide range of developers to write telephony services. Yet, telephony is as heavily relied on as water and electricity. As telephony platforms become programmable by any developer, they become less reliable. A lack of reliability may disrupt or even crash a service or the entire platform. Furthermore, to create a service, a developer should have extensive expertise in the telephony domain, SIP and related protocols, distributed programming, networking, and SIP APIs.
The TelIP Project
The Phoenix research group at INRIA Futurs/LaBRI/ENSEIRB in Bordeaux is developing a software engineering approach to producing programs whose reliability is guaranteed with respect to critical properties of a given domain. This approach relies on the development of Domain-Specific Languages (DSL),which ease program development without sacrificing safety. Phoenix has been studying the DSL approach in the context of communication services.
We have deployed an SIP platform named TelIP at ENSEIRB, a graduate engineering school of information and communication technologies to which the group is affiliated. TelIP interfaces with the PABX (Private Automatic Branch eXchange) of ENSEIRB, allowing IP terminals to call anyone either inside or outside the school. Because ENSEIRB provides Wi-Fi, terminals can be wired or wireless, enabling longer-range mobility than conventional wireless telephony systems. TelIP already has two dozen users at ENSEIRB and the number is growing fast.
The group has developed an application server allowing telephony services to be deployed on TelIP. The server functionalities include the binding of a user to one or more services. This binding allows an incoming or outgoing call to be handled by the service logic of the corresponding user, enabling a wide variety of customizations.
To ease the development of telephony services, we have designed and implemented a DSL known as SPL (Session Processing Language). This language offers domain-specific constructs and extensions that abstract over the intricacies of the underlying technologies. By design, SPL guarantees critical properties, far beyond the reach of general-purpose languages such as Java or C++. Examples of errors detected in services include call loss, incorrect state transitions, and unbounded resource usage.
To enable non-programmers to define services, a graphical, simplified version of SPL has been developed. This version of SPL offers intuitive visual constructs and menus that permit users to quickly develop a wide variety of services ranging from simple redirection to agenda-dependent call handling.
To validate SPL, rich telephony services are being developed. In particular, one service is dedicated to handling calls to the telecommunications department of ENSEIRB. If the department secretary is already on the phone, this service queues incoming calls. An estimated waiting time is periodically computed and played to the waiting callers. Furthermore, the availability of the secretary is automatically updated, thanks to the user status managed by SIP. If the secretary on duty is unavailable, calls are redirected to an alternative secretary. In the context of a conventional telephony platform, such a service would typically need to be written by a third-party application developer who has been certified by the PABX manufacturer. As a result of this development model, telephony service creation has been anecdotal and the cost has been prohibitive.
In the future, the goal is to significantly increase the base of TelIP users. ENSEIRB consists of more than 700 students and 140 faculty and staff members. Enabling users with different skills and interests to succeed in developing the services they envision is a real challenge. Doing so without compromising the robustness of the platform is a key step toward validating the platform and the language.
Links:
http://phoenix.labri.fr
http://phoenix.labri.fr/documentation/sip
Please contact:
Charles Consel
INRIA Futurs/LaBRI/ENSEIRB, France
Tel: +33 5 40 0035 19
E-mail: Charles.Conselinria.fr