IP Library Granted Patent US 10,158,747
Granted Patent B2
US 10,158,747 · App. 15/440,410 · Granted Dec 18, 2018

Messaging systems and methods

Inventors: Douglas G. Murray (Kirkland, WA); Steven J. Tindall (Kirkland, WA); Roger E. Visser (Bellevue, WA)
Assignees: Applied Voice & Speech Technologies, Inc.; XMedius
H04M1/658H04L67/1095H04M1/72552H04M3/5307H04M3/53325H04M7/0042H04W4/12H04L51/00H04M2203/4509
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 10,158,747
App. No.
15/440,410
Granted
Dec 18, 2018
Kind
B2
Abstract

Apparatus, methods, and machine-readable articles of manufacture improve reliability and scalability of a messaging system. In some embodiments, the system's configuration data and subscriber information are stored in a central repository of a core node, and replicated to one or more non-core nodes. Data replication may be performed in real-time or near real-time, periodically, sporadically, or otherwise. Nodes may rely on the replicated data to provide the system's subscribers and outside callers with services that do not involve updating of configuration or subscriber data. In this way, the non-core nodes may continue to process calls when the core node is unavailable. For example, the non-core nodes can route calls to the appropriate subscribers without relying on the core. As another example, the non-core nodes can take messages from callers when the core node is unavailable. The messages may be queued for posting and delivery when the core node becomes available.

Claims (64)

1. An article of manufacture comprising non-transitory machine-readable storage medium with program code stored in the machine-readable medium, the program code being for operating a multi-node messaging system comprising a core node and a plurality of non-core nodes, the plurality of non-core nodes comprising a first non-core node and a second non-core node, each non-core node of the plurality of non-core nodes being coupled to telephone switching equipment associated with said each non-core node, wherein the program code stores computer instructions for performing steps comprising:

configuring the core node to provide central repository services for storing system configuration of the multi-node messaging system, storing subscriber information for subscribers served by the multi-node messaging system, and providing centralized administrative and subscriber access to the system configuration information and subscriber information; and

configuring said each non-core node of the plurality of non-core nodes as a platform running telephony user interface applications for processing telephone calls;

wherein:

at least the first non-core node of the plurality of non-core nodes is configured to provide a platform running voice user interface applications for processing the telephone calls;

the core node and at least two non-core nodes of the plurality of non-core nodes are configured to replicate at least a portion of the system configuration information stored on the core node and at least a portion of the subscriber information stored on the core node to each non-core node of the at least two non-core nodes;

the multi-node messaging system is configured to receive calls and voice messages from outside callers to the subscribers served by the multi-node messaging system, so that the outside callers are enabled to call extensions of specific subscribers served by the multi-node messaging system selected by the outside callers, and so that the outside callers are enabled to leave voicemail for the specific subscribers selected by the outside callers; and

the messaging system is configured to enable the subscribers served by the messaging system to place through the messaging system external calls directed outside the messaging system.

2. The article of manufacture of claim 1 , wherein:

said portion of the system configuration information comprises all system configuration information of the multi-node messaging system; and

said portion of the subscriber information comprises all subscriber information for the subscribers served by the multi-node messaging system.

3. The article of manufacture of claim 1 , wherein the steps further comprise configuring the core node and the at least two non-core nodes to replicate the portion of the system configuration information stored on the core node and the portion of the subscriber information stored on the core node to the at least two non-core nodes in real-time.

4. The article of manufacture of claim 1 , wherein the steps further comprise configuring the core node and the at least two non-core nodes to replicate the portion of the system configuration information stored on the core node and the portion of the subscriber information stored on the core node to the at least two non-core nodes substantially in real-time.

5. The article of manufacture of claim 1 , wherein the steps further comprise configuring the core node and the at least two non-core nodes to replicate the portion of the system configuration information stored on the core node and the portion of the subscriber information stored on the core node to the at least two non-core nodes periodically.

6. The article of manufacture of claim 1 , wherein:

the first non-core node is associated with a first plurality of the subscribers served by the multi-node messaging system and the second non-core node is associated with a second plurality of the subscribers served by the multi-node messaging system, the first non-core node being coupled to a first private branch exchange for servicing the first plurality of the subscribers, the second non-core node being coupled to a second private branch exchange for servicing the second plurality of the subscribers, the second plurality of the subscribers being different from the first plurality of the subscribers;

the steps further comprise configuring the first non-core node to receive messages for the first plurality of the subscribers through the first private branch exchange, thereby obtaining a first plurality of received messages, and posting the first plurality of received messages on the first non-core node without automatically posting the first plurality of messages on the core node, so that the first plurality of messages is not automatically available from any non-core node of the plurality of non-core nodes other than the first non-core node.

7. The article of manufacture of claim 1 , wherein:

the first non-core node is associated with a first plurality of the subscribers served by the multi-node messaging system and the second non-core node is associated with a second plurality of the subscribers served by the multi-node messaging system, the first non-core node being coupled to a first private branch exchange for servicing the first plurality of the subscribers, the second non-core node being coupled to a second private branch exchange for servicing the second plurality of the subscribers, the second plurality of the subscribers being different from the first plurality of the subscribers; and

the steps further comprise:

configuring the first non-core node to receive messages for the first plurality of the subscribers through the first private branch exchange, thereby obtaining a first plurality of received messages,

posting the first plurality of received messages on the first non-core node without automatically posting the first plurality of messages on the core node, so that the first plurality of messages is not automatically available from any non-core node of the plurality of non-core nodes other than the first non-core node, and

posting any message of the first plurality of messages on the core node in response to a request for said any message from any non-core node of the plurality of non-core nodes other than the first non-core node.

8. The article of manufacture of claim 1 , wherein:

the multi-node messaging system further comprises a groupware server coupled to the core node; and

the steps further comprise configuring the groupware server to receive, send, and store email messages and contact information for the subscribers served by the multi-node messaging system.

9. The article of manufacture of claim 1 , wherein:

the first non-core node is associated with a first plurality of the subscribers served by the multi-node messaging system and the second non-core node is associated with a second plurality of the subscribers served by the multi-node messaging system, the second plurality of the subscribers being different from the first plurality of the subscribers; and

the steps further comprise configuring said first non-core node to provide one or more first services to outside callers that call the first plurality of the subscribers when the core node is not available to the first non-core node, said second non-core node is configured to provide the one or more first services to outside callers that call the second plurality of the subscribers when the core node is not available to the second non-core node, each first service of the one or more first services not requiring updating of the system configuration information, said each first service of the one or more first services not requiring updating of the subscriber information.

10. The article of manufacture of claim 1 , wherein the portion of the subscriber information replicated comprises information sufficient to route a call received by any non-core node of the at least two non-core nodes to any subscriber of the subscribers served by the multi-node messaging system.

11. A method of operating a multi-node messaging system comprising a core node and a plurality of non-core nodes, each non-core node of the plurality of non-core nodes being coupled to telephone switching equipment associated with said each non-core node, the method comprising:

storing subscriber information for subscribers served by the multi-node messaging system on the core node;

replicating a portion of the subscriber information stored on the core node to said each non-core node;

providing through the core node centralized administrative and subscriber access to the subscriber information and to the system configuration information; and

running one or more telephony user interface applications for processing telephone calls at said each non-core node, wherein the one or more telephony user interface applications enable the multi-node messaging system to receive calls and voice messages from outside callers to the subscribers served by the multi-node messaging system, so that the outside callers can call extensions of specific subscribers selected by the outside callers, and so that the outside callers can leave voicemail for the specific subscribers called by the outside callers, and wherein the one or more telephony user interface applications configure the multi-node messaging system to enable the subscribers served by the multi-node messaging system to place through the multi-node messaging system external calls directed outside the multi-node messaging system, and wherein the one or more telephony user interface applications running on a first non-core node of the plurality of non-core nodes comprise a voice user interface application.

12. The method of claim 11 , wherein the step of replicating the portion of the subscriber information comprises replicating all subscriber information of the multi-node messaging system.

13. The method of claim 11 , wherein the first non-core node is associated with a first plurality of the subscribers served by the multi-node messaging system and a second non-core node of the plurality of non-core nodes is associated with a second plurality of the subscribers served by the multi-node messaging system that is different from the first plurality of the subscribers served by the multi-node messaging system, the step of replicating the portion of the subscriber information is performed so that the portion of the subscriber information replicated to the first non-core node comprises information about a second subscriber of the second plurality of the subscribers, the first non-core node being coupled to a first private branch exchange for servicing the first plurality of the subscribers, the second non-core node being coupled to a second private branch exchange for servicing the second plurality of the subscribers.

14. The method of claim 11 , wherein:

the first non-core node is associated with a first plurality of the subscribers served by the multi-node messaging system;

a second non-core node of the plurality of non-core nodes is associated with a second plurality of the subscribers of the multi-node messaging system, the second plurality of the subscribers being different from the first plurality of the subscribers;

the step of replicating the portion of the subscriber information is performed so that the portion of the subscriber information replicated to the first non-core node comprises information about each subscriber of the second plurality of the subscribers, the portion of the subscriber information replicated to the second non-core node comprises information about each subscriber of the first plurality of the subscribers;

the first non-core node is coupled to a first private branch exchange for servicing the first plurality of the subscribers; and

the second non-core node being coupled to a second private branch exchange for servicing the second plurality of the subscribers.

15. The method of claim 11 , wherein:

the first non-core node is associated with a first plurality of the subscribers of the multi-node messaging system;

a second non-core node of the plurality of non-core nodes is associated with a second plurality of the subscribers of the multi-node messaging system;

the first non-core node is coupled to a first circuit switched private branch exchange for servicing the first plurality of the subscribers;

the second non-core node is coupled to a second circuit switched private branch exchange for servicing the second plurality of the subscribers, the second plurality of the subscribers being different from the first plurality of the subscribers; and

the step of replicating the portion of the subscriber information comprises replicating to the first non-core node information sufficient to route a call received by the first non-core node through the first circuit switched private branch exchange, the call being directed to any targeted subscriber of the second plurality of the subscribers, to the targeted subscriber at the second non-core node through the second circuit switched private branch exchange.

16. The method of claim 11 , wherein the multi-node messaging system further comprises a groupware server coupled to the core node, the method further comprising:

operating the groupware server to receive, send, and store email messages and contact information for the subscribers served by the multi-node messaging system.

17. An article of manufacture comprising non-transitory machine-readable storage medium with program code stored in the machine-readable medium, the program code being for operating a multi-node messaging system comprising a core node and a plurality of non-core nodes, the plurality of non-core nodes comprising a first non-core node and a second non-core node, each non-core node of the plurality of non-core nodes being coupled to telephone switching equipment associated with said each non-core node, wherein the program code stores computer instructions for performing steps comprising:

storing subscriber information for subscribers served by the multi-node messaging system on the core node;

replicating a portion of the subscriber information stored on the core node to said each non-core node;

providing through the core node centralized administrative and subscriber access to the portion of the subscriber information and to system configuration information of the multi-node messaging system; and

running one or more telephony user interface applications for processing telephone calls at said each non-core node, wherein the one or more telephony user interface applications enable the multi-node messaging system to receive calls and voice messages from outside callers to the subscribers served by the multi-node messaging system, so that the outside callers can call extensions of specific subscribers selected by the outside callers, and so that the outside callers can leave voicemail for the specific subscribers called by the outside callers, and wherein the one or more telephony user interface applications configure the multi-node messaging system to enable the subscribers served by the multi-node messaging system to place through the multi-node messaging system external calls directed outside the multi-node messaging system, and wherein the one or more telephony user interface applications running on a first non-core node of the plurality of non-core nodes comprise a voice user interface application.

18. The article of manufacture of claim 17 , wherein the step of replicating the portion of the subscriber information comprises replicating all subscriber information of the multi-node messaging system.

19. The article of manufacture of claim 17 , wherein the first non-core node is associated with a first plurality of the subscribers served by the multi-node messaging system and a second non-core node of the plurality of non-core nodes is associated with a second plurality of the subscribers served by the multi-node messaging system that is different from the first plurality of the subscribers served by the multi-node messaging system, the step of replicating the portion of the subscriber information is performed so that the portion of the subscriber information replicated to the first non-core node comprises information about a second subscriber of the second plurality of the subscribers, the first non-core node being coupled to a first private branch exchange for servicing the first plurality of the subscribers, the second non-core node being coupled to a second private branch exchange for servicing the second plurality of the subscribers.

20. The article of manufacture of claim 17 , wherein:

the first non-core node is associated with a first plurality of the subscribers served by the multi-node messaging system;

a second non-core node of the plurality of non-core nodes is associated with a second plurality of the subscribers of the multi-node messaging system, the second plurality of the subscribers being different from the first plurality of the subscribers;

the step of replicating the portion of the subscriber information is performed so that the portion of the subscriber information replicated to the first non-core node comprises information about each subscriber of the second plurality of the subscribers, the portion of the subscriber information replicated to the second non-core node comprises information about each subscriber of the first plurality of the subscribers;

the first non-core node is coupled to a first private branch exchange for servicing the first plurality of the subscribers; and

the second non-core node being coupled to a second private branch exchange for servicing the second plurality of the subscribers.

Assignments (3)
PATENT RELEASE AND REASSIGNMENT Recorded Mar 11, 2020
From: GLADSTONE BUSINESS LOAN, LLC, AS SUCCESSOR-IN-INTEREST TO GLADSTONE CAPITAL CORPORATION
To: XMEDIUS AMERICA, INC.
Reel/Frame 052150/0075 →
SECURITY INTEREST Recorded Nov 3, 2017
From: APPLIED VOICE & SPEECH TECHNOLOGIES, INC.
To: GLADSTONE CAPITAL CORPORATION
Reel/Frame 044028/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2017
From: MURRAY, DOUGLAS G.; TINDALL, STEVEN J.; VISSER, ROGER E.
To: APPLIED VOICE & SPEECH TECHNOLOGIES, INC.
Reel/Frame 041358/0246 →
Continuity (4)
Continuation 14627858 · Feb 20, 2015
Continuation 11747154 · May 10, 2007
Provisional Application 60799485 · May 10, 2006
Related Publication 20170264730A1 · Sep 14, 2017