# Patent

## Title
Apparatus and method for enabling communication when network connectivity is reduced or lost during a conversation and for resuming the conversation when connectivity improves

## Abstract

A method for enabling communication when network connectivity is reduced or lost during a conversation and for resuming the same conversation when connectivity improves.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of priority to U.S. Provisional Patent Application No. 61/157,108, filed Mar. 3, 2009, entitled “Novel Modes of Communication,” and to U.S. Provisional Patent Application No. 61/228,206, filed Jul. 24, 2009, and entitled “Apparatus and Method for Enabling Communication When Network Connectivity is Reduced or Lost During a Conversation and For Resuming the Conversation When Connectivity Improves on both Wireless and Wired Communication Networks.” This application is also a Continuation-in-Part of U.S. application Ser. Nos. 12/212,592 and 12/212,595 both entitled “Graceful Degradation for Voice Communication Services over Wired and Wireless Networks.” Each of the above-listed provisional and non-provisional applications is incorporated herein by reference in their entirety for all purposes.


BACKGROUND
1. Field of the Invention
This invention relates to electronic communications, and more particularly, to a method for enabling communication when network connectivity is reduced or lost during a conversation and for resuming the same conversation when connectivity improves.
2. Description of Related Art
Current wireless communications, such as mobile phones or radios, including tactical or first responder radios, support only real-time (i.e., live) communications. For communication to take place with existing wireless communication systems, a wireless network connection with a sufficient usable bit rate to support a real-time conversation must exist between the sending and receiving pair of wireless devices in communication with each other. If such a connection does not exist, then no communication can take place.
When a person is engaged in a conversation using their mobile phone, a network connection is established between the phone and the local radio transceiver (i.e., a cell tower). The network connection must have a sufficient usable bit rate to support a real-time conversation before any live communication can take place. As long the mobile phone is within the range of the radio transceiver, the signal strength or usable bit rate is typically more than adequate for conducting live phone conversations.
As the person using the mobile phone travels away from the radio transceiver, or they enter an area of poor coverage, such as in a tunnel or canyon, the usable bit rate or signal strength on the wireless network connection is typically reduced. If the distance becomes so great, or the reception so poor, the usable bit rate may be reduced beyond the range where live communication may take place. Beyond this range, the conversation is “dropped”, and the user may no longer be able to continue the phone conversation.
Similarly, when too many users are conducting conversations on the network at the same time, the total aggregate bit rate for all the conversations may exceed the usable bit rate capacity of the radio transceiver. In such situations, certain conversations may be dropped or a connection refused in an effort to preserve the usable bit rate or capacity for other conversations. As the number of conversations on the network decreases, or usable bit rate conditions on the wireless network improve, dropped or refused users may again rejoin the network and make new conversations as capacity on the network improves.
In yet another example, external disturbances that affect the network may cause ongoing conversations to be dropped. For example, severe radio interference, such as a spike in electrical or electromagnetic radiation, the intentional jamming of the wireless network, the antenna on a phone, radio or the transmitter is damaged or is operating improperly for some reason, then the usable bit rate on the network connection may be insufficient for users to conduct real-time communications. As a result, no new conversations may be established altogether or ongoing conversations may be dropped.
Wired communication networks may also have capacity problems when too many users are attempting to use the network at the same time or there are external interferences degrading the performance of the network. In these situations, conversations are typically dropped and/or no new conversations can be made in order to preserve usable bandwidth for other users.
With both wireless and wired communication systems, there is no persistent storage of the media of conversations. When a person engages in a conversation using a mobile phone, radio or landline phone, there is no storage of the media of the conversations other than possibly buffering as necessary for transmission and rendering. Consequently, both wireless and wired communication systems are reliant on network connections. If at any point the usable bit rate on the network is insufficient for a real-time conversation, regardless of the reason, there can be no communication. Phones and radios are essentially unusable until the usable bit rate on the network improves to the point where real-time communications can commence again.
Regardless of the reason, dropped calls are both an annoyance and inefficient. Often when a call is dropped, both parties will attempt to reconnect by calling each other at the same time, resulting in a busy signal, or the transfer of one or both parties into voice mail. Or if a person has moved beyond range of a wireless network, the parties must wait until the person is again in network range to resume communication. In either case, a new connection must be established and a new conversation started before the parties can resume communication.
SUMMARY OF THE INVENTION
A method for conducting a conversation. The method involves establishing a conversation between a first communication device and a second communication device over a connection on a network and continually determining during the conversation when the usable bit rate on the connection is either (i) at or above a bit rate threshold or (ii) below the bit rate threshold. The bit rate threshold is defined as the transmission bit rate that is sufficient for available media to be transmitted over the connection and rendered in near real-time by the recipient. The method further involves, depending on the determined usable bit rate either (i) when the usable bit rate on the connection is at or above a bit rate threshold (a) transmitting the media as it becomes available at the first communication device to the second communication device at or above the bit rate threshold and (b) enabling the media transmitted at or above the bit rate threshold to be rendered at the second communication device in near real-time in a real-time rendering mode. Alternatively (ii) when the ascertained usable bit rate on the connection falls below the bit rate threshold (c) storing the media at the first communication device when the ascertained usable bit rate on the connection falls below the bit rate threshold and (d) transmitting the media from storage to the second communication device as conditions on the connection permit when the usable bit rate falls below the bit rate threshold. Thus the conversation may continue in a time-shifted mode when the usable bit rate is (ii) below the bit rate threshold and may resume in near real-time in the real-time rendering mode when the usable bit rate is (i) at or above the bit rate threshold after falling below the bit rate threshold.



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. 1A is a diagram illustrating an exemplary wireless communication system.
FIG. 1B is a diagram of an exemplary wired communication system.
FIG. 2 is a plot illustrating the graceful degradation of wireless network services versus range in according to the present invention.
FIG. 3 is a plot illustrating the graceful degradation of network services versus capacity according to the present invention.
FIG. 4 is a plot illustrating the graceful degradation of network services in the presence of external interference according to the present invention.
FIG. 5 is a plot illustrating adaptive live optimization for further extending the graceful degradation of services according to another embodiment of the present invention is shown.
FIGS. 6A and 6B are flow charts illustrating sequences for enabling communication to continue when conditions on the network cause a conversation to be dropped and to resume the same conversation when network conditions improve in accordance with two embodiments of the present invention respectively.
FIGS. 7A through 7I illustrate a series of user interfaces of two parties engaged in a conversation during a dropped conversation in accordance with the present invention.
FIG. 8 is a diagram of a communication device with persistent storage in accordance with the present 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.
Referring to FIG. 1A, a diagram illustrating an exemplary wireless communication system is shown. The exemplary communication system 10 includes a communication network 12 and a wireless network 14 for enabling media communication between a wireless device A within the wireless network 14 and a second communication device B connected to the network 12. A gateway connection 13 connects the communication network 12 and the wireless network 14. The communication network 12 may include one or more hops 16 between the wireless network 14 and the second communication device B. Each hop may include a storage element 18 for the persistent storage of media. The communication device A, which is a wireless device, such as either a mobile phone or a radio, connects through a wireless network connection with the wireless network 14 through a radio transceiver 20. The communication devices A and B each include a storage element 22 for the persistent storage of media respectively.
When a conversation takes place between device A and device B, a network connection is made between the two devices through the communication network 12 and the wireless network 14. All media of the conversation, regardless if it was transmitted or received, is persistently stored in the storage elements 22 of devices A and B as well as optionally in the one or more hop(s) 16 with persistent storage 18 on the network 12 between the two devices. For more details on the persistent storage of the media at each communication device and on the network, see the co-pending and commonly assigned U.S. application Ser. Nos. 12/028,400 and 12/192,890, both incorporated by reference herein.
Referring to FIG. 1B, a diagram illustrating another exemplary communication system of the present invention is shown. In this embodiment, both devices A and B are connected to communication network 12. Device A is connected to the network 12 through a wired connection 15. When a conversation takes place between device A and device B, a network connection is established between the two devices across network 12. One or more hops 16, each optionally with persistent storage 18, may be used in establishing the network connection between the two devices.
It should be noted that the specific network configuration and the communication devices illustrated in FIGS. 1A and 1B are exemplary. In no way, however, should either particular configuration be construed as limiting. In various embodiments, networks 12 and 14 can both be wireless, wired, or any combination thereof. Also, either communication device A or device B can each be either wired or wireless devices. The communication devices A and B can also be two nodes in the same wireless or wired networks or two nodes in different networks. If nodes in different networks, the two networks can communicate directly with one another, or they may communicate through any number gateways or hops in intermediate wired or wireless communication networks. For the sake of simplicity, the network connection illustrated in FIGS. 1A and 1B is between just two communication devices. The present invention, however, may be used with conversations involving any number of wireless or wired communication devices.
The embodiments shown in FIGS. 1A and 1B both rely on the client-server model to establish communication between two (or more) communication devices. It should be understood that the present invention as described herein may also be used in a peer-to-peer model where two or more communication devices communicate directly with one another over a network.
In the embodiment illustrated in FIGS. 1A and 1B, both devices A and B locally and persistently store the media of the conversation in storage elements 22 respectively. It is not necessary, however, for both devices to persistently store the media of the conversation locally. For device A to continue transmitting during a dropped conversation, all that is required is for device A to persistently store the media of the conversation. For device A to receive media during a dropped conversation, the received media must be persistently stored at one or more locations. The one or more locations can be the transmitting communication device, a server hope 16 on the network, or both.
FIGS. 2 through 4 illustrate the graceful degradation of services with respect to range, capacity and external interferences that may affect the network respectively. It should be understood that the graceful degradation of services with respect to range is applicable only to wireless networks. The graceful degradation of services with regard to capacity and external interferences, however, equally applies to both wired and wireless networks.
Referring to FIG. 2, a plot illustrating the graceful degradation of wireless services versus signal strength. The diagram plots the available usable bit rate on the network on the vertical axis verses the signal strength at the communication device 20 of the broadcast by the radio transceiver 20 on the horizontal axis. When the communication device A is relatively close, the available usable bit rate on the network is high. But as the communication device A travels away from the radio transceiver 20, the usable bit rate on the network connection is reduced, as represented by the downward slope of the usable bit rate curve on the plot. Signal strength is not necessarily a function of distance. Signal strength may also be adversely affected by other factors, such as terrain or other structures that may interfere or reduce signal strength. For example, if the person using the communication device A travels through a tunnel, canyon or mountainous region, or enters a building or elevator, signal strength may be reduced.
As the signal strength decreases, the amount of bit rate loss experienced on the network connection will also typically increase. At a certain point, a bit rate threshold is exceeded. Below this point, the bit rate loss typically becomes too large to maintain a real-time conversation with conventional wireless networks. In other words, the bit rate defines a minimum bit rate throughput sufficient for maintaining near real-time communication.
In one embodiment, the sending device A ascertains when the usable bit rate on the network connection falls below the bit rate threshold by: (i) receiving one or more reports each including a measured transfer rate at which bits transmitted over the network connection safely arrive at a recipient over a predetermined period of time; (ii) computing the usable bit rate on the network connection based on the received one or more reports; and (iii) comparing the computed usable bit rate with the bit rate threshold. The reports are generated by the recipient and sent to device A over the network connection. The receipt reports may include a notation of missing, corrupted or reduced bit rate representations of media as well as other network parameters such jitter.
In one embodiment, the bit rate threshold is set at eighty percent (80%) of the bit rate throughput needed to transmit and decode the full bit rate representation of voice media at the same rate the voice media was originally encoded. It should be noted that this percentage for voice media may vary and should not be construed as limiting. The throughput percentage rate may be higher or lower. With other types of media, the needed throughput may vary.
The portion of the usable bit rate curve below the bit rate threshold is defined as the adaptive transmission range. When the usable bit rate on the network is in the adaptive transmission range, device A transmits the media from persistent storage. As a result, the usable bit rate below the threshold becomes usable. Device A thus has the capacity to manage, by introducing latency, the transmission rate of media based on network conditions. Compared to conventional communication devices that have no ability to control the rate of transmission, communication effectively ceases when conditions on the network connection are insufficient to support near real-time or “live” communication.
The amount of latency associated with transmission below the bit rate threshold varies, typically depending on the signal strength between the communication device A and the radio transceiver 20. If the signal strength at the communication device A is just below the threshold, the amount of latency may be inconsequential. As signal strength progressively decreases, the usable bit rate also typically progressively decreases. As a result, more and more latency is introduced. As latency increases, the practicality of conducting a conversation in the live or real-time mode decreases. Beyond the point where a real-time conversation is no longer practical, communication can still take place, but in a time-shifted mode. A user may generate a message, which is persistently stored. As usable bit rate conditions on the network permit, transmissions of the media occur from persistent storage. Alternatively, when receiving messages, the media may trickle in over the network, also as usable bit rate conditions permit. When the quality or completeness of the received media becomes sufficiently good as transmissions are received, they may be retrieved from persistent storage and reviewed or rendered at the receiving device A. Communication can therefore still take place when signal strength is poor, due to either device A being a relatively far distance from a transceiver 20 or in a location of poor coverage, such as in a tunnel or canyon.
As illustrated in the plot, the available usable bit rate gets progressively less as the signal strength decreases. Eventually the usable bit rate is reduced to nothing, meaning the communication device A is effectively disconnected from the wireless network 14. The persistent storage of media on the communication device A still allows limited communication capabilities, even when entirely disconnected from the network. Messages can be generated and stored on communication device A, while disconnected from the network. As the device returns within the adaptive transmission range, the usable bit rate range is used for the transmission of the messages in persistent storage. Alternatively, the user of communication device A may review previously received messages from storage while disconnected from the network and receive new messages as usable bit rate on the network permits.
Referring to FIG. 3, a plot illustrating the graceful degradation of wireless and wired services versus the number of users is shown. As illustrated in the Figure, the available usable bit rate per user increases as the number of users decreases and vice-versa. As the number of users increases, the usable bit rate decreases. Eventually, the bit rate threshold is crossed. Below this threshold, all users of the network are forced to operate in the adaptive transmission range when sending and receiving messages. In an alternative embodiment, only certain users may be forced into the adaptive transmission range to preserve the usable bit rate of the system for other users who will continue to operate with a usable bit rate above the throughput threshold. The system may decide which users are provided either full or reduced service based on one or more priority schemes, such different levels of subscription services, those first on the network have higher priority than those that have recently joined the network, or any other mechanism to select certain users over other users.
Referring to FIG. 4, a plot illustrating the graceful degradation of wireless and wired services in the presence of an external interference is shown. In this diagram, as the severity of the external interference increases, as represented along the horizontal axis, the usable bit rate decreases and vice versa. In situations where the available usable bit rate falls below the bit rate threshold, the user of communication device A may continue communicating in the adaptive transmission range in the same manner as described above. The use of persistent storage of media and the managing of transmissions to meet available usable bit rate therefore increases system robustness and gracefully extends the effective range and capacity of services in situations where external interference would otherwise prevent communication.
Referring to FIG. 5, a plot illustrating adaptive live optimization for further extending the graceful degradation of wired and wireless services according to another embodiment is shown. In the plot, the usable bit rate curve includes an adaptive optimization threshold and the bit rate threshold. In the above-mentioned U.S. application Ser. Nos. 12/028,400 and 12/192,890, adaptive live optimization techniques for maintaining a conversation in the live or real-time mode when the usable bit rate on the network falls below the adaptive optimization threshold are described.
Adaptive live optimization techniques involve ascertaining if the media to be transmitted is time sensitive or not and the continuous monitoring of the usable or Maximum Available Bit Rate (MABR) on the network at a transmitting device. The time-sensitivity of the media is determined by either a declared or inferred intent of a recipient to review the media immediately upon receipt. The MABR is ascertained from receipt reports, which include network parameters such as corrupted or missing packets (i.e., media loss) as well as possibly other parameters, including jitter for example, sent by a receiving device.
When time-sensitive media (e.g., the media of a “live” conversation) is to be transmitted, the Real Time Bit Rate (RTBT) needed to transmit a full bit rate representation of the media is compared with the MABR. The full bit rate representation of the media is derived from when the media was originally encoded. If the MABR exceeds the RTBR, then the full bit rate version of the media is transmitted at the RTBR. On the other hand if the RTBR is greater than the MABR, then one or more techniques may be applied to generate a reduced bit rate version of the media. According to various embodiments, these techniques may include using (i) different codec settings; (ii) different codecs; (iii) a compression algorithm; or (iv) any combination of (i) through (iii). By transmitting a reduced bit rate version of the media, the ability to extend the “live-ness” of conversation is enhanced.
These adaptive live optimization techniques have the net effect of pushing the bit rate threshold down the usable bit rate curve. In other words, by applying the adaptive live optimization techniques, the amount of available usable bit rate or MABR needed on the network for conducting a real-time conversation is reduced. This is evident in the FIG. 5, which shows the bit rate threshold pushed further down the usable bit rate curve relative to the plots illustrated in FIGS. 2, 3 and 4.
With persistent storage, media transmissions may occur from storage. Media transmissions therefore do not have to occur as the media is being generated. Instead, at times when the usable bit rate is insufficient for real-time transmissions, the media may be transmitted from persistent storage as network conditions (i.e., the MABR) permit. When transmitting from persistent storage, a certain amount of latency may be introduced during the back and forth transmissions of the conversation. The ability to transmit out of persistent storage, however, effectively extends the usability of the network beyond the signal strength and/or number of users where conventional wireless or wired networks would otherwise fail. As a result, communications can still take place, even when the usable bit rate conditions on the network are poor or constrained beyond where previously no communication could take place.
In some situations, the latency in delivering the media may be very large so that live communication is impractical or impossible, or small enough so that delivery time may be tolerable for the participants to continue conversing, albeit more in a time-shifted mode than a real-time mode. Furthermore, if the usable or MABR improves to the point sufficient to support live communication, then the participants may opt to continue the conversation in real-time.
Conversations as described in the above-mentioned U.S. application Ser. Nos. 12/028,400 and 12/192,890 differ than conventional telephone conversations. With a typical telephone call, a telephone number is dialed and a conversation takes place only if a circuit connection is made. When the parties hang up, the conversation is over. If the parties wish to speak again, one party will dial the other, and a new conversation takes place if a new circuit connection is established. In the Ser. Nos. 12/028,400 and 12/192,890 applications, it is assumed that communication devices, such as phones or computers, are always connected to the network. As a result, the notion of a conversation is not dependent on the existence of a network connection per se. Rather conversations may be ongoing or open-ended. Participants may contribute to a conversation whenever they wish, conversing either “live” in a near real-time mode or asynchronously in a time-shifted mode. A conversation is terminated only when it is explicitly ended.
In reality, it is difficult for a communication device to always be connected to the network. With mobile communication devices, such as mobile phones and radios, the device may wander outside of network range, or into an area of poor coverage, such as in a tunnel, mountainous region, or canyon. Similarly with wired devices, such as computers, network connectivity can be adversely affected for a number of reasons, such as equipment problems, a disruption of services, or too much traffic on the network. Regardless of the reason, a degradation or loss of network services typically resulted in the inability to communicate. With the graceful degradation of services as described herein, live communication may still take place, even when conditions on the network are so poor that it would otherwise prevent live communication.
Referring to FIG. 6A, a flow chart 30A illustrating a sequence for enabling time-sensitive communication to continue during a conversation when conditions on the network are poor or the connection is altogether dropped and to resume the same conversation when network conditions improve is shown. In the initial step, a conversation is established (box 32) between two or more participants, each using a communication device. During the course of the conversation, it is continually determined if either or both of the parties has ended the conversation (decision 34). If yes, the conversation is terminated (box 36) and the process is done. If the conversation is still ongoing, then it is continually determined (decision 38) if any time-sensitive media is available for transmission (e.g., the user of the transmitting device begins speaking, creating video, etc.).
When time-sensitive media is available for transmission, the usable bit rate on the network or MABR is compared to the RTBR needed to transmit the media at a rate sufficient to be consumed in real-time by the recipient (decision 40). If the MABR is greater than the RTBR (MABR>RTBR), then the available media is transmitted at the RTBR (box 42). If the MABR is not sufficient, then the media is transmitted from persistent storage at or below the MABR (box 44) as network conditions permit. Depending on the actual MABR, the latency in delivering the media may be large or small.
While the conversation is ongoing, the above process is repeated until the conversation is terminated. Whenever time-sensitive media becomes available, it is transmitted at either the RTBR or from persistent storage at or below the MABR as network conditions permit. With non-time sensitive media, the media is sent at the MABR as described above, but not illustrated in FIG. 6A.
Referring to FIG. 6B, a flowchart 30B according to an alternative embodiment is illustrated. The flow chart 30B is essentially the same as 30A, but with the addition of the adaptive live optimization techniques as described above. When it is determined in decision 40 that the MABR is less than the RTBR (MABR<RTBR) for live communication, then a reduced bit rate representation of the media may be generated (box 46). The reduced bit rate version of the media may be generated using any of the techniques mentioned above. Thereafter in decision 48, the MABR is then compared to the RTBR needed to transmit the reduced bit rate version of the media (hereafter referred to as the “reduced RTBR”). If the MABR is greater than the reduced RTBR, then the reduced bit rate version is transmitted at the reduced RTBR (box 50). Alternatively if the MABR is less than the reduced RTBR, then the media is transmitted from persistent storage as the MABR permit (box 44). Again, so long as the conversation is ongoing, the above process is repeated for available media. In box 52, a full bit rate representation of the transmitted reduced bit rate representation of the media may optionally be eventually transmitted as network conditions permit. The transmission of the full bit rate representation may occur either during or after the parties terminate the conversation. In this manner, the recipient communication device eventually persistently stores a complete copy of the media of the conversation.
In the embodiments described above with regard to FIGS. 6A and 6B, media created using a transmitting communication device is transmitted out of persistent storage when the MABR is less than either the RTBR or the reduced RTBR. In other embodiments, all media of the conversation, whether created on or received by a communication device, is persistently stored in time indexed order on the communication device, regardless if the MABR is above or below the RTBR or reduced RTBR. By persistently storing all the media of a conversation, a conversation may be conducted in either the live in a real-time rendering mode or a time-shifted rendering mode, and the participants may seamlessly transition the conversation between the two modes at their convenience. For more details, see the above-mentioned U.S. application Ser. Nos. 12/028,400 and 12/192,890.
Referring to FIGS. 7A through 7I, a sequence of user interfaces on the devices of two parties engaged in a “live” conversation in the near real-time mode. In this example, a conversation is taking place between Sam Fairbanks and Jill Wright. Both are using mobile phones. Sam is driving and enters into a tunnel during the conversation. While in the tunnel, Sam's connectivity to the network is essentially lost. The sequence of screen shots on Sam and Jill's devices illustrate how the two can not only continue the conversation while Sam is disconnected from the network, but can resume the conversation “live” or in real-time as Sam exists the tunnel and reconnects to the network.
FIG. 7A illustrates the ongoing conversation between Sam and Jill. The user interface on Sam's device 50 is illustrated on the left side of the figure, while the user interface of Jill's device 52 is on the right side. Each interface includes a signal strength indicator 54, which shows a graphical representation of the usable bit rate on the network (i.e., signal strength) for each device 50 and 52 respectively. The arrow 56 is representative of the “live” conversation between Sam and Jill.
FIG. 7B shows the user interfaces of devices 50 and 52 after Sam enters the tunnel and connectivity is lost. On Sam's device 50, a message “You have lost connectivity” appears on the interface. In addition, the interface presents Sam with the options of “Keep Talking”, “Notify When Available” (i.e., when Sam is back on the network) or “End” to end the conversation. The signal strength indicator 54 also shows that Sam's device 50 is essentially disconnected from the network. On the interface on device 52, Jill is notified that “Sam has gone offline”. Jill is also presented with the same options of “Keep Talking”, “Notify When Available” (i.e., when Sam reconnects to the network) or “End” the conversation. In this example, Sam elects to continue the conversation, in spite of the lost connectivity, by selecting the “Keep Talking” option.
In FIG. 7C, the user interface of device 50 indicates that Sam is in the process of speaking and creating a message (e.g., directions) for Jill. The user interface on Jill's device 52 indicates that the connection with Sam was essentially lost and is awaiting notification when Sam is back on the network.
FIG. 7D shows the user interfaces of the two devices 50 and 52 as Sam exits the tunnel and reconnects to the network. Sam's interface indicates that his device 50 is sending the message he created while in the tunnel, from persistent storage, to Jill. The signal strength indicator 54 also shows that device 50 is reconnected to the network. On Jill's device 52, the interface indicates that Sam is back online and speaking. Device 52 also presents three icons “Listen”, “Text” or “Talk”, which give Jill the options of listening to the incoming message, texting a message to Sam, or resume talking to Sam respectively. In this example, Jill elects the “Talk” option.
FIG. 7E shows the user interfaces of the two devices 50 and 52 after Jill selects the “Talk” option. In this example, Jill informs Sam that she is “here” and she wants to know “where did we leave off.” The arrow 56 indicates that the conversation has resumed in the real-time mode.
In FIG. 7F, Sam replies by informing Jill he left her a long message with the directions to a meeting Jill is attending.
In FIG. 7G, Sam and Jill agree to terminate the conversation. The user interfaces on the two devices 50 and 52 both indicate the conversation has terminated by displaying “End Conversation”.
FIG. 7H shows the user interface of the two devices 50 and 52 after the conversation has terminated. The user interfaces on the two devices 50 and 52 both show the history of the conversation, including message bubbles 58 indicating that Sam left Jill an audio message while Sam was in the tunnel. Using the “Listen” icon 60 appearing on device 52, Jill may elect to listen to the message.
As illustrated in FIG. 7I, a window 62 appears in the interface of device 52 after Jill elects to listen to the message bubble 58 on her communication device. Within the window 62, Jill is provided with a number of options to render Sam's message, such as play faster, jump back, pause, jump forward, etc. In this example, Jill elects to review the message at the normal rendering rate. As the message is played, Jill hears the driving instructions left by Sam as the message is rendered. The duration of the message is graphically displayed on a time bar.
In the above example, connectivity to the network is determined by ascertaining the usable bit rate on the connection between the devices 50 and 52. When the ascertained usable bit rate falls below the bit rate threshold, as Sam drives into the tunnel in this example, live or real-time communication can no longer take place. As Sam emerges from the tunnel and signal strength improves, the ascertained usable bit rate will eventually meet or exceed the threshold. When this occurs, Sam and Jill may resume their conversation live or in the real-time mode. In an alternative embodiment, the adaptive transmission techniques as described above may be used by Sam's device to maintain or extend the “live-ness” of the conversation. In either case, when the ascertained usable bit rate falls below either the RTBR or the reduced RTBR, then real-time communication can no longer take place.
Any media created by Sam when not in the live or real-time communication mode may still be transmitted from persistent storage at or below the ascertained usable bit rate on the network connection. The amount of media transmitted from persistent storage, however, depends on conditions on the network connection. In an extreme situation, for example when Sam is deep into the tunnel, the usable bit rate on the connection may be at or near zero. As a result, no or virtually no media created by Sam may be transmitted. But as Sam emerges from the tunnel, media may be transmitted from persistent storage as signal strength increases and conditions on the network connection improve. Eventually when Sam exists the tunnel, the usable bit rate on the network connection will likely exceed the bit rate threshold. At this point, not only may Sam and Jill resume their conversation in the live or real-time communication mode, but any media not already transmitted, is transmitted to Jill from persistent storage.
Thus when the usable bit rate is either at or above the RTBR or the reduced RTBR, then the conversation may be optionally conducted either in the (i) live or near real-time rendering mode or (ii) in the time-shifted rendering mode. In the latter, messages may be reviewed by the recipient at any arbitrary time. In addition, the participants of the conversation may seamlessly transition between the two modes (i) and (ii). On the other hand when the usable bit rate is below the RTBR or the reduced RTBR, the conversation can only be conducted in the time-shifted mode. If the amount of latency is minimal, the participants may still be able to communicate in a manner that is close to live. But as the latency increases, the ability to communicate in a “live” fashion diminishes.
It should be noted that the various messages, icons and notifications mentioned above with regard to FIGS. 7A through 7I 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. Those provided above should therefore be considered representative of the different functions as described herein rather than limiting the scope of the invention.
Referring to FIG. 8, a diagram of device A is illustrated. The device A includes an encoder 70 configured to receive media from a media generating device 72, such as a microphone, video camera, sensor, or GPS device, a communication application 73 which defines persistent storage 22 (not shown) and is configured to run or be executed on processor core 75, a transmitter 76, a receiver 78, a rendering/control device 80 and a media rendering device 82, such as a speaker and/or display. For more details on the operation of device A and the communication application 73, see U.S. device 13 and the client application 12 as described in application Ser. Nos. 12/028,400 and 12/192,890 respectively.
The aforementioned description is described in relation to a wired or wireless communication devices. It should be understood that the same techniques and principles of the present invention also apply to the hops 16 between a sending and a receiving pair in either a wireless or wired network. In the case of a hop 16, media is typically not generated on these devices. Rather these devices receive media from another source, such as a phone, radio or another hop on the network, and are responsible for optionally persistently storing the received media and forwarding the media on to the next hop or the recipient as described above.
The above example as illustrated in FIGS. 7A through 7I is described in the context of a conversation conducted between Sam and Jill over a wireless network while each is using a mobile communication device, such as a cell phone or radio. It should be understood that this example should not be construed as limiting in any way. Rather the communication apparatus and method as described herein be applied to any communication system, 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. Further, communication devices 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 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.

## Claims

1. A method for conducting a conversation, comprising:
establishing a conversation between a first communication device and a second communication device over a connection on a network;
persistently storing on the first communication device media of the conversation transmitted by the first communication device and received from the second communication device;
determining during the conversation when the usable bit rate on the connection is either at or above a bit rate threshold or below the bit rate threshold, the bit rate threshold defining a transmission bit rate sufficient for the media to be decipherable when transmitted to and rendered by the second communication device in near real-time, and
performing, depending on the determined usable bit rate, the following:
transmitting the media as it becomes available at the first communication device to the second communication device at or above the bit rate threshold so that the second communication device can render the available media in near real-time when the usable bit rate on the connection is at or above a bit rate threshold; and
transmitting the media from persistent storage to the second communication device as conditions on the connection permit when the ascertained usable bit rate on the connection falls below the bit rate threshold,
whereby the conversation may continue in a time-shifted mode when the usable bit rate is below the bit rate threshold and may resume in near real-time when the usable bit rate is at or above the bit rate threshold.

2. The method of claim 1, further enabling, when the usable bit rate is at or above the bit rate threshold, the transmitted media to be optionally rendered at the second communication device either in near real-time or at an arbitrary later time in the time-shifted mode.

3. The method of claim 2, further enabling the seamless transition of the rendering of the transmitted media at the second communication device between the time-shifted mode and near real time.

4. The method of claim 1, wherein persistently storing the transmitted media means storage for a time period beyond what is needed to transmit the media.

5. The method of claim 1, wherein transmitting the media further comprises transmitting a full bit rate version of the media, wherein the full bit rate version of the media is created when the media is originally encoded.

6. The method of claim 1, further comprising:
generating at the first communication device a reduced bit rate version of the media created using the first communication device when the usable bit rate is below the bit rate threshold; and
transmitting the reduced bit rate version of the media.

7. The method of claim 6, wherein the reduced bit rate version of the media is generated by one of the following: (i) using different Codec settings; (ii) using different Codecs; (iii) using a compression algorithm; or (iv) any combination of (i) through (iii).

8. The method of claim 6, further comprising transmitting the full bit rate version of the media corresponding to the transmitted reduced bit rate version of the media when conditions on the connection permit.

9. The method of claim 1, wherein transmitting the media from persistent storage when the usable bit rate falls below the bit rate threshold further comprises transmitting the media from persistent storage over the connection within an adaptive transmission range on the connection, wherein the adaptive transmission range is defined as the bit rate on the connection below the bit rate threshold.

10. The method of claim 1, wherein the network connection is either a wireless or wired network connection.

11. The method of claim 1, wherein the network connection comprises a first connection between the first communication device and one or more hops on the network and a second connection between the second communication device and the one or more hops.

12. The method of claim 1, wherein the first and second communication devices each comprise one of the following: land-line phone, wireless phone, cellular phone, satellite phone, computer, radio, server, satellite radio, tactical radio or tactical phone.

13. The method claim 1, wherein the media comprises one or more of the following types of media: video, text, sensor data, position or GPS information, radio signals, or a combination thereof.

14. The method of claim 1, wherein the usable bit rate is the maximum available bit rate on the connection.

15. A communication device for conducting a conversation over a connection on a network, comprising:
a conversation element configured to establish a conversation between the communication device and a second communication device over the connection on the network;
a persistent storage element configured to persistently store at the communication device the media of the conversation transmitted by the communication device and received from the second communication device;
a transmission element configured to determine when media is available for transmission during the conversation if the usable bit rate on the connection is either at or above a bit rate threshold or below the bit rate threshold, and
the transmission element further configured, depending on the determined usable bit rate, to perform the following:
(i) transmit media of the conversation as the media is created at the communication device to the second communication device, at a transmission rate at or above the bit rate threshold, so that the second communication device can selectively render the media in near real-time when the determined usable bit rate is at or above the bit rate threshold; and
(ii) transmit the media from persistent storage to the second communication device as conditions on the connection permit when the determined usable bit rate is below the bit rate threshold,

whereby the conversation may continue in a time-shifted mode when the usable bit rate is below the bit rate threshold and may resume in near real-time or the time-shifted mode when the usable bit rate is at or above the bit rate threshold.

16. The device of claim 15, wherein the transmission element is further configured to transmit the media, when the usable bit rate is at or above the bit rate threshold, so that the second communication device may selectively render the transmitted media in near real-time or at an arbitrary later time in the time-shifted mode.

17. The device of claim 15, wherein persistent storage of the transmitted media means storage for a time period beyond what is needed for transmission.

18. The device of claim 15, wherein the transmission element is further configured to transmit a full bit rate version of the media, wherein the full bit rate version of the media is created when the media is originally encoded.

19. The device of claim 15, wherein the transmission element is further configured to:
generate at the communication device a reduced bit rate version of the media when the usable bit rate is below the bit rate threshold; and
transmit the reduced bit rate version of the media.

20. The device of claim 19, wherein the transmission element generates the reduced bit rate version of the media by one of the following: (i) using different Codec settings; (ii) using different Codecs; (iii) using a compression algorithm; or (iv) any combination of (i) through (iii).

21. The device of claim 19, wherein the transmission element is further configured to transmit the full bit rate version of the media corresponding to the transmitted reduced bit rate version of the media when conditions on the connection permit.

22. The device of claim 15, wherein the transmission element is further configured to transmit the media from persistent storage within an adaptive transmission range on the connection, wherein the adaptive transmission range is defined as the bit rate on the connection below the bit rate threshold.

23. The device of claim 15, wherein the network connection is either a wireless or wired network connection.

24. The device of claim 15, wherein the network connection comprises a first connection between the communication device and one or more hops on the network and a second connection between the second communication device and the one or more hops.

25. The device of claim 15, wherein the communication device comprises one of the following: land-line phone, wireless phone, cellular phone, satellite phone, computer, radio, server, satellite radio, tactical radio or tactical phone.

26. The device claim 15, wherein the media comprises one or more of the following types of media: video, text, sensor data, position or GPS information, radio signals, or a combination thereof.

27. The method of claim 15, wherein the usable bit rate is the maximum available bit rate on the connection.

28. The method of claim 15, wherein the bit rate threshold is defined as a transmission bit rate sufficient for media created during the conversation by the communication device to be decipherable when transmitted to and rendered by the second communication device in near real-time.

29. Computer code embedded in a non-transitory computer readable medium and intended to run on a communication device connected to a network, the computer code configured to:
establish a conversation between the communication device and a second communication device over the connection on the network;
persistently store at the communication device the media of the conversation transmitted by the communication device and received from the second communication device;
determine when media is available for transmission during the conversation if the usable bit rate on the connection is either at or above a bit rate threshold or below the bit rate threshold, and
perform, depending on the determined usable bit rate, one of the following:
(i) transmit media of the conversation as the media is created at the communication device to the second communication device, at a transmission rate at or above the bit rate threshold, so that the second communication device can selectively render the media in near real-time when the determined usable bit rate is at or above the bit rate threshold; and
(ii) transmit the media from persistent storage to the second communication device as conditions on the connection permit when the determined usable bit rate is below the bit rate threshold,
whereby the conversation may continue in a time-shifted mode when the usable bit rate is below the bit rate threshold and may resume in near real-time or the time-shifted mode when the usable bit rate is at or above the bit rate threshold.

30. The code of claim 29, wherein the code is further configured to transmit the media, when the usable bit rate is at or above the bit rate threshold, so that the second communication device may selectively render the transmitted media in near real-time or at an arbitrary later time in the time-shifted mode.

31. The code of claim 29, wherein persistent storage of the transmitted media means storage for a time period beyond what is needed for transmission.

32. The code of claim 29, wherein the code is further configured to transmit a full bit rate version of the media, wherein the full bit rate version of the media is created when the media is originally encoded.

33. The code of claim 29, wherein the code is further configured to:
generate at the communication device a reduced bit rate version of the media when the usable bit rate is below the bit rate threshold; and
transmit the reduced bit rate version of the media.

34. The code of claim 33, wherein the code is further configured to generate the reduced bit rate version of the media by one of the following: (i) using different Codec settings; (ii) using different Codecs; (iii) using a compression algorithm; or (iv) any combination of (i) through (iii).

35. The code of claim 34, wherein the code is further configured to transmit the full bit rate version of the media corresponding to the transmitted reduced bit rate version of the media when conditions on the connection permit.

36. The code of claim 29, wherein the code is further configured to transmit the media from persistent storage within an adaptive transmission range on the connection, wherein the adaptive transmission range is defined as the bit rate on the connection below the bit rate threshold.

37. The code of claim 29, wherein the network connection is either a wireless or wired network connection.

38. The code of claim 29, wherein the network connection comprises a first connection between the communication device and one or more hops on the network and a second connection between the second communication device and the one or more hops on the network.

39. The code of claim 29, wherein the communication device configured to run the code comprises one of the following: land-line phone, wireless phone, cellular phone, satellite phone, computer, radio, server, satellite radio, tactical radio or tactical phone.

40. The code claim 29, wherein the media comprises one or more of the following types of media: video, text, sensor data, position or GPS information, radio signals, or a combination thereof.

41. The code of claim 29, wherein the usable bit rate is the maximum available bit rate on the connection.

42. The code of claim 29, wherein the bit rate threshold is defined as a transmission bit rate sufficient for media created during the conversation by the communication device to be decipherable when transmitted to and rendered by the second communication device in near real-time.