IP Library Granted Patent US 8,325,891
Granted Patent B2
US 8,325,891 · App. 12/884,293 · Granted Dec 4, 2012

Anti-looping for a multigateway multi-carrier network

Assignee: IntelePeer, 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,325,891
App. No.
12/884,293
Granted
Dec 4, 2012
Kind
B2
Abstract

The present invention relates to systems and methods for detecting and terminating a looping condition occurring in a telecommunications network comprising receiving a call offer comprising receiving call identification data associated with the call offer at a switching component, querying a looping engine using the call identification data to detect a looping condition, identifying a number of occurrences of the call identification data within a predetermined time frame, comparing the number of occurrences against a predetermined count, and returning a message to the switching component based on the comparison, the message indicating whether a looping condition exists in the telecommunications network.

Claims (95)

1. A method of detecting a looping condition within a peering grid, comprising:

receiving, at a switching infrastructure, a call offer comprising call identification data associated with said call offer, said infrastructure comprising a switching component;

querying a looping engine using said call identification data to detect a looping condition; and

said looping engine:

identifying a number of occurrences of the call identification data within a predetermined time frame;

comparing the number of occurrences against a predetermined count; and

returning a message to said switching component based on said comparison, said message indicating that a looping condition exists in said peering grid, said message comprises a two-parameter code comprising a switch identification (SWID) and a trunk group identification (TGID) which is interpreted by the switching component as a loop lock command; and

said switching releasing said call offer for alternate routing.

2. The method of claim 1 , wherein said message indicates that a looping condition exists if the number of occurrences meets or exceeds the predetermined count; and

wherein said message indicates that no looping condition exists if the number of occurrences is fewer than the predetermined count.

3. The method of claim 1 , wherein said looping engine comprises a database storing call identification data and related time stamp and time frame data, said looping engine interrogating the looping database to identify the number of occurrences of the call identification data of said call offer within said predetermined time frame.

4. The method of claim 1 , wherein said querying step comprises generating and transmitting a query as part of a session invitation message configured according to one of a session initiation protocol (SIP), a transaction capabilities application part (TCAP) protocol and a simple object access protocol (SOAP).

5. The method of claim 1 , wherein at least one of said predetermined time frame and predetermined count are preset by a user and stored in the looping engine.

6. The method of claim 1 , wherein the predetermined time frame is one of a fixed window of time and a sliding window of time.

7. The method of claim 4 , wherein information between said switching component and said looping engine is exchanged via SIP, and wherein the message returned by the looping engine is a 300 redirect request response message.

8. The method of claim 3 , further comprising:

upon interrogating the looping database, recording the call identification data together with a time stamp associated with the call offer in said looping database; and

incrementing the number of occurrences of said call identification data.

9. The method of claim 3 , wherein the looping engine comprises a clean-up thread, the method further comprising:

deleting stale occurrences of call identification data from said looping database, wherein a stale occurrence comprises call identification data whose associated predetermined time frame has expired.

10. The method of claim 1 , wherein the call identification data associated with the call offer comprises a called/calling number pair.

11. A method of detecting a looping condition within a peering grid, comprising:

receiving, at a switching infrastructure, a call offer comprising call identification data associated with said call offer, said infrastructure comprising a switching component;

querying a looping engine using said call identification data to detect a looping condition, said looping engine comprising a looping database and a clean-up thread; and

said looping engine:

interrogating the looping database to identify a number of occurrences of the call identification data within a predetermined time frame;

comparing the number of occurrences against a predetermined count;

returning a message to said switching component based on said comparison, said message indicating whether a looping condition exists in said peering grid; and

deleting stale occurrences of call identification data from said looping database, wherein a stale occurrence comprises call identification data whose associated predetermined time frame has expired.

12. The method of claim 11 , wherein the message indicating that a looping condition exists comprises a two-parameter code comprising a SWID and a TGID which is interpreted by the routing engine as a loop lock command.

13. The method of claim 11 , wherein said querying step comprises transmitting a query comprising call identification data associated with the call offer to said looping engine, said query being transmitted as part of a session invitation message configured according to one protocol selected from the group consisting of SIP, TCAP, and SOAP.

14. The method of claim 13 , wherein said looping engine comprises a looping database storing call identification data and related time stamp and time frame data, the method further comprising said looping engine identifying a looping condition by:

interrogating the looping database to identify a number of occurrences of the call identification data associated with the call offer within a predetermined time frame; and

if the number of occurrences meets or exceeds a predetermined count, said looping engine returning the message to said routing engine indicating that a looping condition exists.

15. The method of claim 14 , wherein at least one of the predetermined time frame and predetermined count is preset by a user.

16. The method of claim 14 , wherein the predetermined time frame is one of a fixed window of and a sliding window of time.

17. The method of claim 14 , further comprising:

upon interrogating the looping database, recording the call identification data together with a time stamp associated with the call offer in said looping database; and

incrementing the number of occurrences of call identification data within the predetermined time frame.

18. The method of claim 14 , wherein the looping engine comprises a clean-up thread, the method further comprising:

deleting stale occurrences of call identification data from said looping database, wherein a stale occurrence comprises a call identification data whose associated predetermined time frame has expired.

19. The method of claim 11 , wherein the call identification data associated with the call offer comprises a called/calling number pair.

20. A method of terminating a looping condition, comprising:

receiving, at a switching infrastructure, a call offer for a call destined for a telephone number, said switching infrastructure comprising a switching component and a routing engine;

querying, via said routing engine, a looping engine to identify a looping condition;

said looping engine identifying a looping condition and returning a message to said routing engine indicating that said looping condition exists; and

said routing engine releasing the call offer for alternate routing,

wherein the message indicating that a looping condition exists comprises a two-parameter code comprising a SWID and a TGID which is interpreted by the routing engine as a loop lock command.

21. The system of claim 20 , wherein said message indicates that a looping condition exists if said number of occurrences meets or exceeds said predetermined count; and

wherein said message indicates that no looping condition exists if said number of occurrences is fewer than said predetermined count.

22. The system of claim 20 , wherein said looping engine comprises a looping database storing call identification data and related time stamp and time frame data, said looping engine being further configured to interrogate said looping database to identify said number of occurrences of said call identification data of said at least one call offer within said predetermined time frame.

23. The system of claim 20 , wherein said switching component is further configured to generate and transmit a query to said looping engine as part of a session invitation message configured according to one of a session initiation protocol (SIP), a transaction capabilities application part (TCAP) protocol and a simple object access protocol (SOAP).

24. The system of claim 20 , wherein at least one of said predetermined time frame and predetermined count are preset by a user and stored in said looping engine.

25. The system of claim 20 , wherein said predetermined time frame is one of a fixed window of time and a sliding window of time.

26. The system of claim 23 , wherein information is exchanged between said switching component and said looping engine via SIP, and wherein said message returned by said looping engine is a 300 redirect request response message.

27. The system of claim 22 , wherein said looping engine is further configured to record said call identification data together with a time stamp associated with said at least one call offer in said looping database; and

increment said number of occurrences of said call identification data.

28. The system of claim 22 , wherein said looping engine comprises a clean-up thread which causes said looping engine to delete stale occurrences of call identification data from said looping database, wherein a stale occurrence comprises call identification data whose associated predetermined time frame has expired.

29. The system of claim 20 , wherein said call identification data associated with said at least one call offer comprises a called/calling number pair.

30. A method of terminating a looping condition, comprising:

receiving, at a switching infrastructure, a call offer for a call destined for a telephone number, said switching infrastructure comprising a switching component and a routing engine;

providing a looping engine comprising a looping database and a clean-up thread;

querying, via said routing engine, said looping engine to identify a looping condition, wherein said querying step comprises transmitting a query comprising call identification data associated with the call offer to said looping engine, said query being transmitted as part of a session invitation message configured according to one protocol selected from the group consisting of SIP, TCAP, and SOAP;

said looping engine interrogating the looping database to identify a number of occurrences of the call identification data associated with the call offer within a predetermined time frame, wherein, if the number of occurrences meets or exceeds a predetermined count, said looping engine returning the message to said routing engine indicating that a looping condition exists;

deleting stale occurrences of call identification data from said looping database, wherein a stale occurrence comprises a call identification data whose associated predetermined time frame has expired; and

said routing engine releasing the call offer for alternate routing.

31. The system of claim 30 , wherein said message indicates that a looping condition exists and wherein said message comprises a two-parameter code comprising a switch identification tag (SWID) and a trunk group identification (TGID) which is interpreted by said switching component as a loop lock command, said switching component being further configured to release said at least one call offer for alternate routing in response to said loop lock command.

32. A system for detecting a looping condition within a peering grid, comprising:

a switching infrastructure comprising a switching component configured to receive one or more call offers each comprising call identification data, and to generate and transmit one or more queries using said call identification data; and

a looping engine in communication with said switching component and configured to receive said one or more queries and detect a looping condition by:

identifying a number of occurrences of call identification data associated with at least one of said call offers within a predetermined time frame,

comparing said number of occurrences against a predetermined count, and

returning a message to said switching component based on said comparison, said message indicating that a looping condition exists in said peering grid, said message comprises a two-parameter code comprising a switch identification tag (SWID) and a trunk group identification (TGID) which is interpreted by said switching component as a loop lock command,

said switching component being further configured to release said at least one call offer for alternate routing in response to said loop lock command.

33. A system for detecting a looping condition within a peering grid, comprising:

a switching infrastructure comprising a switching component configured to receive one or more call offers each comprising call identification data, and to generate and transmit one or more queries using said call identification data; and

a looping engine comprising a looping database storing call identification data and related time stamp and time frame data, said looping engine in communication with said switching component and configured to receive said one or more queries and detect a looping condition by interrogating said looping database to identify a number of occurrences of call identification data associated with at least one of said call offers within a predetermined time frame, comparing said number of occurrences against a predetermined count, and returning a message to said switching component based on said comparison, said message indicating whether a looping condition exists in said peering grid,

said looping engine further comprising a clean-up thread which causes said looping engine to delete stale occurrences of call identification data from said looping database, wherein a stale occurrence comprises call identification data whose associated predetermined time frame has expired.

34. The system of claim 33 , wherein said message indicating that a looping condition exists and said message comprises a two-parameter code comprising a SWID and a TGID which is interpreted by said routing engine as a loop lock command.

35. The system of claim 33 , wherein said routing engine is further configured to generate a query which comprises call identification data associated with said at least one call offer to said looping engine, and to transmit said query as part of a session invitation message configured according to one protocol selected from said group consisting of SIP, TCAP, and SOAP.

36. The system of claim 35 , wherein said looping engine comprises a looping database storing call identification data and related time stamp and time frame data, said looping engine being configured to identify a looping condition by:

interrogating said looping database to identify a number of occurrences of said call identification data associated with said at least one call offer within a predetermined time frame; and

if said number of occurrences meets or exceeds a predetermined count, returning said message to said routing engine indicating that a looping condition exists.

37. The system of claim 36 , wherein at least one of said predetermined time frame and predetermined count is preset by a user.

38. The system of claim 36 , wherein said predetermined time frame is one of a fixed window of time and a sliding window of time.

39. The system of claim 36 , wherein said looping engine is further configured to record said call identification data together with a time stamp associated with said at least one call offer in said looping database, and increment said number of occurrences of call identification data within said predetermined time frame.

40. The system of claim 36 , wherein said looping engine comprises a clean-up thread, which causes said looping engine to delete stale occurrences of call identification data from said looping database, wherein a stale occurrence comprises a call identification data whose associated predetermined time frame has expired.

41. The system of claim 33 , wherein said call identification data associated with said at least one call offer comprises a called/calling number pair.

42. A system for terminating a looping condition, comprising:

a switching infrastructure comprising a switching component configured to receive one or more call offers and to generate and transmit one or more queries, and a routing engine; and

a looping engine in communication with said switching infrastructure, said looping engine being configured to receive said queries, identify looping conditions, and return messages to said routing engine indicating whether at least one looping condition exists,

said looping engine comprising a clean-up thread and looping database storing call identification data and related time stamp and time frame data,

said looping engine identifying a looping condition by interrogating said looping database and identifying a number of occurrences of said call identification data associated with said at least one call offer within a predetermined time frame, wherein if said number of occurrences meets or exceeds a predetermined count, said looping engine returns a message to said routing engine indicating that a looping condition exists,

said clean-up thread causing said looping engine to delete stale occurrences of call identification data from said looping database, wherein a stale occurrence comprises a call identification data whose associated predetermined time frame has expired, and

said routing engine configured to release at least one of said call offers for alternate routing in response to a return message from said looping engine, and to generate a query which comprises call identification data associated with said at least one call offer to said looping engine, and to transmit said query as part of a session invitation message configured according to one protocol selected from said group consisting of SIP, TCAP, and SOAP.

Assignments (20)
RELEASE OF SECURITY INTEREST Recorded Jul 22, 2024
From: TC LENDING, LLC
To: INTELEPEER CLOUD COMMUNICATIONS LLC
Reel/Frame 068041/0472 →
RELEASE OF SECURITY INTEREST Recorded Jul 22, 2024
From: TC LENDING, LLC
To: INTELEPEER CLOUD COMMUNICATIONS LLC
Reel/Frame 068041/0748 →
SECURITY INTEREST Recorded Jul 22, 2024
From: INTELEPEER CLOUD COMMUNICATIONS LLC
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 068039/0384 →
GRANT OF A SECURITY INTEREST -- PATENTS Recorded May 12, 2021
From: INTELEPEER CLOUD COMMUNICATIONS LLC
To: TC LENDING, LLC, AS AGENT
Reel/Frame 056224/0344 →
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2020
From: COMERICA BANK
To: INTELEPEER HOLDINGS, INC.
Reel/Frame 051427/0263 →
RELEASE OF SECURITY INTEREST Recorded Dec 2, 2019
From: HORIZON TECHNOLOGY FINANCE CORPORATION
To: INTELEPEER CLOUD COMMUNICATIONS LLC
Reel/Frame 051153/0958 →
RELEASE OF SECURITY INTEREST Recorded Dec 2, 2019
From: SILICON VALLEY BANK
To: INTELEPEER HOLDINGS, INC.; INTELEPEER CLOUD COMMUNICATIONS LLC; ADVANTONE FLORIDA INC.; ADVANTONE, INC.
Reel/Frame 051153/0825 →
GRANT OF A SECURITY INTEREST -- PATENTS Recorded Dec 2, 2019
From: INTELEPEER CLOUD COMMUNICATIONS LLC
To: TC LENDING, LLC, AS COLLATERAL AGENT
Reel/Frame 051159/0500 →
RELEASE OF SECURITY INTEREST Recorded Nov 22, 2019
From: COMERICA BANK
To: INTELEPEER INC.
Reel/Frame 051097/0970 →
RELEASE OF SECURITY INTEREST Recorded Nov 21, 2019
From: PARTNERS FOR GROWTH IV, L.P.
To: INTELEPEER CLOUD COMMUNICATIONS, LLC
Reel/Frame 051080/0521 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 9, 2019
From: INTELEPEER CLOUD COMMUNICATIONS, LLC
To: SILICON VALLEY BANK
Reel/Frame 049124/0464 →
SECURITY INTEREST Recorded Apr 10, 2019
From: INTELEPEER CLOUD COMMUNICATIONS LLC
To: FINANCE, HORIZON T, FINA
Reel/Frame 048843/0719 →
SECURITY INTEREST Recorded Jan 7, 2018
From: INTELEPEER CLOUD COMMUNICATIONS LLC
To: HORIZON TECHNOLOGY FINANCE CORPORATION
Reel/Frame 044553/0319 →
RELEASE OF SECURITY INTEREST Recorded Aug 1, 2016
From: EAST WEST BANK
To: INTELEPEER CLOUD COMMUNICATIONS LLC
Reel/Frame 039695/0931 →
SECURITY INTEREST Recorded Jul 21, 2016
From: INTELEPEER CLOUD COMMUNICATIONS LLC
To: SILICON VALLEY BANK
Reel/Frame 039213/0749 →
SECURITY INTEREST Recorded Mar 31, 2016
From: INTELEPEER CLOUD COMMUNICATIONS, LLC
To: PARTNERS FOR GROWTH IV, L.P.
Reel/Frame 038163/0001 →
SECURITY AGREEMENT Recorded May 15, 2014
From: INTELEPEER CLOUD COMMUNICATIONS LLC
To: EAST WEST BANK
Reel/Frame 032918/0693 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2013
From: INTELEPEER, INC.
To: INTELEPEER CLOUD COMMUNICATIONS LLC
Reel/Frame 031619/0873 →
SECURITY AGREEMENT Recorded May 22, 2012
From: INTELEPEER, INC.
To: COMERICA BANK, A TEXAS BANKING ASSOCIATION
Reel/Frame 028247/0740 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2010
From: WALL, JEFFREY S.
To: INTELEPEER, INC.
Reel/Frame 025003/0056 →
Continuity (1)
Related Publication 20120069980A1 · Mar 22, 2012