Language Technology for Internet-Telephony Service Creation

Telephony is evolving at a frantic pace, critically relying on the development of services to offer a host of new functionalities. However, programming Internet telephony services requires an intimate knowledge of a variety of protocols and technologies, which can be a challenge for many programmers. Furthermore, because telephony is a resource heavily relied on, programmability of telephony platforms should not compromise their robustness. This paper presents an approach to creating telephony services that builds on programming language technology (i.e., language design and implementation, language semantics, and program analysis). We have developed a language, named Session Processing Language (SPL), that offers domain-specific constructs, abstracting over the intricacies of the underlying technologies. By design, SPL guarantees critical properties that cannot be verified in general-purpose languages. SPL relies on a Service Logic Execution Environment for SIP (SIP-SLEE) that introduces a design framework for service development based around the notion of session. SPL and SIP-SLEE have been implemented and they are now being used to develop and deploy real services, demonstrating the practical benefits of our approach.

[1]  J. Christopher Ramming,et al.  Two Application languages in software production , 1994 .

[2]  James R. Larus,et al.  Experience with a Language for Writing Coherence Protocols , 1997, DSL.

[3]  David M. Weiss,et al.  Auditdraw: generating audits the FAST way , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[4]  Calton Pu,et al.  Microlanguages for Operating System Specialization , 1997 .

[5]  Charles Consel,et al.  Safe and efficient active network programming , 1998, Proceedings Seventeenth IEEE Symposium on Reliable Distributed Systems (Cat. No.98CB36281).

[6]  Charles Consel,et al.  Architecture Software Using: A Methodology for Language Development , 1998, PLILP/ALP.

[7]  M. Handley,et al.  SIP: Session Initiation Protocol , 1999, RFC.

[8]  James R. Larus,et al.  Teapot: A Domain-Specific Language for Writing Cache Coherence Protocols , 1999, IEEE Trans. Software Eng..

[9]  Charles Consel,et al.  Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers Generation , 1999, IEEE Trans. Software Eng..

[10]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[11]  J. Lennox CPL : A Language for User Control of Internet Telephony Service , 2002 .

[12]  Ravi Jain,et al.  Next generation service creation using XML scripting languages , 2002, 2002 IEEE International Conference on Communications. Conference Proceedings. ICC 2002 (Cat. No.02CH37333).

[13]  Henning Schulzrinne,et al.  Programmable end system services using SIP , 2003, IEEE International Conference on Communications, 2003. ICC '03..

[14]  Jack Greenfield,et al.  Software factories: assembling applications with patterns, models, frameworks and tools , 2004, OOPSLA '03.

[15]  Laurent Burgy,et al.  A comparative study of SIP programming interfaces , 2004 .

[16]  Henning Schulzrinne,et al.  Services for internet telephony , 2004 .