# US 2014/0153707 A1 · Dialed string matching and call cost minimization in dial plan

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0153707 A1
- Document ID: US20140153707A1
- Status: Published application
- Kind: A1
- Application number: 13/843,951
- Filed: 2013-03-15
- Published: 2014-06-05
- Earliest claimed: 2012-12-04
- Assignees: Genesys Telecommunications Laboratories, Inc.
- Applicants: Genesys Telecommunications Laboratories, Inc.
- Inventors: Philippe Rais; Vyacheslav Sayko; Alexander Tikin
- Web page: https://patentgrep.com/patent/US20140153707A1

## CPC

- G06Q 10/063114: {Status monitoring or status determination for a person or group}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 40/205: Parsing
- H04L 65/1045: Proxies, e.g. for session initiation protocol [SIP]
- H04L 65/1069: Session establishment or de-establishment
- H04L 65/1104: Session initiation protocol [SIP]
- H04L 65/401: wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04M 3/42306: {Number translation services, e.g. premium-rate, freephone or vanity number services}
- H04M 3/5191: {interacting with the Internet}
- H04M 3/5232: {Call distribution algorithms}
- H04L 45/26: {Route discovery packet}
- H04L 61/106: across networks, e.g. mapping telephone numbers to data network addresses
- H04L 61/4541: Directories for service discovery
- H04L 61/4557: Directories for hybrid networks, e.g. including telephone numbers
- H04M 2203/402: Agent or workforce management
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04M: TELEPHONIC COMMUNICATION (circuits for controlling other apparatus via a telephone cable and not involving telephone switching apparatus G08)

## Abstract

A method for processing dialed outgoing calls in a contact center includes a method for matching a dialed string and a method for translating the dialed string. A method for matching includes identifying a set of available number categories based on a calling profile with which the dialing agent device is configured, matching the dialed string against each of a set of patterns in each of the categories, and translating the dialed string according to the category, if any category matches and if no blocked category matches the dialed string. The number may then be translated to a translated number including a PSTN telephone number and routing characters specifying how the call is to be routed from an IP network to the PSTN. The routing may be selected to minimize the cost of the call.

## Claims

### Claim 1

A method for generating a translated number from a dialed string corresponding to a call dialed at an agent device, the method comprising:
identifying, by a processor, one or more available categories associated with the agent device, each available category being either an available blocked category or an available unblocked category, each of the one or more available categories containing one or more patterns;
translating the number, by the processor, in response to the dialed string matching at least one pattern in the available unblocked category and matching no patterns in the available blocked category; and
denying the call, by the processor, in response to the dialed string not matching a pattern in the available unblocked category or matching at least one pattern in the available blocked category;
wherein the translating of the number comprises:
identifying, by the processor, one or more gateways for routing the call from an origin on an Internet Protocol (IP) network to a destination, identified by the dialed string, on a public switched telephone network (PSTN);
calculating, by the processor, a cost of routing the call through each of the one or more gateways;
identifying, by processor, one of the one or more gateways with the lowest cost as a preferred gateway; and
forming, by the processor, the translated number by combining an identifier for the preferred gateway with the dialed string.

### Claim 2 (depends on 1)

The method of claim 1, wherein the calculating of the cost of routing the call through each of the gateways comprises executing, for each of the one or more gateways, an algorithm accepting as input a quantity selected from the group consisting of: a time of day, a day of the week, the location of the gateway, the location of the destination, and combinations thereof.

### Claim 3 (depends on 1)

The method of claim 1, wherein the calculating of the cost of routing the call through each of the gateways comprises executing, for each of the one or more gateways, an algorithm accepting as input a quantity selected from the group consisting of: a load on the gateway, an ability to add voice to the call, an ability to add video to the call, a level of security for the call, and combinations thereof.

### Claim 4 (depends on 1)

The method of claim 1, wherein the translating of the number in response to the dialed string matching at least one pattern in the available unblocked category and matching no patterns in the available blocked category comprises:
identifying, by the processor, a particular category and pattern in response to the dialed string matching a plurality of patterns in a plurality of available unblocked categories.

### Claim 5 (depends on 4)

The method of claim 4, wherein the identifying of the particular category and pattern comprises:
identifying, by the processor, a weight associated with each pattern of the plurality of patterns in the plurality of available unblocked categories;
selecting, by the processor, one of the plurality of available unblocked categories with the highest weight.

### Claim 6 (depends on 5)

The method of claim 5 further comprising:
calculating, by the processor, the weigh associated with each pattern of the plurality of patterns, wherein the calculating includes:
selecting a maximum dialed string length;
setting the weight to the maximum dialed string length multiplied by a preset value; and
for each digit element in the pattern, decreasing the weight by a number of digits matching the digit element.

### Claim 7

A system for processing a dialed string, the system comprising:
a processor; and
a memory, wherein the memory has stored thereon instructions that, when executed by the processor, cause the processor to:
identify one or more available categories associated with the agent device, each available category being either an available blocked category or an available unblocked category, each of the one or more available categories containing one or more patterns;
translate the number in response to the dialed string matching at least one pattern in the available unblocked category and matching no patterns in the available blocked category; and
deny the call in response to the dialed string not matching a pattern in the available unblocked category or matching at least one pattern in the available blocked category;
wherein the translating of the number comprises:
identifying one or more gateways for routing the call from an origin on an Internet Protocol (IP) network to a destination, identified by the dialed string, on a public switched telephone network (PSTN);
calculating a cost of routing the call through each of the one or more gateways;
identifying one of the one or more gateways with the lowest cost as a preferred gateway; and
forming the translated number by combining an identifier for the preferred gateway with the dialed string.

### Claim 8 (depends on 7)

The system of claim 7, wherein the calculating of the cost of routing the call through each of the gateways comprises executing, for each of the one or more gateways, an algorithm accepting as input a quantity selected from the group consisting of: a time of day, a day of the week, the location of the gateway, the location of the destination, and combinations thereof.

### Claim 9 (depends on 7)

The system of claim 7, wherein the calculating of the cost of routing the call through each of the gateways comprises executing, for each of the one or more gateways, an algorithm accepting as input a quantity selected from the group consisting of: a load on the gateway, an ability to add voice to the call, an ability to add video to the call, a level of security for the call, and combinations thereof.

### Claim 10 (depends on 7)

The system of claim 7, wherein the instructions that cause the processor to translate the number in response to the dialed string matching at least one pattern in the available unblocked category and matching no patterns in the available blocked category further comprises instructions that cause the processor to:
identify a particular category and pattern in response to the dialed string matching a plurality of patterns in a plurality of available unblocked categories.

### Claim 11 (depends on 10)

The system of claim 10, wherein the instructions that cause the processor to identify the particular category and pattern further comprises instructions which cause the processor to:
identify a weight associated with each pattern of the plurality of patterns in the plurality of available unblocked categories;
select one of the plurality of available unblocked categories with the highest weight.

### Claim 12 (depends on 11)

The system of claim 11, wherein the instructions further cause the processor to:
calculate the weigh associated with each pattern of the plurality of patterns, wherein the instructions that cause the processor to calculate include instructions which cause the processor to:
select a maximum dialed string length;
set the weight to the maximum dialed string length multiplied by a preset value; and
for each digit element in the pattern, decrease the weight by a number of digits matching the digit element.
