Patent ID: 8509123

Claim:
A non-transitory computer readable medium including computer code intended for execution on a communication device connected to a network, the code configured to perform the following when executed on the communication device: enable the communication device to participate in a conversation conducted over the network with a remote participant, the conversation including a bi-directional exchange between the participants of incoming and outgoing messages that include voice media; progressively store the incoming and outgoing messages of the conversation on the communication device: (a) as the voice media of the outgoing messages is created on the communication device; and (b) as the voice media of the incoming messages is received over the network from the remote participant of the conversation; display on the communication device the message history of the conversation, the message history including visual representations corresponding to the incoming and outgoing messages respectively; provide rendering options on the communication device to selectively render the incoming messages of the conversation in a near real-time mode as the voice media of the incoming messages is progressively received over the network and out of storage in a time-shifted mode; selectively transition participation in the conversation between the near real-time mode when progressively rendering the voice media of the incoming messages as the voice media is progressively received over the network and in the time-shifted messaging mode when rendering the voice media of the incoming messages out of storage; and provide a select-to-talk function for generating the outgoing messages of the conversation on the communication device, the select-to-talk function, when implemented, configured to: (c) generate one of the outgoing messages pertaining to the conversation; and (d) progressively transmit the voice media of the one outgoing message to the remote participant of the conversation as the voice media is created and progressively stored on the communication device.