IP Library › Granted Patent US 7,974,277
Granted Patent B2
US 7,974,277 · App. 11/068,429 · Granted Jul 5, 2011

System and method for routing calls

Assignee: Cisco Technology, 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 7,974,277
App. No.
11/068,429
Granted
Jul 5, 2011
Kind
B2
Abstract

Routing calls includes receiving a call request at a call manager from a first endpoint. The call request includes a uniform resource identifier that associates with a second endpoint. A determination is made whether the call request associates with the call manager that received the call request. To route the call request, the call manager searches a call search space for a match to the call request. The call manager communicates the call request to the routing target.

Claims (71)

1. A method for routing calls, comprising:

receiving a call request at a call manager from a first endpoint, the call request including a uniform resource identifier (URI) comprising a first portion identifying a user associated with a second endpoint and a second portion identifying a location associated with the second endpoint;

modifying the call request according to the second endpoint;

determining whether the modified call request associates with the call manager that received the call request, the determination based on whether the second portion of the URI that identifies the location associated with the second endpoint is associated with the call manager;

searching a call search space including a plurality of partitions in the call manager, each partition comprising patterns in a logical grouping for determining a match to the modified call request, wherein searching a call search space comprises:

searching the call search space for the first portion of the URI that identifies the user associated with the second endpoint if the location associated with the second endpoint is associated with the call manager that received the call request;

searching the call search space for the second portion of the URI that identifies the location associated with the second endpoint if the location associated with the second endpoint is not associated with the call manager that received the call request;

communicating the call request to a routing target.

2. The method of claim 1 , wherein searching a call search space includes selecting one or more patterns that match the URI in the modified call request.

3. The method of claim 1 , wherein the patterns in the plurality of partitions do not match a format of the URI in the call request, and wherein searching a call search space comprises:

searching the plurality of partitions for a plurality of candidate matches to the URI in the modified call request; and

determining a best match to the URI from one or more patterns that match the URI in the plurality of candidate matches.

4. The method of claim 1 , wherein communicating the call request to the routing target includes communicating the call request to the second endpoint having the URI that best matches the URI of the call request.

5. The method of claim 1 , further comprising:

generating an error response if the call search space does not have a best match to the URI denoted by the call request.

6. A call manager, comprising:

a call control module operable to receive a call request from a first endpoint, the call request including a uniform resource identifier (URI) comprising a first portion identifying a user associated with a second endpoint and a second portion identifying a location associated with the second endpoint, the call control module further operable to modify the call request according to the second endpoint;

a digit analysis module operable to: receive the URI included in the call request from the call control module, determine whether the modified call request is associated with the call manager that received the call request based on whether the second portion of the URI that identifies the location associated with the second endpoint is associated with the call manager, search a call search space including a plurality of partitions, each partition comprising patterns in a logical grouping to determine a routing target associated with the modified call request, wherein the digit analysis module:

searches the call search space for the first portion of the URI that identifies the user associated with the second endpoint if the location associated with the second endpoint is associated with the call manager that received the call request;

searches the call search space for the second portion of the URI that identifies the location associated with the second endpoint if the location associated with the second endpoint is not associated with the call manager that received the call request.

7. The call manager of claim 6 , wherein the call control module is operable to: receive the routing target from the digit analysis module, the call control module operable to communicate the call request to the routing target.

8. The call manager of claim 6 , wherein the URI includes a selected one of a domain name or an Internet Protocol (IP) address.

9. The call manager of claim 6 , wherein the call control module is operable to communicate the call request to the routing target having the URI that best matches the URI of the call request.

10. The call manager of claim 6 , wherein the digit analysis module selects one or more patterns that match the URI in the modified call request.

11. The call manager of claim 6 , wherein the patterns in the plurality of partitions do not match a format of the URI in the call request, and wherein the digit analysis module is operable to search the call search space by:

searching the plurality of partitions for a plurality of candidate matches to the URI in the modified call request; and

determining a best match for the URI from one or more patterns that match the URI in the plurality of candidate matches.

12. The call manager of claim 6 , wherein call control module is operable to generate an error response if the call request is not in a partition table.

13. A non-transitory computer readable medium including logic for routing calls, the logic operable to:

receive a call request at a call manager from a first endpoint, the call request including a uniform resource identifier (URI) comprising a first portion identifying a user associated with a second endpoint and a second portion identifying a location associated with the second endpoint;

modify the call request according to the second endpoint;

determine whether the modified call request associates with the call manager that received the call request, the determination based on whether the second portion of the URI that identifies the location associated with the second endpoint is associated with the call manager;

search a call search space including a plurality of partitions, each partition comprising patterns in a logical grouping for determining a best match to the modified call request, wherein searching a call search space comprises:

searching the call search space for the first portion of the URI that identifies the user associated with the second endpoint if the location associated with the second endpoint is associated with the call manager that received the call request;

searching the call search space for the second portion of the URI that identifies the location associated with the second endpoint if the location associated with the second endpoint is not associated with the call manager that received the call request;

communicate the call request to a routing target.

14. The non-transitory computer readable medium of claim 13 , wherein searching a call search space includes selecting one or more patterns that match the URI in the modified call request.

15. The non-transitory computer readable medium of claim 13 , wherein the patterns in the plurality of partitions do not match a format of the URI in the call request, and wherein searching a call search space comprises:

searching the plurality of partitions for a plurality of candidate matches to the URI in the modified call request; and

determining a best match to the URI from one or more patterns that match the URI in the plurality of candidate matches.

16. The non-transitory computer readable medium of claim 13 , wherein communicating the call request to the routing target includes communicating the call request to the second endpoint having the URI that best matches the URI of the call request.

17. The non-transitory computer readable medium of claim 13 , wherein the logic is operable to:

generate an error response if the call request is not in a partition table.

18. A call manager, comprising:

means for receiving a call request at a call manager from a first endpoint, the call request including a uniform resource identifier (URI) comprising a first portion identifying a user associated with a second endpoint and a second portion identifying a location associated with the second endpoint;

means for modifying the call request according to the second endpoint;

means for determining whether the call request associates with the call manager that received the modified call request, the determination based on whether the second portion of the URI that identifies the location associated with the second endpoint is associated with the call manager;

means for searching a call search space including a plurality of partitions, each partition comprising patterns in a logical grouping for determining a best match to the modified call request, wherein means for searching a call search space comprises:

means for searching the call search space for the first portion of the URI that identifies the user associated with the second endpoint if the location associated with the second endpoint is associated with the call manager that received the call request;

means for searching the call search space for the second portion of the URI that identifies the location associated with the second endpoint if the location associated with the second endpoint is not associated with the call manager that received the call request;

means for communicating the call request to a routing target.

19. The call manager of claim 18 , further comprising:

means for selecting one or more patterns that match the URI in the modified call request.

20. The call manager of claim 18 , wherein the patterns in the plurality of partitions do not match a format of the URI in the call request, and wherein the means for searching the call search space comprises:

means for searching the plurality of partitions for a plurality of candidate matches to the URI in the modified call request; and

means for determining a best match to the URI from one or more patterns that match the URI in the plurality of candidate matches.

21. The call manager of claim 18 , further comprising:

means for generating an error response if the call search space does not have a best match to the URI denoted by the call request.

22. A system for routing calls, comprising:

a plurality of subscribers operable to communicate with each other;

a call manager operable to control the communication between the plurality of subscribers, wherein the call manager includes a call control module operable to receive a call request from a first endpoint, the call request including a uniform resource identifier (URI) comprising a first portion identifying a user associated with a second endpoint and a second portion identifying a location associated with the second endpoint, the call control module operable to modify the call request according to the second endpoint; a digit analysis module operable to receive the URI included in the modified call request from the call control module, the digit analysis module operable to determine whether the modified call request is associated with the call manager that received the call request, the determination based on whether the second portion of the URI that identifies the location associated with the second endpoint is associated with the call manager, the digit analysis module operable to search a call search space including a plurality of partitions, each partition comprising patterns in a logical grouping, wherein the digit analysis module is further operable to:

search the call search space for the first portion of the URI that identifies the user associated with the second endpoint if the location associated with the second endpoint is associated with the call manager that received the call request;

searching the call search space for the second portion of the URI that identifies the location associated with the second endpoint if the location associated with the second endpoint is not associated with the call manager that received the call request.

23. The system of claim 22 , wherein the patterns in the plurality of partitions do not match a format of the URI in the call request, and wherein the digit analysis module is operable to search the call search space by:

searching the plurality of partitions for a plurality of candidate matches to the URI in the modified call request; and

determining a best match to the URI from the patterns that match the URI in the plurality of candidate matches.

24. The method of claim 1 , wherein searching the call search space comprises using one or more wildcards in at least one of the first portion of the URI or the second portion of the URI to expand the search.

25. The call manager of claim 6 , wherein while searching the call search space, the digit analysis module uses one or more wildcards in at least one of the first portion of the URI or the second portion of the URI to expand the search.

26. The non-transitory computer readable medium of claim 13 , wherein searching the call search space comprises using one or more wildcards in at least one of the first portion of the URI or the second portion of the URI to expand the search.

27. The call manager of claim 18 , wherein the means for searching the call search space comprises means for using one or more wildcards in at least one of the first portion of the URI or the second portion of the URI to expand the search.

28. The system of claim 22 , wherein while searching the call search space, the digit analysis module uses one or more wildcards in at least one of the first portion of the URI or the second portion of the URI to expand the search.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2005
From: BAO, HO (NMI); HENNING, SCOTT A.; PEARCE, CHRISTOPHER E.; WILLIAMS, JAMES DAVID
To: CISCO TECHNOLOGY, INC.
Reel/Frame 016349/0856 →
Continuity (2)
Continuation In Part 09579399 · May 25, 2000
Related Publication 20050147088A1 · Jul 7, 2005