
180 Park Ave - Building 103
Florham Park, NJ
Subject matter expert in VoIP, SIP
My interests include developing abstractions and tools that aid in creating Voice over IP applications correctly, quickly, and in a re-usable fashion. Greg Bond and I created E4SS (ECharts for SIP Servlets), which allows SIP Servlets to be developed using the ECharts state machine language developed at AT&T. This software is available open-source.
I spend quite a bit of time using our framework to develop SIP applications for everything from one-time demos to production-level software handling millions of call-minutes per day. This experience in turn suggests enhancements to the framework, as well as new abstractions. Some of these abstractions are being realized in a new higher-level, domain-specific language called StratoSIP. This language is based on a formal specification that has been subjected to model checking to provide a partial verification of correctness.
I joined AT&T Bell Labs in 1984, working on acoustic signal processing algorithm design and analysis. I joined the research labs in 1995.
StratoSIP - SIP at a Very High Level
Eric Cheung, Thomas Smith, Gregory Bond, Pamela Zave
IPTComm 2011,
2011.
[PDF]
[BIB]
ACM Copyright
(c) ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in IPTComm 2011 , 2011-08-01.
{Voice-over-IP holds the promise of opening up the telecom domain to a vast community of developers. However, due to the nature of real-time multi-party communication and the complexity of the protocol, writing SIP applications that operate correctly and robustly is very challenging and requires in-depth knowledge. Even with standardized programming paradigms such as the Java-based SIP Servlet API, SIP application programming remains difficult.
StratoSIP [1] is a new domain-specific language designed to make the development task much easier and accessible to programmers with little knowledge of SIP. It will be released as open source software in 2011. As well, an applica- tion written using StratoSIP will be deployed in a mission-critical conferencing service in 2Q 2011. This demonstra- tion will show a typical StratoSIP development cycle using this conferencing application as a use case. The goal is to demonstrate how the high-level abstractions offered by StratoSIP make it very easy to program complex call control, and how the underlying StratoSIP runtime library ensures correct and robust operation even under protocol races.}

Getting SIP Endpoints and Network Call Control to Work Well Together
Eric Cheung, Thomas Smith
Principles, Systems and Applications of IP Telecommunications,
2011.
[PDF]
[BIB]
ACM Copyright
(c) ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Principles, Systems and Applications of IP Telecommunications , 2011-08-01.
{The Session Initiation Protocol (SIP) was designed as a protocol to establish multimedia over IP sessions between endpoints. Several protocol elements have been introduced to support common features such as call redirection and transfer performed at the endpoints. At the same time, real-world deployments have shown that intermediaries are commonly deployed in the network to provide advanced features. Conflicts between these protocol elements and intermediary application servers may lead to failure of operations and undesirable feature interactions. This paper examines the problems and proposes a general solution suite which includes suggested handling of these protocol elements and feature interaction management. The benefits include smooth interoperability of endpoint protocol elements and network-resident applications, and desirable overall service behavior.}

An Evaluation Framework for Highly Available and Scalable SIP Server Clusters
Gregory Bond, Eric Cheung, Thomas Smith, Jong Yul Kim
IPTComm 2011,
2011.
[PDF]
[BIB]
ACM Copyright
(c) ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in IPTComm 2011 , 2011-08-01.
{SIP server clusters provide scalability and high availability for SIP applications. The nature of telecommunications services dictates requirements for these capabilities that generally exceed what is necessary in the domain of web applications. There are a number of clustering solutions available to address these requirements, but due to significant differences in architecture and the lack of common terminology, the solutions are difficult to compare. In this paper, we propose system requirements that are necessary to achieve scalability and high availability. We then propose an abstract cluster architecture containing four common architectural elements. Solutions from three different vendors are described in terms of these abstract elements. The solutions are compared based on an evaluation framework that includes a number of criteria, such as robustness to failures of different types and numbers, overhead required to manage failures, and scaling efficiency.}

Specification and evaluation of transparent behavior for SIP back-to-back user agents
Gregory Bond, Eric Cheung, Thomas Smith, Pamela Zave
4th International Conference on Principles, Systems and Applications of IP Telecommunications,
2010.
[PDF]
[BIB]
ACM Copyright
(c) ACM, 2010. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.
The definitive version was published in Proc. of the 4th International Conference on Principles, Systems, and Applications of IP , 2010-08-02.
{A back-to-back user agent (B2BUA) is a powerful mechanism for realizing
complex SIP applications. The ability to create, terminate, and modify SIP
dialogs allows the creation of arbitrarily complex services. However, B2BUAs
must be designed with care so as not to disrupt service interoperability. A
commonly-stated goal is for B2BUAs to be as {it transparent} as possible
while achieving its design goals. Though the notion of transparency is
intuitively appealing, it is difficult to define. To address this issue,
this paper proposes a definition of transparency and
presents a formal model of a transparent B2BUA to serve as the
specification of transparency. From this specification, we identify issues
with both the realizability and desirability of this behavior, and suggest
modifications to the original model. We evaluate the behavior of a number of
public B2BUA implementations via testing, using some novel techniques to
create test cases based on the formal models.}

Reusable Features for VoIP Service Realization
Thomas Smith
Principles, Systems and Applications of IP Telecommunications,
2010.
[PDF]
[BIB]
ACM Copyright
(c) ACM, 2010. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.
The definitive version was published in Principles, Systems, and Applications of IP Telecommunications., 2010-08-02.
{Telecommunication services vary greatly in their behavior. However they often can be decomposed into tightly-focused components, each designed to accomplish a certain limited function. In some cases, these functions are repeated across many services that seem quite disparate at first glance. We examine some components that have proven to be highly reusable, and demonstrate how they can be composed into a variety of interesting services.
}
Experience with Modularity in an Advanced Teleconferencing Service Deployment
Eric Cheung, Thomas Smith
Proceedings of the Thirty-First International Conference on Software Engineering,
2009.
[BIB]
{In this paper, we describe our experience with the design of an advanced teleconferencing service under two different frameworks -- an early implementation of the Distributed Feature Composition architecture, and the SIP Servlet API. The usual design goals of software modularity for encapsulation and reuse are pursued. Interestingly, two very different designs resulted. This paper discusses the factors that influenced our design decisions. In particular, we examine the different characteristics of the two frameworks as well as the maturity of project requirements, and illustrate the ways in which these factors affect various mechanisms for achieving software modularity. We also aim to draw on this experience to propose a set of design guidelines for building modular, composable SIP Servlet applications for Voice over IP and converged services. Final camera-ready copy for conference }

Abstractions for Programming SIP Back-to-Back User Agents
Pamela Zave, Gregory Bond, Eric Cheung, Thomas Smith
Third International Conference on Principles, Systems and Applications of IP Telecommunications,
2009.
[BIB]
{In SIP services, {it back-to-back user agents (B2BUAs)} are powerful but difficult to program correctly. StratoSIP is a high-level, domain-specific language for programming SIP B2BUAs safely. This paper describes the four major abstractions on which the language is based. It explains how each abstraction is used in programming, and how it is implemented in SIP. Because the abstractions are derived from the Distributed Feature Composition (DFC) architecture, StratoSIP programs compose easily with each other at runtime. The implementation of StratoSIP runs in SIP Servlet containers. }
ECharts for SIP Servlets: a state-machine programming environment for VoIP applications
Thomas Smith, Gregory Bond
Proceedings of the 1st international conference on Principles, systems and applications of IP teleco,
2007.
[BIB]
{The development of telecommunication applications that require multiple call legs is often complex due to their event-driven nature as well as the significant amount of state that must be maintained. In general, the state associated with different call legs within an application instance differs and must be separately maintained; in addition, (non-call related) application state is often required. As a means of managing all the required state information, application developers often implement ad-hoc state machine programming constructs within the application. }
Component coordination: A telecommunication case study
Pamela Zave, Healfdene Goguen, Thomas Smith
Computer Networks: The International Journal of Computer and Telecommunications Networking - Special,
2004.
[BIB]
{Personal mobility is probably the most desired of all telecommunication capabilities, but it presents many design difficulties. This paper explains some of the difficulties, and shows how they can be overcome with the help of a component architecture. Two component coordination mechanisms are emphasized, one novel and one used in an unusual way. These mechanisms may be useful in other distributed applications besides telecommunications. }
Video email for the digital set-top box
Allen Milewski, Thomas Smith, David Weimer, Baldine Paul, Glenn Cash, Andrea Basso
HCI International Conference Proceedings, 2001,
2001.
[BIB]
{We describe a prototype, network-based, video email service targeted to run on a variety of thin clients from PCs to digital cable set-top boxes. Email is an attractive starting place for video in the home: (i) it is a familiar means of communicating for many, (ii) its privacy concerns are smaller than for interactive video, and (iii) its "critical mass" requirements may be small since only senders need complete video systems. Nonetheless, most video email systems are still cumbersome in terms of hardware, storage and installation processes. In contrast, our system architecture requires little client storage since the video is streamed to a network-based media server while it is being recorded. The email recipient receives a message that contains a reference to the network-stored video file, and it is streamed down for viewing. We describe the User Experience design challenges associated with implementing the system for digital cable set-top boxes. Publisher: Lawrence Erlbaum and Associates Pub/Conf: HCI International Conference Proceedings, 2001 }
Method Of Managing Circuit Switched And Internet Protocol Telephone Lines Associated With A Digital
Subscriber Line Service,
Tue Jun 19 12:52:29 EDT 2012
A method of managing communications received by a Digital Subscriber Line (DSL) terminating at a residence associated with a subscriber is disclosed. The DSL is divided into one baseband line, one or more derived lines and a data connection. A query is received from a Service Control Point (SCP) for subscriber preferences for handling an incoming communication. The query is translated into an Internet Protocol (IP) message and communicated to a web server. A Common Gateway Interface (CGI) application module is invoked that corresponds to the particular type of communication being sent to the residence. The subscriber's preferences for handling the particular type of communication are retrieved from a database. Based on the retrieved preferences and invoked CGI application, call handling instructions are sent to the SCP.
Method And Apparatus For Providing Personal Mobility Features In A Telecommunications Environment,
Tue Mar 15 16:04:40 EDT 2011
Personal mobility, multiparty control, and device augmentation features are provided within a voice-over-Internet protocol environment, such as a distributed feature composition (DFC) telecommunications architecture. The personal mobility features allow a caller to be identified to a callee using a desired identifier in place of an identifier of the device from which a call is made. Such personal mobility features are made available in multiparty calling environments and after mid-call moves. Device augmentation features provide enhanced calling options to a device that may otherwise be unequipped to provide such options, thus enabling personal mobility and multiparty control features across a wide variety of telecommunications devices.
Methods and apparatus for utilizing user software to communicate with network-resident services,
Tue Oct 14 14:58:19 EDT 2008
Popular operating systems for user devices, such as personal computers (PCs), PDAs, pocketPCs, smartphones, and similar such personal devices, typically come bundled with software that is already installed, maintained and run on a user's computer, namely, a non-specialized HTTP client/web browser and a non-specialized instant messaging client. A device is described which presents a user's instant messaging client and HTTP client/web browser as a unified device for handling real-time user interactions with a network resident application. Since this device represents a network application's interface to a user it is termed a pseudodevice. The pseudodevice, which interfaces with network application software, formats user queries as hyperlinked instant messages that are then sent to the user. The user responds by clicking on a hyperlinked message, which invokes the user's web browser and causes the browser to convey the response as an HTTP request back to the pseudodevice. The pseudodevice adapts communication to the user device depending upon the HTTP requests it receives.
Synchronous transmission of data with network remote control,
Tue Jan 08 18:12:32 EST 2008
A novel method and apparatus is disclosed for synchronously delivering complementary data to two devices. Complementary data is used herein to designate at least two streams of related data that, when combined, form an organic whole. In one embodiment of the disclosed invention, a command is received through a network for the synchronous transmission of complementary data. Subsequently, first data is transmitted through the network to a first device synchronized with transmission of second data to a second device, wherein the first and second data are complementary data.In one embodiment of the invention, a mobile and/or hand-held device such as a PDA is used to control another device remotely through one or more networks, such that complementary, synchronous streams of data that are intended for observation in combination by users and/or entities, can be transmitted to each of the PDA and the device. The flexibility of such an arrangement, wherein the PDA can be carried to different locations to control different devices for synchronous transmission of complementary data, allows the provision of a multitude of services not heretofore available.
Telephone voice-ringing using a transmitted voice announcement,
Tue Feb 11 18:08:37 EST 2003
A voice-ringing system is provided. The traditional telephone ring for notifying a called party of an incoming phone call is replaced by a short verbal announcement that is provided by the calling party when placing the phone call. In a manner similar to traditional telephone ringing, the announcement is repeated until the call is answered or until the caller abandons the unanswered call. One implementation for the voice-ringing system is to utilize the Internet as a signaling channel. The calling party establishes a call by utilizing a communications device that is connected to both the Internet and to a voice network. The verbal announcement is sent to the called party as a signal transmitted over the Internet. The called party hears the voice ring on a communications device that is also connected to both the Internet and a voice network. When the called party indicates that the call should be accepted, a return signal is sent to the calling party's communication device. The calling party's communication device then establishes an end-to-end call on the voice network.
Message sender status monitor,
Tue Dec 31 18:08:35 EST 2002
A message sender status monitor is used to determine the communication status of the sender of an electronic message. In the case of email, upon the recipient opening an email, a query is launched to a status registry to determine if the sender of the email is currently logged in to the communication network, or if the sender is currently on the telephone, or currently using a cell phone, etc. This status information is then used by the recipient of the email to determine the communication medium used to send a reply to the email sender. For example, if the status information indicates that the message sender is currently logged in to the data network, the recipient can respond using instant messaging (considered, therefore, to be a more efficient type of response that merely responding with an email message).
Apparatus and method for a bookmarking system,
Tue Sep 11 18:07:13 EDT 2001
A bookmarking system is provided that includes a user input device and a network server. A person who is viewing a program, e.g., watching a network news program on television, can bookmark an archived version of that program for future reference. The viewer utilizes the user input device to communicate to the network server the identity of the program of interest. The network server uses the identification information for the program of interest to identify a URL for the archived version of the program. The network server transmits the URL for the archived program to the personal computer of the viewer.
Communications System and Method of Operation For Electronic Messaging Using Structured Response Objects and Virtual Mailboxes,
Tue Jul 27 18:05:12 EDT 1999
Many email messages are part of conversational transactions and require a response. In many cases, the set of possible responses can be anticipated by the sender (e.g., Yes or No,Pizza or Pasta, etc.). In these cases, structuring the email transaction provides benefits to both the sender and the recipients. Senders get the benefit of tabulated responses, and recipients get a more convenient way to respond. Our system provides a web-based composition tool for senders, a central store of messages and responses, and pointer messages that lead recipients to a virtual mailbox on the web that features form-based responses, pre-structured by the sender. The message a recipient reads may vary based on preceding responses; by storing the messages centrally, recipients always see the current message (6 out of 8 can attend so far).
IPTCOMM Best Paper Award, 2009.
For paper entitled, "Abstractions for Programming SIP Back-to-Back User Agents".
JavaOne Conference Rock Star, 2009.
For outstanding session content and speaking ability. Topic was "Services: Web 2.0, Next Generation Web, and Cloud Services Platform".