HK1147872A - Managing visual voicemail from multiple devices - Google Patents
Managing visual voicemail from multiple devices Download PDFInfo
- Publication number
- HK1147872A HK1147872A HK11101895.1A HK11101895A HK1147872A HK 1147872 A HK1147872 A HK 1147872A HK 11101895 A HK11101895 A HK 11101895A HK 1147872 A HK1147872 A HK 1147872A
- Authority
- HK
- Hong Kong
- Prior art keywords
- voicemail
- message
- mailbox
- messages
- voicemail messages
- Prior art date
Links
Description
Background
Visual voicemail is a user-friendly application that adds visual features to the management of voicemail messages. Visual voicemail may enable a mobile phone user to manage voicemail messages in the order they are selected, e.g., in a random order rather than in order.
Drawings
FIG. 1A is a block diagram of an exemplary environment in which embodiments disclosed herein may be implemented;
1B, 1C, and 1D illustrate exemplary visual voicemail graphical user interfaces;
FIG. 2 is a block diagram of an exemplary network in which embodiments described herein may be implemented;
FIG. 3 is a block diagram of an exemplary user device;
FIG. 4 is a block diagram of exemplary components of a client computer module;
FIG. 5 is a block diagram of exemplary components of a server computing module;
FIGS. 6A and 6B are illustrations of exemplary management tables;
FIGS. 7A and 7B are block diagrams of exemplary aggregated message tables;
FIG. 8 is a block diagram of an exemplary notification table;
FIGS. 9A and 9B are flowcharts of an exemplary process for receiving voicemail and notifying user devices of voicemail information;
FIG. 10 is a diagram of exemplary network signals for notifying user devices of voicemail information;
FIG. 11 is a flow chart of a process for synchronizing voicemail message information;
FIG. 12 is a diagram of exemplary network signals for synchronizing voicemail message information;
FIG. 13 is a flow diagram of an exemplary process for listening to voicemail messages;
FIG. 14 is a diagram of an exemplary network signal for listening to voicemail messages; and
FIG. 15 is a flow diagram of an exemplary process for changing the status of a voicemail message.
Detailed Description
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention.
A person may have multiple communication devices such as home phones, mobile phones, smart phones, Personal Digital Assistants (PDAs), computers, and the like. Each of these devices may be associated with a mailbox for receiving voicemail messages. One or more embodiments disclosed herein may allow any of these mailboxes to be managed from each of the communication devices. For example, FIG. 1A is a block diagram of an exemplary environment 100 in which embodiments disclosed herein may be implemented. Environment 100 includes a work phone 101, a home phone 102, a mobile phone 103, and a work Voicemail (VM) server 104. In this example, the work VM server 104 may store the voicemail message in a mailbox for unanswered calls to the work phone 101. In the embodiment disclosed herein, in general, the user can manage a voicemail mailbox in the work VM server from the user's work phone 101, but the mailbox can also be managed from the home phone 102 and the mobile phone 103. In one embodiment, actions taken by a user on a voicemail message using one device (e.g., mobile phone 103) may be reflected on all user devices (e.g., work phone 101, home phone 102, and mobile phone 103). For example, if the user deletes a voicemail message in the work VM server 104 using the mobile phone 103, the change can be reflected in the work phone 101 and the home phone 102 as well as the mobile phone 103.
Fig. 1B, 1C, and 1D illustrate exemplary Visual Voicemail (VVM) Graphical User Interfaces (GUIs) for communication devices, such as portable communication devices (e.g., mobile phones). FIG. 1B illustrates an exemplary pop-up screen for notifying a user of three new voicemail messages waiting in the user's voice mailbox. FIG. 1B also shows that the user can choose to ignore voicemail messages (e.g., using button 105) or listen to voicemail messages (e.g., using button 106). For example, if the user chooses to listen to a voicemail message, the user may be presented with the GUI shown in FIG. 1C.
FIG. 1C shows an exemplary list of voicemail messages that include, for each voicemail, the name of the caller, the phone number of the caller, the time of the call, and the length of the voicemail message. In addition, the GUI of fig. 1C may present an icon for each voicemail message that indicates a mailbox in which voicemails may be remaining or deposited. For example, the building icon 108 may indicate that a message is left in the user's work mailbox; the house icon 110 may indicate that a message is left in the user's home mailbox; and the mobile phone icon 112 may indicate that a message is left in the user's mobile phone mailbox.
An exemplary GUI of the communication device may allow a user to manage selected voicemail messages. In the exemplary GUI of FIG. 1C, the user may scroll to and select any of the listed voicemail messages in any order. For example, voicemail message 120 from Bob Sherman (in the user's mobile phone mailbox) is highlighted for selection. The user may delete the selected voicemail message (e.g., using button 114) or play the selected voicemail message (e.g., using button 116). For example, if the user selects to play a voicemail, the user may be presented with the GUI shown in FIG. 1D.
FIG. 1D shows an exemplary voicemail message being played. As shown in fig. 1D, the user may delete the selected message (e.g., using button 122 or the key labeled "7" on the numeric keypad); the message may be saved (e.g., using button 124 or a key labeled "9" on the numeric keypad); a call may be initiated to the party who left the voicemail message (e.g., using button 126 or the key labeled "5" on the numeric keypad); the message may be rewound (e.g., using button 128); the message may be fast forwarded (e.g., using button 130); or the message may be paused (e.g., using button 132). In one embodiment, the administrative action taken on the message using one communication device may be reflected on one or more other communication devices that may manage the same mailbox.
Fig. 2 illustrates an exemplary network 200 in which embodiments described herein may be implemented. As shown, the network 200 may include a device layer 202, a Voicemail (VM) layer 204, and a VVM layer 206. The VVM layer 206 may be located between the device layer 202 and the VM layer 204 and may facilitate message exchange (e.g., communication) between the device layer 202 and the VM layer 204.
The device layer 202 may include, for example, a computer 208, a Television (TV)210, a smart phone 216 (e.g., Blackberry, Treo, etc.), a PDA218, a mobile phone 220, and/or other types of communication devices. Any of the devices 208 and 220 may be considered a user device. The VM layer 204 may include VM servers 232, 236 (e.g., work VM server 232, home VM server 234, and wireless VM server 236) and a service scope directory (SWD) server 238. The VVM layer 206 may include a VVM server 252, a device proxy 254, an SMPP (short message peer protocol) gateway server 256, an authentication server 258, a notification server 260, and a VVM gateway server 262.
Computer 208 may include one or more computer systems for hosting programs, databases, and/or applications. The computer 208 may comprise a laptop computer, a desktop computer, or any other type of computing device. The computer 208 may include a browser application for navigating a network, such as the internet.
The TV210 may include a device capable of receiving and reproducing video and audio signals, such as a video display device. The TV210 may include a Liquid Crystal Display (LCD), a Cathode Ray Tube (CRT), a plasma display, and the like.
The TV210 may be associated with a set-top box (STB) (not shown). The STB may include a computer device, such as a cable card, for hosting programs, databases, and/or applications. In one embodiment, the TV210 may include the STB in the same housing. The TV210 and/or STB may include a visual voicemail application to receive, listen to, and/or send voicemail messages. The TV210 and/or STB may be associated with a remote control (not shown). For example, the remote control may include control keys to navigate menus displayed on 210 and otherwise control the functions of the TV210 and/or STB. The remote control may transmit infrared signals or other types of signals to input devices associated with the STB and/or TV 210.
The smart phone 216, PDA218, and/or mobile phone 220 may allow a user to initiate phone calls to other user devices. The smart phone 216, PDA218, and/or mobile phone 220 may communicate with other devices via one or more communication towers (not shown) using wireless communication protocols, such as GSM (global system for mobile communications), CDMA (code division multiple access), WCDMA (wideband CDMA), GPRS (general packet radio service), EDGE (enhanced data rates for GSM evolution), and so forth. In one embodiment, smart phone 216, mobile phone 220, and/or PDA218 may communicate with other devices over a wireless local network using WiFi (e.g., IEEE802.11 x).
In other embodiments, the smart phone 216, PDA218, and/or mobile phone 220 may also communicate with other devices via a wired network. For example, smart phone 216, mobile phone 220, and PDA218 may communicate with other devices using the Public Switched Telephone Network (PSTN) or Ethernet protocols. The smart phone 216, PDA218, and mobile phone 220 may include a visual voicemail application to receive, listen to, and/or send voicemail messages.
The work VM server 232, the home VM server 234, and the wireless VM server 236 may each receive voicemail messages and store the voicemail messages in mailboxes associated with one or more user devices, such as user device 208 and 220. Examples of VM servers include Lucent Automatic Call Distributor (ACD) servers and comberse Voicemail Service Node (VSN) servers. VM server 232 and 236 may receive voicemail messages when, for example, the user does not answer the call request. VM server 232 may deliver the voicemail message to one of user device 208 and 220 or VVM server 252 upon request, for example. In one embodiment, VM server 232 and 236 may store video voicemails as well as audio voicemails. In one embodiment, the VVM server may aggregate voicemail information from the work VM server 232, the home VM server 234, and/or the wireless VM server 236.
In an exemplary embodiment, the user devices 208 and 220 may be associated with a single user. For example, the employer may have sent the user a smartphone 216 and a computer 208 (which may include a soft phone) for work. The same user may own a mobile phone 220 for personal use and may have a TV210 for home use at home. The same user may also have a PDA218 that can be used as a personal address book, as well as a home phone. In this exemplary embodiment, work VM server 232 may receive and store voicemails for smartphone 216; home VM server 234 may receive and store voicemails for PDA 218; and wireless VM server 236 may receive and store voicemails for mobile phone 220. While in this example the user device 208 and 220 may be associated with one user, the VM server 232 and 236 may store voicemails for more than one user (e.g., thousands or hundreds of thousands of users).
VM server 232 and 236 may notify VVM server 252 of the new voicemail message by sending a message (e.g., an SMPP message) to VVM server 252 by notification server 260. VM server 232 and 236 may also provide voicemail message information (e.g., a voicemail message header) to VVM server 252 by sending a message (e.g., an IMAP (internet message mapping protocol) message) to VVM server 252 via VVM gateway 262. For example, VM server 232 along with 236 may also send voicemail message audio files to device 208 along with 220 via VVM gateway 262, VVM server 252, and/or device agent 254.
SWD server 238 may include a database of device numbers (e.g., telephone numbers, mobile device numbers, Universal Resource Indicators (URIs), or Universal Resource Locators (URLs)) and respective mailbox identifiers (mailbox IDs) associated with each of the device numbers. The mailbox ID may identify a mailbox for storing voicemail messages for the corresponding device number. The mailbox ID may also identify the VM server (e.g., one of VM servers 232 and 236) with which the mailbox is associated. SWD 238 may also store information for associating multiple user devices, device numbers, or mailbox IDs with a single user, such as information associating user device 208 and 220 with the same user.
VVM server 252 may include one or more computer systems for hosting programs, databases, and/or applications. The VVM server 252 may run a Web server application such as Apache to serve Web pages upon request. For example, VVM server 252 may allow a user to access voicemail messages over a data network, for example, using computer 208. The VVM server 252 may request voicemail messages and/or headers from one of the VM servers 232 and 236 and may forward the voicemail messages and/or headers to any of the devices 208 and 220 either directly or through the VVM gateway 262, the device proxy 254, and/or the SMPP gateway 256.
The notification server 260 may receive voicemail message notifications (e.g., SMPP messages) from the VM server 232 plus 236. The notification server 260 may pass notifications of voicemail messages received from the VM server 232 and 236 to the VVM server 252 (e.g., as HTTP messages).
The VVM gateway 262 may receive information regarding the voicemail message (e.g., a voicemail message header) from the VM server 232 and 236. The information may include a list of voicemail messages that may include data compliant with, for example, the IMAP protocol. The VVM gateway 262 may pass the voicemail message headers received from the VM server 232 and 236 to the VVM server 252. For example, the VVM gateway 262 may pass the data to the VVM server 252 in the form of XML (extensible markup language) data in an HTTP message.
The device proxy 254 may receive communications from one or more user devices 210 and 220 for forwarding to other devices (e.g., the VVM server 252 and/or the SMPP gateway 256). The device agent 254 may also authenticate the user device (e.g., the user device 210 and 220) by, for example, communicating with the authentication server 258. Authentication server 258 may store information related to device authentication, such as a session cookie. The device proxy 254 may communicate with the device (e.g., the user device 210 and 220) using a secure channel implementing, for example, SSL (secure sockets layer) protocol or TLS (transport layer security) protocol.
The SMPP gateway 256 may receive an SMPP (e.g., SMS (short message system)) message from the device proxy 254 and deliver the received SMPP message to a user device, such as the user device 216 and 220. The SMPP gateway 256 may also receive SMPP messages from the user device 216 and 220 and pass the received SMPP messages to the device proxy 254, for example.
In other embodiments, network 200 may include more, fewer, or different devices. Further, one or more devices 208-262 may perform one or more functions of any other device in network 200. Further, one or more of the devices 208 and 262 may be located remotely from each other, e.g., the devices 208 and 262 may be geographically distinct. Although FIG. 2 shows the devices 208 and 262 coupled to each other in a particular configuration, the devices 208 and 262 may be arranged in other configurations, coupled directly to each other or coupled through one or more networks such that any one of the devices 208 and 262 may communicate with any other one of the devices 208 and 262. For example, any of devices 208 and 262 may be connected via the Internet, Ad Hoc network, local area network (L)AN), Wide Area Network (WAN), Metropolitan Area Network (MAN), cellular network, PSTN, and high-speed optical fiber network (e.g., FiOS)TM) Or any other network or combination of networks to communicate with any other of devices 208 and 262.
Fig. 3 is an illustration of an exemplary user device 300, such as one or more of user devices 208 and 220, of user device 300. As shown, user device 300 may include a speaker 304, a display 306, control keys 308, a keypad 310, and a microphone 312. User device 300 can include other components (not shown in fig. 3) that facilitate receiving, transmitting, and/or processing data. Further, other configurations of the user equipment 300 are possible.
Speaker 304 may provide audible information to a user of user device 300. The display 306 may include a display screen to provide visual information to a user, such as video images or pictures, and may include a touch screen display to accept input from a user. For example, the display 306 may provide information regarding incoming or outgoing telephone calls, telephone numbers, contact information, current time, voice mail, email, and so forth. For example, the display 306 may display the GUIs shown in FIGS. 1B-1D.
Control keys 308 may allow a user to interact with user device 300 to cause user device 300 to perform one or more operations, such as interacting with a visual voicemail application. Control keys 308 may include soft keys that may perform functions indicated on display 306 directly on the keys. Keypad 310 may include a standard telephone keypad and may include additional keys to enable entry (e.g., typing) of information into user device 300. The microphone 312 may receive audible information from the user.
Fig. 4 is a block diagram of exemplary components of a client computing module 400. The user devices 208 and 220 may each include one or more computing modules 400. Client computing module 400 may include bus 410, processing logic 420, input device 430, output device 440, communication interface 450, and memory 460. The client computing module 400 may include other components (not shown) that facilitate receiving, transmitting, and/or processing data. Further, other configurations of components in the client computing module 400 are possible.
Bus 410 may include a path that allows communication among the components of client computing module 400. Processing logic 420 may include any type of processor or microprocessor (or group of processors or microprocessors) that interprets and executes instructions. In other embodiments, processing logic 420 may comprise an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), or the like.
Input devices 430 may include devices that allow a user to input information into client computing module 400, such as a keyboard (e.g., control keys 308 and/or keypad 310), a mouse, a pen, a microphone (e.g., microphone 312), a remote control, a touch screen display (display 306), and so forth. The input device 430 may include an accelerometer that may allow the client computing module to measure acceleration and movement of a device that includes the client computing module. Output devices 440 may include devices that output information to a user, such as a display (e.g., display 306), a printer, speakers (e.g., speakers 304), and so forth. The output device 440 may also include a vibrator to alert the user.
The input device 430 and the output device 440 may allow a user to activate a particular service or application, such as a visual voicemail application and/or service. Input device 430 and output device 440 may allow a user to receive and view a menu of options and to select from the menu options. The menu may allow the user to select various functions or services associated with the application executed by the client computing module 400.
Communication interface 450 may include any transceiver-like mechanism that enables client computing module 400 to communicate with other devices and/or systems. Communication interface 450 may include a transmitter that may convert baseband signals to Radio Frequency (RF) signals and/or a receiver that may convert RF signals to baseband signals. Alternatively, the communication interface 450 may include a transceiver to perform the functions of both a transmitter and a receiver. The communication interface 450 may be coupled to an antenna forFor transmission and reception of RF signals. The communication interface 450 may include a network interface card, such as an ethernet card, for wired communication, or a wireless network interface (e.g., WiFi) card for wireless communication. The communication interface 450 may also include, for example, a Universal Serial Bus (USB) port for communicating over a cable, a Bluetooth for communicating with Bluetooth devicesTMA wireless interface, a Near Field Communication (NFC) interface, etc. Communication interface 450 may implement a wireless communication protocol such as GSM, CDMA, WCDMA, GPRS, EDGE, or the like. Communication interface 450 may also receive, transmit, and/or process digital or analog audio input/output and/or digital or analog video input/output.
Memory 460 may include a Random Access Memory (RAM) or other type of dynamic storage device that may store information and instructions for execution by processing logic 420, e.g., applications; a Read Only Memory (ROM) device or other type of static storage device that may store static information and instructions for use by processing logic 420; and/or some other type of magnetic or optical recording medium and its corresponding drive, such as a Hard Disk Drive (HDD), for storing information and/or instructions.
Memory 460 may include a VVM application 462, a voicemail message table 464 (e.g., a database), and a voicemail audio file 466. The VVM application 462 may allow a user to receive, select, listen to, and manipulate (e.g., save, forward, delete) voicemail messages. Message table 464 may store a list of voicemail messages including information such as the date and time of the voicemail message, the duration of the message, the status of the message, and the like. The voicemail audio file 466 may include audio data of a voicemail (e.g., in any format including MP3, WMA (Windows audio media), AAC (advanced audio coding), QCP (Qualcomm code prediction and/or Qualcomm code excited linear prediction), Ogg Vorbis, etc.).
The client computing module 400 may perform certain operations, as described below. The client computing module 400 may perform these operations in response to the processing logic 420 executing software instructions contained in a computer-readable medium, such as the memory 460. A computer-readable medium may be defined as a physical or logical memory device. The software instructions may be read into memory 460 from another computer-readable medium or from another device via communication interface 450. The software instructions contained in memory 460 may cause processing logic 420 to perform processes that are described below.
Fig. 5 is a block diagram of exemplary components of a server computing module 500. The device 232 and 262 may include one or more server computing modules (e.g., server computer module racks), such as computing module 500. The server computing module 500 may include a bus 510, processing logic 520, a communication interface 550, and memory 560. The server computing module 500 may include other components (not shown) that assist in receiving, transmitting, and/or processing data. In addition, other configurations of the components in module 500 are possible.
Bus 510 may include a path that allows communication among the components of module 500. Processing logic 520 may include any type of processor or microprocessor (or group of processors or microprocessors) that interprets and executes instructions. In other embodiments, processing logic 520 may comprise an ASIC, FPGA, or the like.
Communication interface 550 may include any transceiver-like mechanism that enables module 500 to communicate with other devices and/or systems. Communication interface 550 may include a transmitter that may convert baseband signals from processing logic 520 to RF signals and/or a receiver that may convert RF signals to baseband signals. Alternatively, the communication interface 550 may include a transceiver to perform the functions of both a transmitter and a receiver. Communication interface 550 may be coupled to an antenna for transmission and reception of RF signals. The communication interface 550 may include a network interface card, such as an ethernet card, for wired communication, or a wireless network interface (e.g., WiFi) for wireless communication. The communication interface 550 may also include, for example, a USB port for communicating over a cable, a bluetooth wireless interface for communicating with bluetooth devices, an NFC interface, or the like. Communication interface 550 may implement a wireless communication protocol such as GSM, CDMA, WCDMA, GPRS, EDGE, or the like. Communication interface 550 may receive, transmit, and/or process digital or analog audio input/output and/or digital or analog video input/output.
Memory 560 may include a RAM or other type of dynamic storage device that may store information and instructions for execution by processing logic 520, e.g., applications 562 and application data 564; a ROM device or other type of static storage device that may store static information and instructions for use by processing logic 520; and/or some other type of magnetic or optical recording medium and its corresponding drive, such as an HDD, for storing information and/or instructions.
In the case of VM server 232 and 236, for example, applications 562 may include an application for receiving voicemail messages on behalf of a user device, such as user device 216 and 220, for example, when the user of the device does not answer the call request. The application data 564 may include a voicemail message table and corresponding audio data.
In the case of VVM server 252, for example, applications 562 may include an application that receives voicemail message information and corresponding voicemail audio data from VM server 232 and 236 and delivers the received voicemail message information and corresponding voicemail audio data to a user device. As such, in the case of VVM server 252, application data 564 may also include a voicemail message table and a corresponding audio file.
As described in detail below, the module 500 may perform certain operations. Module 500 may perform these operations in response to processing logic 520 executing software instructions contained in a computer-readable medium, such as memory 560. The software instructions may be read into memory 560 from another computer-readable medium or from another device via communication interface 550. The software instructions contained in memory 560 may cause processing logic 520 to perform processes that are described below.
FIG. 6A is an illustration of exemplary message tables 600-1, 600-2, and 600-3 (collectively, "message tables 600"), such as a database. Message tables 600 may each store information related to voicemail messages. Each entry (e.g., record) in the message table 600 may include information about a different voicemail message.
The message table 600 may be stored in one or more of the VM servers 232 and 236 (e.g., in the memory 560). In one exemplary embodiment, the message table 600-1 may store information about messages associated with the smartphone 216; message table 600-2 may store information regarding messages associated with PDA 218; and the message table 600-3 may store information for messages associated with the mobile phone 220. In this exemplary embodiment, the message table 600-1 may be stored in the work VM server 232; the message table 600-2 may be stored in the home VM server 234; and may store the message table 600-3 in the wireless VM server 236. In other embodiments, the message table 600 may also be stored in another device in the network 200, such as in the VVM server 252 (e.g., in the memory 560) or any of the devices 208 and 220 (e.g., in the memory 460 as the message table 464).
Message table 600 may include a mailbox identifier ("mailbox ID" or "MBID") field 602, a message identifier ("message ID" or "MID") field 604, a called Device Number (DN) field 605, a calling DN field 606, a status field 610, and a location field 612.
Mailbox ID field 602 may include a value that identifies a mailbox in one of VM server 232 and 236. In the exemplary message table 600, there are three mailboxes identified in the mailbox ID field 602: MBA1, MBB1 and MBC 1. In this example, the MBA1 may be a mailbox in the working VM server 232 associated with the smartphone 216, the MBB1 may be a mailbox in the home VM server 234 associated with the PDA218, and the MBC1 may be a mailbox in the wireless VM server 236 associated with the mobile phone 220.
Message ID field 604 may include a value that may uniquely identify a voicemail message in a mailbox. For example, record 652 in message table 600-1 stores the message identifier of A124 in message ID field 604.
Called DN field 605 may include a device number (e.g., a telephone number, mobile device number, URI, or URL) of the user device to which the corresponding voicemail message is provided. In the exemplary message table 600, there are three device numbers in the called DN field 605: 2022513434, 7035678989, and 2023459292. In this example, the device number 2022513434 may be associated with the mobile phone 220; device number 2023459292 may be associated with PDA 218; and may associate the device number 7035678989 with the smartphone 216. In one embodiment, there may be a one-to-one relationship between called DNs and mailbox IDs such that each called DN is associated with a mailbox ID and vice versa.
Calling DN field 606 may include a device number (e.g., a telephone number, mobile device number, URI, or URL) of the user device associated with deposit of the corresponding voicemail message. In the exemplary message table 600, the messages identified in the records 652 and 656 are deposited by various device numbers as indicated in field 606.
Status field 610 may include one or more tags that identify the status (e.g., status) of the corresponding voicemail message. The tags in the status field 610 may include new, listened to, saved, and deleted. The new tag may indicate a voicemail message that the user has not listened to. The listened to tag may indicate a voicemail message that the user has listened to. The save tag may indicate that the user requests a voicemail message to be saved in one of the user device 208 and 220 and/or one of the VM server 232 and 236 for a number of days (e.g., 21 days). The delete tag may indicate a voicemail message that has been marked for deletion by, for example, the user device. Other identifications in the status field 610 are possible, such as a business tag identifying business voicemail messages, a personal tag identifying personal voicemail messages, a family tag identifying voicemail messages from family members, an urgent tag identifying urgent messages, and a non-urgent tag identifying non-urgent messages.
The location field 612 may indicate the location (e.g., filename and/or pathname, URL, or URI) of the audio file associated with the corresponding voicemail message. In one embodiment, the audio file may be stored locally and the location field 612 may include the filename of the local file associated with the corresponding voicemail message. In another embodiment, the audio file may be stored remotely, and the location field 612 may include the remote location of the audio file associated with the corresponding voicemail message.
The message table 600 may include additional, different, or fewer fields than those shown in fig. 6A. For example, the message table 600 may include a call time field, which may include the date and time that the corresponding voicemail information was left in one of the VM servers 232 and 236. As another example, the message table 600 may include a priority field that may specify the urgency (e.g., 1-10) of the corresponding voicemail message.
FIG. 6B is a block diagram of exemplary message tables 600-1 ', 600-2', and 600-3 '(collectively, "message tables 600'"). The message tables 600-1 ', 600-2 ', and 600-3 ' may represent 600-1, 600-2, and 600-3, respectively, but at different points in time. The message table 600 'may be referred to as an "updated message table 600'". Similar to the exemplary message table 600, the exemplary message table 600' includes records 652, 654, and 656. However, unlike the message table 600, the message table 600' includes records 658, 660, and 662. Specifically, the message table 600-1' includes records 662 that do not appear in the message table 600-1; the message table 600-2' includes records 658 that do not appear in the message table 600-2; and the message table 600-3' includes records 660 that do not appear in the message table 600-3. As shown in the exemplary message table 600', each of the records 658, 660, and 662 includes the new state in the state field 610.
The data in the message tables 600 and 600' is for exemplary purposes only. As shown, for example, message tables 600-1 and 600-1' store information regarding only one mailbox ID and one called DN (e.g., mailbox ID of MBA1 and called DN of 7035678989). However, message tables 600-1 and 600-1' (and other message tables) may store information for more than one mailbox ID and called DN. Additionally, the message tables 600 and 600' may store thousands or hundreds of thousands of records.
Fig. 7A is a block diagram of an exemplary aggregated message table 700, e.g., a database. Aggregated message table 700 may store information from one or more other message tables, such as message table 600. The aggregated message table 700 may be stored in one or more of the devices 208 and 220 (e.g., in the memory 460 as the message table 464). Aggregated message table 700 may also be stored in VVM server 252 (e.g., in memory 560) or other device in network 200.
Similar to message table 600, each entry in aggregated message table 700 may include information about a different voicemail message. Further, aggregated message table 700 may include the same or similar fields as message table 600. That is, aggregated message table 700 may include a mailbox ID field 702, a message ID field 704, a called DN field 705, a calling DN field 706, a status field 710, and a location field 712. The aggregated message table 700 may include additional, different, or fewer fields than those shown in fig. 7. These fields shown in fig. 7 may store the same or similar information as described above for fields 602 and 612 in fig. 6A of the message table 600 or 600'.
Exemplary aggregated message table 700 may include records 752, 754, and 756, which may store the same information as records 652, 654, and 656, respectively, in message table 600. Thus, aggregated message table 700 may be considered an "aggregated" table because it aggregates message information from a disparate set of message tables corresponding to different mailboxes (in this case, message table 600). In an alternative embodiment, message table 700 may store data from only one other message table.
Fig. 7B is a block diagram of an example aggregated message table 700', which may represent the aggregated message table 700 at different points in time. The aggregated message table 700' includes records 752, 754, and 756 that also appear in the aggregated message table 700. Aggregated message table 700' also includes records 758, 760, and 762 that are not present in aggregated message table 700. The example aggregated message table 700 'may include records 758, 760, and 762, which may store the same information as records 658, 660, and 662, respectively, in the message table 600'. As shown, each of the records 758, 760, and 762 includes a new state in the state field 710.
The data in aggregated message tables 700 and 700' is for exemplary purposes. For example, the aggregated message tables 700 and 700' as shown store information about voicemail messages associated with individual users, e.g., users associated with the smart phone 216, the PDA218, and the mobile phone 220. Aggregated message tables 700 and 700' may store information associated with thousands, or even hundreds of thousands, of users. In addition, for example, aggregated message tables 700 and 700' may store thousands or hundreds of thousands of messages.
Fig. 8 is a block diagram of an exemplary notification table 800. Notification table 800 may store information identifying a user device that will receive a notification when, for example, a voicemail message for a particular mailbox is received. Notification table 800 may be stored in SWD server 238 (e.g., in memory 560). Alternatively or additionally, the notification table 800 may be stored in the VVM server 252 or in another device in the network 200. In one embodiment, the user may edit and update the information stored in notification table 800 using, for example, a browser in computer 208.
Notification table 800 may include a mailbox ID field 602 and a notification DN field 804. The notification table 800 may include additional, different, or fewer fields than those shown in fig. 8.
Mailbox ID field 802 may include a value that identifies a mailbox in one of the VM servers, such as one of VM server 232 and 236. In the exemplary notification table 800, there are three mailboxes identified in the mailbox ID field 602: MBA1, MBB1 and MBC 1. For example, the three mailboxes correspond to mailboxes stored in message table 600 and aggregated message table 700.
Notification DN field 804 can include a device number (e.g., a telephone number, mobile device number, URI or URL) of the user device associated with the corresponding mailbox in mailbox ID field 802 for receiving voicemail message information notifications. As indicated in notification table 800, fields 802 and 804, for example, when mailbox MBC1 receives a new voicemail, then the user devices associated with device numbers 2022513434, 7035678989 and 2023459292 (e.g., mobile phone 220, smartphone 216 and PDA218, respectively) may be notified.
As indicated above, the notification table 800 may include additional, different, or fewer fields than shown in fig. 8. For example, the notification table 800 may include fields that indicate what type of notification message (e.g., only new messages) should be sent to different devices and when.
Fig. 9A is a flow diagram of an exemplary process 900A for receiving voicemail messages and for notifying a VVM server of voicemail information. Fig. 9A is described with respect to fig. 10, fig. 10 being an illustration of exemplary network signals for notifying user devices of voicemail information. For purposes of fig. 10, the device agent 254, SMPP gateway 256, notification server 260, and VVM gateway 262 have been omitted for simplicity. All or portions of the process 900A may be run in any of the working VM server 232, the home VM server 234, the wireless VM server 236, the VVM server 252, and/or the user device 208 and 220.
Process 900A may begin when a new voicemail message is received (block 902). For example, the mobile phone 220 (e.g., device number 2022513434) may receive a call request from another device (e.g., device number 4569812124). However, mobile phone 220 may not accept (e.g., not answer) the call request, which may result in the call request being directed to wireless VM server 236, and wireless VM server 236 may receive the voicemail message. The message table may be updated (block 903). Wireless VM server 236 may associate a received voicemail message with a message ID (e.g., of C130), a called DN (e.g., 2022513434), and a calling DN (e.g., 4569812124), and wireless VM server 236 may store this information in its message table, e.g., message table 600-3. In this example, as shown in message table 600-3', wireless VM server 236 may update message table 600-3 to include record 660. The wireless VM server 236 may also store the mailbox ID (e.g., MBC1), the status (e.g., new), and the file name of the audio data (e.g., msg4.qcp) in the record 660.
A notification of voicemail message information may be sent (block 904). In the event that a new voicemail (e.g., a voicemail message associated with record 660) has been received, wireless VM server 236 may send a notification to VVM server 252 of the new voicemail (signal 1002). The notification message (signal 1002) may include the called DN, e.g., 2022513434, from field 605 and the mailbox ID, e.g., MBC1, from mailbox ID field 602. For example, wireless VM server 236 may send the notification to VVM server 252 through notification server 260 (shown in fig. 2) (signal 1002). In one embodiment, the notification message (signal 1002) may comprise an SMPP message. In one embodiment, a change to the message table in the VM server (e.g., adding a record 660 to the message table 600-3' in the wireless VM server 236) may prompt the sending of the notification message (signal 1002). In this example, the notification of the voicemail message information may be the result of a new voicemail message. Notifications may also be sent for other reasons, such as a status change in the status field 610 of a voicemail message. In another embodiment, a notification message, such as signal 1002, may additionally or alternatively be sent periodically.
A notification of voicemail message information may be received (block 905). VVM server 252 may receive notification of voicemail message information (signal 1002). Voicemail message information may be requested (block 906). In response to signal 1002, VVM server 252 may send a request for information regarding voicemail messages stored by wireless VM server 236 (signal 1004). For example, the VVM server 252 may send a request to the wireless VM server 236 through the VVM gateway 262 (shown in fig. 2) (signal 1004). The request (signal 1004) may include the called DN (e.g., of mobile phone 220 received earlier in signal 1002), the mailbox ID (e.g., MBC1 received earlier in signal 1002), and a Personal Identification Number (PIN) associated with the mailbox ID. In one embodiment, if VVM server 252 does not store a PIN associated with the mailbox ID, VVM server 252 may request the PIN from mobile phone 220.
Information regarding the voicemail message may be received (block 908). VVM server 252 may receive voicemail message information from wireless VM server 236 (signal 1006). Wireless VM server 236 may send voicemail message information (signal 1006) in response to receiving a request for information regarding a voicemail message (signal 1004). For example, wireless VM server 236 may send this information to VVM server 252 via VVM gateway 262 (shown in fig. 2) (signal 1006). The voicemail message information (signal 1006) may include a list of voicemail messages. In one embodiment, the information may include XML formatted data including a message ID and corresponding state (e.g., information stored in state field 610).
In the current example where the mobile phone 220 receives a voicemail message, the information in the signal 1006 may include the message IDs of C129 and C130 from the message ID field 604. The information in signal 1006 may also include status associated with both messages, e.g., new for the voicemail message associated with message ID C130 (record 660) and listened to for the voicemail message associated with message ID C129 (record 654). In one embodiment, the signal 1006 may include information only related to the recording that prompted the notification signal 1002 first, e.g., a new or changed recording of information.
The VVM server 252 may update the aggregated message table (block 909). For example, prior to receiving information about a voicemail message (signal 1006), VVM server 252 may store an aggregated message table (similar to aggregated message table 700) that does not include records corresponding to information in record 660 of message table 600-3' of fig. 6B. Upon receiving information about the voicemail message (signal 1006), VVM server 252 may update its aggregated message table to include information in record 760 as shown in aggregated message table 700 ', which corresponds to record 660 of message table 600-3', such as the information received in signal 1006.
In another embodiment, in addition to or alternatively waiting for a notification (e.g., signal 1002), VVM server 252 may periodically request voicemail message information (e.g., by sending signal 1004). In this embodiment, VVM server 252 may periodically request voicemail message information from each VM server, such as VM server 232 plus 236.
The work VM server 232 and the home VM server 234 may also implement portions of the process 900A. For example, home VM server 234 may receive a voicemail message for an unanswered call to PDA218 (block 902). Information about the voicemail may be stored (block 903) as a record 658 in the message table 600-2'. The home VM server 234 may send a notification signal (similar to signal 1002) to the VVM server 252 (block 904). The VVM server 252 may request (block 906) and receive (block 908) voicemail information from the home VM server 234. The VVM server 252 may update (block 909) its aggregated message table to include the information in the record 758 (information received from the home VM server 234), as shown in the example aggregated message table 700'.
The work VM server 232 may also receive voicemail messages for unanswered calls to the smartphone 220 (block 902). Information about the voicemail may be stored (block 903) as a record 662 in the message table 600-1'. The work VM server 232 may send a notification signal (similar to signal 1002) to the VVM server 252 (block 904). The VVM server 252 may request (block 906) and receive (block 908) voicemail information from the working VM server 232. VVM server 252 may update its aggregate voicemail message table to include the information in record 762, as shown in aggregate message table 700'.
As shown, in response to the voicemail message remaining in the VM server 232 plus 236, the aggregated message table stored in the VVM server 252 may be updated from the condition shown in the exemplary message table 700 to that shown in the aggregated message table 700'. The aggregated message table stored in the VVM server 252 may then reflect the current state of messages from a number of VM servers, such as the work VM server 232, the home VM server 234, and the wireless VM server 236.
Fig. 9B is a flow diagram of an exemplary process 900B for notifying a user device of voicemail message information. Fig. 9B is also described with respect to fig. 10. Process 900B may begin when VVM server 252 updates its aggregated message table, such as aggregated message table 700. For example, as discussed above with respect to process 900A, VVM server 252 may update its aggregated messages from the condition shown in aggregated table 700 to the state shown in updated aggregated message table 700' (e.g., adding record 760 associated with mailbox MBC 1). If the aggregate message table has been updated (block 952: yes), the notification table may be queried (block 954). VVM server 252 may query notification table 800 stored in SWD server 238 to determine which user devices should be notified of changes to the aggregated message table. In this example, as indicated in notification table 800, a notification for a new voicemail in mailbox MBC1 may be sent to the user device associated with device number 2022513434 (e.g., mobile phone 220), the user device associated with device number 7035678989 (e.g., smartphone 216), and the user device associated with device number 2023459292 (e.g., PDA 218).
One or more user devices may be notified (block 958). An exemplary notification message is shown in fig. 10, where the VVM server 252 sends notification messages (signals 1008, 1010, and 1012) to the mobile phone 220, PDA 118, and smartphone 216 (e.g., via the device agent 254 and/or SMPP gateway 256 shown in fig. 2). In one embodiment, signals 1008 through 1012 may all include the same or similar information.
In one embodiment, for a particular mailbox ID, the notification (e.g., signal 1008) may include the number of voicemail messages (# VM), the number of new messages (# new), and the message ID of the most recent new voicemail message. The notification (e.g., signal 1008) may also include a mailbox ID to which the notification signal corresponds (e.g., a mailbox ID associated with a change to the aggregated message table that may have been made available in the notification message). In one embodiment, the notification (e.g., signal 1008) may also include the message IDs of all voicemail messages currently in the mailbox.
In one embodiment, the VVM server 252 may send notifications to the user device in the order specified by the user in the notification table 800. In another embodiment, for example, the VVM server 252 may first send a notification to the user device currently in use as measured by the accelerometer. In another embodiment, for example, the VVM server 252 may determine the device currently in use based on presence information stored in the user device.
In one embodiment, the notification (e.g., signal 1008) may comprise an SMS message. In this embodiment, the SMS message (e.g., signal 1008) may comprise a BREW (binary wireless runtime environment) application message in an SMS message. In another embodiment, the SMS message (e.g., signal 1008) may comprise an MWI (mail waiting indicator) message.
After sending the notification (block 958), the process 900B may return to block 952. Additionally, if there is no update to the aggregated message table (block 952: no), the process 900B may pause (block 956) and may return to block 952.
As discussed above with respect to process 900A, VVM server 252 may update its aggregate message table for mailboxes MBB1 and MBA1 and MBC 1. These updates may also cause queries to the notification table 800 (block 954) and sending notifications (block 958). In one embodiment, the notification (e.g., signal 1008) may include information for a set of mailbox IDs such as MBB1, MBA1, and MBC 1. For example, for a set of mailbox IDs, the notification signal may include the number of voicemail messages per mailbox ID (# VM), the number of new messages per mailbox ID (# new), and the message ID of the most recent voicemail message per mailbox ID. In this embodiment, the notification (e.g., signal 1008) may also include a mailbox ID to which the notification signal corresponds.
After receiving the notification of the voicemail message, the user device may determine to download some or all of the voicemail message information identified in the notification. Fig. 11 is a flow diagram of a process 1100 for receiving voicemail message information. All or a portion of process 1100 may be performed by a user device, such as one of user devices 208 and 220, VVM server 252, or other device in network 200. Process 1100 is described with respect to fig. 10 and 12, with fig. 12 being a diagram of exemplary network signals communicated in network 200 for receiving voicemail messages and/or authenticating user devices. For purposes of fig. 12, the device agent 254, SMPP gateway 256, notification server 260, and VVM gateway 262 have been omitted for simplicity.
The process 1100 may begin when the user equipment receives a notification message, such as signal 1008 (block 916). In one embodiment, the notification (signal 1008) may trigger the start of the VVM application 462. For example, the notification (signal 1008) may trigger the user equipment to perform process 1100.
A determination may be made whether to synchronize (block 1104). For example, the mobile phone 220 may receive the notification message (signal 1008) and may compare the information in the notification message (signal 1008) to information already stored in the mobile phone 220. Mobile phone 220 may determine that it does not have the most recent voicemail message information (block 1104: yes) and may initiate synchronization with VVM server 252 to receive the most recent voicemail message.
In one embodiment, a user device, such as mobile phone 220, may determine whether to synchronize based on, for example, the number of outstanding (e.g., new) messages, the total number of messages, and/or the latest message ID for a particular mailbox ID. In another embodiment, a user device, such as mobile phone 220, may determine whether to synchronize for a set of mailbox IDs based on, for example, the number of outstanding messages for the set of mailbox IDs, the total number of messages, and/or the ID for new messages. In another embodiment, the user device, e.g., mobile phone 220, may determine whether to synchronize based on, for example, only this information (i.e., the number of outstanding messages, the total number of messages, and/or the new message ID) for a particular mailbox ID. Further, the user device, e.g., mobile phone 220, may determine whether to synchronize based on this information (i.e., the number of outstanding messages, the total number of messages, and/or a new message ID for the set of mailbox IDs) only for a set of mailbox IDs. In another embodiment, the mobile phone 220 may determine whether to synchronize based on additional information such as a general list of voicemail message IDs.
The notification (e.g., signal 1008) may include a message that the devices should synchronize without having to indicate any other information. In another embodiment, the mobile phone 220 may periodically determine whether to synchronize, regardless of the information in the notification (signal 1008).
For example, if the notification message (signal 1008) includes the most recent message ID, which the mobile phone 220 does not know, the mobile phone 220 may decide to synchronize (block 1104: Yes). If the notification message (signal 1008) indicates that the number of not listened to messages is different from the information stored in the mobile phone 220, the mobile phone 220 may decide to synchronize (block 1104: yes). If the notification message (signal 1008) indicates that the total number of messages is different from the information stored in the mobile phone 220, the mobile phone 220 may decide to synchronize (block 1104: yes). In one embodiment, the mobile phone 220 may display the number of outstanding (e.g., new) voicemail messages and the total number of voicemail messages to the user of the mobile phone 220.
For example, mobile phone 220 may include an aggregated message table in the state shown in aggregated message table 700, while VVM server 252 may include an aggregated message table in the state shown in aggregated message table 700'. The notification message sent from the VVM server 52 to the mobile phone 220 (signal 1008) may include information about the aggregated message table 700', such as the total number of voicemail messages (e.g., 2 for the mailbox ID of MBC1), the number of new voicemail messages (1 for the mailbox ID of MBC1), and the most recent message ID (e.g., C130 for the mailbox ID of MBC 1). Mobile phone 220 may determine whether synchronization should be performed because mobile phone 220 may have incomplete information by comparing the received information (signal 1008) to the information in its aggregated message table (in the state shown in table 700). For example, the aggregate message table in the mobile phone 220 would suggest that the number of voicemail messages would be 1 (instead of 2) and that there are no new voicemail messages (instead of 1). In one embodiment, the notification (signal 1008) may include three separate signals, e.g., one for each mailbox ID.
If the user device is not synchronized (block 1104: no), process 1100 may return to block 1102. If the user device decides to synchronize (block 1104: yes), a login or connection request may be sent (block 1106). For example, mobile phone 220 may send a connection request to VVM server 252 and/or device agent 254 (signal 1202). A connection request may be received (block 1108). For example, a connection request sent by the mobile phone 220 may be received by the VVM server 252 and/or the device agent 254 (signal 1202). In one embodiment, the connection request (signal 1202) may include a request for a voicemail message header (e.g., a list of voicemail messages). The request for connection (signal 1202) may include a device number (e.g., for mobile phone 220), a mailbox ID, and/or a PIN. In one embodiment, the user of the mobile phone 220 may be prompted for a PIN and/or the PIN may be stored in the mobile phone 220 and provided automatically.
The user device may be authenticated (block 1110). To authenticate a user device, such as mobile phone 220, VVM server 252 and/or device agent 254 may send a PIN verification challenge to wireless VM server 236 (signal 1204). The PIN verification challenge (signal 1204) may include a PIN and mailbox ID received from a user device, such as mobile phone 220, in the login request (signal 1202). Wireless VM server 236 may determine whether the PIN verification message (signal 1204) includes the correct PIN and mailbox combination for the device number. If the PIN confirmation message (signal 1204) includes a correct PIN, the confirmation message (signal 1206) may indicate successful user authentication. If the PIN verification message (signal 1204) does not include a correct PIN, the confirmation message (signal 1206) may indicate a failed user verification (e.g., failed authentication). If successful, the VVM server 252 and/or the device agent 254 may store the PIN, mailbox ID, and device number for subsequent communication with the VM server 232 and 236.
A cookie may be sent (block 1112). After successful authentication, the VVM server 252 and/or the device agent 254 may respond to the mobile phone 220 with a login response message (signal 1208). The login response message (signal 1208) may include the device number of the mobile phone 220, the mailbox ID of the mobile phone 220, and the session cookie. In one embodiment, the session cookie may include or be associated with an expiration time. For example, the session cookie may expire after fifteen minutes, half an hour, one hour, etc. In one embodiment, authentication server 258 may provide a session cookie to VVM server 252 and/or device agent 254 for forwarding to mobile phone 220. In one embodiment, the session cookie may be used by the mobile phone 220 in future communications to authenticate the mobile phone 220. In one embodiment, VVM server 252 and/or device agent 254 may communicate with authentication server 258 to verify any cookies received from mobile phone 220.
In one embodiment, if the user device, such as mobile phone 220, does not receive a response (signal 1208), the user device may be in an environment where data transmission is not possible. In this case, the user device may implement a conventional user interface (TUI) for receiving voicemail messages, such as requiring the user to call one of VM server 232 and 236. In this case, the user may use the user device to call one of the VM servers 232 and 236 directly through the TUI.
A list of voicemail messages may be sent (block 1114). For example, VVM server 252 may send a list of voicemail message headers (signal 1208). In one embodiment, the voicemail header may include a message ID, a mailbox ID, a calling device number, and a status of the message (e.g., information stored in a message table). In one embodiment, the voicemail header may be sent using an XML data format.
For example, a voicemail message header (signal 1208) sent from VVM server 252 to mobile phone 220 may include records 752-762 of aggregated message table 700. In one embodiment, signal 1208 may not include the audio file itself (e.g., MSG. In another embodiment, signal 1208 may comprise the audio file itself. In one embodiment, the voicemail message header (signal 1208) sent to the mobile phone 220 may include only records from the aggregated message table (in the VVM server 252) with new or changed information. The voicemail message header (signal 1208) may include headers only to those voicemail mailboxes that the user device is configured to receive. For example, the mobile phone 220 may be configured with message headers for mailboxes MBA1, MBB1, and MBC1 as configured and stored in SWD 238.
The list of voicemail messages may be synchronized (block 1116). The mobile phone 220 may compare the voicemail message header received in signal 1208 with the voicemail message information stored in the mobile phone 220 and may update its message table. For example, the mobile phone 220 may update its aggregated message table from the conditions shown in the message table 700 to the conditions shown in the aggregated message table 700'. If the mobile phone 220 does not include a message table with any information, the mobile phone 220 may create a message table corresponding to the aggregated message table 700'.
As another example, if the voicemail message list (signal 1208) indicates that a particular message (e.g., identified by a message ID) has been deleted and that the mobile telephone 220 previously did not know this information, the mobile telephone 220 may indicate (by updating the message table) that the corresponding voicemail message has been deleted. If the voicemail message list (signal 1208) indicates that a particular message (e.g., identified by a message ID) has been listened to and the mobile phone 220 believes it is new, the mobile phone 220 may update its message table to indicate that the voicemail message has been listened to.
A voicemail message audio file may be requested (block 1118). For example, the mobile phone 220 may determine that the received list of voicemail messages indicates that a new voicemail audio file exists (e.g., msg9.qcp corresponding to record 762). The mobile phone 220 may not have a corresponding audio file, for example, the mobile phone 220 may only have title information. In this case, the mobile phone 220 may send a request message for an audio file to the VVM server 252 (signal 1212). The request message (signal 1212) may include a device number (e.g., of the mobile phone 220), a session cookie from an earlier authentication, and a mailbox and message ID for the requested voicemail audio file. In one embodiment, the request message (signal 1212) may include file formats supported by the user equipment, such as QCP, MP3, AAC, Ogg Vorbis, and the like.
The VVM server 252 may receive the request (signal 1212) and may send a request for an audio file (signal 1214) to the appropriate one of the VM servers 232 and 236 (block 1120). The request (signal 1214) for the wireless VM server 236 may include, for example, a device number (e.g., of the mobile phone 220), a PIN stored in the device agent 254 and/or VVM server 252 after authentication, a message ID, a location, a file format (e.g., QCP) and a mailbox ID of the request. In one embodiment, the user device requesting the audio file may be a device other than the user device associated with the mailbox ID. For example, the mobile phone 220 (associated with the wireless VM server 236) may request audio files from the home VM server 234 or the work VM server 232 and the wireless VM server 236.
A voicemail audio file may be received and forwarded (block 1121). For example, VVM server 252 may receive a voicemail audio file (signal 1216) and may forward the audio file to mobile phone 220 (signal 1218). In one embodiment, mobile phone 220 may send multiple audio file request messages (e.g., signal 1212) for each new voicemail message that mobile phone 220 decides to download. In this embodiment, the VVM server 252 may send a plurality of request messages (e.g., signal 1214) to the wireless VM server 236, the wireless VM server 236 may respond with a plurality of messages (e.g., signal 1216), and the VVM server 252 may send a plurality of audio files (e.g., signal 1218) to the mobile phone 220. In another embodiment, the audio file request message (signal 1212) may include multiple mailboxes and/or message IDs to identify multiple audio files, e.g., an audio file associated with each message ID. In one embodiment, the mobile phone 220 may prompt the user of the device before sending the audio file request signal (signal 1212), because, for example, the user does not want to spend time and/or bandwidth downloading multiple audio files.
The transmission of one or more voicemail audio files may be interrupted (block 1122). For example, a user may interrupt the downloading of an audio file by interrupting a VVM device application. In this case (block 1122: yes), the download of the voicemail message may be stopped (block 1124) and a new voicemail notification message may be displayed on the user device, e.g., mobile phone 220 (block 1126). If the download of the audio file is not interrupted (block 1122: no), a new voicemail notification message may be displayed to the user after a successful download of the audio file (block 1126). An exemplary new voicemail notification is shown in FIG. 1B discussed above.
A voicemail message header may be displayed (block 1128). The voicemail message header may include a calling number, a called number, a mailbox ID, and the like. An exemplary list of voicemail headers is shown in FIG. 1C discussed above. In one embodiment, the voicemail message header is displayed after the user confirms the new voicemail message notification message in box 1126 by, for example, touching one of the control keys 308 or the display 306 on the mobile phone 220. The voicemail messages may be displayed in the order of when the voicemail messages were received, in the order of urgency, etc.
A command to act on the voicemail message may be received (block 1130). For example, a user of mobile phone 220 may listen to a voicemail message, delete a voicemail message, save a voicemail message, and so on. For example, the GUI shown in FIG. 1C includes buttons 114 and 116 for deleting and playing voicemail messages, respectively.
One or more of the user devices 208 and 220 may similarly make a determination of whether to synchronize (block 1102). The user device may periodically initiate a synchronization process at any time, such as when the device is turned on, in response to a user action (e.g., selecting a button on the user device) or the like.
After the user device downloads the voicemail message information, the user may decide to listen to the voicemail message. Fig. 13 is a flow diagram of an exemplary process 1300 for listening to voicemail messages. Process 1300 is described with respect to fig. 14, fig. 14 being a diagram of exemplary network signals transmitted in network 220 for listening to voicemail messages. For purposes of fig. 14, the device agent 254, SMPP gateway 256, notification server 260, and VVM gateway 262 have been omitted for simplicity.
The process 1300 may begin when a user of a device, such as the mobile phone 220, selects a message for listening by, for example, using the control keys 308, keypad 310, and/or touch screen display 306. For example, FIG. 1C shows a GUI for a user to enter a command to listen to a message. A listen command may be received (block 1302). For example, a user device such as mobile phone 220 may receive a listen command from a user through the GUI shown in FIG. 1C. If the voicemail message audio file is in the memory 460 of the user device (block 1304: YES), the voicemail message may be played (block 1312). For example, mobile phone 220 may have downloaded a voicemail message from wireless VM server 236 in block 1121.
If the voicemail message audio file is not in the memory 460 of the user device (block 1304: no), the user device may request an audio file corresponding to the voicemail message. For example, if the user interrupts the audio file download (FIG. 11, block 1122: YES) or if the user chooses not to download an audio file, mobile phone 220 may not have a corresponding audio file in memory 460. In this case, in one embodiment, mobile phone 220 may send an audio file request message similar to signal 1212 of FIG. 12 to download a corresponding audio file (block 1306).
The user device may be authenticated (block 1308). For example, the device agent 254 and/or the VVM server 252 may authenticate the mobile phone 220 using, for example, a session cookie sent in the audio file request (similar to signal 1212). An audio file may be transmitted (block 1310). For example, VVM server 252 may send a request to wireless VM server 236 (similar to signal 1214) and may receive an audio file (similar to signal 1216). VVM server 252 may send an audio file (similar to signal 1218) to mobile phone 220 for playback to the user (block 1312). In one embodiment, an audio file may be streamed from wireless VM server 236 to mobile phone 220 for playing to a user (block 1312).
The message table in the user device may be updated (block 1314), for example, the status of listening to voicemail messages may be changed. For example, the state of the voicemail message may be changed from new to listened to or saved (e.g., in the message table 464). A listen message (e.g., a status change message) may be sent to the VM server (block 1316). For example, after playing a voicemail message, mobile phone 220 may send a listen message to VVM server 252 (signal 1402). The listen message (signal 1402) may include a device number (e.g., of the mobile phone 220), a session cookie (for authentication), and a mailbox ID and message ID corresponding to the listen message.
A listen message may be received and forwarded (block 1318). For example, the VVM server 252 may receive the message (signal 1402) and may forward the message (signal 1404) to the VM server 236. The listen message (signal 1404) sent to wireless VM server 236 may include a device number (e.g., of mobile phone 220), a message ID and mailbox ID of the listen message, and a PIN corresponding to the mailbox ID. VVM server 252 and/or device agent 254 may store, for example, an appropriate PIN for the corresponding mailbox ID. In one embodiment, the user device that sends the listen message may be a device other than the user device associated with the mailbox ID. For example, the mobile phone 220 (associated with the wireless VM server 236) may send a listen message to the home VM server 234 or the work VM server 232 and the wireless VM server 236.
The VM server may update the message table corresponding to the message ID (block 1320). For example, the wireless VM server 236 may update the message table 600-3 to change the status of the message from new to listened to. Likewise, VVM server 252 may also update its aggregated message table, such as message table 700, to change the status of the message from new to listened to (e.g., VVM server 252 may change the status of the message in record 760 associated with mailbox MBC1 to listened to). The listen message may be acknowledged (block 1322). The wireless VM server 236 may send an acknowledgement message (signal 1406) to the VVM server 252, which may be received and forwarded as an acknowledgement message (signal 1408) to a user device, such as the mobile phone 220.
The notification table may be queried (block 1324). For example, the VVM server 252 may query the notification table 800 to determine which user devices (if any) should be notified of updates to the aggregated message table that may have occurred at block 1320. One or more notifications may be sent (block 1326). For example, if the VVM server 252 changes the status of a voicemail message associated with mailbox MBC1 in response to a listen message from the mobile phone 220 (e.g., device number 2022513434), the VVM server 252 may query the notification table 800 to determine that the devices associated with device numbers 7035678989 (e.g., smartphone 216) and 2023459292 (e.g., PDA218) may be notified of the change in status. As shown in fig. 14, a notification message may be sent to smartphone 216 (signal 1410) and may be sent to PDA218 (signal 1412). The signals 1410 and 1412 may include the same or similar information as the notification signal sent at block 958 of the process 900B. Alternatively, the notification signal (signals 1410 and 1412) may include a mailbox ID, a message ID, and a corresponding change (e.g., indicating a state change from new to listened to). Accordingly, multiple user devices may remain up-to-date with respect to the information stored in the aggregated message table of VVM server 252.
In another embodiment, the user device (e.g., mobile phone 220) may update the VM server (e.g., wireless VM server 236) with a state change (e.g., listening for a message) at different times, such as periodically or when the user terminates the VVM application in the user device. In one embodiment, the user device may not change the state of the message in its memory until it receives an acknowledgement from the VM server.
After the user device downloads the voicemail message information, the user may perform various operations on the voicemail message, such as deleting or saving the voicemail message, which may change the message table in the network 200. Fig. 15 is a flow diagram of an exemplary process 1500 for updating or changing a message table in the network 200. The process 1500 may begin after a user device receives a command to act on a voicemail message, for example, and updates a message table stored in the device. For example, the user may enter a command into the user device to change the state of the message from "save" to "new". In this case, the user equipment may update its message table to change the state of the message from "save" to "new". As another example, the user may enter a command into the user device to delete the message. In this case, the user equipment may update its message table to change the status of the message from "listened to" deleted ". As another example, a user may enter a command into a user device to save a message. In this case, the user device may update its message table to change the status of the message from "listened to" saved ".
The process 1500 may be triggered by a change to any portion of a message table (e.g., the message table 464) stored in the user equipment. If the message table changes (block 1502: yes), an update message, such as a state change message, may be sent (block 1504). If there is no change in the message table (block 1502: no), the process 1500 may wait until there is a change.
The update message may include a list of voicemail messages and corresponding changes and may be sent to either VVM server 252 or VM server 232 and 236. The update message may identify the message to be updated by its corresponding mailbox ID and message ID. For example, the update message may also include a session cookie to authenticate the user device. Examples of update messages include listen messages, delete messages, and save messages as described above.
Update messages may be received and forwarded (block 1506). For example, the VVM server 252 may receive the update message and may forward it to the appropriate VM server. The message table may be updated (block 1510). For example, a VM server that receives an update message may update its message table. In addition, the VVM server 252 may also update the aggregated message table.
The notification table may be queried (block 1512). For example, as described above with respect to block 954 and process 900B, VVM server 252 may query notification table 800. VVM server 252 may determine which devices may be notified based on the mailbox ID of the voicemail message information that has been updated. A notification message may be sent (block 1514). The VVM server 252 may send a notification message, such as signal 1008 and 1012, to the user device identified by the query in block 1512. Such a notification message (transmitted at block 1514) may initiate the process 1100, and the user equipment may decide to synchronize as described above with respect to the process 1100. Thus, changes to a voicemail message in one device may be reflected in all devices that may access the same voicemail mailbox. In one embodiment, the VM server 252 may also or alternatively send a notification message, such as signal 902.
In one embodiment, the above-described method and system may allow for the management of e-mail as well as voicemail.
U.S. patent application entitled "MULTIPLE VISUAL VOICEMAIL MAILBOXES," filed on even date herewith, attorney docket No.20070242, is incorporated herein by reference.
In the foregoing specification, various preferred embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the broader scope of the invention as set forth in the claims that follow. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
While a series of blocks has been described above with regard to various processes, the order of the blocks may be different in other implementations. Further, non-dependency actions may be performed in parallel.
It will be apparent that aspects of the embodiments described above may be implemented in many different forms of software, firmware, and hardware in the embodiments illustrated in the figures. The actual software code or specialized control software used to implement the embodiments is not limiting of the invention. Thus, the operation and behavior of the embodiments of the invention were described without reference to the specific software code — it being understood that software and control hardware can be designed to be based on the embodiments described herein.
Furthermore, certain portions of the invention may be implemented as "logic" that performs one or more functions. This logic may include hardware, such as an application specific integrated circuit, a field programmable gate array, a processor or microprocessor, or a combination of hardware and software.
No element, act, or instruction used in the description of the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, an item without a quantity is intended to include one or more items. Where only one item is desired, the term "one" or similar language is used. Further, unless expressly stated otherwise, the phrase "based on" is intended to mean "based, at least in part, on".
Claims (24)
1. A system, comprising:
one or more servers comprising:
one or more memories including a first database for storing voicemail message information associated with a voicemail mailbox and a second database for associating a plurality of device numbers with the voicemail mailbox, wherein each of a plurality of communication devices is associated with a different one of the plurality of device numbers;
a receiver for receiving a new voicemail message associated with the voicemail mailbox;
a processor to query the second database to retrieve the plurality of device numbers associated with the voicemail mailbox;
a transmitter for transmitting a notification of the new voicemail message to each of the plurality of communication devices associated with the plurality of device numbers, wherein the notification causes one of the plurality of communication devices to determine whether to request a list of voicemail messages; and
a receiver to receive a request from one of the communication devices for a list of voicemail messages associated with a voicemail mailbox in response to the notification,
wherein the transmitter transmits the list of voicemail messages associated with the voicemail mailbox to the one of the plurality of communication devices, the list of voicemail messages including the new voicemail message.
2. The system of claim 1, wherein the first and second sensors are disposed in a common housing,
wherein the notification includes an indication of a number of new voicemail messages associated with the voicemail mailbox, an indication of a total number of voicemail messages associated with the voicemail mailbox, and an identifier of the new voicemail message, an
Wherein the list of voicemail messages includes a status of each of the voicemail messages.
3. The system of claim 1, wherein the one of the plurality of communication devices comprises: a processor for determining whether to request the list of voicemail messages based on the number of new voicemail messages, the total number of voicemail messages, or the identifier of the new voicemail message.
4. The system of claim 3, wherein the processor of the one of the communication devices compares a list of voicemail message audio files stored in the one of the communication devices with the list of voicemail messages and determines whether to request an audio file corresponding to one of the voicemail messages in the list of voicemail messages based on the comparison.
5. The system of claim 1, wherein the receiver receives a status change message associated with one of the voicemail messages from the one of the plurality of communication devices, wherein the processor updates the status associated with the one of the voicemail messages in the first database based on the status change message.
6. The system of claim 5, wherein the status comprises an indication of new, listened to, saved, or deleted.
7. The system of claim 5, wherein the transmitter transmits another notification to another one of the plurality of communication devices, the another notification indicating the updated status.
8. The system of claim 7, wherein the other notification includes an indication of an update to the number of new voicemail messages associated with the voicemail mailbox, an indication of an update to the total number of voicemail messages associated with the voicemail mailbox, and an identifier of a most recent new voicemail message.
9. A network device, comprising:
a memory for storing a database comprising voicemail message information associated with a voicemail mailbox;
a transmitter to send a notification to each of a plurality of communication devices, the notification including an indication of a number of new voicemail messages in the voicemail mailbox, an indication of a total number of voicemail messages in the voicemail mailbox, and an identifier of a most recent voicemail message in the voicemail mailbox, wherein the notification signal causes each of the plurality of communication devices to determine whether to request a list of voicemail messages;
a receiver for receiving a request from one of the communication devices for a list of voicemail messages associated with voicemail message information stored in the database in response to the notification; and
wherein the transmitter transmits the list of voicemail messages to the one of the plurality of communication devices.
10. The network device of claim 9, wherein the receiver receives a status change message associated with one of the voicemail messages from the one of the plurality of communication devices, wherein the network device includes a processor to update a status associated with the one of the voicemail messages based on the status change message.
11. The network device of claim 10, wherein the transmitter sends another notification to another one of the plurality of communication devices, the another notification including an indication of an update to the number of new voicemail messages in the mailbox, an indication of an update to the total number of voicemail messages in the mailbox, and an identifier of a most recent new voicemail message.
12. A communication device, comprising:
a receiver to receive a notification from a network device, the notification including an indication of a number of new voicemail messages in a voicemail mailbox, an indication of a total number of voicemail messages in the voicemail mailbox, and an identifier of a most recent new voicemail message in the voicemail mailbox;
a processor for determining whether to request a list of voicemail messages based on the number of new voicemail messages, the total number of voicemail messages, or the identifier of the most recent new voicemail message; and
a transmitter to send a request to the network device for a list of the voicemail messages in the mailbox, wherein the receiver receives the list of the voicemail messages in the mailbox from the network device.
13. The communication device of claim 12, further comprising:
a memory for storing a list of voicemail message audio files and corresponding voicemail message audio files,
wherein the processor compares the list of voicemail message audio files to the list of voicemail messages and determines whether to request an audio file corresponding to one of the voicemail messages in the list of voicemail messages based on the comparison,
wherein the transmitter sends a request for the audio file to the network device.
14. The communication device of claim 12, wherein the list of voicemail messages includes a status of each of the voicemail messages.
15. The communication device of claim 14, wherein the transmitter sends a status change message associated with one of the voicemail messages in the mailbox to the network device for updating a status associated with the one of the voicemail messages in the mailbox based on the status change message.
16. The communication device of claim 15, wherein the state or change of state comprises a new, listened to, saved, or deleted indication.
17. A method, comprising:
receiving a new voicemail message in a mailbox;
sending a notification to each of a plurality of communication devices associated with the mailbox to determine whether to request a list of voicemail messages, the notification including an indication of a number of new voicemail messages in the mailbox, an indication of a total number of voicemail messages in the mailbox, and an identifier of the new voicemail message;
receiving a request from one of the communication devices for a list of voicemail messages in the mailbox in response to the notification; and
sending a list of the voicemail messages in the mailbox to the one of the plurality of communication devices, the list of voicemail messages including the new voicemail message.
18. The method of claim 17, further comprising:
determining, at the one of the communication devices, whether to request the list of voicemail messages based on a number of new voicemail messages in the mailbox, a total number of voicemail messages in the mailbox, or the identifier of the new voicemail message.
19. The method of claim 18, further comprising:
comparing, at the one of the communication devices, a list of voicemail message audio files stored in the one of the communication devices with the list of voicemail messages; and
determining whether to request an audio file corresponding to one of the voicemail messages in the list of voicemail messages based on the comparison.
20. The method of claim 17, wherein the list of voicemail messages includes a status of each of the voicemail messages.
21. The method of claim 20, further comprising:
receiving a status change message associated with one of the voicemail messages in the mailbox from the one of the plurality of communication devices; and
updating a status associated with the one of the voicemail messages in the mailbox based on the status change message.
22. The method of claim 21, wherein the state or changed state comprises a new, listened to, saved, or deleted indication.
23. The method of claim 21, further comprising:
sending another notification to another one of the plurality of communication devices indicating a status of an update associated with the one of the voicemail messages in the mailbox.
24. The method of claim 23, wherein the other notification includes an indication of an update to the number of new voicemail messages in the mailbox, an indication of an update to the total number of voicemail messages in the mailbox, and an identifier of a most recent voicemail message.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61/013,549 | 2007-12-13 | ||
US61/018,044 | 2007-12-31 | ||
US12/236,808 | 2008-09-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
HK1147872A true HK1147872A (en) | 2011-08-19 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9055152B2 (en) | Managing visual voicemail from multiple devices | |
US8195130B2 (en) | Visual voicemail network architecture | |
US8406386B2 (en) | Voice-to-text translation for visual voicemail | |
US20210241237A1 (en) | System and method of managing meeting invitations | |
US8600363B2 (en) | Synchronization in unified messaging systems | |
CN103460727B (en) | Integrated contact card communication | |
US8755794B2 (en) | System and method of sharing information between wireless devices | |
US8473545B2 (en) | Distributing presence information | |
JP2009518947A (en) | Distribution management of downloadable content using presence server | |
US20080075251A1 (en) | Method of and System for Managing Outgoing Telephone Calls | |
JP2011519437A (en) | Calendar event prompt system and calendar event notification method | |
JP2008510249A (en) | Method, apparatus, system, and computer program product for providing availability data associated with a data file to a presence service user | |
US8837688B2 (en) | Provision of private information to voice telephone call parties | |
US20110208813A1 (en) | Personal status communications manager | |
HK1147872A (en) | Managing visual voicemail from multiple devices | |
HK1147873A (en) | Multiple visual voicemail mailboxes | |
KR20050072720A (en) | Method of service for creating, managing, and active reception of information data between each communication terminals |