IP Library Granted Patent US 8,600,363
Granted Patent B2
US 8,600,363 · App. 12/726,332 · Granted Dec 3, 2013

Synchronization in unified messaging systems

Inventors: Vlad Vendrow (Redwood Shores, CA); Vlad Shmunis (Hillsborough, CA)
Assignee: RingCentral, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,600,363
App. No.
12/726,332
Granted
Dec 3, 2013
Kind
B2
Abstract

A unified messaging system, method, apparatus, individual components and the like are disclosed. The unified messaging system comprises a server, a client and a synchronization application for synchronizing voicemail messages and fax messages on both the server and the client is disclosed. The server messages may include received messages and sent messages, each of which is indexed according to their respective indices and read/unread statuses. Similarly, the client messages may include received messages and sent messages, each of which is indexed according to their respective indices and read/unread statuses.

Claims (111)

1. A method comprising:

storing, in a server message storage module associated with a user of a unified messaging system, a plurality of server messages on a server of the unified messaging system, the plurality of server messages including at least one voicemail or at least one fax;

storing a plurality of client messages in a client message storage module on a client device of the user, the plurality of client messages including at least one voicemail or at least one fax corresponding to the at least one voicemail or the at least one fax of the plurality of server messages; and

synchronizing the client message storage module with the server message storage module;

wherein synchronizing the client message storage module with the server message storage module includes a synchronization application installed on the client device of the user when executed by the client device performing the steps of:

sending a network request to a server of the unified messaging system;

receiving a network response to the network request from a server of the unified messaging system, the network response comprising state information about the plurality of server messages in the server message storage module;

identifying state information about the plurality of client messages in the client message storage module;

performing a discrepancy assessment between the state information about the plurality of server messages and the state information about the plurality of client messages;

creating a list of one or more synchronization actions based on results of the discrepancy assessment; and

performing the synchronization actions in the list.

2. The method of claim 1 , wherein the state information about the plurality of server messages comprises, for each server message of the plurality of server messages, a message index of the server message and a message status of the server message.

3. The method of claim 2 , wherein the message status is a read/unread status of the server message.

4. The method of claim 1 , wherein the state information about the plurality of client messages comprises, for each client message of the plurality of client messages, a message index of the client message and a message status of the client message.

5. The method of claim 4 , wherein the message status is a read/unread status of the client message.

6. The method of claim 1 , wherein:

the state information about the plurality of server messages comprises, for each server message of the plurality of server messages, a message index of the server message;

the state information about the plurality of client messages comprises, for each client message of the plurality of client messages, a message index of the client message; and

performing the discrepancy assessment comprises:

performing a comparison between the message indices of the plurality of server messages and the message indices of the plurality of client messages;

determining, based on the comparison, whether any new client messages have been added to the client message storage module since a last synchronization between the client message storage module and the server message storage module; and

determining, based on the comparison, whether any new server messages have been added to the server message storage module since the last synchronization.

7. The method of claim 1 , wherein:

the state information about the plurality of server messages comprises, for each server message of the plurality of server messages, a message status of the server message;

the state information about the plurality of client messages comprises, for each client message of the plurality of client messages, a message status of the client message; and

performing the discrepancy assessment comprises:

determining, based on the state information about the plurality of server messages, which server messages of the plurality of server messages, if any, have had a message status change in the server message storage module since a last synchronization between the client message storage module and the server message storage module; and

determining, based on the state information about the plurality of client messages, which client messages of the plurality of client messages, if any, have had a message status change in the client message storage module since the last synchronization.

8. The method of claim 1 , wherein:

a particular server message of the plurality of server messages corresponds to a particular client message of the plurality of client messages;

performing the discrepancy assessment comprises determining that the particular server message of the plurality of server messages has been marked as read in the server message storage module since a last synchronization between the client message storage module and the server message storage module;

creating the list of synchronization actions comprises creating an action to mark a read/unread status of the particular client message in the client message storage module as read; and

performing the synchronization actions in the list comprises marking the read/unread status of the particular client message in the client message storage module as read.

9. The method of claim 1 , wherein:

a particular server message of the plurality of server messages corresponds to a particular client message of the plurality of client messages;

performing the discrepancy assessment comprises determining that the particular client message of the plurality of client messages has been marked as read in the client message storage module since a last synchronization between the client message storage module and the server message storage module;

creating the list of synchronization actions comprises creating an action to send a network request to a server of the unified message system to mark a read/unread status of the particular server message in the server message storage module as read; and

performing the synchronization actions in the list comprises sending the network request to the server of the unified message system to mark the read/unread status of the particular server message in the server message storage module as read.

10. The method of claim 1 , wherein:

performing the discrepancy assessment comprises determining that a new server message has been added to the server message storage module since a last synchronization between the client message storage module and the server message storage module;

creating the list of synchronization actions comprises creating an action to download the new server message from a server of the unified messaging system; and

performing the synchronization actions in the list comprises downloading the new server message from a server of the unified messaging system.

11. The method of claim 1 , wherein:

performing the discrepancy assessment comprises determining that a new client message has been added to the client message storage module since a last synchronization between the client message storage module and the server message storage module;

creating the list of synchronization actions comprises creating an action to upload the new client message to a server of the unified messaging system; and

performing the synchronization actions in the list comprises uploading the new client message to a server of the unified messaging system.

12. The method of claim 1 , wherein:

performing the discrepancy assessment comprises determining that a client message has been deleted from the client message storage module since a last synchronization between the client message storage module and the server message storage module;

wherein the deleted client message corresponds to a particular server message of the plurality of server messages;

creating the list of synchronization actions comprises creating an action to send a network request to a server of the unified messaging system to delete the particular server message from the server message storage module; and

performing the synchronization actions in the list comprises sending the network request to a server of the unified messaging system to delete the particular server message from the server message storage module.

13. The method of claim 1 , wherein the synchronization application is not an e-mail application.

14. The method of claim 1 , wherein the client device is phone, a fax machine, or a personal computer.

15. The method of claim 1 , wherein:

performing the discrepancy assessment comprises determining that a new server message has been added to the server message storage module since a last synchronization between the client message storage module and the server message storage module, and determining that a new client message has been added to the client message storage module since the last synchronization;

creating the list of synchronization actions comprises creating an action to download the new server message from a server of the unified messaging system, and creating an action to upload the new client message to a server of the unified messaging system; and

performing the synchronization actions in the list comprises downloading the new server message from a server of the unified messaging system, and uploading the new client message to a server of the unified messaging system.

16. A unified messaging system comprising:

a server having at least one processor and memory, the server capable of operatively coupling to a data network;

a server message storage module configured to store a plurality of server messages, the plurality of server messages including at least one voicemail or at least one fax;

a client message storage module configured to store a plurality of client messages, the plurality of client messages including at least one voicemail or at least one fax corresponding to the at least one voicemail or the at least one fax of the plurality of server messages; and

a synchronization application configured to:

send a network request to the server over the data network;

receive a network response to the network request from the server over the data network, the network response comprising state information about the plurality of server messages in the server message storage module;

identify state information about the plurality of client messages in the client message storage module;

perform a discrepancy assessment between the state information about the plurality of server messages and the state information about the plurality of client messages;

create a list of one or more synchronization actions based on results of the discrepancy assessment; and

perform the synchronization actions in the list.

17. The system of claim 16 , wherein the state information about the plurality of server messages comprises, for each server message of the plurality of server messages, a message index of the server message and a message status of the server message.

18. The system of claim 17 , wherein the message status is a read/unread status of the server message.

19. The system of claim 16 , wherein the state information about the plurality of client messages comprises, for each client message of the plurality of client messages, a message index of the client message and a message status of the client message.

20. The system of claim 19 , wherein the message status is a read/unread status of the client message.

21. The system of claim 16 , wherein:

the state information about the plurality of server messages comprises, for each server message of the plurality of server messages, a message index of the server message;

the state information about the plurality of client messages comprises, for each client message of the plurality of client messages, a message index of the client message; and

the synchronization application is further configured to:

perform a comparison between the message indices of the plurality of server messages and the message indices of the plurality of client messages;

determine, based on the comparison, whether any new client messages have been added to the client message storage module since a last synchronization between the client message storage module and the server message storage module; and

determine, based on the comparison, whether any new server messages have been added to the server message storage module since the last synchronization.

22. The system of claim 16 , wherein:

the state information about the plurality of server messages comprises, for each server message of the plurality of server messages, a message status of the server message;

the state information about the plurality of client messages comprises, for each client message of the plurality of client messages, a message status of the client message; and

the synchronization application is further configured to:

determine, based on the state information about the plurality of server messages, which server messages of the plurality of server messages, if any, have had a message status change in the server message storage module since a last synchronization between the client message storage module and the server message storage module; and

determine, based on the state information about the plurality of client messages, which client messages of the plurality of client messages, if any, have had a message status change in the client message storage module since the last synchronization.

23. The system of claim 16 , wherein:

a particular server message of the plurality of server messages corresponds to a particular client message of the plurality of client messages; and

the synchronization application is further configured to:

determine that the particular server message of the plurality of server messages has been marked as read in the server message storage module since a last synchronization between the client message storage module and the server message storage module; and

mark a read/unread status of the particular client message in the client message storage module as read.

24. The system of claim 16 , wherein:

a particular server message of the plurality of server messages corresponds to a particular client message of the plurality of client messages;

the synchronization application is further configured to:

determine that the particular client message of the plurality of client messages has been marked as read in the client message storage module since a last synchronization between the client message storage module and the server message storage module; and

send a network request over the data network to the server to mark a read/unread status of the particular server message in the server message storage module as read.

25. The system of claim 16 , wherein the synchronization application is further configured to:

determine that a new server message has been added to the server message storage module since a last synchronization between the client message storage module and the server message storage module; and

download the new server message over the data network from the server.

26. The system of claim 16 , wherein the synchronization application is further configured to:

determine that a new client message has been added to the client message storage module since a last synchronization between the client message storage module and the server message storage module; and

upload the new client message over the data network to the server.

27. The system of claim 16 , wherein the synchronization application is further configured to:

determine that a client message has been deleted from the client message storage module since a last synchronization between the client message storage module and the server message storage module, the deleted client message corresponding to a particular server message of the plurality of server messages; and

send a network request over the data network to the server to delete the particular server message from the server message storage module.

28. The system of claim 16 , wherein the synchronization application is not an e-mail application.

29. The system of claim 16 , wherein the synchronization application is installed on a phone, a fax machine, or a personal computer.

30. The system of claim 16 , wherein the synchronization application is further configured to:

determine that a new server message has been added to the server message storage module since a last synchronization between the client message storage module and the server message storage module;

determine that a new client message has been added to the client message storage module since the last synchronization;

download the new server message over the data network from the server; and

uploading the new client message over the data network to the server.

Assignments (2)
MERGER Recorded Oct 7, 2013
From: RINGCENTRAL, INC., A CALIFORNIA CORPORATION
To: RINGCENTRAL, INC., A DELAWARE CORPORATION
Reel/Frame 031357/0907 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2010
From: VENDROW, VLAD; SHMUNIS, VLADIMIR
To: RINGCENTRAL, INC.
Reel/Frame 025534/0278 →
Continuity (3)
Continuation 11219532 · Sep 2, 2005
Provisional Application 60607220 · Sep 2, 2004
Related Publication 20100185584A1 · Jul 22, 2010