Method and apparatus for real-time synchronization of voice communications
First Claim
1. An application embedded in a non-transitory computer readable medium and intended to run on a first client communication device, the application comprising:
- a storage module configured to progressively store in a first persistent storage element on the first client communication device voice media pertaining to a conversation and created using the first communication device as the voice media is created while using the first client communication device;
a transmission module configured to progressively transmit the voice media to a second client communication device over a network as the voice media is created and stored in the first storage element;
a network receive module configure to progressively receive over the network voice media received from the second client communication device and to cooperate with the storage module to progressively store in the first persistent storage element the received voice media pertaining to the conversation from the second client communication device;
a render module configured to selectively render the voice media received over the network (a) progressively as the voice media is received over the network in a real-time mode and (b) progressively by retrieving and rendering the received voice media out of the first persistent storage element in a time-shifted mode; and
a synchronization module configured to synchronize the transmitted and received voice media of the conversation between the first client communication device and the second client communication device, the synchronization effort occurring in situations where there is voice media loss on the network and the synchronization effort including retransmission efforts for voice media continuing beyond a time period where the voice media can be rendered in real-time to ensure that the first and second client communication devices each obtain and persistently store complete copies of the transmitted and received voice media of the conversation for rendering in the time-shifted mode.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for synchronizing in real-time the voice media of a conversation conducted over a network between a first communication device and a second communication. The method includes at each of the first and second communication devices progressively storing in first and second storage elements and transmitting the voice media created using the first and second communication devices to the other communication device respectively. Both the first and second communication devices store in the first and second storage elements the progressively received media from the other device respectively. A mechanism to continually review, ascertain and request the media stored in the first storage element, but not the second storage element, and vice-versa is provided to ensure that the two storage elements contain the same voice media. As a result, the first and second storage elements each maintain real-time synchronized copies of the voice media of the conversation respectively.
219 Citations
30 Claims
-
1. An application embedded in a non-transitory computer readable medium and intended to run on a first client communication device, the application comprising:
-
a storage module configured to progressively store in a first persistent storage element on the first client communication device voice media pertaining to a conversation and created using the first communication device as the voice media is created while using the first client communication device; a transmission module configured to progressively transmit the voice media to a second client communication device over a network as the voice media is created and stored in the first storage element; a network receive module configure to progressively receive over the network voice media received from the second client communication device and to cooperate with the storage module to progressively store in the first persistent storage element the received voice media pertaining to the conversation from the second client communication device; a render module configured to selectively render the voice media received over the network (a) progressively as the voice media is received over the network in a real-time mode and (b) progressively by retrieving and rendering the received voice media out of the first persistent storage element in a time-shifted mode; and a synchronization module configured to synchronize the transmitted and received voice media of the conversation between the first client communication device and the second client communication device, the synchronization effort occurring in situations where there is voice media loss on the network and the synchronization effort including retransmission efforts for voice media continuing beyond a time period where the voice media can be rendered in real-time to ensure that the first and second client communication devices each obtain and persistently store complete copies of the transmitted and received voice media of the conversation for rendering in the time-shifted mode. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An application embedded in a non-transitory computer readable medium and intended to run on a first client communication device, the application comprising:
-
a storage module configured to progressively store in a first persistent storage element on the first client communication device voice media pertaining to a conversation and created using the first communication device as the voice media is created while using the first client communication device; a transmission module configured to progressively transmit the voice media to a second client communication device over a network as the voice media is created and stored in the first storage element; a network receive module configure to progressively receive over the network voice media received from the second client communication device and to cooperate with the storage module to progressively store in the first persistent storage element the received voice media pertaining to the conversation from the second client communication device; a render module configured to selectively render the voice media received over the network (a) progressively as the voice media is received over the network in a real-time mode and (b) progressively by retrieving and rendering the received voice media out of the first persistent storage element in a time-shifted mode; and
a synchronization module configured to synchronize the transmitted and received voice media of the conversation between the first client communication device and the second client communication device, the synchronization effort occurring in situations where there is voice media loss on the network and continuing beyond a time period where the voice media can be rendered in real-time so ensure that the first and second client communication devices each obtain and persistently store complete copies of the transmitted and received voice media of the conversation for rendering in the time-shifted mode wherein the synchronization module is further configured to;i) receive a notification from the second client device reporting on a status of all locally created voice media originating at the second client device pertaining to the conversation; (ii) ascertain the voice media transmitted by the second client communication device but not received at the first client communication device; and (iii) request retransmission of the ascertained voice media. - View Dependent Claims (10)
-
-
11. An application embedded in a non-transitory computer readable medium and intended to run on a first client communication device, the application comprising:
-
a storage module configured to progressively store in a first persistent storage element on the first client communication device voice media pertaining to a conversation and created using the first communication device as the voice media is created while using the first client communication device; a transmission module configured to progressively transmit the voice media to a second client communication device over a network as the voice media is created and stored in the first storage element; a network receive module configure to progressively receive over the network voice media received from the second client communication device and to cooperate with the storage module to progressively store in the first persistent storage element the received voice media pertaining to the conversation from the second client communication device; a render module configured to selectively render the voice media received over the network (a) progressively as the voice media is received over the network in a real-time mode and (b) progressively by retrieving and rendering the received voice media out of the first persistent storage element in a time-shifted mode; and
a synchronization module configured to synchronize the transmitted and received voice media of the conversation between the first client communication device and the second client communication device, the synchronization effort occurring in situations where there is voice media loss on the network and continuing beyond a time period where the voice media can be rendered in real-time so ensure that the first and second client communication devices each obtain and persistently store complete copies of the transmitted and received voice media of the conversation for rendering in the time-shifted mode;wherein the transmission module is further configured to; (i) define a transmission loop; (ii) transmit the voice media available during the transmission loop; and (iii) transmit a reduced bit rate representation of the voice media during the transmission loop if the usable bit rate on the network is not sufficient for transmitting the available voice media as originally encoded when created. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A first client communication device, comprising:
-
a storage element configured to progressively store in a first persistent storage element voice media pertaining to a conversation and created using the first client communication device as the voice media is created; a transmission element configured to progressively transmit the voice media to a second client communication device over a network as the voice media is created and stored in the first storage element; a network receive element configure to progressively receive over the network voice media received from the second client communication device and to cooperate with the storage element to progressively store in the first persistent storage element the received voice media pertaining to the conversation from the second client communication device; a render element configured to selectively render the voice media received over the network (a) progressively as the voice media is received over the network in a real-time mode and (b) progressively by retrieving and rendering the received voice media out of the first persistent storage element in a time-shifted mode; and a synchronization element configured to synchronize the transmitted and received voice media of the conversation between the first client communication device and the second client communication device, the synchronization effort occurring in situations where there is voice media loss on the network and the synchronization effort including retransmission efforts for voice media continuing beyond a time period where the voice media can be rendered in real-time to ensure that the first and second client communication devices each obtain and persistently store complete copies of the transmitted and received voice media of the conversation for rendering in the time-shifted mode. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
-
24. A first client communication device, comprising:
-
a storage element configured to progressively store in a first persistent storage element voice media pertaining to a conversation and created using the first client communication device as the voice media is created; a transmission element configured to progressively transmit the voice media to a second client communication device over a network as the voice media is created and stored in the first storage element; a network receive element configure to progressively receive over the network voice media received from the second client communication device and to cooperate with the storage element to progressively store in the first persistent storage element the received voice media pertaining to the conversation from the second client communication device; a render element configured to selectively render the voice media received over the network (a) progressively as the voice media is received over the network in a real-time mode and (b) progressively by retrieving and rendering the received voice media out of the first persistent storage element in a time-shifted mode; and
a synchronization element configured to synchronize the transmitted and received voice media of the conversation between the first client communication device and the second client communication device, the synchronization effort occurring in situations where there is voice media loss on the network and continuing beyond a time period where the voice media can be rendered in real-time so that the first and second client communication devices each obtain and persistently store complete copies of the transmitted and received voice media of the conversation for rendering in the time-shifted mode;wherein the synchronization element is further configured to; i) receive notification from the second client device of the status of all locally created voice media originating at the second client device pertaining to the conversation; ii) ascertain the voice media transmitted by the second client communication device but not received at the first client communication device; and iii) request retransmission of the ascertained voice media. - View Dependent Claims (25)
-
-
26. A first client communication device, comprising:
-
a storage element configured to progressively store in a first persistent storage element voice media pertaining to a conversation and created using the first client communication device as the voice media is created; a transmission element configured to progressively transmit the voice media to a second client communication device over a network as the voice media is created and stored in the first storage element; a network receive element configure to progressively receive over the network voice media received from the second client communication device and to cooperate with the storage element to progressively store in the first persistent storage element the received voice media pertaining to the conversation from the second client communication device; a render element configured to selectively render the voice media received over the network (a) progressively as the voice media is received over the network in a real-time mode and (b) progressively by retrieving and rendering the received voice media out of the first persistent storage element in a time-shifted mode; and
a synchronization element configured to synchronize the transmitted and received voice media of the conversation between the first client communication device and the second client communication device, the synchronization effort occurring in situations where there is voice media loss on the network and continuing beyond a time period where the voice media can be rendered in real-time so that the first and second client communication devices each obtain and persistently store complete copies of the transmitted and received voice media of the conversation for rendering in the time-shifted mode;wherein the transmission element is further configured to; (i) define a transmission loop; and (ii) transmit the voice media available during the transmission loop; and (iii) transmit a reduced bit rate representation of the voice media during the transmission loop if the usable bit rate on the network is not sufficient for transmitting the available voice media as originally encoded when created. - View Dependent Claims (27, 28, 29, 30)
-
Specification