IP Library Granted Patent US 8,463,939
Granted Patent B1
US 8,463,939 · App. 13/550,587 · Granted Jun 11, 2013

System and method for optimized and distributed routing of interactions

Inventor: Brian R. Galvin (Seabeck, WA)
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,463,939
App. No.
13/550,587
Granted
Jun 11, 2013
Kind
B1
Abstract

A system for optimized and distributed routing of interactions, comprising a plurality of media servers operating adapted to handle interactions of one or more specific media types, a statistics server, a routing database, and a routing server. Upon receiving or initiating an interaction of a specific media type, a first media server from the media servers sends a route request message comprising at least an interaction identifier and a collection of interaction-specific data to the routing server, the statistics server receives event notifications from the media servers and computes one or more statistics, and the routing server executes, using statistical data from the statistics server and data from the routing database, a routing script in response to the route request message and sends a response to the first media server directing it to route the interaction to a specific target resource.

Claims (42)

1. A system for optimized and distributed routing of synchronous interactions, the system comprising:

a plurality of media servers stored and operating on network-attached computers, each adapted to handle synchronous interactions of one or more specific media types drawn from a list comprising: analog telephone calls, digital telephone calls, video calls, or instant messaging or web chat sessions;

a statistics server stored and operating on a network-attached computer and coupled to the plurality of media servers;

a routing database stored and operating on a network-attached computer and accessible via a network; and

a routing server stored and operating on a network-attached computer;

wherein upon receiving or initiating a synchronous interaction of a specific media type drawn from the list, a first media server from the plurality of media servers sends a route request message comprising at least an interaction identifier and a collection of interaction-specific data to the routing server;

further wherein the statistics server receives event notifications from the plurality of media servers regarding events pertaining to a plurality of specific interactions handled by the plurality of media servers, and the statistics server computes one or more statistics for use in routing based on the received event notifications;

wherein the routing server executes, using statistical data from the statistics server and data from the routing database, a routing script in response to the route request message and sends a response to the first media server directing it to route the interaction to a specific target resource; and

wherein the routing script comprises at least the steps of generating a list of all possible routing targets capable of handling the synchronous interaction regardless of the real-time state of readiness to receive a synchronous interaction of the routing targets using at least an interaction identifier and a plurality of data elements pertaining to the synchronous interaction, computing a plurality of fitness parameters for each routing target in the generated list, sorting the generated list based on one or more of the fitness parameters using a sorting rule to obtain a sorted target list, and using a target selection rule to consider a plurality of routing targets starting at the beginning of the sorted target list until a routing target is selected.

2. A method for optimized and distributed routing of synchronous interactions, the method comprising the steps of:

(a) receiving or initiating a synchronous interaction of a media type drawn from a list comprising: analog telephone calls, digital telephone calls, video calls, or instant messaging or web chat sessions at an interpreter server operating on a network-attached computer;

(b) generating a list of all possible routing targets for the synchronous interaction based regardless of the real-time state of readiness to receive a synchronous interaction of the routing targets capable of handling the synchronous interaction using at least an interaction identifier and a plurality of data elements pertaining to the interaction;

(c) computing a plurality of fitness parameters for each routing target in the generated list;

(d) sorting the generated list based on one or more of the fitness parameters using a sorting rule to obtain a sorted target list;

(e) using a target selection rule to consider a plurality of routing targets starting at the beginning of the sorted target list until a routing target is selected; and

(f) routing the synchronous interaction to the selected routing target.

3. The method of claim 2 , wherein the target selection rule comprises the steps of:

(e1) sending the synchronous interaction to the highest untested routing target in the sorted list;

(e2) if the routing target to which the synchronous interaction was sent does not respond to the synchronous interaction, returning the synchronous interaction to the interpreter server;

(e3) dropping the routing target that did not respond from the sorted list; and

(e4) returning to step (e1) unless the sorted list is empty.

4. The method of claim 2 , wherein the target selection rule comprises the steps of:

(e1) offering the synchronous interaction to the highest untested routing target in the sorted list;

(e2) if the routing target to which the synchronous interaction was offered does not respond to the offer or declines the offer, dropping the non-responsive routing target from the sorted list and returning to step (e1);

(e3) if the routing target to which the synchronous interaction was offered accepts the offer, selecting the accepting routing target as the final routing target for the synchronous interaction and proceeding to step (f);

(e4) if the sorted list is empty and no routing target was selected, executing a target unavailable script in the interpreter server for the synchronous interaction.

5. The method of claim 3 , wherein the target selection rule comprises the steps of:

(e1) determining a plurality of combined fitness scores;

(e2) determining an optimal grouping of potential routing targets by an optimization server executing on a network-attached computer, using one or more optimization algorithms to determine a global optimum, a regional optimum, or a local optimum grouping based on a current or expected population of interactions requiring routing, thereby generating an optimal target list;

(e3) offering the synchronous interaction to the highest untested routing target in the optimal list;

(e4) if the routing target to which the synchronous interaction was offered does not respond to the offer or declines the offer, dropping the non-responsive routing target from the optimal list and returning to step (e3);

(e5) if the routing target to which the synchronous interaction was offered accepts the offer, selecting the accepting routing target as the final routing target for the synchronous interaction and proceeding to step (f);

(e6) if the optimal list is empty and no routing target was selected, executing a target unavailable script in the interpreter server for the synchronous interaction.

6. A system for optimized and distributed routing of synchronous interactions, the system comprising:

a plurality of interpreter servers stored and operating on network-attached computers, each adapted to interpret a plurality of scripts to manage a plurality of synchronous interactions of one or more specific media types drawn from a list comprising: analog telephone calls, digital telephone calls, video calls, or instant messaging or web chat sessions;

a plurality of statistics servers stored and operating on a network-attached computer and coupled to one or more of the plurality of interpreter servers;

a historical statistics database accessible via a network and adapted to receive and store statistical information from the plurality of statistics servers; and

a plurality of optimization servers stored and operating on network-attached computers;

wherein upon receiving or initiating a synchronous interaction of a specific media type drawn from the list, a first interpreter from the plurality of interpreter loads a first script based at least on an interaction identifier and a collection of interaction-specific data;

further wherein the plurality of statistics servers receive event notifications from the plurality of interpreter servers regarding events pertaining to a plurality of specific synchronous interactions handled by the plurality of interpreter servers, and the statistics server computes one or more statistics for use in routing based on the received event notifications; and

wherein the interpreter server executes, using statistical data from the statistics server and data from the historical statistics database, a script to determine at least a specific handling policy for the interaction of a specific media type, and thereby routes the synchronous interaction to a specific target resource; and

wherein the script comprises at least the steps of generating a list of all possible routing targets capable of handling the synchronous interaction regardless of the real-time state of the routing targets of readiness to receive a synchronous interaction using at least an interaction identifier and a plurality of data elements pertaining to the synchronous interaction, computing a plurality of fitness parameters for each routing target in the generated list, sorting the generated list based on one or more of the fitness parameters using a sorting rule to obtain a sorted target list, and using a target selection rule to consider a plurality of routing targets starting at the beginning of the sorted target list until a routing target is selected.

Assignments (3)
CHANGE OF NAME Recorded Feb 3, 2022
From: NEWVOICEMEDIA LIMITED
To: VONAGE BUSINESS LIMITED
Reel/Frame 058879/0481 →
SECURITY INTEREST Recorded Dec 21, 2017
From: NEWVOICEMEDIA LIMITED
To: SILICON VALLEY BANK
Reel/Frame 044462/0691 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2013
From: GALVIN, BRIAN R.
To: NEWVOICEMEDIA LIMITED
Reel/Frame 030000/0498 →
Continuity (2)
Continuation In Part 13357502 · Jan 24, 2012
Provisional Application 61607909 · Mar 7, 2012