FROM : Jeffrey Schnurmacher TO : Professor Schulzrinne and Kundan Singh RE : cs6901 – Project, Fall 2003 I. Files ProjectReport.doc – Project Report in MS-Word format ProjectReport.txt – Project Report in text format cinema.zip – changed cinema files ( see section below File-by-File changes, subsection A) cinema_blue.zip - new UI buttons (blue) cinema_red.zip - new UI buttons (red rollovers) cinema_rtspc.zip – java voicemail applet, java files and classes jwebmail.zip – changed jwebmail files ( see section below File-by-File changes, subsection B) II. Demo/Installation Information For demo of new features, the following servers and software must be installed on the server hosting CINEMA -apache web server : httpd 2.0.48 (as usual) -apache tomcat servlet container : tomcat 5.0.16 -- http://jakarta.apache.org/tomcat/ -rtsp server : rtspd 1.21 - tcl 8.3, cgi.tcl 1.5 (as usual) -jwebmail servlet 0.7 (installed in tomcat) -- http://jwebmail.sourceforge.net/ -cinema/rtpsc ( java voicemail applet classes) The following software must be installed on the client running CINEMA (to demo java applet for voicemail play/record) -java runtime 1.4.2 -java media framework – jmf 2.1.1e The completed projected can be viewed online. Currently the project is configured to run at: http://brasilia.clic.cs.columbia.edu:9090/cinema/Profile.cgi I would suggest running CINEMA under my account since I have example voicemails, remote mail accounts, etc. already configured. (login: jss2003@cs.columbia.edu, password: slowhand) (You are welcome to look at my remote email accounts I have setup and all my information as there is nothing private I need to protect) In order to demo the project, the servers must first be run. I will do so if you give me a day you wish to look at the work. I will run the servers on brasilia.clic.cs.columbia.edu (since the settings are configured for this server) and leave them running for as long as you wish. (I guess it is ok to let the servers run for a day or 2). In addition, please note that Java Media Framework must be installed on the client to view the Java Voicemail Applet (probably the most impressive part of the demo!) If you wish to run the servers yourself follow these steps: 1 .the client machine must be setup with Java Media Framework to view the Java Voicemail Applet. 2. login to brasilia.clic.cs.columbia.edu under my account (username:jss2003 password:slowhand) 3. run apache web server -bash-2.05b$ apache/bin/apachectl start 4. run apache tomcat servlet container -bash-2.05b$ tomcat/bin/startup.sh 5. run rtsp server -bash-2.05b$ cd rtspd-1.21/rtpsd -bash-2.05b$ ./rtspd –s /home/jss2003/apache/htdocs/cinema/vmusers –d all –p 8554 –X 6. run CINEMA in the browser http://brasilia.clic.cs.columbia.edu:9090/cinema/Profile.cgi 7. login with jss2003@cs.columbia.edu note : If you would like me to configure remote email your own CINEMA account I will need to include your remote IMAP email virtual server in the jwebmail servlet application configuration. (see to-do section at end of document) 8. Once you are logged into CINEMA you can access most of the functionality I have worked on through the following menu items: Profile Home User Info Message Voicemails Folders Emails Address Address Book Import There are also global UI changes I have implemented that are evident throughout the entire application 9. To shutdown after demo - ctrl-c to stop rtspd (if run with the –X option) -bash-2.05b$ apache/bin/apachectl stop -bash-2.05b$ tomcat/bin/startup.sh III. Project Overview My project focused on enhancements to the CINEMA website. I implemented and enhanced CINEMA in the following areas: A. UI look and feel - enhanced the general look and feel of the application. The work included: -layout to make screens more space efficient -changing fonts to be consistent throughout the application -changing colors to be consistent throughout the application -provided procedure to make screen titles consistent -fixed rollovers to have consistent colorings -used photoshop to draw set of buttons that are of better quality and color -see file-by-file changes below for specific UI changes B. Bug fixes - provided a variety of bug fixes -see file-by-file changes below for specific bugs fixed C. Voicemail recording and playback java applet and integration - enhanced the java applet and fixed bugs - integrated the java applet into CINEMA to record and playback voicemails D. Address book import support for tab-delimited data in multiple formats - provided support for importing cinema and yahoo tab-delimited files to the address book E. Installation and integration of web email client to send/receive email via IMAP - integrated an open source web mail package called jwebmail. jwebmail is a java servlet webmail client. IV. File-by-File changes A. Cinema Files: cinema1.0/cinema_util.cgi - fixed proc msg to display correct date/time for voicemails (bug fix) - added proc play_voicemail_url that returns url to play a voicemail (enhancenent) - added proc record_voicemail_url that returns url to record a voicemail (enhancenent) cinema1.0/layout.tcl - changed cinema_roundedbox for a more professional look (colors,fonts,spacings) (enhancement) - changed cinema_minibox to have consistent fonts and colors (enhancement) - changed cinema_rectanglebox to have consistent fonts and colors (enhancement) - changed cinema quick links to have nicer rollover look (enhancement) - changed cinema quick links to have consistent fonts and colors (enhancement) - changed cinema_table_column to have consistent fonts and colors (enhancement) - changed cinema_table_cell to have consistent fonts and colors (enhancement) - changed cinema_tabbed_pages for more space efficient look (no fixed height to all pages) (enhancement) - changed print_cinema_tab_footer for better alignment (enhancement) - added new proc cinema_page_title to display page titles (enhancement) cinema1.0/layout_config.tcl - added menuitem for 'Address Import' (enhancement) main.css - added various style classes (enhancement) - changed various style classes (enhancement) Profile.cgi - fixed display of recent voicemails in minibox (bug fix) - fixed display of recent voicemail date in minibox (bug fix) - changed link for recent voicemails in minibox to go directly to java applet play page (enhancement) PersonEdit.cgi - changed the title display to call 'cinema_page_title' (enhancement) - added ability to upload photographs - photos upload as .jpg – in therwords it is the person's email appended with the .jpg extension. (enhancement/bug fix) - removed row to edit photo since photo is now always email appended with .jpg (enhancement/bug fix) - set variable $photo to be email appended with .jpg (enhancement/bug fix) EmailLogin.cgi - new file that provides login to web email client (enhancement) EmailOptions.cgi - changed the title display to call 'cinema_page_title' (enhancement) - added insert for email account records (enhancement/bug fix) - added delete for email account records (enhancement/bug fix) - added update for email account records (enhancement/bug fix) - made account link for each account entry log into jwebmail client app (enhancement) - recoded layout for more space efficiency - added quicklinks to the page Vmail.cgi - extensive changes to the table structure for more space efficiency and cleaner code (enhancement/bug fix) - fixed display of voicemail date (bug fix) - changed url when choosing a voicemail file to goto VmailPlay.cgi, the java applet (enhancement) - new parameters were added to the url call to VmailPlay.cgi (enhancement) - changed the title display to call 'cinema_page_title' (enhancement) VmailFolders.cgi - listed email accounts from database and linked them to jwebmail client - changed the title display to call 'cinema_page_title' (enhancement) - changed layout for more space efficient and attractive display (enhancement/bug fix) VmailOptions.cgi - changed the title display to call 'cinema_page_title' (enhancement) MessageBoard.cgi - changed the title display to call 'cinema_page_title' (enhancement) IMArchive.cgi - changed the title display to call 'cinema_page_title' (enhancement) AddressBook.cgi - extensive changes to the table structure for more space efficiency and cleaner code (enhancement/bug fix) - added new link to call VmailRecord.cgi leave a message to entry in address list (enhancement) - changed the title display to call 'cinema_page_title' (enhancement) - added 'show advanced', 'hide advanced' to show/hide listings field selection box (enhancement/bug fix) AddressImport.cgi - new file that allows import of address book entries (enhancement) - added import of cinema address book format (enhancement) - added import of yahoo address book format (enhancement) VmailPlay.cgi - new file for voicemail java applet (enhancement) VmailRecord.cgi - new file for voicemail java applet (enhancement) Redrew the following buttons: (enhancement/bug fix) /cinema/buttons/blue/add.gif /cinema/buttons/blue/delete.gif /cinema/buttons/blue/edit.gif /cinema/buttons/blue/options.gif /cinema/buttons/blue/move.gif /cinema/buttons/blue/modify.gif /cinema/buttons/blue/options.gif /cinema/buttons/blue/change.gif /cinema/buttons/blue/create.gif /cinema/buttons/red/add.gif /cinema/buttons/red/delete.gif /cinema/buttons/red/edit.gif /cinema/buttons/red/options.gif /cinema/buttons/red/move.gif /cinema/buttons/red/modify.gif /cinema/buttons/red/options.gif /cinema/buttons/red/change.gif /cinema/buttons/red/create.gif B. JWebMail files title.xsl - display cinema header in the jwebmail client logout.xsl - redirect logout back to CINEMA V. Know Issues / To-Be Done -Currently all cinema files are using the tcl script interpreter in my home account. When installed on the production server, the script interpreter must be updated accordingly. -Currently the rtsp host server that is setup in the CINEMA configuration is used. Note that this server must always match the web host as the java applet can only talk back to the web server that launches it and the applet need to make requests to the rtsp server. - Currently there are 2 virtual domains setup in the JWebMail servlet (imap.columbia.edu and ober.cs.columbia.edu) When CINEMA users add new remote email accounts the IMAP servers they use must be manually entered in the JWebMail administration tool under ‘Virtual Domains’. A future enhancement would involve automatically registering these virtual domains for each new remote IMAP server a CINEMA user adds. -Currently there are 2 places in the application where I have hardcoded values that must be changed when CINEMA is installed on a new server. ( it would be nice to have these dynamic at some point) 1. in file cinema1.0/cinema_util.cgi I have harded coded the web server port to 9090. This must be changed when installed on port 80 2. in file logout.xls of the JWebMail application I have hardcoded the server url. This must be changed when CINEMA is installed on a new server. - I would be happy to install all the required software and configure CINEMA on the production server if you would like. All I need is the go ahead and the access.