Columbia Email By Phone

Daniel Liu
Columbia University
New York, NY 10027
USA
dyl5@columbia.edu

Naho Ogasawara
Columbia University
New York, NY 10027
USA
no49@columbia.edu

Abstract

Email is one of the most convenient forms of communication.  However, convenience of email is limited by the necessity of an Internet connected computer.  Columbia Email By Phone solves this problem by allowing people to check their email over any telephone, something more ubiquitous than computers.

Introduction

For most people today, the preferred means of communication is by email.  Most people use computers to check their email, which means that if they are away from a computer or are using a computer without Internet access, they cannot check their email.  If you are away from a computer and are expecting email about a time critical matter, not have a computer to check email is quite inconvenient.

Assuming that wherever you go there is a telephone, using a telephone to check email is a sensible solution.  That is what Columbia Email By Phone provides, a way for you to check your email and even send email.  The Columbia Email By Phone system will check your email and read whatever message you want in your INBOX aloud over the telephone.  The system is available from any telephone making it convenient for you to check your email when you are away from a computer.

Columbia Email By Phone will be integrated with Columbia University's Computer Science department's Internet Telephony project providing convenient access to email for all professors and students.  Currently, there is a VoiceXML browser in development to be integrated with the Internet Telephony project that will allow users to connect to the Columbia Email By Phone system.

Background

VoiceXML
Columbia Email By Phone uses VoiceXML, Voice Extensible Markup Language, for the speech synthesis of the email text, digitized recording of messages, and recognition of spoken input and DTMF key input.  The main motivation for using VoiceXML is that VoiceXML is designed to create speech based telephony applications.  VoiceXML is supported by the VoiceXML Forum, an industry organization founded by AT&T, IBM, Lucent and Motorola.

This is an example VoiceXML page:

<?xml version="1.0"?>
<vxml>
  <form>
    <block>
      <audio>Hello World!</audio>
    </block>
  </form>
</vxml>

The voice browser will interpret this page and say "Hello World!" to the user.

JavaMail
Columbia Email By Phone also uses JavaMail 1.2 API to facilitate the reading and sending of email messages.  JavaMail 1.2 currently supports IMAP and POP3 protocols.  The motivation behind using the JavaMail 1.2 API is that all of the email handling is done already so the bulk of the work can be concentrated on architecting the Columbia Email By Phone system.

Java Servlets
The main class of the Columbia Email By Phone project is a servlet.  Servlets add Java functionality to a webserver.  Instead of using CGI, programmers can use servlets to handle the request/response processing.  Also, servlets can manage resources like database connections better than CGI.

Java Server Pages (JSP)
Java Server Pages, or JSP, are an extension of Java Servlets, that serve dynamic content.  Essentially JSP allows Java to be embedded in HTML or XML to provide dynamic content to static template pages.  JSP is used in Columbia Email By Phone project to provide dynamic content to static VoiceVXML pages.

JDBC
Columbia Email By Phone also used JDBC to connect to the MySQL database.  JDBC provides an API for universal data access.  Using JDBC, almost any data source can be accessed.  The benefits of JDBC is that a different data source can be used (i.e. switching from MySQL to Oracle) with almost no changes necessary.

Model-View-Controller Design Pattern Model 2 Architecture
The Columbia Email By Phone System uses a Model-View-Controller (MVC) design pattern, more specifically Java Server Pages Model 2 architecture.  The following figure depicts the architecture:


The Model 2 architecture utilizes the strengths of servlets to perform the backend processing while the JSP's serve as the presentation layer.  In this architecture, the servlet acts as the controller and handles the request processing.  The servlet also determines which JSP page to forward the request to, which then handles the presentation layer.  The JSP page itself does not provide any processing logic; it merely extracts dynamic content from the servlet and inserts inserts it into static templates.
 

Related Work

There are services and projects similar to Columbia Email By Phone.

One such service is provided by CoolMail.  CoolEmail allows users to  listen and reply to email, voicemail and faxes messages with any phone, computer or wireless device from one central location.  CoolEmail costs money to use and is more complicated than the Columbia Email By Phone system.  While CoolMail allows more functionality than Columbia Email By Phone, the additional functionality is excessive and not necessary.  It is also hard to integrate CoolMail and other professional email services like CoolMail into the Computer Science Internet Telephony project.  It is also probably hard to customize CoolMail for the needs of the professors and students.

One of TellMe's Extensions is also a service to check email by phone (http://ragtime.weissman.org/email/register.cgi).  Similar to Columbia Email By Phone, the user registers for the service from a webpage.  The email service is written using CGI.  Like CoolMail, it is hard to integrate this service into the Computer Science Internet Telephony project.  It is also probably hard to customize this service for the needs of the professors and students.
 

Architecture

 Based on the Model 2 architecture, the following figure depicts Columbia Email By Phone's architecture:

EmailServlet serves as the main controller.  It handles the requests from the Voice Browser.  Based on the specified action, a different action is performed.  For example, if the action is login, then EmailServlet performs login and checks the login and pin variables.  Depending on the action, the database will be queried and email checked.  Also depending on the action, an appropriate JSP page will be used to display dynamic content using static VoiceXML templates.

For a detailed description of the classes involved with the Columbia Email By Phone project, please consult the API.

Database Tables
The following database tables are used in Columbia Email By Phone:

CREATE TABLE user (userid int(10) NOT NULL,
                   pin char(4) NOT NULL,
                   PRIMARY KEY(userid)
                   );

CREATE TABLE host (hostid int(10) NOT NULL AUTO_INCREMENT,
                   hostname char(255) NOT NULL,
                   PRIMARY KEY (hostid)
                  );

CREATE TABLE account (userid int(10) NOT NULL,
                   email char(255) NOT NULL,
                   password char(255) NOT NULL,
                   hostid char(255) NOT NULL,
                   protocol char (255) NOT NULL,
                   PRIMARY KEY (userid, email),
                   FOREIGN KEY (userid) REFERENCES user,
                   FOREIGN KEY (hostid) REFERENCES host
                   );

CREATE TABLE addressbook (userid int(10) NOT NULL,
                         name char(255) NOT NULL,
                         email char(255) NOT NULL,
                         PRIMARY KEY (userid, email),
                         FOREIGN KEY (userid) REFERENCES user
                         );
 

Since the user can have multiple accounts it is good to store the user information once (too avoid redundancy) and then reference it through the account tables.  Similarly, the host is also handled in this way.  Rather than repeat information and storing unnecessary information over and over again, the name of the server can be taken from another table that only lists it once.  Also, the design of the addressbook is that name/email address pairs are mapped to an userid so that a user can have multiple addresses in their addressbook.
 

Program Documentation

Task List