Janet Park
Bell Atlantic
Network Systems Advanced Technology
jpark@Basit.com
CS S6998-03
Advanced Internet Services
Columbia University

Abstract

Simphony is a simple Internet telephony program which allows users to make calls from one IP-connected end system to another using multimedia capabilities. It provides both the network signaling and the user interface necessary for the user to invite others to a call and for the invitee to answer the call. A call can be either a unicast session between two parties or a multicast session for multiparty conference. An invitation can be extended to establish a new session or to join an already existing, on-going conference session. Simphony differs from other open-style public session announcement MBone softwares, which require participants themselves find out available conferences in order to join. The focus of Simphony is more toward the handling of private, smaller conferences that may occur within in an intranet environment, where users can be explicitly and individually invited to participate. By providing the most basic telephony features such as call setup, termination, cancellation, call forwarding, and determination of user availability, this preliminary version of Simphony aims to mimic traditional telephone like functionalities on the Internet using multimedia agents. Simphony is light weight, written in Java and provides both the client and server components. The call/session setup protocol is based on SIP (Session Initiation Protocol) and SDP (Session Description Protocol). Simphony is independent of media agents and therefore allows users to use any MBone (Multicast Backbone) media applications in conjunction with Simphony.


Table of Contents

Abstract
Introduction
Overview
Features
SIP Implementation
Architecture
System Requirements
Installation
Tips for Troubleshooting
Future Enhancements
References
Source Code


Introduction

Simphony is currently a fully working prototype, which can be used in a subnet or an intranet environment where IP Multicast is supported. Given the limited scope of the project, the focus has been to provide only a partial implementation of SIP, and yet enough to support the very basic invitation-response scenarios most commonly used. In the abscence of a proxy server or a location server I have taken a simplified approach in the design that one application program serves both as the server, the client and the redirect server all at the same time. The program has been somewhat extensively tested on both Windows95 and Solaris 2.5.1 to assure the platform-independence. Also careful attention has been paid to design a modular, extensible software framework so that more advanced network features can be easily incorporated in the future. In the following sections this report describes Simphony's currently operational call handling features and the software architecture design in detail. It will also discuss its current limitations and future enhancements considered necessary.


Overview

Some of the main features of Simphony are:



Features

Description of available calling features can be found here.


SIP Implementation

Currently, Simphony provides a only partial implementation of SIP, and yet enough to provide the basic invitation-response scenarios most commonly used. Simphony has been implemented with TCP as the underlying transport layer and based on the protocol specification described in the IETF's draft version, SIP: Session Initiation Protocol, April 9. 1998. The currently supported SIP request messages by a Simphony client are:

The Simphony server may respond to an invitation with one of the following status codes:

Both request and response messages generated by Simphony may contain some or all of the following headers:

All INVITE messages are accompanied by a session description and so is the response to a two-party call. In case of a multicast conference call, the connection description always contains a multicast address, whereas in a two-party call, the client and server each provides its own host address so as to indicate to the other party where the media data should be sent to. Currently all Simphony's sessions are described using the following SDP descriptions.


Software Architecutre

Design documentation can be found here.


System Requirements


Installation

  1. Create a $SIMPHONY_HOME directory.

  2. Download the simphony.tar.gz file into the newly created directory.

  3. Unpack and extract from the zipped file using gunzip/tar on Solaris, or winzip on Windows.

  4. Once extracted, you should see the following entries in the $SIMPHONY_HOME directory:
            ring.au         phone.gif       lib/classes.zip         src/*.java
    
  5. Add the following to the current $CLASSPATH environment variable.
            $SIMPHONY_HOME/lib/classes.zip
    
  6. To start the program, type
    	cd $SIMPHONY_HOME
    	java Simphony 
    
  7. Setting Media Agents. Once started, You should see the Simphony's main menu window. To configure media agents in Simphony, you must already have downloaded and installed some of the MBone software(s). Click on the Media Agent button, and once the MediaDialog box is displayed, enter the name of the media agent's executable and the absolute pathname of the directory where the executable resides. For more details, refer to the Setting Media Agents section of the Features document.


Tips for Troubleshooting



Future Enhancements



References

1
Handley/Schulzrinne/Schooler, SIP:Session Initiation Protocol , Internet Draft, Internet Engineering Task Force, April 9, 1998.
2
Handley/Jacobson, RFC 2327 - SDP: Session Description Protocol , Network Working Group, April 1998.
3
H. Schulzrinne, Personal Mobility for Multimedia Services in the Internet , European Workshop on Interactive Distributed Multimedia Systems and Services, (Berlin, Germany), March 1996
4
E. Harold, Java Network Programming , Orilly, 1997
5
D. Flanagan, Java in a Nutshell , 2nd Ed. Oreilly, 1997.


Last updated: August 19th, 1998