# Patent

## Title
System and method for detecting SS7 messaging inefficiency

## Abstract

The present invention uses a software program to analyze all of the SS7 message traffic in a telephone network. By comparing point codes in the message data, the present invention can detect invalid and undesirable network inefficiencies in different types of telephone networks, including for example, wireline, wireless, or hybrid networks.

## Background
This application is a continuation of U.S. application Ser. No. 10/216,807 filed on Aug. 13, 2002, now U.S. Pat. No. 7,127,054.


BACKGROUND
1. Field of the Invention
The present invention relates generally to the field of telecommunications. More particularly, the present invention relates to systems and methods for detecting errors that cause inefficient telephone network operation.
2. Background of Invention
SS7 is an out-of-band signaling system for the exchange of call-related information between network switching offices, in support of voice and nonvoice services. SS7 messages are exchanged between network elements over bidirectional channels called signaling links. SS7 messaging allows flexibility in providing telephone services. Numerous services such as caller ID, call forwarding, and call conferencing are made possible or greatly enhanced by SS7 messaging. However, SS7 messaging can also give rise to a number of network inefficiencies and trouble conditions. For example, invalid conditions can that consume telephone network resources without providing any benefit to the telephone network. Valid, but undesirable telecommunications events, can waste network resources. Examples of these conditions include call looping, misrouted traffic, unreported mass calling, and excessive redialing.
A call looping condition occurs when a telephone call originated by a calling party to a called party loops between an originating end office and a terminating end office one or more times. Such looping conditions can occur for a number of reasons. One common reason is errors in translations tables that are provisioned in end offices of the telephone network.
A common source of call looping occurs when a first telephone company uses a second telephone company to perform some or all of the first telephone company's call routing. The second telephone company routes its own numbers as well as those numbers sent to it by the first telephone company according to routing tables established in a switch of the second telephone company.
If the first telephone company incorrectly activates an NPA-NXX, a call looping condition can occur. For example, the first telephone might activate a particular NPA-NXX for testing purposes, but not isolate it from the rest of the system. In that case, if a subscriber of the first telephone company misdials a telephone number and dials the NPA-NXX that was activated for testing purpose, the second telephone company would not have been previously advised that it was responsible for routing the NPA-NXX. As a result, the second company's routing tables would indicate that the first telephone company is responsible for routing the telephone call. When the second telephone company receives the NPA-NXX for routing, it consults its routing tables, and sees that the NPA-NXX is assigned to the first telephone company. As a result, it will return the telephone call to the first telephone company for routing. The first telephone company receives the telephone call, and sends it back to the second telephone company for routing. The call is sent back on another trunk, without releasing the first trunk as the call has not been established. This process continues, thereby creating a call loop.
Moreover, multiple trunks are devoted to the looping calls, resulting in inefficiency in the network. For example, when all lines in the trunk are used, the looping condition results in a reorder, meaning the calling party hears a busy signal, and has to redial the called number. Moreover, if the looping calls ties up all the trunks provisioned for the first telephone company then for the duration of the looping call, subscribers of the first telephone company are not be able to make any outbound calls. Often such looping conditions go undetected, because a call could ultimately be routed to the desired called party after several looping iterations. As a result, calling parties do not complain about inability to make calls.
A misrouted traffic condition occurs when a call originated by a calling party to a called party is directed to one or more tandem switches that are not normally involved in completing the call. For example, in a metropolitan area that has five tandem switches, namely, Tandem Switches A through E, a call originating from an originating end office associated with Tandem Switch A to a terminating end office associated with Tandem Switch E desirably uses a trunk linking Tandem Switch A to Tandem Switch E. The misrouted traffic condition occurs when Tandem Switch A, instead of routing the call to Tandem Switch E, misroutes the call to one or more of Tandem Switches B, C, and D. For example, the call may be misrouted such that it “snakes” from Tandem Switch A to Tandem Switch B, from Tandem Switch B to Tandem Switch C, from Tandem Switch C to Tandem Switch D, and finally from Tandem Switch D to Tandem Switch E, using up resources of four trunks, rather than just one. This type of misrouted traffic condition is sometimes referred to as a snaking condition.
A mass calling event occurs when multiple calling parties call a common called party simultaneously, or within a short period of time. One example of such mass calling event is associated with radio station call-ins. For example, when a radio station conducts a survey or a contest during which the general public is invited to call the radio station immediately or within a specific time frame, thousands of telephone calls are originated by the radio station's listeners. As known in the art, such mass calling of a common called party causes significant stress to a telephone company's network, particularly if the radio station does not warn the telephone company ahead of time. Such mass calling events can, among other things, aggravate the call looping and misrouted traffic conditions described above.
An excessive redialing event occurs when a calling party, within a relatively short time frame, repeatedly dials one or more called numbers. For example, excessive redialing can occur when a calling party repeatedly dials the same called number until connected. Redialing can be accomplished either manually or by invoking a feature of the telephone set used by the calling party. Excessive redialing can also occur when the calling party sequentially dials a number of called numbers. This can happen, for example, during a telemarketing campaign in which a computer is used to dial a large number of potential customers' telephone numbers. As known in the art, such excessive redialing causes significant stress to the telephone company's network. Accordingly, these invalid and undesirable conditions use up valuable network resources. Moreover, the cost to telephone companies to diagnose and repair such problems can be significant.
A conventional way to prevent the call looping condition described above is to use a switch-based “hop counter.” Such a switch-based hope counter ensures that a message is not excessively delayed in arriving at the destination. The basic operation of the hop counter is as follows. A telephone network provisions a hop counter at a switch. The hop count is set to a count (e.g., 10) to track the number of times a particular call is looped through the switch. Each time a call is looped back to the switch, the hop counter count is decremented by one. If the hop counter count reaches 0 the call is dropped to prevent an excessive looping condition. As known in the art, the hop counter does not help detect the root cause of the looping condition. For example, the hop counter technology that exists today is not capable of finding errors in translation tables which may cause the looping condition. Moreover, the hop counter technology is not available to all telephone companies. As a result, these telephone companies cannot prevent call looping using a hop counter.
SUMMARY OF THE INVENTION
The present invention solves the foregoing problems by analyzing SS7 message traffic in a telephone network. By comparing data in the SS7 messages with information known in the terminating office, the present invention can detect invalid and undesirable network inefficiencies in different types of telephone networks, including for example, wireline, wireless, or hybrid networks.
In one embodiment, the present invention is a method for detecting errors in a telephone network. The method begins with the step of capturing an initial address message (IAM) generated by a switch. Data is extracted from the IAM for analysis. The extracted data is compared with network information. The network information includes, for example, a link point code and a digit table in a switch. A mismatch indicates there is an error condition in the telephone network. If there is a mismatch, the error is reported in an error message.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram of a system for intercepting and analyzing SS7 traffic according to an embodiment of the present invention.
FIG. 2 is a flow chart for a method for intercepting and analyzing SS7 traffic to detect network inefficiencies according to an embodiment of the present invention.



DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a schematic diagram of a telephone network for intercepting and analyzing SS7 traffic to detect inefficiencies according to an embodiment of the present invention. A network analyzer 102 is attached to telephone network 104 to intercept SS7 messages routed by signaling transfer point (STP) 105 to end office 106. Network analyzer 102 can be any network analyzer that can intercept the SS7 messages. One example is the HP Access 7 analyzer, manufactured by Hewlett Packard of Palo Alto, California. Network analyzer 102 can also be connected in terminating office 106.
When a call is made from a calling telephone 108 to a called telephone 109, end office 110 sends an Initial Address Message (IAM) 112 over an SS7 signaling link to end office switch 106. IAM 112 is sent to STP 105. STP 105 routes LAM 112 to a terminating switch according to pre-provisioned routing tables. In this case, for example, the terminating switch is end office 106. If a trunk for the call is successfully established, the call is routed from end office 110 to end office 106 over the established trunk. End office 106 then causes telephone 109 to ring. Network analyzer 112 captures IAM 112. IAM 112 comprises an Originating Point Code (OPC), a Destination Point Code (DPC), dialed digits, and optionally the calling party number and name. The OPC and DPC are the global originating and termination points in the network. IAMs 113 captured by network analyzer 102 are sent to a computer 114. Computer 114 executes LAM analysis software to analyze the captured IAMs 113. Preferably, the captured IAMs 113 are transferred to the computer 114 using the well-known file transfer protocol (FTP).
FIG. 2 is a flow chart for analyzing IAMs to detect sources of inefficiency in a telephone network according to an embodiment of the present invention. In step 200, one or more of the IAMs are captured by network analyzer 102. Preferably, the IAM analysis software executing on computer 114 analyzes each captured LAM message in turn. In step 202, the software determines whether a captured IAM is associated with an incoming call.
If the captured IAM is not associated with an incoming call, then in step 204, the call is ignored and the software continues in step 222 where it continues processing of the next captured IAM. If the captured IAM is associated with an incoming call, then in step 206 the analysis software compares the destination point code (DPC) with the link point code (LPC) of the switch to which the IAM is directed. The LPC is the point code associated with the switch to which the LAM is directed.
In step 208, the analysis software determines whether the DPC in the LAM matches the LPC of the switch to which the IAM is directed. The LPC and DPC can mismatch for a number of reasons, including, for example erroneous entries in STP routing tables, errors in physical patches in the telephone network, and looping a link onto itself. These problems generally manifest themselves as an usually high number of calls that are not completed. If there is a mismatch, the software generates an error report indicating the mismatch in step 210. The error message provides an indication of the mismatch, thereby leading to quicker resolution of the problem. The method then continues to step 222 for processing of the next captured IAM.
If the DPC in the IAM matches the LPC of the switch to which the IAM is directed, the software compares the called digits with the digit table stored in the terminating end office in step 212. The digit table is a listing of numbers for which the terminating office is responsible. Preferably, the comparison is performed by the NPA-NXX of the called digits with NPA-NXX entries stored in the digital table. If desired, all dialed digits or any other portion thereof can be used for the comparison.
Whether the called digits match digits in the office table or not is determined in step 214. A mismatch indicates potential misrouting to telephone calls. That is, calls that are not supposed to be handled by a particular switch are being misdirected to that switch for handling. Knowledge of this problem provides information to system operators to enable them to quickly identify and fix the problem. For example, calls can be directed to different switches for handling based on class of service. Misdirected calls may result in services not being provided resulting in customer complaints. If there is a mismatch, a report indicating the mismatch is generated in step 216. The analysis software then continues in step 222 for processing of the next captured IAM.
In step 218, if the dialed digits match an entry in the digit table (as determined in step 214), the analysis software determines whether the call can terminate at the switch to which it has been directed. If the call cannot so terminate, the analysis software generates an error message indicating that the call cannot terminate. The analysis software then continues in step 222 for processing of the next captured LAM.
If the analysis software determines in step 218 that the call is able to terminate, the analysis software continues in step 222 with analysis of the next IAM. The analysis software can continues to analyze captured IAMs for a pre-determined period, until there are no captured IAMs available for analysis, or until commanded to terminate by a user.
The foregoing disclosure of the preferred embodiments of the present invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many variations and modifications of the embodiments described herein will be apparent to one of ordinary skill in the art in light of the above disclosure. The scope of the invention is to be defined only by the claims appended hereto, and by their equivalents.
Further, in describing representative embodiments of the present invention, the specification may have presented the method and/or process of the present invention as a particular sequence of steps. However, to the extent that the method or process does not rely on the particular order of steps set forth herein, the method or process should not be limited to the particular sequence of steps described. As one of ordinary skill in the art would appreciate, other sequences of steps may be possible. Therefore, the particular order of the steps set forth in the specification should not be construed as limitations on the claims. In addition, the claims directed to the method and/or process of the present invention should not be limited to the performance of their steps in the order written, and one skilled in the art can readily appreciate that the sequences may be varied and still remain within the spirit and scope of the present invention.

## Claims

1. A computer readable medium encoded with a software program for detecting errors in a telephone network that when executed by a processor performs instructions to:
capture one or more initial SS7 Messages (SS7);
determine if the SS7 is associated with an incoming call to a destination switch; and
if the SS7 is associated with an incoming call to the destination switch then:

extract data from the one or more SS7 for analysis;
compare the extracted data with network information of the destination switch; and
detect an error by determining if there are mismatches between the extracted data and the network information.

2. The computer readable medium of claim 1, wherein the network information includes a link point code that identifies a destination switch to which the SS7 is being directed.

3. The computer readable medium of claim 2, wherein the extracted data is a destination point code that identifies the intended switch, which is compared to the link point code.

4. The software program of claim 1, wherein the network information includes a digit table that identifies a destination switch to which the SS7 is being directed.

5. The software program of claim 4, wherein the extracted data are dialed digits that identify the intended destination switch, where the dialed digits are compared to entries in the digit table.

6. The software program of claim 1, wherein the SS7 is captured at a terminating end office.

7. The software program of claim 1, further comprising the instruction to generate an error message if there is a mismatch.

8. The software program of claim 1, further comprising instructions to determine if the dialed digits can terminate at a terminating end office.

9. The software program of claim 1, further comprising instructions to determine if there are additional SS7 to be captured.

10. The software program of claim 1, further comprising instructions to determine if the one or more SS7 are related to an incoming call to a terminating end office where the SS7 is captured.

11. The software program of claim 10, further comprising instructions to not compare the extracted data and not determine if there is a mismatch if the SS7 is not related to an incoming call.

12. The software program of claim 1, wherein comparing the extracted data to the network information continues until at least one of a pre-determined time period elapses, a terminate command from a user is received and the analysis of each of the one of more SS7 is complete.

13. The software program of claim 1, wherein the error detected causes an excessive redialing condition.

14. An apparatus for detecting errors in a telephone network, the apparatus comprising:
(a) a network analyzer to intercept one or more SS7 Messages (SS7) generated by an originating end office, the originating end office having a first switch that generates SS7 messages destined for a terminating end office, the terminating end office having a second switch to receive the SS7 messages; and
(b) a computer in communication with the network analyzer having SS7 analysis software executing thereon for analyzing each of the one or more SS7 in succession to determine whether each of the one or more SS7 message is associated with an incoming call to a destination switch;
if the SS7 message is associated with an incoming call then analyzing whether there is an error, wherein analyzing comprises one or more of matching a destination point code (DPC) with a link point code (LPC) of the second switch, comparing some or all called digits with a digit table, and determining whether the call can be terminated at the second switch.

15. The apparatus of claim 14, wherein the network analyzer is attached to the second switch of the terminating end office.

16. The apparatus of claim 14, wherein the network analyzer is attached to an SS7 link between an STP and the second switch of terminating end office.

17. The apparatus of claim 14, wherein the network analyzer communicates information to the computer using file transfer protocol.

18. A computer readable medium encoded with a software program for detecting errors in a telephone network, the software program further comprising instructions that when executed by a processor performs instructions to
(a) capture one or more SS7 Messages (SS7) at a terminating end office;
(b) determine if the SS7 is associated with an incoming call;
(c) ignore the SS7 if it is not associated with an incoming call;
(d) extract a destination point data from the SS7 for analysis;
(e) determine the corresponding network data of terminating office;
(f) detect if there is an error by comparing the destination point data with the network data of the terminating office; and
(g) terminate the step of detecting upon the occurrence of at least one of a pre-determined time period elapses, a command to terminate by a user and the detecting of errors of each of the one of more SS7 is complete.

19. The computer readable medium of claim 18, wherein the telephone network is at least one of a wireline network, a wireless network and a hybrid network.