Ilango_Smarter_Voicemail_hw6

advertisement
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.
Download