SIP is now the dominant signaling protocol for building multimedia services on top of the Internet Protocol (IP). Our succeessful experiences with Distributed Feature Composition have shown the value of building IP-based multimedia services compositionally. This is easy and practical using the new programming language StratoSIP, which layers DFC abstractions on top of SIP, and hides SIP details from novice programmers without limiting their use by experts. StratoSIP is based on years of working with SIP, shaping SIP standards, and understanding SIP through model-checking.
The StratoSIP team consists of:
The Java Community Process standard for SIP Servlet containers uses an approach to application composition inspired and informed by the DFC routing algorithm.
We have developed the ECharts programming language, based on StateCharts, as the basic tool for our work. The ECharts for SIP Servlets (E4SS) development kit extends ECharts with valuable tools for developing and running code within SIP Servlet containers, including a DFC router and many re-usable code fragments. Both are available as open-source software.
"The StratoSIP Manual" (Pamela Zave, Gregory W. Bond, Eric Cheung, and Thomas M. Smith) documents the language, which will soon be available as open-source software.
"Abstractions for programming SIP back-to-back user agents" (Pamela Zave, Gregory W. Bond, Eric Cheung, and Thomas M. Smith; 3rd International Conference on Principles, Systems and Applications of IP Telecommunications, ACM SIGCOMM, 2009) presents the major elements of the StratoSIP language. This paper won the Best Paper Award at the conference. Here is the StratoSIP talk given at the conference.
StratoSIP would not be possible without a solution to the important and challenging problem of compositional media control. When there is more than one application server or servlet in the signaling path between IP media endpoints, and the servers/servlets manipulate media flow, media flow must be controlled compositionally. To solve this problem, "Compositional control of IP media" (Pamela Zave and Eric Cheung; IEEE Transactions on Software Engineering, pages 46-66, January/February 2009) presents an architecture-independent descriptive model, a set of high-level programming primitives, a formal specification of their compositional semantics, a signaling protocol, an implementation, and partial verification of correctness. The paper also discusses how the principles developed to solve this problem may help in making other network applications compositional. Here is a talk on compositional media control.
For StratoSIP, we adapted the basic work described above for SIP, which required a completely different implementation of the same specification. This work is described in "Generalized third-party call control in SIP networks" (Eric Cheung and Pamela Zave; 2nd International Conference on Principles, Systems and Applications of IP Telecommunications, LNCS 5310, 2008).
StratoSIP would also not be possible without a solution to the general SIP problem of "early media". In telecommunications, audio signaling is the use of the audio channel for signaling and user-interface purposes. "Early media" is needed when audio signaling occurs before a call can be connected to a called party. SIP does not support this common function well, and is particularly obstructive to compositional use of it.
The StratoSIP solution can be found in "Audio feature interactions in voice-over-IP" (Pamela Zave; 1st International Conference on Principles, Systems and Applications of IP Telecommunications, ACM SIGCOMM, 2007), which also analyzes the potential feature interactions and discusses how to manage them. Here is the conference talk on early media and audio feature interactions.