Smarter Voicemail
Final Report
4/20/2011
I pledge my honor my honor that I have abided by the Stevens Honor System. Karth Ilango
Kevin Su
Jimmy Guan
Nelson Gee
Xiongzhi Zheng
Table of Contents
INTRODUCTION 3
Functional Description of the Design and its Components 5
Design 1: Flowchart 5
Design 2: Flowchart 7
Chosen Design 8
Technical Description of the Design and its Components 9
Architecture diagram 9
Competitors 11
Google Voice 11
Project Principles 13
Modern Voicemail 13
Android & SMS Messaging 14
Voicemail Manager & Storage 15
Text to Speech 16
Performance Expectations/Objectives 17
CRITICAL EVALUATION OF PROJECT 18
Self-Analysis of Progress 18
Constraints 19
Funding of the Project 20
SUMMARY 20
Future Implications 21
MISCELLANEOUS 21
Works Cited 21
Bios 21
INTRODUCTION
Voicemail has become essential in modern day telecommunications. Voicemail is a storage system which allows callers to record voice messages for unavailable recipients. These messages can be stored locally on an answering machine or remotely by the service provider. Texting has furthered this concept through away messages. Away messages are messages sent by the recipient to inform the sender of his/her availability. Current cell phones still rely on simple voicemail to relay availability. Given the complexity and usability of smart phones, clients should be able to receive better information. However, there is a lack of any initiative which allows for smarter voicemail.
The proposed solution is a mobile application, available on any mobile platform, which enables personalized voicemail and automated away messages. The app will allow a client to identify time slots during which he/she will be unavailable. The calendar within the app will sync with the in-built smart phone calendar for easy access. Once they organize the “away” calendar, the client can set up away messages or voicemails for that particular period.
For instance, John Smith may set up a slot for a doctor’s appointment from 4-5 pm. He can open up the app and access the options for the time slot. He may choose to set up a general voicemail through voice recording. In addition, he can set up an away message. The app will have text-to-speech capabilities should you choose to relay the away message as your voicemail. If Sallie Mae calls John, she will reach his voicemail immediately without any ring tones. The difference is instead of receiving a generic voicemail Sallie will get a more informed description of where John is and when he will be available. It also facilitates John’s life by allowing him to type a quick away message which translates to a voice message. When Jimmy texts John about a casual meeting later in the night, he will receive a text from the app immediately relaying the away message.
The client can personalize voicemails by setting up user groups. Basically, the user can set a personalized message for his friends. This allows the client to send different messages to different groups. For instance, John may set his friends’ voicemail to say, “Meet me at the bar after 6” while the voicemail for his parents may say, “I’ll be home for dinner”. Additionally, John can set up personalized voicemails for particular individuals as well. Assuming that multiple people contact John’s cell phone during his unavailable period, John will be alerted by the app on his smart phone. The app will specify when the text or call was made, and which message/ voicemail was sent to the caller. If John would like to alert those individuals of his availability once he returns, John has the ability to send a broadcast text message declaring his availability.
In a fast-paced society which is so dependent on social networks, efficient voice mail and availability alerts allow communities to be more aware of their friends and family. Through Facebook and Twitter, people are given the ability to constantly update their status and location. While social networking is available to the broad public, the personalized voicemail is slightly more selective and secure. The voicemail will only be sent to those who are specified by the client. The idea of a more personalized voicemail has been vocalized through many tech forums. This is an improvement that cell phone users definitely take advantage of. Definitely, the biggest benefactor of such a utility would be large corporations. In a busy environment, employees are often away from their desk due to meetings. Having an informative, time-specific voicemail would inform others needing to reach the employee.
As far as marketing goes, the product will first be available on mobile platforms, such as the Iphone and Blackberry phones. Mobile platforms allow easy sales and distributions due to their built-in application market places. Once the application is developed, this app will be placed in the “app store” for clients to purchase. Pricing and further distribution will be decided once the app is in development.
The production and marketing necessary for a mobile application is simple and cost efficient. The costs required to develop the application are limited. The major costs for development include purchasing any of the software platforms for development, such as Eclipse (Android) or Xcode (iPhone). Certain companies, such as Apple, require the developer to pay a licensing fee and publication fee for their apps. Aside from those one-time fees, mobile development requires no monthly fees and no hardware costs. Labor costs are also at a minimum because the level of development required is minimal.
The overall production time for this app can be estimated at around four months. This is a broad estimation for the software product. With two active developers and project manager, we estimate that it would take roughly one college semester. First, the estimated time to research the components and develop a flowchart would require a month. During this period, the group has to ensure that all the software is installed and up to date. The Gantt chart and flow diagram of the project need to be created and finalized by all team members. Next, the actual development stage should be straightforward and quick. Particularly for Android, Eclipse IDE and Android SDK work hand in hand allowing simple compiling and building. Development is estimated to be completed in one month.
The final stage of production is testing. This stage is the most time consuming yet vital portion, requiring roughly two months for completion. Fortunately, Android comes with a build-in Android phone simulator. The simulator provides the capability to perform simple unit tests as well as full system integration tests. Testing is always a key component to any software development project. Therefore, it is crucial that additional time is taken to ensure success. The team must write up test cases to simulate all possible scenarios of failure within the app. Most importantly, the app should not break any existing functionality or reduce phone performance. Overall, it would be safe to say that this project is too simple for a multi-person, two-semester senior design project. Perhaps, we can add some hardware improvements to this project to beef up the scope.
Once the application has completed its software development life cycle, the group must confirm that all tests were successful. Finally, the group can begin to plan marketing and sales. As stated above, sales of a mobile application is handled by the proprietor of the mobile device. For an Android app, the Android marketplace is the only way for customers to purchase the app, unless they possess a hacked phone. After registering himself, the application developer can directly send his application package to Google. The initial price for the app will be set at $0.49 for a promotional offer. Then, the price will be raised up to $1.00 for the normal price.
Marketing will be the most difficult portion for the app. Unlike other software, it is difficult to market a small-scale app through public media. It is far too expensive to market the voicemail app through TV or radio advertising. However, the internet is the greatest tool to all Android developers. First, the most important advocates to new Android developers are online review groups. There are multitudes of reviewers which are willing to review apps for a small fee or free. In turn, these organizations expect publicity from the developers. Next, it would be best to search forums and blogs focused on new apps. There are active blogs which are used by the mass public to read about new apps which are released in the App store.
TECHNICAL INFORMATION
Functional Description of the Design and its Components
Design 1: Flowchart
Flowchart details
Initialization
The user sets up calendar events according to his schedule with each event allowing for a personalized voicemail and away text message. The calendar replicator imports the Android calendar that the user has on his phone. The user can set up a personalized voicemail greeting or away message for this event; default is event name & time. Voicemail groups can be set up to have different messages for different people or groups. Lastly, there will be a text to voice feature included in the application. This feature allows you to convert any text message into a voicemail greeting.
Presence
The application changes the user’s current status based on calendar events. The presence parameter is set to “away” when the event is active. Any incoming calls or text messages will be sent to a storage location when presence is set to away.
Listener
The application listens for text and calls continuously. It collects the call time, sender, and other parameters pertaining to the incoming call or text. When the user returns, he can look at all the missed calls and texts with summary and details of the texts and voicemails.
Sender
The application analyzes analyses the sender information. It then decides which voicemail or away messages should be sent. Then that away message will be sent to the corresponding sender. For the voicemail greeting, the application will forward the caller to a particular personalized greeting.
Storage
All personalized greetings will need to be stored in a voicemail storage area on the user’s local machine. These greetings will be picked up and sorted based on user groups and event options. Each greeting is given a ID tag for reference. The away messages are similar yet they are stored as text strings. The text to voice converter will take an existing text string and convert it to a greeting using a third party API. The result sound greeting will then be saved along with the other greetings.
Design 2: Flowchart
Flowchart details
This design is specifically built for individuals who do not want to be disrupted during an engagement. The high priority option allows for high priority messages to be received while having their phones. For low priority message, an email will be send to the user if the user does not check his voicemail for 2 hours. For high priority message, the message is tagged with the exclamation mark and the LED light of the phone will flash. In addition, an email message is sent to the user. If the caller leaves more than 7 messages, the message will be forwarder to an alternate number provided by the user.
Chosen Design
We have chosen the first design because it is the most plausible and detailed. Based on the Android research, the first design goes hand in hand with Android libraries and APIs. Also, it will be the most efficient way to get this application working. We are confident that no real life constraints will alter the design. This second design was not selected because it requires more maintenance. Most users do not want to spend too much time on their voicemail. In this design, messages are divided by callers and how important the messages are. In the other design, the messages are not divided and the entire message is placed into the collector. The major criticism with the second design is that it assumes that user’s phone is accessible. For example, the model would be invalid if the user was at the gym away from his phone. In that case, the high priority messages would be useless since the user wouldn’t be able to see his phone.
Technical Description of the Design and its Components
Architecture diagram
Functionality & interfaces of the components
Calendar replicator
The user sets up calendar events according to his schedule with each event allowing for a personalized voicemail and away text message. The calendar replicator imports the Android calendar that the user has on his phone. The personalized voicemail would be utilized accordingly from the replicated calendar that was copied from the Android calendar. This enables the user to modify the voicemail when there is a change in events because the android calendar is reflected upon the calendar
.
Event manager
The event manager runs continuously when the application is active and triggers changes to the user’s current status based on calendar events. Its function is to read events from the calendar replicator and checks for the presence of active or busy events in the current time period, setting the presence parameter to “away” when they are present.
The event manager then triggers the SMS listener and Call listener for redirecting incoming texts and calls for process with this application based on the user’s current presence status.
SMS Listener
The SMS listener runs continuously when triggered, asynchronously from the other modules in order to process all incoming SMS messages. This module will substantiate a SmsManager object and implement the BroadcastReceiver class to monitor incoming SMS, and then parse the message contents for keywords. The sender, subject, message contents, and appropriate flags are relayed to the away message manager to determine a proper response method.