Patent Publication Number: US-8542804-B2

Title: Voice and text mail application for communication devices

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of priority to U.S. Provisional Patent Application Nos. 61/256,866 filed Oct. 30, 2009 and 61/259,094 filed Nov. 6, 2009, both entitled “Voice and Text Mail Application For Communication Devices,” both of which are incorporated herein by reference for all purposes. This application is also a Continuation-in-Part (CIP) of co-pending U.S. patent application Ser. No. 12/028,400 entitled “Telecommunication and Multimedia Management Method and Apparatus,” filed Feb. 8, 2008, which is incorporated by reference herein for all purposes. 
    
    
     BACKGROUND 
     1. Field of the Invention 
     This invention relates to communications, and more particularly, to a visual voice and text mail method and application capable of supporting both synchronous and asynchronous voice communication between communication devices. 
     2. Description of Related Art 
     In spite of being a mature technology, telephony has changed little over the years. Similar to the initial telephone system developed over a hundred years ago, a telephone call today still requires a circuit connection between the parties before voice can be transmitted. If a circuit connection is not established, for whatever reason, no communication can take place. 
     A known advancement in telephony is voice mail. If a call is made and the recipient does not answer the phone, then the call is “rolled-over” into a separate voice mail system, typically maintained on a voice mail server or an answering machine connected to the phone of the recipient. The telephone and voice mail systems, however, are not integrated. Rather, the voice mail services are “tacked-on” to the underlying phone system. The fact that the two systems are separate and distinct, and not integrated, creates a number of inconveniences and inefficiencies. 
     Consider a real-world situation where two parties wish to have a brief conversation. If party A makes a call while party B is busy, then after the phone rings numerous times, party A is eventually rolled over into the voice mail of party B. Only after listening to and navigating through the voice mail system, can party A leave a message. To retrieve the message, party B is required to call into the voice mail system, possibly listen to other messages first in the queue, before listening to the message left by party A. In reply, party B may call party A. If party A is busy, the above process is repeated. This sequence may occur multiple times as the two parties attempt to reach each other. Eventually one of the parties will place a call and a live circuit will be established. Only at this point is it possible for the two parties to engage in a live conversation. The difficulty and time wasted for the two parties to communicate through voice mail, as highlighted in this real-world example, is attributable to the fact that the telephone system and voice mail are two different systems that do not interoperate very well together. 
     With the advent of the Internet, telephony based on Voice over Internet Protocol or VoIP has become popular. Despite a number of years of development, VoIP services today are little different than traditional telephony. Add on services like voicemail, email notifications and phonebook auto-dialing, are all common with VoIP. The fundamental communication service of VoIP, however, remains the same. A party is still required to place a call and wait for a connection to be made. If the recipient does not answer, the call is rolled over into voice mail, just like conventional telephony. VoIP has therefore not changed the fundamental way people communicate. 
     Visual voice mail is a recent advancement in telephony. With visual voice mail, a list of received messages is visually presented on a display of a communication device of a recipient, such as a mobile phone. The recipient may select any of the messages in the list to either listen to or delete, typically by simply touching the display adjacent where the message appears. When a message is selected for review, the media of the message is immediately rendered, without the user having to either (i) dial-in to the voice mail system or (ii) listen to previously received messages in the queue. In various implementations of visual voice mail, the message selected for review either resides at and is locally stored on the communication device itself, or is retrieved from the mail server and then rendered. When a message is selected for deletion, the selected message is removed from the list appearing on the display and also possibly removed from storage, either on the communication device itself, the network, or both. 
     One current example of a product including visual voice mail is the iPhone by Apple Inc. of Cupertino, Calif. With visual voice mail on the iPhone, incoming messages are first received and stored on the voice mail server of a recipient. Once the message is received in full, the message is downloaded to the iPhone of the recipient and the recipient is notified. At this point, the recipient may review the message, or wait to review the message at an arbitrary later time. With visual voice mail on the iPhone, however, incoming voice messages can never be rendered “live” in a real-time rendering mode because the message must be received in full before it can be rendered. 
     YouMail is yet another example of an improvement over conventional email systems. YouMail provides a number of features, including visual voice mail, voice-to-text transcriptions of voicemails, a single inbox for both voice mails and emails, sharing or forwarding of voicemails via either email or instant messaging, and personalized greetings for different callers. Like visual voice mail on the iPhone, voice messages with YouMail can never be reviewed “live” by the recipient. Rather the voice messages must be received in full before the recipient can access the message from his/her inbox and render the message asynchronously. 
     “Google Voice” offers additional improvements to conventional email systems. With Google Voice, one telephone number may be used to ring multiple communication devices, such as the desktop office phone, mobile phone, and home phone of a user. In addition, Google Voice offers a single or unified voicemail box for receiving all messages in one location, as opposed to separate voicemail boxes for each communication device. Google Voice also offers a number of other features, such as accessing voice mails online over the Internet, automatic transcriptions of voice mail messages into text messages, the ability to create personalized greetings based on who is calling, etc. In addition, Google Voice also provides a recipient with the options to either (i) listen to incoming messages “live” as the media of the message is received (ii) or join the in a live conversation with the person leaving the message. With both options, the recipient can either listen live or enter a live conversation only at the current most point of the incoming message. 
     With Google Voice, however, the rendering options for reviewing incoming messages are limited. There is no ability to; (i) asynchronously review the previous portions of a message, behind the current most point, while the message is being left; (ii) seamlessly transition the review of an incoming message from an asynchronous time-shifted mode to a synchronous real-time mode after the asynchronous rendering of the media of the message has caught up to the “live” point of the incoming message; or (iii) reply to an incoming voice message with a text message, or vice versa, using a single unified communication application. 
     Another drawback to each of the voice mail systems mentioned above is that a circuit connection always must be established before the recipient of a message can reply with either a live voice conversation or another voice message. For example if a person would like to respond to a voice mail by speaking to the sender of the message, they are still required to dial the telephone number of the sender of the message. Alternatively, some visual voice mail systems have a “compose” feature, allowing the recipient to generate a reply message. Once the message is created, it may be transmitted. With either case, a circuit connection must be established, before the live conversation can take place or the composed message sent. With the live conversation reply alternative, the call is “rolled-over” into the voice mail system of the called party if a circuit connection cannot be established, and a voice mail message may be left once a circuit connection is established with the voice mail system. With the message option, a circuit connection has to be established with the voice mail system of the original sender before the message may be left. 
     SUMMARY OF THE INVENTION 
     A voice and text mail application method and apparatus capable of supporting both synchronous and asynchronous voice communication is described herein. The application is configured to (i) simultaneously and progressively store media of an incoming message as the media is received at a communication device over the network and (ii) provides a “catch up” rendering option which enables the rendering of previously received media of the message starting at any previous point of the message and to catch up the rendering to the current point or head of the message as the media of the message is being received. By rendering the previously received media of the incoming message out of storage at a rate faster relative to when the media of the incoming message was originally encoded, eventually the rendering will catch up and seamlessly transition the rendering from an asynchronous time-shifted mode out of storage to a synchronous mode as the media of the message is received over the network. In various alternative embodiments, the application also enables the (a) screening of the media of the incoming message as the media is received over the network; (b) the ability to join a live conversation with the sender of the incoming message as the media of the incoming message is received over the network, and/or (c) the option to ignore the media of the incoming message. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention may best be understood by reference to the following description taken in conjunction with the accompanying drawings, which illustrate specific embodiments of the invention. 
         FIG. 1  is a block diagram of the telecommunication system according to the invention. 
         FIG. 2  is a diagram of a visual mail application running on client devices in the telecommunication system according to the invention. 
         FIGS. 3A through 3C  illustrate non-media data structures used in the visual mail application of the invention. 
         FIGS. 4A and 4B  are flow diagrams illustrating the operational steps of the visual mail application of the invention. 
         FIGS. 5A through 5G  are a series of screen shots showing the operation of the visual mail application of the invention. 
     
    
    
     It should be noted that like reference numbers refer to like elements in the figures. 
     DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS 
     The invention will now be described in detail with reference to various embodiments thereof as illustrated in the accompanying drawings. In the following description, specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art, that the invention may be practiced without using some of the implementation details set forth herein. It should also be understood that well known operations have not been described in detail in order to not unnecessarily obscure the invention. 
     The term “media” as used herein is intended to broadly mean virtually any type of media, such as but not limited to, voice, video, text, still pictures, sensor data, GPS data, or just about any other type of media, data or information. 
     As used herein, the term “conversation” is also broadly construed. In one embodiment, a conversation is intended to mean a thread of messages, strung together by some common attribute, such as a subject matter or topic, by name, by participants, by a user group, or some other defined criteria. In another embodiment, the messages of a conversation do not necessarily have to be tied together by some common attribute. Rather one or more messages may be arbitrarily assembled into a conversation. Thus a conversation is intended to mean two or more messages, regardless if they are tied together by a common attribute or not. 
     A. SYSTEM ARCHITECTURE 
     Referring to  FIG. 1 , a block diagram of the telecommunication system according to the invention is shown. The system  10  includes a plurality of client devices  13   1  through  13   n , each running a visual voice and text mail application  12   1  through  12   n  respectively. Although the application  12  on each device is illustrated external to each device  13 , it should be understood that the application  12  is actually embedded in each device  13 . The devices  13  communicate with one another over a communication services network  14 , including one or more communication servers  16 . One or more networks  18   1  through  18   n , is provided to couple the plurality of devices  13   1  through  13   n  to the communication services network  14  respectively. In various embodiments, the networks  18  may be the Public Switched Telephone Network (PSTN), a cellular network based on CDMA or GSM for example, the Internet, a Wi-Fi network, a tactical radio network, a satellite network, or any other type of wired or wireless communication network, or a combination thereof. The communication services network  14  is a network layer on top of or otherwise in communication with the various underlying networks  18   1  through  18   n . In different embodiments, the network layer  14  is either heterogeneous or homogeneous. 
     The visual mail applications  12   1  through  12   n  running on devices  13   1  through  13   n  communicate with one another and with servers  16  over the networks  18   1  through  18   n  and network  14  using individual message units, referred to herein as “Vox messages”, which are described in detail below. Certain Vox messages are capable of transporting voice and text media as well as other media types. By sending Vox messages back and forth over the communication services network  14  and the networks  18 , the users of the devices  13  may communicate with one another, either synchronously in a real-time “live” mode or asynchronously in a time-shifted messaging mode, and with the ability to seamlessly transition between the two modes. 
     B. VISUAL MAIL APPLICATION ARCHITECTURE 
     Referring to  FIG. 2 , a block diagram of the architecture of the visual voice and text mail application  12  is shown. The application  12  includes a Multiple Conversation Management System (MCMS) module  20 , a Store and Stream module  22 , and an interface  24  provided between the two modules. In one embodiment, the MCMS module  20  and the Store and Stream module  22  communicate through interface  24  using an encapsulation format (e.g., JSON or XML) over a transport header protocol (e.g., Hypertext Transfer Protocol or HTTP). The application  12  functionally is similar to the client application described in U.S. application Ser. Nos. 12/028,400 (U.S. Publication No. 2009/0003558), 12/253,833 (U.S. Publication No. 2009/0168760), 12/253,820 (U.S. Publication No. 20090168759) and 12/253,833 (U.S. Publication No. 2009/0168760), all incorporated by reference herein for all purposes. The individual modules are briefly described below. For more details, the above-listed, co-pending applications should be reviewed. 
     The MCMS module  20  includes a number of modules and services for creating, managing and conducting multiple conversations. The MCMS module  20  includes a user interface module  20 A for supporting the audio and video functions on the device  13 , rendering/encoding module  20 B for performing rendering and encoding tasks, a contacts service  20 C for managing and maintaining information needed for creating and maintaining contact lists (e.g., telephone numbers and/or email addresses), a presence status service  20 D for both sharing the online status of the user of the device  13  as well as the online status of the other users on the network  14 . The MCMS data base  20 E stores and manages the meta data for messages and conversations conducted using the application  12  running on a device  13  as well as contact and presence status information. In alternative embodiments, the MCMS database  20 E may be either a document-orientated or a relational database. 
     The Store and Stream module  22  includes a Permanent Infinite Memory Buffer or PIMB  26  for storing, in an indexed format, the media of received and sent messages. The store and stream module  22  also includes an encode-receive module  34 , net receive module  36 , transmit module  38  and a render module  40 . The encode-receive module  34  performs the function of receiving, encoding, indexing and storing in the PIMB  26  media created using the application  12  on device  13  in a time-indexed format. The net receive module  36  performs the function of indexing and storing in the PIMB  26  the media contained in messages received from other devices  13  over the network  18  in the time-indexed format. The transmit module  38  is responsible for transmitting the media of messages created using the application  12  to other recipients over the network  18 . The render module  40  enables the application  12  to render the media of messages on device  13 , either synchronously in the near real-time mode or asynchronously in a time-shifted mode by retrieving and rendering the media stored in the PIMB  26 . 
     The MCMS module  20  and the Store and Stream module  22  also each communicate with various hardware components provided on the device  13 , including, but not limited to, encoder/decoder hardware  28 , media drivers  30  and network interface  32 . The encoder/decoder hardware  28  is provided for encoding the media, such as voice, text, video or sensor data, generated by a microphone, camera, keyboard, touch-sensitive display, etc. provided on or associated with the device  13  and decoding similar media before it is rendered on the device  13 . Media drivers  30  are provided for driving the media generating components, such as speaker and/or a display (not illustrated) after the media has been decoded. A network interface is provided  32  for connecting device  13  running the application  12  to a network  18 , either through a wireless or wired connection. Although not illustrated, the application  12  runs or is executed by the underlying processor embedded in device  13 , such as a microprocessor or microcontroller. 
     In various embodiments, the duration of the media stored in the PIMB  26  may vary. In one embodiment, the storage may be permanent, meaning the stored media is available virtually forever or at least until the system runs out of storage. Various retention rates and strategies may be employed to make effective use of storage resources. Many possible implementations exist for the physical storage implementation of the PIMB  26 , including, but not limited to: RAM, Flash memory, hard drives, optical media, or some combination thereof. The PIMB  26  is also “infinite” in size, meaning the amount of data that can be stored in the PIMB  26  is not inherently limited. This lack of limit is in comparison to existing jitter buffer technology that discards data as soon as it is rendered. In one specific embodiment, the PIMB  26  may be implemented using a small and relatively fast RAM cache memory coupled with a hard drive or other non-volatile memory for persistent storage. As the physical storage capacity of the PIMB  26  is exceeded, the media is maintained on a server  16  (as described below) for later retrieval on demand. User criteria or a replacement algorithm, such as least-recently-used, or first-in-last-out, is used to control the actual data stored in the PIMB  26 , the data that is maintained on a server  16  or archived at any point in time. The PIMB  26  further provides the attributes of an indexed file storage system and the random access attributes of a database. The media of any number of conversations, regardless of the duration or the number of messages in each, may be stored in the indexed format for later retrieval and review. In addition, the certain meta data associated with the messages of a conversation, such as its originator and its length, may be also stored in the PIMB  26 . 
     In alternative embodiments, the indexed media payloads and certain meta data can be stored for a designated period of time. Once the age of the media exceeds the designated period, the payloads and data are discarded. In another embodiment, payloads can be discarded based on the sender and/or the recipient of the message containing the payload, or the topic of the conversation or messages associated with the payload. In yet other embodiments, payloads and data may be marked for transience, meaning the messages will not be stored in the PIMB  26  beyond the requirements needed for immediate transmission or rendering. 
     As noted herein, the term “persistent” storage may have multiple meanings, depending on a specific implementation. With known existing “live” communication systems, media is transient, meaning if the media is stored at all, it is temporarily buffered until it is either transmitted or rendered. After being either transmitted or rendered, the media is irretrievably lost. Thus, the term persistent storage as used herein is intended to be broadly construed and mean the storage of media and meta data from indefinitely to any period of time longer than any transient storage needed to either transmit or render media “live” in real-time. 
     C. SERVER ARCHITECTURE 
     Each server  16  runs an application very similar to the application  12 . The application running on the server(s)  16  include the MCMS module  20 , the Store and Stream module  22 , and interface  24  between the two modules  20 ,  22 . The notable differences between the application running on the server(s)  16  and the application  12  is (i) the application on the server(s)  16  is configured to support many users (i.e., multiple tenants) of devises  13  running the application  12 ; (ii) the PIMB  26  on the server(s)  16  is typically much larger than on a communication device  13  since the servers support multiple users; and (iii) many of the user interface, media encoding and media rendering modules, such as encode-receive  34  and render  40 , are not present because these functions and services are not performed on the network  14 . For more details of the server application, see U.S. application Ser. Nos. 12/028,400, 12/253,833, 12/253,820 and 12/253,833, all incorporated by reference herein for all purposes. 
     D. VOX MESSAGES AND MEDIA PAYLOADS 
     There are two types of Vox messages, including (i) messages that do not contain media and (ii) messages that do contain media. Vox messages that do not contain media are generally used for message meta data, such as media headers and descriptors, contacts information, presence status information, etc. The Vox messages that contain media are used for the transport of media. 
     Referring to  FIG. 3A , the data structure of a Vox message  50  that does not contain media is illustrated. The Vox message  50  includes an transport header field and an encapsulation format field for storing various objects, such as contact information, presence status information for the user of a device  13 , or message meta data, as illustrated in  FIG. 3B . It should be understood that the list of objects provided in  FIG. 3B  is not exhaustive. Other objects, such as but not limited to, user location update information, user log-in information, information pertaining to the authentication of users, statistical information, or any machine-to-machine type message, may also be encapsulated in the format filed of Vox messages  50 . 
     Contact information includes the name, address (e.g., telephone number and/or email address), or other attributes for each of the contacts in the contact list of the user of a device  13  running application  12 . The contact information is used to create contact lists, and to direct messages to intended recipients using the addressing information associated with the individual contacts in the contact list. 
     Message meta data provides application  12  level attributes for Vox messages  50 . These attributes include a message identifier or ID, the identification of the message originator, a recipient list, and a message subject. The identifier information may be used for a variety of reasons, including, but not limited to, building contact lists and/or associating media with messages. The set of attributes for a given message may be extensible, and not all attributes necessarily need to be supported by all application  12  enabled devices  13 . 
     Presence status information may identify the users that are currently authenticated by the system  10  and/or if a given user is reviewing a message live in the real-time mode or not. The presence data is therefore useful in determining, in certain embodiments, how messages are delivered across the networks  14  and  18 . In situations where the presence status indicates an authenticated user is reviewing a message live for example, then a transport protocol optimized for timely (i.e., real-time) delivery may be used, whereas a transport protocol optimized for efficient delivery of messages may be used when the presence status indicate the authenticated user is not reviewing the message live. 
     Referring to  FIG. 3C , a Vox message  52  that contains media is illustrated. The Vox message  52  is essentially the same as a non-media type Vox message  50 , except it includes an additional field for media. The media field is capable of containing one or multiple media types, such as, but not limited to, voice, video, text, sensor data, still pictures or photos, GPS data, or just about any other type of media, or a combination thereof. 
     The transport header field in Vox messages  50  and  52  includes the seven layers of the Open System Interconnect Reference Model or OSI model, including from bottom to top: (i) a physical layer for media, signal and binary transmission; (ii) a data link for physical addressing, network, transport; (iii) a network layer for path determination and logical addressing; (iv) a transport layer for end-to-end connections and reliability; (v) a sessions layer for inter-host communication; (vi) a presentation layer for data presentation and encryption; and (vii) an application layer for interacting with the application  12  operating on device  13 . Specifically, the information contained in the encapsulation format field is layered on top of the application layer of the transport header of each Vox message  50  or  52 . As the seven layers of the OSI model are well known, a detailed explanation for each layer is not provided herein. 
     In various embodiments, the application layer may be HTTP, SMTP, SIP, or any other type of application layer. The encapsulation format may be JSON or XML or any other type of structured data serialization format. It should be noted that the specific transport headers and encapsulation formats as listed herein are merely exemplary. Any transport header or encapsulation format may be used, including new protocols developed in the future, or those currently known, but not listed herein. 
     By layering Vox messages  50  or  52  on top of the application layer, the messages are transmitted, and routed to a recipient, as is well known in the art. As a result, a new transport protocol for the application  12  is not needed. Instead, the system  10  takes advantage of current packet based communication networks running over the existing telecommunications infrastructure. 
     The information encapsulated in the format field of Vox messages is typically stored in the MCMS database  20 E of the MCMS module  20 . Alternatively, this information may be stored in the PIMB  26 , or in both the MCMS database  20 E and the PIMB  26 . 
     When created or otherwise originated on a device  13  running application  12 , the media of Vox messages  52  is progressively and simultaneously (i) stored in the PIMB  26  in an indexed format and (ii) placed into the packet payloads of the underlying transport layer protocol and streamed over the underlying network(s) to intended recipients. On the receive side, the incoming streaming media of Vox messages  52  is extracted from the incoming packets, and simultaneously and progressively stored in the indexed format in the PIMB  26  of the receiving device  13  as the media is received. If the receiving device  13  is in the synchronous or real-time mode, the render function  40  also progressively renders the incoming streaming media progressively and simultaneously as it is being received. Alternatively when in the time-shifted mode, the render function  40  may retrieve the received media from the PIMB  26  at an arbitrary later time, defined by the user of the receiving device  13 . When media is retrieved from the PIMB  26  for rendering, the media is reviewed asynchronously in the time-shifted mode. 
     Since the media of both transmitted and received Vox messages  52  is stored in the PIMB  26  in the indexed format, the media of the messages may be retrieved and rendered at anytime. In addition, conversations may be constructed by threading together individual messages. As noted above, the messages of a conversation may be assembled using a defined attribute or in some other arbitrary way. Regardless of how the messages are assembled, a conversation may include messages of different types of media, such as both voice and text, as well as other media types, such as video, still pictures, sensor data, GPS data, or just about any other type of media, data or information. The messages of a conversation may also be rendered sequentially in time-indexed order, or one at a time in any order. Further by indexing messages, it is also possible to retrieve the media of a message starting at a particular offset. For example, if a message is 20 seconds long, it may be possible to retrieve and render the media of the message starting at an arbitrarily selected offset point of the message, and not always at the starting time of the message. 
     The ability to (i) progressively and store and transmit media as it is being created on the transmitting device  13  running application  12  and (ii) progressively store and render the media on the receiving devices  13  running application  12  allow the participants to converse in real-time, providing a user experience similar to a full-duplex telephone conversation. The storage of the media in the PIMB  26  allows the participants to participate in the conversation asynchronously in a time-shifted mode, providing a user experience similar to conventional messaging systems (e.g., email of SMS text messaging), but with the option of sending or receiving voice messages. In addition, the ability of the Vox messages  52  to carry multiple media types, it is also possible for the participants of a conversation to converse using different types of media. For example, a person may send a text message and receive a reply voice message, or vice versa. 
     The simultaneous and progressive storage of both transmitted media as it is being created or received media as it is being received enables a host of rendering options provided on the client  12  enabled devices  13 . Such rendering options include, but are not limited to: pause, replay, play faster, play slower, jump backward, jump forward, catch up to the most recently received media or Catch up to Live (CTL), or jump to the most recently received media. As described in more detail below, the storage of media and certain rendering options allow the participants of a conversation to seamlessly transition a conversation from a time-shifted mode to the real-time mode and vice versa. 
     It is useful to note that the catch up to the most recently received media and CTL rendering options are very similar, but are not necessarily the same. With the catch up to the most recently received media option, the rendering of media out of the PIMB  26  at the faster rate occurs until the rendering has caught up to the most recently received media. In situations were the received media is not live, but rather for example is a recorded message that is being delivered to a recipient after it was initially recorded, then this feature allows the recipient to quickly review previously received portions of the message and then seamlessly merge into rendering the media of the message as it is received over the network. The CTL rendering option, on the other hand, requires the delivery of real-time media, as the sender creates the media. After the seamless transition occurs, the recipient is rendering the media “live” as it is being created and transmitted across the network  14 , as opposed to the delivery of a previously recorded message. 
     Several examples below highlight the seamless transition of a conversation between the time-shifted and real-time modes: 
     (i) consider an example of a recipient receiving an incoming live message. If the recipient does not have their communication device  13  immediately available, for example because their cell phone is in their pocket or purse, then most likely the initial portion of the message will not be heard. But with the CTL rendering option, the recipient can review the media of the message out of the PIMB  26  from the start of the message faster than the media was originally encoded, while the message is still being received. Eventually, the rendering of the media at the increased rate will catch-up to the live point of the message, whereupon, there is a seamless transition from the asynchronous time-shifted mode to the real-time mode. After the seamless transition occurs, the parties may converse live, similar to a conventional phone call; 
     (ii) in an alternative example, a conversation may seamlessly transition from the real-time mode to the time-shifted mode. Consider a party participating in a real-time or “live” conference call among multiple parties. When the “pause” rendering option is selected, the “live” rendering of incoming media stops, thus seamlessly transitioning the participation of that party that selected the pause option from the real-time to time-shifted mode. After the pause, the party may rejoin the conversation “live” assuming it is still ongoing in the real-time mode. The “missed” media during the pause may be reviewed at any arbitrary later time in the time-shifted mode from the PIMB  26 ; 
     (iii) in another variation of the seamless transition from real-time to time-shifted, one party may elect to leave a live conversation while the other party continues speaking. When this situation occurs, a message can be left, which can be reviewed by the departing party at any arbitrary later time; and 
     (iv) in yet another example, a recipient may receive a text message and elect to respond with a voice message, or vice-versa. When receiving the voice message, the parties may engage in either a “live” conversation in the real-time mode or asynchronously send voice and/or text messages back and forth in the time-shifted mode. Since other known communication platforms, at least at the core level, are typically dedicate to just one media type, the ability to converse with multiple media types, using a single or unified communication platform, is usually not possible. 
     Another unique aspect of the system  10  is that the media payloads generated by the visual mail application  12  running on a device  13  are stored in multiple locations. Not only are the payloads stored in the PIMB  26  of the transmitting and receiving devices  13 , but also in a PIMB (not illustrated) of the server(s)  16  on the communication services network  14 . This feature provides the system  10  with both resilience and operability, even when network conditions are poor or when a participant of a conversation is not connected to the network. 
     E. OPERATION 
     Referring to  FIG. 4A , a flow diagram  60 A illustrating the operational steps of the application  12  in response to receiving an incoming “live” message is shown. In the initial step, a recipient is notified in step  62  as an incoming message is received. The notification therefore occurs before the message is received in full and preferably occurs as soon as possible, for example, when the meta data associated with the message is initially received, indicating that a sender is getting ready to or is in the process of sending a message. The notification may include, in accordance with various embodiments, a visual notification, an audio notification, or a combination of both. All incoming meta data and media is simultaneously and progressively stored as the media is received in the PIMB  26  of the receiving communication device  13 , as provided in step  64 . In response to the notification, the recipient has a number of options, as represented by the decision diamond  66 A. 
     A first option is to simply ignore the message. When ignored, the recipient always has the option to retrieve and render the media of the message from the PIMB  26  at any later arbitrary time. 
     In a second option, the recipient may elect to review the incoming voice message in real-time or “live”. When this choice is made, the recipient needs to decide (decision diamond  70 A) if they wish to review the message from the beginning or from the current point in the message. If the beginning option is selected, then the CTL rendering function (step  72 A) is implemented, causing the media to be retrieved from the PIMB  26  and rendered at a rate faster than when it was originally encoded. As the media is being rendered out of the PIMB  26 , the application  12  continually measures (decision  74 A) when the rendering out of the PIMB  26  at the faster rate has caught up to the live point of the message as it is being received. When the live point is reached, the rendering seamlessly transitions from the asynchronous rendering mode to the synchronous real-time mode (step  76 A). Alternatively, if the recipient elects to review the incoming media at the current point of the message, then the media of the message is rendered live (step  76 A) as it is received. 
     In a third option, the recipient may elect to respond to the incoming message either during or immediately after the message is received in full. As provided in decision  78 , the recipient may elect to respond by engaging in a live conversation (step  80 ) with the sender of the incoming message, create a reply voice message (step  82 ), typically after reviewing the incoming media in full, or reply with a text message (step  84 ), also typically after reviewing the incoming message in full. With the first option, the parties will engage in a real-time conversation, providing a user experience similar to a full duplex telephone call. Whereas with the latter two options, the conversation is asynchronous, similar to most messaging systems. Regardless of which reply, the outgoing media is both simultaneously and progressively transmitted (step  86 ) and stored in the PIMB as the media is created (step  88 ). 
     It should be understood that the timing of any response could vary, depending on the discretion of the recipient. In one scenario, the recipient may wish to engage in a live conversation as soon as possible after receiving the notification, without first receiving any previous media associated with the incoming message. In a second scenario, the recipient may elect to first review the previous portion of the incoming message using the CTL rendering option, and then, join the conversation “live” after reaching the catch-up point. In yet another scenario, the recipient may elect to “screen” or review the incoming message “live”, but not engage in a real-time conversation. When a message is screened, the sender is typically not notified that the recipient is reviewing the message as it is received. In an alternative embodiment however, the sender could be notified that the recipient is screening the message, but has elected not to engage in a live conversation. With another alternative, the recipient may initially ignore the message, review it at an arbitrary later time, and then reply, with either a voice or text message. At that point, the participants of the conversation may elect to continue the conversation in the asynchronous time-shifted mode, or may transition into the real-time mode. 
     Referring to  FIG. 4B , a flow chart  60 B illustrating the catch up to the most recently received media of an incoming message. With this example, it is assumed that the incoming message is not being delivered “live”, but rather was previously recorded before it was delivered to the recipient. The flow chart  60 B is essentially the same as the flow chart  60 A of  FIG. 4A , but with several differences. 
     In decision diamond  66 B, the recipient has the option of reviewing the incoming message as received. If this option is selected, then the recipient decides to review the incoming message either at the current point (step  76 B) or at the beginning of the message (decision  70 B). If from the beginning, then the previously received media of the message is rendered (step  72 B) from the PIMB  26  at a rate faster than it was originally decoded. When the rendering at the media from the PIMB  26  at the faster rate catches up to the current point (decision  74 B), then the rendering seamlessly transitions from the PIMB to the current point (step  76 B) as the media of the message is received. 
     The recipient may also elect to either ignore the incoming message or respond. Either option is essentially the same as described above with regard to  FIG. 4A , but with one minor exception. The recipient may try to engage in a “live” conversation (step  80 ) with the party who sent the prerecorded message. If the party is available and they wish to converse in real-time, then a live conversation may take place. On the other hand if the party is not available, or elects not to converse in real-time, then a live conversation will not take place. 
     The examples of  FIGS. 4A and 4B  illustrate the differences between the catch up to live and the catch up to the most recent media of an incoming message. In each case, media is rendered out of the PIMB  26  faster than it was originally encoded. When the faster rendering out of the PIMB catches up to the current most point of the message as it is being received, then with both rendering options, there is a seamless transition to rendering the media of the message as it is received over the network. Thus, the main difference between the two options is that with CTL, the media of the incoming message is being rendered “live” as the media is created and transmitted over the network, whereas with the catch up to the most recent media option, the media is not being created live. 
     F. EXAMPLES 
       FIGS. 5A through 5G  are a series of screen shots of the display of a communication device  13  showing the operation of the visual voice and text mail application  12 . 
     In the initial  FIG. 5A , the display  90  on a device  13  used by a person named Jill is shown. The visual voice and text mail display  90  shows a number of messages, both text and voice, received by Jill. In this example, Jill has received text messages from her “Mom”, “Poker Buddies”, and the members of her “Weekly Status Meeting” at work. In addition, Jill has received voice mail messages from Dennis Jones, Matt Smith, and Judy Li. 
       FIG. 5B  shows the display  80  on Jill&#39;s device  13  after receiving notification that Sam Fairbanks is sending her a message. In this example, the notification is a window  92  appearing on the display  90  of Jill&#39;s device  13 . Within the window  92 , an indication is provided that Sam Fairbanks is leaving a message. In addition, Jill is presented with a number of options, including a “Review” icon  94  which will allow Jill to review (i.e., screen) the incoming message in real-time as it is being received, a “Talk Live” icon  96  that allows Jill to begin speaking live with Sam in the real-time mode, a “Text” icon  98  that allows Jill to send an asynchronous text message to Sam, or a “Message” icon  100  that allows Jill to send an asynchronous reply voice message to Sam. It should be noted that audible notification signals, such as a ring tone or alarm, may optionally be used in cooperation with the window  92 . 
       FIG. 5C  shows the display  90  on Jill&#39;s device  13  after selecting the Review icon  94 . A window  104  appears within the display  90 . The window  104  provides a number of rendering options, including play, pause, replay, play faster, play slower, jump backward, jump forward, jump to the most recently received media, or catch up to the most recently received media (e.g., Catch Up to Live or CTL), as represented by the “rabbit” icon. 
     By selecting the play rendering option, the media of the incoming message is rendered at the same rate the media was originally encoded. This option allows the Jill to review or screen the incoming message from Sam. In one embodiment, the Sam is not notified that Jill is screening the message. In an alternative embodiment, Sam is notified that Jill is reviewing the message. 
     In this example, the “rabbit” CTL icon has been selected, causing Sam&#39;s message to be rendered from the beginning (“You won&#39;t believe this. But my car broke down . . . ”) at rate faster than the media was originally encoded. When the “live” point is reached, Sam and Jill may engage in a “live” conversation in the real-time mode. Also in optional embodiments, a message “scrubber” bar and timer may also be displayed. 
       FIG. 5D  shows both Sam&#39;s device  13 A and Jill&#39;s device  13 B when engaged in a “live” real-time conversation. As discussed above, Jill may elect to participate in a synchronous conversation with Sam either by selecting the “Talk Live” icon (as illustrated in  FIG. 5 ) or using the CTL feature (as described above with regard to  FIG. 5C ). With the former, Jill may miss a portion of Sam&#39;s message before the point where she joins live, wherein with the latter option, she will hear the message from the beginning. Regardless of which method is used, the two parties may talk synchronously with one another in the real-time mode, as represented by the “LIVE” arrow  106  between the two devices, across the networks  14  and  18 . When live, Jill and Sam have a conversation experience similar to a live, full-duplex, telephone call. Like any asynchronous messages, any media consumed “live” in the real-time mode is stored in the PIMB  26  on Jill&#39;s device  13  (as well as possibly Sam&#39;s device  13  and any intermediate servers  16 ) for later review. 
       FIG. 5E  shows Jill&#39;s device  13  after selecting the “text” icon  98 . With this selection, a keyboard  108  appears on the display  90  of Jill&#39;s device  13 . As Jill types, the message appears in text window  110 . The “Send” icon is used to asynchronously send or transmit the text message when it is complete. In an alternative text embodiment, each keystroke may be transmitted as it is entered, providing the appearance that the text message is “synchronous”, rather than asynchronous. As the transmission of each keystroke is actually a discrete event, the transmission of the text message one letter at a time is actually multiple asynchronous transmissions, one after the other. The transmission of each keystroke is therefore not a synchronous (i.e. continuous) transmission. In the example illustrated, the keyboard is presented in the display  90 . With communication devices having either a built-in hardware keyboard, as provided for example on some “smart” mobile phones, or an associated keyboard, such as with a desktop or laptop computer, then there is no need to superimpose a keyboard in the display  90 . 
       FIG. 5F  shows Jill&#39;s device after selecting the Message icon  100 . With this selection, the display  90  on Jill&#39;s device  13  shows the previous conversation history with Sam Fairbanks. In this example, the conversation history includes media “bubbles” for both voice or text messages. With text messages, the actual text message (or a portion thereof) is provided in each text bubble. With voice messages, the name of the sender and the duration of the voice message are presented in each bubble. When either type of bubble is selected, the corresponding media of the message is retrieved from the PIMB  26  on Jill&#39;s device, and is rendered. In the case of text, the message is displayed in its entirety on the display  90 . With voice, the message is rendered through a speaker on the device. The display  90  also includes “Start” and “End” message icons  112  and  114  respectively. When the Start icon  112  is selected, Jill may start creating her reply message to Sam. In this example, Jill informs Sam that she cannot talk because she is in a meeting, but will pick him up in 20 minutes. When done, the End icon  114  is selected, terminating the message. In an alternative embodiment, it is assumed that the message has ended a predetermined period of time after the creation of voice media has stopped. When the predetermined period of time has passed, the message is automatically terminated, without having to physically select the End icon  114 . 
       FIG. 5G  illustrates Jill&#39;s device  13  if she elects to ignore the incoming message from Sam Fairbanks. After the complete message is left, the display  90  on Jill&#39;s device  13  is updated to show that Sam Fairbanks has left a message. At any later arbitrary time, Jill may review the message from Sam Fairbanks asynchronously, in the time-shifted mode. Alternatively, Jill may elect to not review the message from Sam at all, either by actively deleting the message or ignoring it for a predetermined period of time, whereupon in some but not necessarily all embodiments, the message is automatically deleted. In the event Jill elects to review the message, Jill may optionally reply with another asynchronous voice or text message, attempt to talk live in the real-time mode with Sam, or not reply at all. 
     It should be noted that the various messages, icons and notifications mentioned above with regard to  FIGS. 5A through 5G  are merely exemplary. A wide variety different messages, icons and notifications, including audible, visual, text or icon based indicators may be used, either alone or in combination. In addition, the selection of the various icons and functions, and the scrolling through and/or selection of the various messages of a conversation, may be implemented in a number of ways, such as using an input device such as a finger stylus or pointer, using voice commands, or any other screen navigation, input or selection method. Those provided and described herein should therefore be considered as representative and not limiting the scope of the invention in any regard. 
     With the above examples, it is assumed that both Sam and Jill are using application  12  enabled devices  13 . With both devices  13  running the application  12 , the transmission and receipt of messages, regardless if consumed synchronously in the real-time or live mode or asynchronously in the time-shifted mode, may occur without a circuit connection, as required for conventional telephone calls. Rather, any media contained in the Vox messages  50  are transmitted or “streamed” between the two parties over the network  14  and the network(s)  18  as the media becomes available. The ability to stream the media progressively and simultaneously as the media is created on the transmitting device  13  and rendered on the receiving device  13  creates a user experience that is virtually identical to a conventional full-duplex telephone conversation. In addition with the storage of the streamed media in the PIMB  26  on each device  13 , asynchronous messaging in the time-shifted mode is also possible. And as described above, the various rendering options makes it possible for the participants to seamlessly transition a conversation between the two modes. 
     In yet another embodiment, it may be possible for a legacy communication device, such as a conventional landline phone incapable of running the application  12 , to enjoy many of the features and benefits of the application  12  as described herein. With this embodiment, one or more of the servers  16  on the network  14  is configured as a “gateway” server, which runs the application  12  on behalf of the legacy device. The Vox messages  50  containing the media are sent back and forth to the gateway server  16 , where all the media is stored in the local PIMB on behalf of the legacy device. The legacy device can then either transmit media or receive media, either synchronously in the real-time mode or asynchronously in the time-shifted mode, using a variety of control methods, such as Dual Tone Multi-Frequency (DTMF) commands, voice activated commands, commands generated through a browser, radio signals, or any combination thereof. In this manner, a (or more) legacy device may communicate with either a application  12  enabled device  13  or another legacy device in the same manner as described herein, as if the application  12  resided on the legacy device. 
     G. FEATURES AND ADVANTAGES 
     The visual voice and text mail application  12  as described herein provides a number of features and advantages previously not provided or available with conventional visual voice or text applications. These features and advantages include: 
     (i) the ability to communicate by either voice, text or other media types using a single, unified, application; 
     (ii) the ability to have “instant” access to incoming messages and the ability to immediately send a response without dialing or otherwise establishing a circuit with the sender of the original message (i.e., “fire and forget” instant response capabilities); 
     (iii) the ability to store the media of conversations on servers  16 , allow a user to maintain conversations histories, and participate in multiple conversions, using multiple communication application  12  enabled devices  13 . For example, if a conversation is conducted on the work computer of a user, the entire conversation is accessible and may be down-loaded to the same user&#39;s cell phone, or vice versa. All of a user&#39;s conversations may therefore be conducted and managed across multiple communication devices; 
     (iv) the ability to provide a user with the flexibility to play messages in a preferred order, elect to either join a conversation related to an incoming message, ignore an incoming message and review it at a later time, or review an incoming message, while not joining a conversation with the sender of the message; 
     (v) the ability to provide a user with a host of rendering options, including playing faster, pausing the play of a message, catch up to the most recently received media, catching up to live cm, jump to live, play slower, etc.; 
     (vi) the ability to render previously received media of a message, while it is still being received, and to seamlessly transition the rendering of the message from an asynchronous time-shifted mode to a synchronous real-time mode using the CTL rendering feature; 
     (vii) the ability to organize conversations by a common attribute, such as but not limited to, participants, topic or subject, user group, or any other defined criteria; 
     (viii) the ability to both review the media of previously received messages while the device  13  is disconnected from the network  14  by retrieving and rendering media from the PIMB  26  and to create messages while disconnected from the network and transmitting the messages out of the PIMB  26  when the device  13  reconnects to the network; 
     (iix) the ability to communicate over any type of wired or wireless communication network, without any restrictions to a specific type of network, such as the PSTN; 
     (ix) the ability to engage or participate in multiple conversations at the same time by transitioning between conversations. For each selected conversation, messages can be either reviewed in real-time or the time-shifted mode. When participation in one conversation is complete, another conversation may be selected for participation; 
     (x) the ability to transcribe voice media into text and translate voice and/or text media from one language into one or more other languages; and 
     (xi) the ability to engage in multi-party conference calls that are easily set up by simply selecting the names of the participants, without the need of bridge numbers or pin numbers. In addition, all the features described above with regard to (i) through (x) apply to conference calls. 
     With regard to messaging, the application  12  provides the advantages of: (i) having text and voice messages synchronized to your phone in real time. No dialing into a separate voice mail system is necessary; (ii) the ability to reply instantly to other users of application  12  enabled devices  12 . No dialing, interrupting, or listening to greetings is necessary; (iii) the ability to review or listen to messages as they arrive and send messages as you speak; (iv) the ability to provide and receive real-time presence information for other users of the application  12 ; (v) easily keep track of incoming and outgoing messages; (vi) construct conversation histories of threaded messages; (vii) the ability to mix both voice, text and other media types within the context of a single conversation; and (viii) conduct multiple party conversations. 
     With regard to the visual interface, the application  12  allows a user to see all messages on the display of their device  13  and to scroll up and down to see the entire message history of a conversation. The application  12  also allows the user to render the media of messages in any order, to sort messages, or to filter messages. 
     The application  12  further provides a number of advantages previously not possible. Certain conversations, which may be considered more important than others, may be prioritized. For example while a person is driving their car, the application  12  on a user&#39;s mobile phone may be set so that incoming messages from family members are automatically rendered “live”, while the messages pertaining to other conversations are stored in the PIMB  26  for later retrieval and review. By prioritizing conversations and messages in this manner, high priority messages can be heard automatically, while all other messages may be reviewed in a time-shifted mode. Important conversations can be monitored, while the messages pertaining to lower priority messages are available for later review. Alternatively the user may elect to join the conversation “live” using currently available hands-free technology, such as headsets and Bluetooth®. 
     Lastly with regard to integration, the application  12  may be integrated with other communication systems, such as SMS and IM systems, as well as integrate with other applications, such as an address book, calendar, call logs, etc. 
     It should also be understood that the present invention may be applied to any communication systems, including mobile or cellular phone networks, police, fire, military taxi, and first responder type communication systems, legacy circuit-based networks, VoIP networks, the Internet, or any combination thereof. 
     In various embodiments, devices  13  may be one of the following: land-line phone, wireless phone, cellular phone, satellite phone, computer, radio, server, satellite radio, tactical radio or tactical phone The types of media besides voice that may be generated on a communication device  13  and transmitted may further include video, text, sensor data, position or GPS information, radio signals, or a combination thereof. 
     Although many of the components and processes are described above in the singular for convenience, it will be appreciated by one of skill in the art that multiple components and repeated processes can also be used to practice the techniques of the system and method described herein. Further, while the invention has been particularly shown and described with reference to specific embodiments thereof, it will be understood by those skilled in the art that changes in the form and details of the disclosed embodiments may be made without departing from the spirit or scope of the invention. For example, embodiments of the invention may be employed with a variety of components and should not be restricted to the ones mentioned above. It is therefore intended that the invention be interpreted to include all variations and equivalents that fall within the true spirit and scope of the invention.