Abstract:
A method and apparatus for assuring telecommunication reliability by receiving from each of a plurality of control entities factors concerning priority of each of the plurality of control entities; determining a priority score for each of the plurality of control entities; detecting lose of communication with a one of the plurality of control entities from which the media connectivity endpoint presently receives control information; selecting another one of the plurality of control entities having the highest priority score; and requesting the selected other one of the plurality of control entities to supply control information.

Description:
TECHNICAL FIELD 
     This invention relates to reliability in telecommunication via a distributed telecommunication switching system. 
     BACKGROUND 
     Within the prior art, it is known to provide telecommunication service by a distributed telecommunication system using port networks (also referred to as media connectivity gateways) that are distributed over a geographical area with the port networks communicating media information via either the Internet or another type of wide area network. Control for the distributed port networks is provided by a gatekeeper also referred to as a switching processing element (SPE). For reliability, it is known to provide duplicated computers to perform the functions of the SPE. One computer is considered the active computer and the other computer is considered the standby computer which is capable of assuming control should the active computer fail. Although the use of duplicating computers to perform the SPE function does increase reliability, it does not solve certain failure problems. For example, the site where the SPE is located may experience an extreme disaster so that the SPE is eliminated as a functioning unit. In addition, since control is transmitted over the Internet, it is possible due to network fragmentation that a SPE may not be able to maintain control over one or more distributed port networks. 
     SUMMARY OF THE INVENTION 
     A method and apparatus for assuring telecommunication reliability by receiving from each of a plurality of control entities factors concerning priority of each of the plurality of control entities; determining a priority score for each of the plurality of control entities; detecting lose of communication with a one of the plurality of control entities from which the media connectivity endpoint presently receives control information; selecting another one of the plurality of control entities having the highest priority score; and requesting the selected other one of the plurality of control entities to supply control information. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWING 
         FIG. 1  illustrates, in block diagram form, an embodiment of the invention; 
         FIG. 2  illustrates, in block diagram form, another embodiment of the invention; 
         FIG. 3  illustrates, in block diagram form, additional details of an IPSI; 
         FIG. 4  illustrates, in block diagram form, the fragmentation of the IP network  101  of distributed telecommunication system  100  of  FIG. 1 ; and 
         FIGS. 5 and 6  illustrate, in flowchart form, operations performed by a server interface module of an IPSI. 
     
    
    
     DETAILED DESCRIPTION 
     The embodiment illustrated in  FIG. 1  illustrates distributed telecommunication system  100  that has multiple computer clusters for controlling the overall operations of distributed telecommunication system  100 . The switch processing element functions can be performed by main computer cluster  102 , and ESS computer clusters  103 - 106 . These computer clusters are interconnected to port networks  108 ,  113 ,  114 , and  116 . 
     The port networks allow telecommunication operations to be provided to digital or analog telephones  107 ,  112 ,  117 , and  129 . The port networks utilize port boards to interface the telephones so that the telephones can be controlled and communicate audio and other media information via IP network  101 . In the case of IP phones  109  and  111 , these phones also may be controlled via the port networks by the IP phone establishing control and media paths through the IP network to a control LAN (CLAN) board within a port network such as CLAN  124 . In addition, the switching processor entity can directly control an IP phone. Trunk interface boards, such as trunk interface board  126 , interconnect port networks with the public switching telephone network (PSTN)  142 . 
     Port network  108  utilizes IPSI  118  to establish from which computer cluster it will receive control information. Media processor (MEDPRO)  119  transfers media information such as voice from and to IP network  101 . MEDPRO  119  also makes any necessary protocol conversions. Elements  118 - 126  of port network  108  communicate control information via packet bus  127  and media information as well as certain control information via TDM bus  128 . Whether one of boards  121 - 126  receives control information via packet bus  127  or TDM bus  128  depends on the design of the board. Port networks  113 ,  114 , and  116  are similar in design to port network  108 . One skilled in the art would realize that there could be a variety of combinations of port boards, trunk interface boards, and CLAN boards. 
     During normal operation, main computer cluster  102  controls the operation of the distributed telecommunication system  100  as illustrated in  FIG. 1 . Main computer cluster  102  may advantageously consist of an active computer and a standby computer. The active computer continuously keeps the standby computer up to date on the status of all calls that are set up through the telecommunication and keeps the standby computer updated on the status of buttons and indicators on the various telephones. In addition, the active computer periodically transmits to ESS computer clusters  103 - 106  updates of static translation information. As will be described, if main computer cluster  102  should fail, one or more of the ESS computer clusters will assume the operations of providing the switching processing entity operations. In addition, although IP network  101  appears to be a single entity, in reality it is comprised of various routers, the failure of certain routers can make it impossible for main computer cluster  102  to communicate with one or more port networks. In that case, the IPSI of the port network will initiate a service request to an ESS computer cluster to receive control information. 
     During normal operations, the ESS computer clusters connect to all IPSIs within the port networks which are media connectivity endpoints and transmit to the IPSIs the factors that the IPSIs are to utilize in case communication with main computer cluster  102  is lost. Utilizing these factors, the IPSIs dynamically create priority lists of backup ESS computer clusters that each IPSI will attempt to establish communication with and receive control from should main computer cluster  102  fail. If an IPSI is not receiving control information from an ESS computer cluster or the main computer cluster  102 , it will request control from the main computer cluster  102  or an ESS computer cluster based on the highest ranked cluster in the priority list that the IPSI has created and the fact that the IPSI is in communication with the selected computer cluster. Each IPSI is dynamically changing its priority list based on the connectivity changes occurring in IP network  101  and failures within the computer clusters. After a failure has been rectified, main computer cluster  102  has the ability to override control by any ESS computer cluster of an IPSI. 
     An IP phone, such as IP phone  109 , can be assigned to receive control information via a single CLAN board such as CLAN board  124  or the IP phone can receive factors from various CLAN boards. If the IP phone receives factors from various CLAN boards, this allows the IP phone to create a priority list that determines which CLAN board the IP phone will attempt to communicate with in order to receive control information if the IP phone determines that it is no longer in communication with a previously selected CLAN. If an IP phone is receiving its control directly from the switching processing element, than the IP phone will create a priority list for each of the computer clusters. When an IP phone uses a priority list for selection of either a CLAN or the switching processing element, the IP phone functions as a media connectivity endpoint. 
       FIG. 2  illustrates another embodiment which is distributed telecommunication switching system  200 . Distributed telecommunication switching system  200  functions in a manner similar to distributed telecommunication switching system  100  with respect to the operations of the computer clusters and telephones. Note, that no analog or digital telephones are illustrated as being interconnected to the port networks, however this was simply done for convenience on  FIG. 2 . The principal difference in the operation of distributed telecommunication system  200  from that of distributed telecommunication system  100  is that the media of a call is transmitted via ATM network  207 . The call control continues to be communicated via IP network  201 . The port networks  208 ,  213 ,  214 , and  216  differ from the port networks of  FIG. 1  in that an expansion interface, such as expansion interface  221 , has been added to the port networks in order to interface and communicate via ATM network  207 . In addition, an IP phone such as IP phone  209  will always utilize a CLAN such as CLAN  224  for establishing and controlling telecommunication calls. 
       FIG. 3  illustrates in greater detail IPSI  118  of port network  108  of  FIG. 1 . The other IPSIs units would be similar in design. Server interface module (SIM)  301  communicates control information with the switching processing element via IP network  101 . Depending on whether a port board port network  108  that is being controlled communicates control information via packet bus  127  or TDM bus  128 , SIM  301  communicates control information with either packet interface  321  or control computer  311 , respectively. Processor  307  controls the operation of SIM  301  by execution of programs stored in control program module  303  using data stored in priority lists  304  and data module  306  of memory  302 . Processor  307  interfaces to IP network  101  via IP interface  308 , interfaces to packet bus  127  via packet interface  321  and interfaces to TDM bus  128  via control computer  311 . The operation of processor  307  in determining which computer cluster to designate as the switching processor entity utilizing information stored in priority lists  304  is described in greater detail in a later section. 
     Control computer  311  communicates all control information received from or transmitted to SIM  301  via TDM bus  128 . Control computer  311  performs its operations by processor  316  executing programs from control program module  313  using data in data module  314  of memory  312 . Processor  316  interfaces to TDM bus  128  via TDM interface  318 . 
     Packet interface  321  communicates all control information received from or transmitted to SIM  301  via packet bus  127 . Packet interface  321  performs its operations by processor  326  executing programs from control program module  323  using data in data module  324  of memory  322 . Processor  326  interfaces to packet bus  127  via packet interface  327 . 
     Tone clock  331  provides tone information and clock information for the port network by DSP  326  executing programs from control program module  331  utilizing data in data module  324  of memory  332  using techniques well known to those skilled in the art. DSP  326  interfaces to TDM bus  128  via TDM interface  338 . DSP  326  communicates control and media information via TDM bus  128 . 
     In order for an IPSI to determine from which computer cluster the IPSI is to accept control, the IPSI maintains a priority score for each computer cluster to which the IPSI is currently connected. Table I below illustrates the information that is maintained for each computer cluster in a table which is stored in the priority list of the server interface module. 
     
       
         
               
               
               
               
             
               
               
               
               
             
           
               
                 TABLE I 
               
               
                   
               
               
                   
                   
                 FACTOR 
                   
               
               
                 INDEX 
                   
                 WEIGHT 
                 FACTOR VALUE 
               
               
                 (i) 
                 FACTOR TYPE 
                 (w) 
                 (v) 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 1 
                 base score 
                 1 
                 administered base 
               
               
                   
                   
                   
                 score (1-100) 
               
               
                 2 
                 local preference 
                 250 
                 0—if not in the same 
               
               
                   
                 boost 
                   
                 community or 
               
               
                   
                   
                   
                 boost not enabled 
               
               
                   
                   
                   
                 1—if in the same 
               
               
                   
                   
                   
                 community and 
               
               
                   
                   
                   
                 boost enabled 
               
               
                 3 
                 system 
                 500 
                 0—if boost is not 
               
               
                   
                 preference boost 
                   
                 enabled 
               
               
                   
                   
                   
                 1—if boost is 
               
               
                   
                   
                   
                 enabled 
               
               
                 4 
                 main cluster 
                 1000 
                 0—if an ESS 
               
               
                   
                 boost 
                   
                 computer cluster 
               
               
                   
                   
                   
                 1—if the main 
               
               
                   
                   
                   
                 computer cluster 
               
               
                   
               
             
          
         
       
     
     Upon a computer cluster establishing communication with an IPSI, the computer cluster transmits to the IPSI the factor values (v) as well as the factor values (v) which are stored in the priority list maintained by the server interface module. Within Table I, the columns headed Factor Type and Index are not directly transmitted by the computer cluster to the IPSI. One skilled in the art could readily envision that other factors could be transmitted by the computer cluster. The column headed Factor Type is included for illustration purposes only and the index is implied from the transmitted order of the of the values for “w” and “v”. 
     To determine the priority score (PS), the processor of the server interface module calculates the following formula for each connected computer cluster.
 
PS=Σw i v i   Equation 1
         Where i=1-4       

     One skilled in the art would also realize that the values given for the Factor Weights of Table I are strictly for example purposes and other weights could be utilized. If a computer cluster is the main computer cluster, it is given the main cluster boost of 1000 as illustrated in Table I. The main cluster boost assures that regardless of what the other factor weights result from evaluation of Equation 1, the main computer cluster will still have the highest priority score, and the IPSI will select the main computer cluster for control. The system preference boost is set so that it will override the combination of the local preference boost and base score. This will result in the computer cluster that has been designated as having the system preference boost being selected by the IPSI as the controlling computer cluster absent the IPSI not being able to connect to the main computer cluster. 
     An ESS computer cluster is given the system preference boost for a variety of reasons. Some of these reasons may be, but are not limited to, the fact that the ESS computer cluster has surplus processing power or is particularly well connected to the IP network  101  via preferred packet routers. 
     The local preference boost is given to an ESS computer cluster that topologically is local to the IPSI. This means that the ESS computer cluster is close to the IPSI from a network perspective. For example, the ESS computer cluster may reside on the same local area network as the IPSI. The base score factor type is assigned to an ESS computer cluster based on the factors such as location, through-put, user preference, and reliability. Note, one skilled in the art could envision other reasons for assigning specific base scores to a given ESS computer cluster. 
     It is important to realize that if an IPSI is not in communication with a given computer cluster, the IPSI will not evaluate Equation 1 to determine the priority score for that computer cluster. 
     In order to understand how an IPSI utilizes a priority score to select between computer clusters, consider the following example.  FIG. 4  illustrates that distributed telecommunication switching system  100  has suffered a fragmentation of IP network  101 . Port network  108  is isolated from main computer cluster  102  and ESS computer cluster  103 . The only computer clusters that port network  108  can communicate with are ESS computer clusters  104  and  106 . The following Tables II and III illustrate the factor values that IPSI  118  has stored for ESS computer cluster  104  and  106 . 
     
       
         
               
             
               
               
               
               
               
             
               
               
               
               
               
             
           
               
                 TABLE II 
               
             
             
               
                   
               
               
                 for ESS Computer Cluster 106 
               
             
          
           
               
                   
                   
                   
                 FACTOR 
                   
               
               
                   
                 INDEX 
                   
                 WEIGHT 
                 FACTOR VALUE 
               
               
                   
                 (i) 
                 FACTOR TYPE 
                 (w) 
                 (v) 
               
               
                   
                   
               
             
          
           
               
                   
                 1 
                 base score 
                 1 
                 100 
               
               
                   
                 2 
                 local preference 
                 250 
                 1 
               
               
                   
                   
                 boost 
               
               
                   
                 3 
                 system 
                 500 
                 0 
               
               
                   
                   
                 preference boost 
               
               
                   
                 4 
                 main cluster boost 
                 1000 
                 0 
               
               
                   
                   
               
             
          
         
       
     
     
       
         
               
             
               
               
               
               
               
             
               
               
               
               
               
             
           
               
                 TABLE III 
               
             
             
               
                   
               
               
                 for Ess Computer Cluster 106 
               
             
          
           
               
                   
                   
                   
                 FACTOR 
                   
               
               
                   
                 INDEX 
                   
                 WEIGHT 
                 FACTOR VALUE 
               
               
                   
                 (i) 
                 FACTOR TYPE 
                 (w) 
                 (v) 
               
               
                   
                   
               
             
          
           
               
                   
                 1 
                 base score 
                 1 
                 10 
               
               
                   
                 2 
                 local preference 
                 250 
                 0 
               
               
                   
                   
                 boost 
               
               
                   
                 3 
                 system 
                 500 
                 1 
               
               
                   
                   
                 preference boost 
               
               
                   
                 4 
                 main cluster boost 
                 1000 
                 0 
               
               
                   
                   
               
             
          
         
       
     
     If the information for computer cluster  104  from Table II is inserted into Equation 1, the resulting priority score is 350. If the factor values for ESS computer cluster  106  are taken from Table III and inserted into Equation 1, the resulting priority score is 510. Based on the priority scores, IPSI  118  will select ESS computer cluster  106  to receive control information from. Once IP network  101  is no longer fragmented, IPSI  118  is responsive to communication being established with main computer cluster  102  to store this fact and give main computer cluster  102  top priority in the list. After a long period of time has elapsed since the fragmentation, IPSI  118  may switch to main computer cluster  102  for control information. Manual intervention can force IPSI  118  to switch to main computer cluster  102  for control information. In addition, main computer cluster  102  can transmit a command to IPSI  118  that will force IPSI  118  to switch to main computer cluster  102  for control information. 
     While main computer cluster  102  is performing the functions of a switching processing element, it transmits on a periodic basis to each of the ESS computer clusters static translation information concerning distributed telecommunication system  100 . In this manner, if it becomes necessary for an ESS computer cluster to start to perform the functions of a switching processor entity, the ESS computer cluster will have the information necessary to perform this function. In addition, each computer cluster constantly transmits a short message to each of the IPSIs to which the IPSIs respond. This establishes for both the computer clusters and the IPSI that communication is still existing between the two units. 
       FIGS. 5 and 6  illustrate, in flowchart form, operations performed by a server interface module to enable the selection of a computer cluster for control. After being started in block  501 , decision block  502  determines if there is an initial communication from a computer cluster. If the answer is yes, control is transferred to block  601  of  FIG. 6 . If the answer is no in decision block  502 , decision block  503  determines if a computer cluster with which communication is already established is sending new factors. If the answer is yes, control is transferred to decision block  601  of  FIG. 6 . If the answer is no in decision block  503 , control is transferred to decision block  504 . 
     Decision block  504  determines if communication has been lost with a computer cluster. If the answer is no, control is transferred back to decision block  502 . If the answer is yes, this information is marked in the tables maintained by the server interface module and control is transferred to decision block  507 . 
     Decision block  507  determines if the computer cluster that failed was the controlling computer cluster. If the answer is no, control is transferred back to decision block  502 . If the answer is yes in decision block  507 , block  508  switches to the computer cluster with the highest PS before returning control back to decision block  502 . 
     If the answer is yes in either decision block  502  or  503 , control is transferred to block  601  of  FIG. 6 . Block  601  receives the factors that are being transmitted by the computer cluster, and block  602  calculates a new PS for that computer cluster. 
     Block  604  updates the tables before transferring control back to decision block  502  of  FIG. 5 . 
     When the operations of a telephone set, control computer, processor or server are implemented in software, it should be noted that the software can be stored on any computer-readable medium for use by or in connection with any computer related system or method. In the context of this document, a computer-readable medium is an electronic, magnetic, optical, or other physical device or means that can contain or store a computer program for use by or in connection with a computer related system or method. The telephone set, control computer, processor or server can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a “computer-readable medium” can be any means that can store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. For example, the computer-readable medium can be, but is not limited to, an electronic, magnetic, optical, or semiconductor system, apparatus, or device. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM, EEPROM, or Flash memory) (electronic), and a portable compact disc read-only memory (CDROM) (optical). 
     In an alternative embodiment, where the telephone set, control computer or server is implemented in hardware, the telephone set, control computer or server can be implemented with any or a combination of the following technologies, which are each well known in the art: a discrete logic circuit(s) having logic gates for implementing logic functions upon data signals, an application specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array(s) (PGA), a field programmable gate array (FPGA), etc. 
     Of course, various changes and modifications to the illustrated embodiments described above will be apparent to those skilled in the art. These changes and modifications can be made without departing from the spirit and scope of the invention and without diminishing its intending advantages. It is therefore intended that such changes and modifications be covered by the following claims except insofar as limited by the prior art.