TECHNICAL FIELDThe disclosure relates to managing information across computing resources using a computing device, such as a personal computer, tablet computer, or cellular telephone.
BACKGROUNDConventionally, voicemail messages are difficult to change and provide a limited amount of information. For example, when entering a meeting for an hour, or going water skiing, a user knows in advance that he/she will not be able to answer his phone, but has no easy way of letting callers know why he/she didn't answer when they call. The user could manually change the greeting, but this process is often very slow and provides limited functionality. Furthermore, if the user needs to change his status in multiple different locations, e.g., on multiple different status information providers, the user typically needs to interact with each status information provider's user interface and set his status for each status information provider individually.
SUMMARYIn general, the techniques of this disclosure describe techniques for allowing a user to quickly manage his/her voicemail greeting when the user knows he/she will be unable to answer his phone by, for example, providing an interface for the user to record a quick away message or select from a set of prerecorded messages to say why the user cannot answer the phone. The techniques may include an interface that may combine managing a voicemail greeting with managing real-time status updates, such as a Google Buzz message, a Facebook® status message, an instant messaging status, or similar. The interface may include a mobile device application, e.g., a smart phone application, a website. The mobile device application may provide a subset of the features available to a user via the website in order to provide faster and easier voicemail greeting and status update management.
In one example, a method includes receiving a voicemail greeting template having a default portion and a placeholder portion, wherein the default portion is included in voicemail greetings generated based on the voicemail greeting template. The method also includes receiving status information for a user or a device, wherein the status information includes a state of the user or a state of the device, and replacing the placeholder portion of the voicemail greeting template with the received status information to generate a personalized voicemail greeting of the user, wherein output of the personalized voicemail greeting is initiated in response to an incoming phone call.
In another example, a computer-readable storage medium is encoded with instructions for causing one or more programmable processors to receive a voicemail greeting template having a default portion and a placeholder portion, wherein the default portion is included in voicemail greetings generated based on the voicemail greeting template. The instructions further cause the one or more programmable processors to receive status information for a user or a device, wherein the status information includes a state of the user or a state of the device, and replace the placeholder portion of the voicemail greeting template with the received status information to generate a personalized voicemail greeting of the user, wherein output of the personalized voicemail greeting is initiated in response to an incoming phone call.
In another example, a device includes one or more programmable processors, means for receiving a voicemail greeting template having a default portion and a placeholder portion, wherein the default portion is included in voicemail greetings generated based on the voicemail greeting template, and a user status propagation module executable by the one or more programmable processors. The user status propagation module may be configured to receive status information for a user or a device, wherein the status information includes a state of the user or a state of the device, and replace the placeholder portion of the voicemail greeting template with the received status information to generate a personalized voicemail greeting of the user, wherein output of the personalized voicemail greeting is initiated in response to an incoming phone call.
In another example, a method comprises receiving status update information associated with the computing device or a user of the computing device, wherein the status information includes a state of the computing device or a state of the user, and determining a voicemail greeting based on the status update information, wherein output of the voicemail greeting is initiated in response to a missed incoming phone call. The method further comprises determining one or more personalized text-based status update messages based on the status update information wherein each of the personalized text-based status update messages corresponds to a status update service provider, wherein the status update service provider maintains user status information for a group of users, and propagating each of the personalized text-based status messages to the corresponding status update service provider.
The techniques of this disclosure may provide one or more advantages. For example, the techniques of this disclosure may provide a simplified mechanism for updating various audio or text-based status update services. In accordance with the techniques of this disclosure, a user may select a desired voicemail greeting from a set of pre-recorded voicemail greetings that may correspond to a particular pre-configured text-based status. The user, in some instances, may also record a custom recorded voicemail greeting, which is converted to a text-based status using speech recognition techniques. The techniques may also provide a single interface for updating and managing voicemail greeting messages and text-based status messages. Thus, the techniques of this disclosure may enable voicemail greeting messages to be as dynamically and easily updated as text-based status update messages.
The details of one or more embodiments of this disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of this disclosure will be apparent from the description and drawings, and from the claims.
BRIEF DESCRIPTION OF DRAWINGSFIG. 1 is a conceptual diagram illustrating one example networked computing environment with an example user interface displayed, in accordance with one aspect of the present disclosure.
FIG. 2 is a block diagram illustrating an example client device, in accordance with one aspect of the present disclosure.
FIG. 3 is a screen illustrating an example user interface for updating the status of a user, in accordance with one aspect of the present disclosure.
FIG. 4 is a flowchart illustrating an example method for propagating status update information, in accordance with one aspect of the present disclosure.
Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTIONFIG. 1 is a conceptual diagram illustrating one example networked computing environment with anexample user interface24 displayed, in accordance with one aspect of the present disclosure. As shown inFIG. 1,computing system2 includesdevice10, one ormore servers12A-12N (“servers12”), andnetwork14. Examples ofdevice10 include, but are not limited to, portable or mobile devices such as cellular phones, personal digital assistants (PDAs), laptop computers, tablet computers, portable gaming devices, portable media players, e-book readers, watches, as well as non-portable devices such as desktop computers. For purposes of illustration only in this disclosure,device10 is described as a portable or mobile device that a user can carry, but aspects of this disclosure should not be considered limited to portable or mobile devices.
Device10 and servers12 are coupled tonetwork14 via wired and/or wireless links.Device10 may send data to or receive data from servers12 vianetwork14.Network14 may include a wide-area network such as the Internet, a local-area network (LAN), an enterprise network, a wireless network, a cellular network, or one or more other types of networks. Servers12 may be any of several different types of network devices. For instance, servers12 may be conventional web servers, specialized media servers, personal computers operating in a peer-to-peer fashion, or other types of network devices. In some examples, one or more of servers12 may be provided by status update service providers, such as Google™ or Facebook®, which maintain user status information for one or more users (e.g., user16). Servers12 may host instant messaging services (e.g., Google Chat or Yahoo! Messenger), social networking services (e.g., Google Buzz™ or Facebook®), voice services (e.g., Google Voice™), or other services that may include status information foruser16.
Device10 may include a userstatus propagation module18, adisplay20, and atelemetry module22.Display20 may be a liquid crystal display (LCD), e-ink, or other display.Display20 presents the content ofdevice10 touser16. For example,display20 may present the applications executed ondevice10 such as a web browser or a video game, content retrieved from servers12, and other functions that may need to be presented touser16. As another example,display20 may be a touch screen that allowsuser16 to interact withdevice10. Althoughdevice10 is shown as includingdisplay20, aspects of this disclosure should not be considered limited to examples that includedisplay20. In some examples ofdevice10,display20 may be optional.
In some examples, any application executed ondevice10 may require data from one or more of servers12. Telemetrymodule22 transmits a request for the data and receives the data from one or more of servers12. Telemetrymodule22 may provide the received data todevice10 for further processing. Telemetrymodule22 is configured to transmit data/requests to and receive data/responses from one or more servers12 vianetwork14. Telemetrymodule22 may support wireless or wired communication, and includes appropriate hardware and software to provide wireless or wired communication. For example,telemetry module22 may include an antenna, modulators, demodulators, amplifiers, and other circuitry to effectuate communication betweendevice10 and one or more of servers12.
In general, userstatus propagation module18 provides an interface that may combine managing a voicemail greeting with managing real-time user status updates. A voicemail greeting is typically outputted to a caller in response to an incoming call and provides the caller with information, such as status information, regardinguser16. In some examples, userstatus propagation module18 may receive user status information fromuser16 viauser interface24. For example,user16 may interact withuser interface24 displayed ondisplay20 to input user status information. In some examples,user16 may select from a set of preconfigured status messages or input a custom status message when inputting the user status information.User16 may also specify a duration for whichuser16 would like the status to be the user's current status. Upon expiration of the specified duration of time, the status information foruser16 may revert to a default user status or other user status as specified byuser16.
In the example shown inFIG. 1,user16 set the status to “surfing” and the duration for the status to “2 hours.” After setting the status information,user16 may submit the status information to userstatus propagation module18 using, for example, theupdate status button26 displayed onuser interface24. Userstatus propagation module18 receives the status information and updates the user status information for one or more applications or voicemail greetings associated withuser16. When updating voicemail greetings or other audible sources of status information, userstatus propagation module18 may before text-to-speech functionality to generate the audible status information based on the text-based user status information entered byuser16.
In other examples,user16 may enter user status information by, for example, speaking the desired status information.Device10 may record the spoken status information using an audio input device (not shown inFIG. 1). While described as recording spoken status information,device10 may record any type of audio and should not be construed as being limited to recording spoken status information. Userstatus propagation module18 may perform speech-to-text functionality to convert the spoken status information into text-based status information, which may be used to update various services that utilize text-based status information.User16 may causedevice10 to record the spoken status information by, for example, pressing and holding a button.Device10 may be configured to record audio while the button is pressed. Uponuser16 releasing the button, userstatus propagation module18 may perform the text-to-speech functionality.
Upon receiving the user status information, userstatus propagation module18 may issue one or more commands to servers12 to cause servers12 to update status information associated withuser16 based on the received user status information. In one example,server12A hosts instant messaging services, such as Google Chat services. In this example, userstatus propagation module18 issues a command toserver12A that includes the status information received fromuser16 in a text format.Server12A receives the command and updates the use status of the instant messaging account associated withuser16 based on the command. In another example,server12N hosts voice services, such as Google Voice. In this example, userstatus propagation module18 issues a command toserver12N that includes the status information received fromuser16 in an audio format.Server12N receives the command an updates a voicemail greeting foruser16 based on the audio status information included in the command received from userstatus propagation module18.
In this manner,user16 may quickly manage his/her voicemail greeting and text-based user status information associated with one or more services, such as Google Voice™ and Google Chat, whenuser16 knows he/she will be unavailable by, for example, providing auser interface24 foruser16 to record a quick away message or select from a set of prerecorded messages to say whyuser16 is unavailable. Upon entering or recording the status information, userstatus propagation module18 further facilitates updating and management of the status information by, for example, propagating the user status information to multiple services associated withuser16.
FIG. 2 is a block diagram illustrating an example client device, in accordance with one aspect of the present disclosure. As shown inFIG. 2,device10 may includecontrol unit28, audio input/output (AUDIO I/O)36,video module38, global positioning system (“GPS”)module40, andbattery42. Audio I/O36 may record audio from one or more sources such as a microphone and output audio using one or more sources such as a speaker.Video module38 may record video information received via a video camera and output video information viadisplay20, for example.GPS module40 may determine the physical location ofdevice10 and provide coordinates for the location. In some examples,GPS module40 may provide coordinates in response to a request initiated byuser16 or by one of applications48.Battery42 provides power for all the various units ofdevice10, and may be rechargeable. Examples ofbattery42 include a lithium polymer battery, a lithium ion battery, nickel cadmium battery, and a nickel metal hydride battery.
Control unit28 may provide an operating environment for executing userstatus propagation module18, user interface32, one ormore processors34, andvarious applications48A-48N (collectively, “applications48”) that may be stored withinstorage device30 and executed byprocessors34.Storage device30 may comprise a computer-readable storage media such as a storage device (e.g., a disk drive, or an optical drive), or memory (such as Flash memory, random access memory or RAM) or any other type of volatile or non-volatile memory, that stores instructions to cause a programmable processor to perform the techniques described herein. Alternatively, or in addition,control unit28 may comprise dedicated hardware, such as one or more integrated circuits, one or more Application Specific Integrated Circuits (ASICs), one or more Application Specific Special Processors (ASSPs), one or more Field Programmable Gate Arrays (FPGAs), or any combination of one or more of the foregoing examples of dedicated hardware, for performing the techniques described herein.
In general,control unit28 provides an operating environment for executing one or more of applications48 either alone or simultaneously. Examples of applications48 include web browsers, e-mail, programs to retrieve stock quotes, programs to search for restaurants, programs that retrieve current and future weather information, games, programs that play audio and/or video files, programs to search the Internet, programs that provide news, programs that provide maps, and other programs. Applications48 may be executed based on a request from user16 (FIG. 1), and may be terminated based on a request fromuser16. Some applications48 may be running continuously in the background. Some applications48 may be executed automatically bydevice10 such as at power up and may be terminated automatically bydevice10 such as at power down. For purposes of illustration only in the following description, the applications that may be executed by one ormore processors34 are described below as being executed by oneprocessor34. The applications may be downloaded byuser16 via network14 (e.g., from one or more of servers12) or may be preprogrammed withindevice10.
User16 may interact with user interface32 and/ordisplay20 to execute one or more of applications48 stored onstorage device30. In some examples, user interface32 may include web-based interface for managing user status information. The web-based interface may provide a complete set of configuration options and features available touser16. In other examples, user interface32 may include a mobile application (e.g., one of applications48) that executes withindevice10 and may provide a subset of the configuration options and features of the web-based interface. The mobile application interface may, in various instances, enableuser16 to modify user status information in fewer steps or with fewer interactions with the mobile application interface as compared to the number of steps or interactions required to modify user status information using the web-based interface.
In response to user input,processor34 executes the one or more applications selected byuser16, or executes the one or more applications executed bydevice10.Processor34 may include any one or more of a microprocessor, a controller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or equivalent discrete or integrated logic circuitry. Additionally, the functions attributed toprocessor34, in this disclosure, may be embodied as software, firmware, hardware or any combination thereof.
As one example of applications48,storage device30 may store application instructions associated with the Google Voice™ application, e.g.,application48A.User16 may interact with user interface32 and/ordisplay20 to execute the Google Voice™ application.Processor34 then executes the Google Voice™ application and causesdisplay20 to display the application touser16.User16 may then interact with user interface32 and/ordisplay20 to review voicemail messages, record voicemail greetings, or send a text message to another person. In one example, the voicemail information is stored on one or more of servers12 ofFIG. 1. In this example,telemetry module22 transmits a request to one or more of servers12, vianetwork14, for the requested website.Display20 then presents the received content touser16.
Userstatus propagation module18 may includevoicemail module44 andtext module46.Voicemail module44 may be configured to issue a command to one or more voicemail systems or other audio-based status information sources that cause the voicemail system to update a voicemail greeting foruser16 based on user status information received fromuser16 via user interface32 and/ordisplay20. In some examples,voicemail module44 performs text-to-speech techniques to convert text-based status update information into audio status update information that may be used in a voicemail greeting.Text module46 may be configured to issue a command to one or more social network, instant messaging, or other text-based status information sources that cause the text-based status information sources to update a text-based status foruser16 based on the user status information received fromuser16 viauser interface30 and/ordisplay20.Text module46 may perform speech-to-text techniques to convert audio-based user status information into text-based user status information.
In oneexample user16 interacts with user interface32 to set the voicemail greeting by selecting one of a set of pre-recorded voicemail greetings or by recording a custom voicemail greeting. Each pre-recorded greeting may correspond to a particular pre-configured text-based status foruser16. Whenuser16 changes the voicemail greeting, userstatus propagation module18 may also cause one or more text-based statuses foruser16 to be updated based upon the selected voicemail greeting. Whenuser16 records a custom voicemail greeting,text module46 may perform speech-to-text techniques in order to translate the custom greeting into a text-based status foruser16. In another example,user16 changes a voicemail greeting by entering a text-based status update via user interface32 and/ordisplay20 and directs userstatus propagation module18 to generate a voicemail greeting based on the status update.Voicemail module44 may perform text-to-speech techniques to translate the text-based status update into a voicemail greeting.
In other examples,user16 may combine a permanent message with a temporary message. For example, in the voicemail greeting template “Hello, my name is User. I am <status goes here>,” userstatus propagation module18 may replace the placeholder portion of the message (e.g., “status goes here”) with a status set byuser16 via user interface32 and/ordisplay20.User16 may set his status either by recording a temporary status message viaaudio input36 or by entering a text-based status via user interface32 and/ordisplay20. Ifuser16 inputs a status of “rock climbing for the next two hours,” the voicemail greeting may be set to “Hello, my name is User. I am rock climbing for the next two hours.” That is, userstatus propagation module18 replaces the placeholder portion of the voicemail greeting template with the received status information to generate a personalized voicemail greeting of the user.
Userstatus propagation module18 may also be configured to interpret “for the next two hours” as the duration for which the voicemail greeting should be set as the active voicemail greeting. In this example, userstatus propagation module18 causes the voicemail system to revert to a default voicemail greeting or some other voicemail greeting as configured byuser16 two hours after the temporary message was set as the active status. Of course,user16 may change the voicemail greeting at any time prior to the expiration of the current greeting.
In another example, userstatus propagation module18 may be configured to replace two different placeholder sub-portions of a voicemail greeting template with status information received fromuser16. For example, a user placeholder sub-portion of a voicemail greeting template may be replaced with a name ofuser16 included in the status information received fromuser16 and the state portion of the status information. Similarly, a state placeholder sub-portion of the voicemail greeting template may be replaced with state information included in the status information received fromuser16. In the example where the voicemail greeting template is “Hello, my name is <name>. I am <status goes here>,” userstatus propagation module18 may replace the name placeholder sub-portion (e.g, “<name>”) with the name of user16 (e.g., “User”) and the state placeholder sub-portion (e.g., “<status goes here”) with the state of user16 (e.g., “rock climbing for the next two hours”).
In various instances, userstatus propagation module18 may propagate the user status information to specific individuals, such as contacts in an address book. For example, ifuser16 configures the voicemail greeting to indicate thatuser16 is away for the next two hours, userstatus propagation module18 may directly or indirectly notify one or more individuals of the user's status. As one example, if a contact in the user's address book attempts to calluser16 whileuser16 is away, the contact will be prompted thatuser16 is away prior to callinguser16. The contact may be prompted thatuser16 is away by including an indication of the user's status in the user's contact information or by prompting the contact upon the contact attempting to calluser16, as examples.
As another example,user16 may record audio/video status information usingvideo module38 and audio I/O36 ofdevice10. The audio/video status information may be propagated as user status information to various status update service providers, such as video chat applications. When recording audio/video status information, userstatus propagation module18 may perform text-to-speech functionality as described above with respect to the audio portion of the status information to convert and propagate text-bases status information. The audio portion of the audio/video status information may also be extracted by userstatus propagation module18 to, for example, update the voicemail away message foruser16.
In examples wheredevice10 does not includedisplay20,user16 may call a specified phone number or use a different device to cause a service that includes a voicemail greeting (e.g., Google Voice) to calldevice10. In these examples, userstatus propagation module18 may not be included withindevice10. Rather, a user status propagation module similar to userstatus propagation module18 may reside on a server that hosts the voicemail service (e.g.,server12A ofFIG. 1). Whenuser16 updates the user status information via a phone call,user16 may speak the user status information and duration information, if any. The user status propagation module that resides on the server may be configured to receive the spoken user status information, perform speech-to-text techniques, if needed, and update the user's voicemail greeting as well as any text-based user status services configured byuser16.
In accordance with one aspect of the disclosure, userstatus propagation module18 may automatically generate user status information and automatically propagate the generated user status information, if so configured byuser16. For example, userstatus propagation module18 may receive charge level information frombattery42 and may automatically generate user status information based on the charge level information. If the charge level information indicates the battery is close to running out of power, userstatus propagation module18 may generate user status information indicating thatdevice10 is nearly out of power and include alternate methods of reaching user16 (e.g., calling a different phone number).
In other examples,device10 may include a calendar application (e.g., one of applications48) or may exchange information with a calendar application hosted by one of servers12 ofFIG. 1. Userstatus propagation module18 may receive information from the calendar application indicating a time and date of a scheduled event and may update user status information based on the scheduled event. Whenuser16 schedules the event,user16 may be provided the option to record audio status information, input text status information, or select a prerecorded message as the user's status information.
Userstatus propagation module18 may be configured to detect an event type associated with the event based on information about the event, such as the calendar in which the event is schedule, the name of the event, or a category assigned to the event. In some examples,user16 may assign a particular user status for each event type. In these examples, userstatus propagation module18 may associate the detected event type with the configured user status information and update the user status information with the associated user status information. In other examples, userstatus propagation module18 may utilize the name of the calendar in which the event is scheduled, the name of the event, or the category assigned to the event as the user status information. In an example where a voicemail greeting includes a template having placeholder information that is replaced by user status information, userstatus propagation module18 may update the placeholder information with the user status information while leaving the remaining portions of the voicemail greeting unaltered.
Userstatus propagation module18 may also provideuser16 with the ability to direct incoming calls to particular voicemail greetings based on real-time user input or based on the caller ID information associated with the incoming call, for example. In various instances,user16 may direct certain incoming calls directly to voicemail prior to the user's phone ringing while allowing other incoming calls to ring the user's phone. Similarly, userstatus propagation module18 may utilize the caller ID information to provide additional information to particular callers, such as providing select callers with a GPS location as determined byGPS module40 ofdevice10. The specificity of the information provided to the callers may be defined based on the caller ID information. For example, if the caller is a close friend,user16 may configure userstatus propagation module18 to provide the exact GPS coordinates of the user's current location to the caller. However, if the caller is another individual,user16 may only provide general city and state information to the caller or provide no location information at all. Userstatus propagation module18 may also utilize the caller ID information to provide select callers additional details about the user's status, such as the date and time an away message will expire, when the user will next be available, or the user's geographic location.
In general,user16 may configure userstatus propagation module18 using user interface32 and/ordisplay20. Configuration parameters entered byuser16 may be stored within configuration data (“CONFIG DATA”)50 ofstorage device30.Configuration data50 may be stored in the form of one or more tables, databases, linked lists, radix trees, or other suitable data structure.User16 may configure various aspects of userstatus propagation module18. For example,user16 may configure a default user status that is applied upon the expiration of limited duration user status information, a selection of available configured or pre-recorded user status messages, user account information associated with one or more services that may receive user status information updates, which text-based and audio-based services to include when updating user status information, and which callers receive what level of user status information, among other configurable options. As other examples,user16 may configure userstatus propagation module18 to have all calls go directly to voicemail without indicating an incoming caller via audio output38 (e.g., ringing the phone) or display20 (e.g., showing an incoming call) wheneveruser16 sets the user status information to “away” or an equivalent status.User16 may also configure userstatus propagation module18 to notify selected friends of the current user status information prior to any of the selectedfriends calling user16.
FIG. 3 is a screen illustration of an example user interface for updating the status of a user, in accordance with one aspect of the present disclosure. For purposes of illustration, the example user interface is described below within the context of theexample computing system2 ofFIG. 1 and may be generated by user interface32 ofdevice10.
As illustrated inFIG. 3,user interface60 includesuser status field62,user status buttons64,duration field66, serviceselection check boxes68, and updatestatus button70.User status field62 may include a drop-down list of preconfigured user status messages or voicemail greetings. In some examples,user status field62 combines a drop-down list and a text entry field. For example, a template voicemail greeting may include placeholder information that is replaced by user status information entered byuser16. In this example, the template voicemail greeting may be selected from the drop-down list and the placeholder information may be replaced by the user status information entered byuser16 in the text entry field. In other examples,user status field62 is a text entry field, but does not include a drop-down list of preconfigured user status messages or voicemail greetings.
User16 may interact withuser status buttons64 to clear an existing status (e.g., to revert the user status information to a default user status), listen to a recorded audio user status information (e.g., viaaudio output38 of device10), or record a new audio user status information (e.g., viaaudio input36 of device10). In some examples,device10 may display a text version of the recorded audio user status information inuser status field62.User16 may then edit the text version withinuser status field62, clear the recorded, or record new user status information, as desired, via theuser status buttons64.
Ifuser16 would like to limit the duration for which the entered user status information remains the active user status information,user16 may enter duration information induration field66. Whenuser16 enters duration information, the user status information may expire at the end of the specified duration and a default user status or other user status, as configured byuser16, may become the current user status. Alternatively, or in addition,user16 may enter a date and time at which the entered user status information will expire. Upon the expiration of the specified time duration or at the specified expiration time, each service identified with the serviceselection check boxes68, including voicemail and text-based services, will be issued a command to update the user status information maintained by each service.
Serviceselection check boxes68 may include a default set of services, a configured set of services where each service includes user account information or other information required to update the user status information for each service, or other services as selected byuser16. When updating user status information,user16 may select a subset of all configured services to which the updated user status information is to be propagated by userstatus propagation module18. By selecting a subset of services,user16 may specify different user status information for each different service or combination of services. For example,user16 may set the user status information for Google Buzz™, Google Chat, and Google Voice™ to “surfing” and then set the user status information for Facebook®, AOL Instant Messenger (AIM®), and Yahoo! Messenger to “away.”
Upon entering the desired user status information and selecting the desired services to which to propagate the user status information,user16 may then click, tap, touch or otherwise interact withupdate status button70 to cause the information specified inuser interface60 to be submitted to userstatus propagation module18 for processing.
FIG. 4 is a flowchart illustrating an example method for propagating status update information, in accordance with one aspect of the present disclosure. For purposes of illustration, the example method is described below within the context of theexample device10 ofFIG. 2.
In the example method illustrated inFIG. 4, userstatus propagation module18 receives status information fromuser16 viadisplay20 and/or user interface32 (80). The status information may include user status information, duration information, and information about one or more services to which the user status information is to be applied by userstatus propagation module18.
After receiving the status information, userstatus propagation module18 determines which services were selected byuser16 as requiring the user status information (82). Userstatus propagation module18 may be configured with information about each specified service, including user account information (e.g., username and password information) and the format of the user status information to update the user status information for each service. After determining which services were selected byuser16, user status propagation module retrieves the relevant information for each service from configuration data50 (84). For example, ifuser16 selects Google Voice™ and Google Chat, user status propagation module may retrieve user account information and format information fromconfiguration data50.
Userstatus propagation module18 may then determine whether the received user status information is text or audio (86). If the received user status information is text (“NO” branch of86), then userstatus propagation module18 determines if one or more of the selected services processes the user status information in audio format (88). In the example whereuser16 selected Google Voice™ and Google Chat as the two services two update, user status propagation module may determine that Google Voice™ processes an audio version of the user status information in order to update a voicemail greeting (“YES” branch of88). Because, in this example, the user status information received fromuser16 is in a text format and Google Voice™ processes an audio version of the user status information, userstatus propagation module18 converts the text version into an audio version using text-to-speech techniques (90).
After converting the text version of the user status information to an audio version, userstatus propagation module18 has access to both formats of the user status information and may issue commands to Google Voice™ that include the audio version of the user status information and issue commands to Google Chat that include the text version of the user status information. Ifuser16 did not select any services that process an audio version of the user status information (“NO” branch of88), userstatus propagation module18 may not convert the text version of the user status information to an audio version.
If the received user status information is in audio format (“YES” branch of86), userstatus propagation module18 determines if one or more of the selected services processes the user status information in text format (92). In the example whereuser16 selected Google Voice™ and Google Chat as the two services two update, user status propagation module may determine that Google Chat processes a text version of the user status information (“YES” branch of88). Because, in this example, the user status information received fromuser16 is in an audio format and Google Chat processes a text version of the user status information, userstatus propagation module18 converts the audio version into a text version using speech recognition techniques (94). Ifuser16 did not select any services that require a text version of the user status information (“NO” branch of92), userstatus propagation module18 may not convert the audio version of the user status information to a text version. When userstatus propagation module18 has access to the formats of the user status information, userstatus propagation module18 may then update the user status information for each of the selected services (96).
If the received user status information is in audio format (“YES” branch of86), userstatus propagation module18 determines if one or more of the selected services requires the user status information in text format (92). In the example whereuser16 selected Google Voice™ and Google Chat as the two services to update, userstatus propagation module18 may determine that Google Voice™ processes an audio version of the user status information in order to update a voicemail greeting (“YES” branch of88).
In this manner, the techniques of this disclosure may provide the user with a simplified mechanism for updating various voicemail greet text user status information. In accordance with the techniques of this disclosure, a user may select a desired voicemail greeting from a set of pre-recorded voicemail greetings that may correspond to a particular pre-configured text-based status. The user, in some instances, may also record a custom recorded voicemail greeting, which is converted to a text-based status using speech recognition techniques. The techniques may also provide a single interface for updating and managing voicemail greeting messages and text-based status messages. Thus, the techniques of this disclosure may enable voicemail greeting messages to be as dynamically and easily updated as text-based status update messages.
The techniques described herein may be implemented in hardware, software, firmware, or any combination thereof. Various features described as modules, units or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices or other hardware devices. In some cases, various features of electronic circuitry may be implemented as one or more integrated circuit devices, such as an integrated circuit chip or chipset.
If implemented in hardware, this disclosure may be directed to an apparatus such a processor or an integrated circuit device, such as an integrated circuit chip or chipset. Alternatively or additionally, if implemented in software or firmware, the techniques may be realized at least in part by a computer-readable data storage medium comprising instructions that, when executed, cause a processor to perform one or more of the methods described above. For example, the computer-readable data storage medium may store such instructions for execution by a processor.
A computer-readable medium may form part of a computer program product, which may include packaging materials. A computer-readable medium may comprise a computer data storage medium such as RAM, ROM, NVRAM, EEPROM, FLASH memory, magnetic or optical data storage media, and the like. The techniques additionally, or alternatively, may be realized at least in part by a computer-readable communication medium that carries or communicates code in the form of instructions or data structures and that can be accessed, read, and/or executed by a computer.
The code or instructions may be software and/or firmware executed by processing circuitry including one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, ASICs, FPGAs, or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein. In addition, in some aspects, functionality described in this disclosure may be provided within software modules or hardware modules.
Various embodiments of the invention have been described. These and other embodiments are within the scope of the following claims.