Abstract:
Method and apparatus for detecting inter-carrier call looping. In one embodiment, the present invention is a method that can be used to reliably detect inter-network routing loops and kill associated calls using a modified ISUP Hop Counter parameter to be sent across network boundaries. Detection of inter-network loops prevents routing loops, those involving two or more carrier networks, from generating additional signaling traffic that can aggregate to overload signaling networks.

Description:
This application is a continuation of U.S. patent application Ser. No. 10/748,808, filed on Dec. 30, 2003 now U.S. Pat. No. 7,010,102, which claims the benefit of U.S. Provisional Application No. 60/462,091 filed on Apr. 10, 2003, which is herein incorporated by reference. 

   The present invention relates generally to communication networks and, more particularly, to a method and apparatus of accurately detecting inter-carrier looping for a call, e.g., in a Signaling System #7 (SS7) network. 
   BACKGROUND OF THE INVENTION 
   In a Signaling System #7 (SS7) network, both ANSI and Telcordia standards recommend implementation of the optional Hop Counter parameter in the ISDN User Part (ISUP) Initial Address Message (IAM) as a procedure to detect call routing loops caused by Common Channel Signaling Switching Office (CCSSO) translation errors. In situations where carriers decide to implement the Hop Counter only as an intra-network procedure, and not as an inter-network procedure, the Hop Counter procedure then can only be used to detect intra-network routing loops. In these scenarios, inter-network routing loops cannot be detected and these calls will generate additional signaling traffic that can aggregate to overload signaling networks. 
   Therefore, a need exists for a method to reliably detect inter-network routing loops and kill associated calls using a modified ISUP Hop Counter parameter to be sent across network boundaries. 
   SUMMARY OF THE INVENTION 
   In one embodiment, the present invention is a method that can be used to reliably detect inter-network routing loops and kill associated calls using a modified ISUP Hop Counter parameter to be sent across network boundaries. Detection of inter-network loops prevents routing loops, those involving two or more carrier networks, from generating additional signaling traffic that can aggregate to overload signaling networks. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The teaching of the present invention can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which: 
       FIG. 1  illustrates the encoding of the Hop Counter Value field as defined by ISUP; 
       FIG. 2  illustrates an example of inter-carrier looping in a network with a plurality of SS7 networks operated by different carriers and a plurality of switches in each SS7 network; 
       FIG. 3  illustrates the encoding of the modified Hop Counter parameter to incorporate the Network Counter field of the present invention; 
       FIG. 4  illustrates an example of inter-carrier looping in a network with a plurality of SS7 networks operated by different carriers supporting the Network Counter field; and 
       FIG. 5  illustrates a flowchart of a method for detecting inter-carrier looping of the present invention. 
   

   To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. 
   DETAILED DESCRIPTION 
   The present invention relates broadly to connection-oriented communication networks. These networks include, but are not limited to, a circuit switched network using SS7 signaling protocols. Thus, the present invention can be adapted to communication networks using other signaling protocols that experience problems that are similar to inter-network routing loops. 
   SS7 standards recommend that the Hop Counter parameter be encoded as shown below. The Hop Counter parameter is a 3 octet parameter consisting of an one octet name field, an one octet length field, and an one octet Hop Counter Value field. The parameter is encoded as: 
   
     
       
             
             
             
           
         
             
                 
             
             
               Octet 
               Field 
               Encoded Value 
             
             
                 
             
           
           
             
               1 
               Parameter Name 
               00111101 
             
             
               2 
               Length 
               00000001 
             
             
               3 
               Hop Counter 
               HGFEDCBA 
             
             
                 
             
           
        
       
     
   
   The Hop Counter Value field  100  is shown in  FIG. 1 . H, G, and F spare bits of the Hop Counter field are unused and are encoded with the value of “000”. The value of E, D, C, B, A bits of the Hop Counter Value field is a 5 bit value of the hop count of the number of contiguous SS7 interexchange circuits that are allowed to complete a call. 
   Under the Hop Counter procedure specified in the standards, the value of the 5 bit Hop Counter field is decremented by 1 at each intermediate switch and the call is killed when a 1 or 0 is received. The H, G, F bits of the Hop Counter Value field are not used by an intermediate switch. Note that this Hop Counter procedure applies only to intermediate switches. The use of the Hop Counter procedure across a network boundary shall be negotiated and agreed upon between interconnecting carriers before this feature is enabled. 
   In a SS7 network in which the Hop Counter procedure is implemented such that it only tracks the number of contiguous switches traversed within that network, any incoming Hop Counter Value received in an incoming IAM message on a network interconnect trunk from another carrier will be ignored. The interconnecting switch will set the outgoing Hop Counter Value to a predetermined value instead of decrementing the received Hop Counter when sending it in the outgoing IAM message. Resetting of the Hop Counter value when received across network boundaries can cause inter-network looping as shown  FIG. 2 . 
   In  FIG. 2 , an exemplary network  200  comprising a plurality of carriers A-C, e.g., long distance and/or local telephone service providers, a plurality of interconnected SS7 networks, a plurality of switches SO 01 -SO 11 , and a sequence of ordered events, 1-5, that occurred in the network. 
   Assume the followings for network  200 :
         Carrier B is Carrier A&#39;s egress carrier   Carrier C is Carrier B&#39;s egress carrier   Carrier A is Carrier C&#39;s egress carrier.       

   The following is a sequence of ordered events that occur in network  200  in  FIG. 2 . 
   (1) A call originates at or is sent to Carrier A for termination. Carrier A sets the initial Hop Counter field value to 20. 
   (2) Carrier A has an agreement with Carrier B to terminate some of its traffic so the call is provisioned to be sent to Carrier B for termination. Let&#39;s assume that Carrier B does not reset the received Hop Counter field value but decrements it. 
   (3) Carrier B has an agreement with Carrier C to terminate some of its traffic so the call is provisioned to be sent to Carrier C for termination. Again, assume that Carrier C does not reset the received Hop Counter field value but decrements it. 
   (4) Finally, Carrier C has an agreement with Carrier A to terminate some of its traffic so the call once again enters Carrier A network. 
   (5) Because Carrier A resets Hop Counter Value received across network boundaries, the Hop Counter field value is reinitialized to a provisioned value of 20 and the call-enters a looping state. 
   The Hop Counter is recommended as a procedure to detect call looping but if Carriers decide not to accept Hop Counter across network boundaries, due to mistrust or lack of Interconnection Agreements (ICA), the Hop Counter field value cannot be used to detect inter-carrier looping. If the Hop Counter field value is not allowed to be decremented per procedure when passed between networks, the effective value will never reach 1 or 0 to kill a looping call. 
   To address this criticality, the present invention provides a method and apparatus of detecting inter-carrier looping within a SS7 network. 
   The present invention uses a modified Hop Counter parameter using the 3 spare bits, H, G, and F, that were not used in the original Hop Counter parameter. The modified Hop Counter parameter is a 3 octet parameter consisting of an one octet parameter name field, an one octet length field, and an one octet Hop Counter Value field. The parameter is encoded as: 
   
     
       
             
             
             
           
         
             
                 
             
             
               Octet 
               Field 
               Encoded Value 
             
             
                 
             
           
           
             
               1 
               Parameter Name 
               00111101 
             
             
               2 
               Length 
               00000001 
             
             
               3 
               Hop Counter 
               HGFEDCBA 
             
             
                 
             
           
        
       
     
   
   The Hop Counter Value field  300  is shown in  FIG. 3 . The value of H, G, and F bits of the Hop Counter Value field is a 3 bit Network Counter field which is the value of the number of contiguous SS7 networks that a call has traversed. The value of the E, D, C, B, A bits of the Hop Counter field remains the same as specified by ANSI and Telcordia standards, which is a 5 bit value field of the hop count of the number of contiguous SS7 interexchange circuits that are allowed to complete a call. 
   The Network Counter field can have a range between 0 and 7, and is incremented by one at the receiving switch each time it crosses a network boundary. Network managers will decide upon a “threshold” Network Counter value between 1 and 7 that will be set to kill a call if a received Network Counter reaches this value. In one embodiment, the Network Counter default value for a call to be killed shall be set at 7. The usage and the processing requirements of the 5 bit Hop Counter Value field remains the same as previously discussed. 
   The method of processing the Network Counter field by an intermediate switch within a carrier network is:
         If a Hop Counter parameter is received in an incoming IAM but the Network Counter field is not set or is equal to 0, and the Hop Counter parameter must be included in the outgoing IAM, the switch shall populate the outgoing Network Counter field with an initial value of 1;   If a Hop Counter parameter is received in an incoming IAM and the Network Counter field has a value between 1 and 7, and the Hop Counter parameter must be included in the outgoing IAM, the switch shall pass this value unchanged in the outgoing Network Counter field;   If a Hop Counter parameter is not received in an incoming IAM but a Hop Counter parameter must be included in an outgoing IAM, the switch shall populate the outgoing Network Counter field with an initial value of 1.       

     FIG. 5  illustrates a method  500  for detecting inter-carrier looping of the present invention. Specifically, the method of processing the Network Counter field across a network boundary by an access switch is:
         If the Hop Counter parameter is received (block  510 ) in an incoming IAM across a network boundary and the Network Counter field value is equal to the pre-determined “threshold” value (e.g., default=7) (block  520 ), the network access switch shall release the call with a Release Message (REL) with the cause value of “exchange routing error” (Block  530 ). The switch then can notify network maintenance of the potential inter-carrier looping condition (Block  560 );   If the Hop Counter parameter is received (block  510 ) in an incoming IAM across a network boundary and the Network Counter field value is less than the “threshold” value (e.g., default=7) (block  520 ), the access switch shall increment the Network Counter value by 1 (Block  540 ) and includes this value in the Network Counter field of the Hop Counter parameter in the outgoing IAM (Block  550 ).       
   To better understand the present invention, an exemplary communication network  400  of the present invention is shown in  FIG. 4 . The communication network  400  comprises a plurality of carriers A-C, a plurality of interconnected SS7 networks, a plurality of switches SO 01 -SO 11 , and a sequence of ordered events,  1 - 11 , that occurred in the network. 
   Again assume the followings for network  400 :
         Carrier B is Carrier A&#39;s egress carrier   Carrier C is Carrier B&#39;s egress carrier   Carrier A is Carrier C&#39;s egress carrier.       

   The following is a sequence of ordered events that may occur in network  400  in  FIG. 4 . 
   (1) A call originates at or is sent to Carrier A for termination. Carrier A sets the initial Hop Counter field value to 20 and the initial Network Counter field value to 1. 
   (2) Carrier A has an agreement with Carrier B to terminate some of its traffic so the call is provisioned to be sent to Carrier B for termination. The Hop Counter field value is 17 and the Network Counter field value is 1 before the call is processed by the access switch of Carrier B. 
   (3) Carrier B does not reset the received Hop Counter Value but decrements it and carrier B also increments the Network Counter field. The Hop Counter field value is 16 and the Network Counter field value is 2 after the call is processed by the access switch (SO  5 ) of Carrier B. 
   (4) Carrier B has an agreement with Carrier C to terminate some of its traffic so the call is provisioned to be sent to Carrier C for termination. The Hop Counter field value is 13 and the Network Counter field value is 2 before the call is processed by the access switch of Carrier C. 
   (5) Carrier C does not reset the received Hop Counter field value but decrements it and carrier C also increments the Network Counter field value. The Hop Counter field value is 12 and the Network Counter field value is 3 after the call is processed by the access switch (SO  9 ) of Carrier C. 
   (6) Carrier C has an agreement with Carrier A to terminate some of its traffic so the call once again enters Carrier A network. The Hop Counter field value is 10 and the Network Counter field value is 3 before the call is processed by the access switch (SO  3 ) of Carrier A. 
   (7) Carrier A resets Hop Counter field value received across network boundaries, the Hop Counter field value is reinitialized to a provisioned value of 20 and the Network Counter field value is incremented to a value of 4. Now, the call enters a looping state. 
   (8) Carrier A has an agreement with Carrier B to terminate some of its traffic so the call is provisioned to be sent to Carrier B for termination. The Hop Counter field value is 17 and the Network Counter field value is 4 before the call is processed by the access switch (SO  5 ) of Carrier B. 
   (9) Carrier B does not reset the received Hop Counter field value but decrements it and carrier B also increments the Network Counter field value. The Hop Counter field value is 16 and the Network Counter field value is 5 after the call is processed by the access switch of Carrier B. 
   (10) Carrier B has an agreement with Carrier C to terminate some of its traffic so the call is provisioned to be sent to Carrier C for termination. The Hop Counter field value is 13 and the Network Counter field value is 5 before the call is processed by the access switch (SO  9 ) of Carrier C. 
   (11) Carrier C does not reset the received Hop Counter field value but decrements it and carrier C also increments the Network Counter field value. The Hop Counter field value is 12 and the Network Counter field value is 6 after the call is processed by the access switch of Carrier C. 
   (12) Carrier C has an agreement with Carrier A to terminate some of its traffic so the call once again enters Carrier A network. The Hop Counter field value is 10 and the Network Counter field value is 6 before the call is processed by the access switch (SO  3 ) of Carrier A. 
   (13) Carrier A increments the Network Counter field value to a value of 7 and the call continues to be in a looping state. 
   (14) Carrier A has an agreement with Carrier B to terminate some of its traffic so the call is provisioned to be sent to Carrier B for termination. The Hop Counter field value is 17 and the Network Counter field value is 7 before the call is processed by the access switch (SO  5 ) of Carrier B. 
   (15) Carrier B has detected that the Network Counter field has reached the threshold of 7 and the looped call should be killed. Now, the looped call will be terminated with a release signaling message with the “exchange routing error” cause code. 
   Additionally, the present inter-carrier loop detection methods and data structures can be represented by one or more software applications (or even a combination of software and hardware, e.g., using application specific integrated circuits (ASIC)), where the software is loaded from a storage medium, (e.g., a ROM, a magnetic or optical drive or diskette) and operated by the CPU in the memory of the switch. As such, the present inter-carrier looping detection methods and data structures of the present invention can be stored on a computer readable medium, e.g., RAM memory, ROM, magnetic or optical drive or diskette and the like. 
   While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of a preferred embodiment should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.