Smarter Voicemail Assignment 6 3/25/2011 I pledge my honor my honor that I have abided by the Stevens Honor System. Karth Ilango Kevin Su Jimmy Guan Nelson Gee John Zheng Architecture Calendar Replicator Event Manager GUI SMS listener Call listener Presence Detector Away message manager Voicemail message manager SMS sender Voicemail player Voicemail message storage Away message storage Text to voice converter Flowchart User sets up calendar event “Text to voice” voicemails Voicemail “groups” User sets up personalized voicemail Different voicemails/ appointment Time based voicemails App sets user “BUSY” @ 4 – 6PM Phone receives SMS Friend Calls Check if User “BUSY”? Play personalized message Check if User “BUSY”? BUSY AVAIL Allow Communication AVAIL BUSY Send automated “AWAY” text Forward straight to voicemail User returns From “BUSY” Texts received while “AWAY” Calls received while “AWAY” Allow Communication 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. Call listener The call listener works exactly the same way as the SMS listener with the exception that it listens for incoming calls. It collects the call time, sender, and other parameters pertaining to the incoming call. Presence detector The presence detector is a function to validate the lack of current availability of user based on global presence parameter before proceeding to the away message manager or voicemail manager for processing. Away message manager The away message manager analyzes the content of an SMS message received by the SMS listener and determines a text string to be used as the auto-response SMS reply. The response string will be selected from the away message storage and the method of selection is based on matching the sender or subject with auto-response groups set by the user, or specific keywords in the message body. The string is then passed to the SMS sender. Voicemail message manager The voicemail manager analyzes the caller information received from Call listener. It then searched the voicemail message list for the personalized voicemail set up for this particular contact. It also searches for the personalized voicemail set up for the particular appointment. This voicemail message will be sent to the Voicemail player. SMS sender The SMS sender module implements the sendTextMessage function to send the auto-response text message. The destination, subject, message, body parameters and possible data elements of the message will be passed from the away message manager. Voicemail player The ContactOptions is responsible for handling details related to the caller. The SEND_TO_VOICEMAIL parameter forwards any calls from the user directly to voicemail. It will default to false when the parameter is null. Voicemail message storage The user sets up his schedule with each event having a personalized voicemail. The voicemail is then designated toward events from the schedule or categorized in user groups and filter options. After this process, the voicemail message storage stores user recorded voicemail sound bytes in the phone’s local hard drive or micro SD card categorized with tags which can be searched by the voicemail message manager. Away message storage The away message storage functions similarly to the voicemail message storage except the autoresponse voice messages are stored as text strings, minimizing required hard drive space. Text to voice converter The text to voice converter will implement a third-party API for converting and input text string into a sound byte that will be used for the auto-reply voicemail messages. The use of this module will simplify the user-end process of populating a list of response voicemails, and has the additional feature of allowing the away message manager and voicemail message manager to use the same content list. Works Cited 1. "AT&T Labs Text-to-Speech: Frequently Asked Questions." Web. 06 Mar. 2011. <http://www2.research.att.com/~ttsweb/tts/faq.php#TechWhat>. 2. "Free Text-to-speech Technologies « Jean, Aka Sig(gg)." Jean, Aka Sig(gg). Web. 06 Mar. 2011. <http://www.akasig.org/2004/08/05/free-text-to-speech-technologies/>. 3. http://developer.android.com/reference/android/telephony/SmsManager.html 4. http://developer.android.com/reference/android/app/PendingIntent.html 5. http://developer.android.com/reference/android/content/BroadcastReceiver.html 6. http://developer.android.com/reference/android/telephony/SmsMessage.html Workload Karth was responsible for researching the functionalities of the Call listener, Voicemail manager, and the voicemail player. Jimmy focused on the functionalities of the SMS manager, SMS listener, and SMS sender. John and Kevin researched the SMS and voicemail storage systems. They also looked at the Text to Speech functionality. Finally, Nelson researched the Calendar replicator and event manager. Self-Analysis of Progress Strengths Through Social networking, 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. 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. Weaknesses The major weakness of the project is based on the fact that voicemail is only used by a select few. The voicemail app does not cater to the broad public. It is only for the use of young professionals or businessmen who keep their calendars updated. Teenagers and casual phone users may not need to keep their calendars and voicemails updated to reflect their availability. Basically, the features of the app are optional and require timely usage. The general public would feel that the regular voicemail is sufficient for daily usage. Another criticism would be that this feature should be invoked by the phone directly. For instance should Google or Apple develop firmware that includes this feature into the next-generation phone, most people would object to paying money for an extra app. Opportunities The greatest part about mobile application development is that it is extremely easy to make modification and releases to released apps. Android and iPhone allow developers to make modifications to their software package and reload them back to the Marketplace. Then, it is optional for the customer to download the latest version(s) of that application. Having this capability allows the developer to be more open to public requests. If there are suggestions or complains regarding certain components of the app, the development group would certainly be willing to make modifications to satisfy the clientele. Additionally, marketing these new changes is much easier than the first time. Once the customer subscribes to the app, their contact information is available to the development group. Therefore, any new changes or updates can be sent to the customer or subscriber through their personal email or the App store. Threats The main threats of this project are the phone developers themselves. For instance, if Google/ Apple decide to modify their voicemail capabilities to include the features included in this app. That would greatly reduce the customer’s interest in purchasing this app. Similarly, any rival voicemail app that simulates similar functionality would also jeopardize the success of this app. Next, this app does depend on the existing phone calendar and hard disk. Therefore, the app should not decrease performance of other functionalities by poorly utilizing system resources. The worst case scenario of an app would be to worsen the user experience of the customer. As this app would be used frequently throughout the day, the app takes for granted that the system time is correct. If the phone calendar/ clock are defunct, this will cause the app to be inaccurate. Lastly, the most vital part for the app to work is the hard drive. Since this app cannot store the personal voicemails on the service provider’s servers, this app will store the voicemail on the local phone’s hard drive or micro SD cards. Therefore, it’s important to make sure that there is room in the disk. Should the disk break or the data become corrupted, that would obviously cause the app to fail. More importantly, customers would be very quick to sue the group responsible for crashing their hard drives.