Voice Instant Messenger Andrew Miller CS 491B Fall 2006 Professor Sun.

Slides:



Advertisements
Similar presentations
Synchronization in Broadcasting ~various components of a coded service in broadcasting need to maintain synchronization and a fixed end-to-end delay between.
Advertisements

MXIE overview 5/4/ Update1. MXIE Media Exchange Interface for End Users 5/4/ Update2.
User Tutorial Press the Up & Down Arrow keys, or Left Mouse Click to progress through Tutorial. CommLink® Lite for Outlook® and Stand-Alone Version © Copyright.
Scott Wilson Shaun Moats Arjun Shrestha Andrew Garrison.
Real-Time Authentication Using Digital Signature Schema Marissa Hollingsworth BOISECRYPT ‘09.
CHATROOM PROJECT Supervised by DAN WITZNER HANSEN Group Members ESWAR EMMADI SURESH KUMAR DONTHA.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
One.box Distributed home service interface. Core Components Pop3 client Router Storage Pop3 Server.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
1 L55 Networking (4). 2 OBJECTIVES In this chapter you will learn:  To understand Java networking with URLs, sockets and datagrams.  To implement Java.
1 L53 Networking (2). 2 OBJECTIVES In this chapter you will learn:  To understand Java networking with URLs, sockets and datagrams.  To implement Java.
VCT May 20, 2009 Sapna Blesson Advisor: Dr.Christopher Pollett.
Intro Alexei Miagkov: researching GUI networking sound aspects of Java Walter Kammerer: researching networking concepts documenting real-time media concepts.
User Datagram Protocol UDP. Remember, UDP is Not reliable; data may be dropped No guarantee of in-order delivery Duplicate data is possible No built-in.
Picture Users Making Art Chat An interactive communication tool.
Understanding Basics Computer Concepts Unit A.
New Offline Password After initial login to the system, the offline version in located by clicking on the red Emergency button.
New Features Jan 2014.
Starter for 10 Unit 7: Using Messenger Transform IT SFT07_messenger.
Project 9 Communicating Over the Internet. 2 CHAPTER OBJECTIVES Launch Microsoft Outlook Express Open, read, print, reply to, and delete an message.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Sheet 1XML Technology in E-Commerce 2001Lecture 4 XML Technology in E-Commerce Lecture 4 Case Study: XmlMessenger.
Web Proxy Server. Proxy Server Introduction Returns status and error messages. Handles http CGI requests. –For more information about CGI please refer.
ICT at Work Global Communication.
Download & Play E-Learning System PROPOSAL draft1.0.
Introduction to Skype A. Name -. Applies to Skype for home and small business accounts.
WINDOWS APPLICATIONS by Jane Cable Also called Accessories Also called Components.
In association with Technion and Qualcomm. Project supervisor: Tatyana Finkel. Technion Israel Institute of Technology.
By: Joel Rodriguez.  International student from Mexico  Delicias, Chihuahua Mexico  Spanish  Sports and Music.
DEMIGUISE STORAGE An Anonymous File Storage System VIJAY KUMAR RAVI PRAGATHI SEGIREDDY COMP 512.
VoIP, Asterisk, and Java Michael P. Plezbert Agilis Systems, Inc St. Louis Java Users Group April 13, 2006.
WXET1143 Lecture7: , Chat and Messaging. Introduction  Electronic mail is everywhere.  Now many people in business, government, and education use.
ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.
Android SMIL Messenger Presented By: Alex Povkov Brad Gardner Jeremy Spitzig Santiago Jamriska.
Simple Mail Transfer Protocol (SMTP)
CS3516 A15 Help Session 1 CS3516 — TCP/IP Socket Programming Presented by Oleksandr Narykov
Video Chat on LAN By Payal Ashokkumar Dalwadi 10/29/2010 Advisor: Dr. Chung-E Wang Department of Computer Science California State University, Sacramento.
P2P VoIP Speaker : Ching Chen Chang Date: 2007/09/27.
CS101 Introduction to Computing Lecture 7 Internet Services.
Cli/Serv.: Chat/121 Client/Server Distributed Systems v Objectives –discuss a client/server based chat system –mention two other ways of chatting.
Common Servers in a Workplace Environment Brandon Reynolds Computer Electronic Networking Dept. of Technology, Eastern Kentucky University.
Outline Overview Video Format Conversion Connection with An authentication Streaming media Transferring media.
REVIEW On Friday we explored Client-Server Applications with Sockets. Servers must create a ServerSocket object on a specific Port #. They then can wait.
 TCP (Transport Control Protocol) is a connection-oriented protocol that provides a reliable flow of data between two computers.  TCP/IP Stack Application.
Department of Computer Science and Engineering, CUHK 1 Final Year Project 2003/2004 LYU0302 PVCAIS – Personal VideoConference Archives Indexing System.
A ISP free video conferencing application for mobile devices using wireless and VoIP Technology.
GUIs in Java Swing, Events CS2110, SW Development Methods Readings: MSD, Chapter 12 Lab Exercise.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
Texas Forty-Two By: Nate Normandin CS 470. What is Texas Forty-Two? A Domino Game A way for people to learn the game A way for people to play others A.
TCP Sockets Reliable Communication. TCP As mentioned before, TCP sits on top of other layers (IP, hardware) and implements Reliability In-order delivery.
Tom Allen Clayton Chang Jeffrey Hebrank Justin McCarron Vincent Pai Luo Pan Allen Weiss.
Team 9 Abhishek Jain Keerthy Chavva Mugdha Dharkar Rishit Shroff.
Client/Server Socket Programming Project
Resource Development Team1 1 Resource Development Team Communicator: Using it for the first time.
NetChat Communications Systems Steven Fuqua Barnett Trzcinski Andy Street.
ITM © Port,Kazman 1 ITM 352 Cookies. ITM © Port,Kazman 2 Problem… r How do you identify a particular user when they visit your site (or any.
FTP Client API FTP in embedded devices Implementing an FTP Client FTP Command APIs Other FTP Client APIs.
Developing GUIs With the Eclipse Visual Editor, Swing/AWT Edition David Gallardo.
The Internet Technological Background. Topic Objectives At the end of this topic, you should be able to do the following: Able to define the Internet.
Li Tak Sing COMPS311F. Case study: a multithreaded chat server The source contains 3 files: ChatServer //the chat server ChatThread //the thread on the.
How to develop a VoIP softphone in C# that enables SIP Instant Messaging (IM) This presentation describes how to create a softphone in C# that allows you.
P2P Digital TV Recorder Supervisor: Professor Michael R. Lyu
How Works Ameera Al Ghamdi ID:
THE BASICS.
PC02 Term 1 Project Basic Messenger. PC02 Term 1 Project Basic Messenger.
Software Engineering for Internet Applications
How Works Ameera Al Ghamdi ID:
Clayton Chang, Justin McCarron, Vincent Pai
Thread per client and Java NIO
Presentation transcript:

Voice Instant Messenger Andrew Miller CS 491B Fall 2006 Professor Sun

Motivation Wanted to do a project involving networking Avid user of voice and text messaging programs Wanted to do something different Thought it would be interesting

Motivation Wanted to make something I could actually use Wanted features in a program that I couldn’t find elsewhere, so I made my own

Design Networking Audio –Recording –Encoding –Playback Message Logging Friends List GUI

Design - Networking Server –Authenticates users –Serves as a router for packets between clients Messages Status Updates –Controls and maintains friends lists

Design - Networking Client –Connects to and communicates with the server –Sends and receives messages to and from other users –Sends friend updates to server to add and remove friends

Design - Audio Audio streams recorded from a user’s microphone Sound playback of recorded or received audio streams Encoded with the Speex Codec for good compression and quality

Design - Message Logging Saves information about sent or received messages: –Who sent it –Who received it –When it was sent or received (date and time) –Saves the message itself

Design – Friends List Shows all of the user’s friends Can add and remove friends by name Name formatted how the user wants with all spaces and capitalizations saved Has a flag for user status – Away or Offline

Design - GUI Login Window –Prompts for username –Connects to server Main Window –Friends List –Message List –Friend and Message Controls

Design - GUI Main Window (cont.) –Friend and Message Controls Buttons to add and remove friends Button to send messages to one or some friends Buttons to play or delete messages Button to filter message list, showing only messages from a specific friend

Design - GUI Message Frame –Shows all recipients for a current message –Can remove recipients from the list –Can send a message to one or all current recipients –Record, discard and preview message

Implementation - Networking Server –Uses a ServerSocket to accept incoming connections –Creates a new thread to handle client Sockets Client –Connects to the server using a Socket –Uses DataInputStreams and DataOutputStreams to communciate with the server

Implementation - Audio Uses the JSpeex codec –Records to ByteArrayOutputStreams –Playback from ByteArrayInputStreams –Very odd implementation due to lack of JavaSound Support

Implementation – Message Logging Messages stored in message objects –ID of who sent the message –Array of IDs of who received it –String of date and time when the message was received Had to create my own file type – VoIM Message File (.vmf)

Implementation – Message Logging VoIM Message File –int sender id –String date and time –int number of recipients –int array of recipient ids –int message length –byte array of the message

Implementation – Friends List Friends stored in friends objects –Friend ID –Name (formatted as the user wishes) –Status (online, offline, away) Stored on the server, sent to client when it connects Status packets update the client’s friends list

Implementation - GUI Java Swing and AWT Libraries –JLists –JButtons –JLabels –JFrames –JTabbedPane –JScrollPane –All layout done with SpringLayout

Insights Schedule –Sticking to a schedule is very difficult due to unforeseen problems –Creating a practical schedule is very important Implementation –Research tools more in depth before starting work

Insights Implementation (cont.) –Java was a poor choice for both networking and sound –The JavaSound guy quit in 2004, there had been no further developments and no replacements afterward Design –Planning is very important prior to coding, it’ll save a lot of time