350 likes | 480 Views
This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during your presentation In Slide Show, click on the right mouse button Select “Meeting Minder” Select the “Action Items” tab
E N D
This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during your presentation • In Slide Show, click on the right mouse button • Select “Meeting Minder” • Select the “Action Items” tab • Type in action items as they come up • Click OK to dismiss this box • This will automatically create an Action Item slide at the end of your presentation with your points entered. CallAlert ECE 345Justin Guinney Ashish Pandya TA: Ajay Patel
Introduction This project is one that tests both our electrical engineering and programming skills. The CallAlert is an extremely practical product which in the future may have its place among the various caller id products offered in the market place. The design and actualization of this project has been exciting in that it offers the potential for commercial use and builds an important skill-set in software and hardware design, test, and integration.
Introduction The CallAlert application enables one to monitor calls on a designated phone line both locally and remotely, allowing real-time notification and logging of all calls. The CallAlert application is a combination of hardware and software components, which together decode the caller id information sent by the telephone company and process it for intelligent call handling.
Scenarios for Use • Road Warrior trying to keep in touch with clients • Engineer doing user-testing in a lab, away from the desk and phone • Small Office/Home Office seeking a intelligent call handling application to keep track of potential customers.
Project Goals The CallAlert application was designed primarily for the work environment, where facilities such as webservers and direct, persistent access to the Internet is available, although home use is also appropriate.
Functionality • Local • Call Notification with Priorities • Call Log • Caller Database • Remote • Automated Email Generation • Access to Log Files • Real-Time Call Notification
Implementation Description • Caller ID Module • Main Telephone Application • Caller Log Servlet • Caller Alert Servlet • Authentication Servlet • Apache Webserver • JServe for Apache
Caller ID Module • Stand-Alone component of the Intelligent Call Center • Final Package Design: Create a card that fits in the expansion slot of a computer or the PCMCIA Cards of a notebook computer
Main Telephone Application • Central starting point for the end user • Simple, intuitive graphical user interface • Caller Database • Stores records of possible callers with associated attributes
Main Telephone Application • Caller Log • Displays log of all incoming calls. • Sorting based on time, priority, name, and phone number
User Profile • User settings controlled in setup • Different Profiles for Different Users • All elements configurable providing a easy and flexible setup and changes
Caller Log Servlet • Log of calls can be accessed remotely on authenticated html pages • Log Servlet uses RMI calls to update log against CallAlert application resulting in an updated and accurate log
Caller Alert Servlet • Real time call notification using Java applet • Authenticated session providing enhanced security
CallAlert System Block Diagram Hardware Software Dialog Box Caller Database Local Notify Sound files Computer Phone Jack Caller ID Unit Servlet RMI Log Object RS232 Line RMI Main Application Call RMI Call Object Servlet RMI Email Com Port Listener Sendmail TCP-IP
Design Procedure & Details • Hardware • Desired Functionality • Design Details • Implementation • Performance Issues • Software • Desired Functionality • Design Details • System Architecture • Technology Features • Flow Chart / Implementation
Design Procedures & Details (Continued) • Hardware - Software Integration • Implementation • Performance Issues
Hardware • Desired Component Functionality • Caller ID Module • Decodes the caller ID data on the phone line and sends it to an RS-232 serial port. • Computer • General Purpose computer that provides support for the Java Virtual Machine (JVM), the Java Development Kit 1.2 (JDK1.2), and the Apache Web Server
Hardware • Design Details/Goals • Caller ID Module • Connects between a telephone wall jack and an RS-232 serial port. Decodes the caller ID data and outputs a pre-formatted ASCII character string with the correct separators and spaces added. For example: 04/28 02:20 217-637-4274 Pandya, Ashish <CR> • Computer • Require a stable, fast computer to install JDK, Apache, and the JVM
Hardware • Implementation • Caller ID Module • Purchased, assembled, tested, and debugged a proven design by Weeder Technologies. • Preprogrammed 8-bit Microcontroller • Motorola Caller ID Decoder (MC14LC5447) • On-Board 256 byte buffer (EEPROM) • 3.58 MHZ Crystal for Internal Clocking • Required assembly, and unfortunately several days of debugging • Computer • ECE345 Lab Personal Computers
Hardware • Performance Issues • Caller ID Module • Rather Unstable. Problem in the power supply circuit that eventually caused the Motorola IC to malfunction and be destroyed • Potential design flaw in inputs 1 & 2 to the Motorola Chip or a short caused by unprotected circuit connections. • Present module very stable and reliable • Computer • ECE345 Computers proved to be a slow and unreliable platform for development. (Win98, 32 MB RAM)
Software • Desired functionality • Hardware/software interface • Local call-id notification • Local logging of calls • Remote call-id notification • Remote access to call logs • Secure remote access
Software • Design Details • Java language • Java RMI for distributed computing • Apache webserver • JServe for Apache webserver
Software • Architecture • Local application • RMIRegistry • Webserver • Remote access
System Software Architecture Network 1 Network 4 Web Browsers Application Client Call Notify Call Log Call Remote Obj (CallBackInterface) Log Remote Obj (LogInterface) Network 2 Network 3 Call Applet (CallInterface) CallInterface passRCall Log Servlet Call Servlet RMIRegistry Authentication Servlet ApacheWeb Server sendRmiApplet getCallerLog LogInterface CallBackInterface
Architecture Features • Secure • Netcscape “cookies” enable login/password protection • SSL/Apache (optional) • Scaleable • 2-tier architecture using Java Servlets • Servlets intergrated with Apache webserver • Distributable • Platform independence/Java language • Remote functionality available as applets • Extensible • New servlet functionality can be added to existing authentication layer
Technology Features • Remote Method Invocation (RMI) • Realtime messaging (versus polling) • Remote callbacks - allows access to methods of remote objects of the calling object. • Serialization • Object persistence • Distributed objects over a network • Apache Webserver/Java Servlet Enabled • New Java Classes • javax.comm: communication with serial ports • JDK1.2: JFC/Swing, Collections
Open Socket (Host, Port) Generate Email Message Send Email Message Close Socket EmailClient.java Software Flow Chart (Implementation) Caller Places Call from Remote Location Call comes through phone jack with Caller ID Information (first 250ms) Decode Caller ID Information Output preformatted ASCII character string to RS-232 Line (serial port) with correct separators and spaces added RS-232 Serial Port Interface Retrieve data from each call (“LINE INPUT#”) Parse Caller ID Information Caller ID / Computer Interface Part# WTCCI-K CommRead.java Generate a Caller Save Caller Record to DB JavaPhoneCenter.java (Umbrella Class) Send Caller to Main App. CallerDB.java Find a Match within CallerDB NO Access Caller DataBase Update Local Caller Log YES Local Notify HTMLClient.java NO Remote Access and Notification Server Get Priority YES Play wav file associated with call SoundLoader.java Apache Webserver & Servlet Call Notify Applet Terminate Thread Dynamically Generate HTML Notify Browser of Call Enable Digital I/O NO Send E-mail NO CallerServlet.java CallerApplet.java YES Establish Communications with Serial/Parallel Port Turn On/Off Ports (16) Close Connection NotifyPorts.java
Hardware-Software Integration • Implementation • First tested with a BASIC Program • Utilized the simple "LINE INPUT #" command which retrieves the data from each call • Comm Port Listener in Java • Performance Issues • Comm Port Listener read character by character instead of line input
Cost Analysis Bottom Line = $12,259.80 • Labor = $12, 160: • Labor costs per partner in US Dollars • $40/hour x 2.5 x 62 hours/partner = $6,080/partner • 2 partners x $6,080/partner = $12,160 • Parts = $99.80: • Caller ID/Computer Interface = $78.00 • Part Costs = $35.00 each x 2 • Shipping & Handling = $4.00 x 2 • 12 VDC Wall Transformer = $10.73 • RS-232 9 Pin Serial Interface = $1.07 • Standard 15’ 4 Connector Phone Cord = $5.00 (Estimate) • Java Development Environment (JDK 1.2) = $0.00 • Apache Web Server = $0.00 • Apache Jserv = $0.00 • Misc (Solder Wire, etc.) = $5.00 (Estimate)
Concluding Remarks Mission: Transition into industry through self-chosen team projects. • Market Driven project • Increasing Role of Software/Hardware Integration Projects • In-depth practical knowledge in an exciting topic : Communications Consolidation • Team Work & Cooperation • Techniques of project cycle planning: estimation, proposal, implementation, testing, and delivery
Justin : 1-7 Ashish : 8-22 Justin : 23-27 Ashish : 28-31