Abstract:
A query message-based call routing mechanism for a limited access cooperative telecommunication network initially determines whether the called party is commonly located at the same node as the calling party. If not, the calling party node broadcasts a query message to all other nodes in the network to locate the called party. Only the node having local knowledge of the called extension will reply to the query message. Once the node sourcing the query message has received this reply message, it will place a call to the node servicing the called extension.

Description:
FIELD OF THE INVENTION 
     The present invention relates in general to communication systems and subsystems therefor, and is particularly directed to a new and improved call routing methodology that operates dynamically to locate remote extensions of a multinode cooperative telecommunication network. 
     BACKGROUND OF THE INVENTION 
     Cooperative telephony systems provide users thereof with the ability to communicate with one another over a restricted access network. Non-limiting examples include private branch exchanges installed in different offices of commercial, industrial and governmental enterprises. In such systems, a calling party needs only to dial a limited digit identification code or extension (e.g., three or four digits) in order to be connected with a called physical resource (phone) in the same or another office. Because members of such networks may move among various (branch) locations, it is customary practice to employ a unified dialing plan or table containing information regarding each physical resource, including its location. This serves to equip each node of the network with the ability to locate a particular extension when routing a call. 
     Unfortunately a unified dialing plan has a number of drawbacks, particularly where resource node membership can be expected to change. Since each node has a copy of the plan, any change to a node must be replicated at every other node or made to a master. Changes in the dialing plan may also lead to out-of-date routing information, resulting in mis-routed calls, which leads to user frustration while the information is being updated. Number portability is another problem that conventional implementations have not addressed. When moving an extension between nodes, system support has been cumbersome, since changes must be propagated to routing tables in other nodes. Moreover, having multiple copies of routing information creates a greater chance for errors. It has been found that moving an extension from one node to another is likely to cause routing problems, since each node has invalid data until its location information is updated. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention, these and other problems associated with the routing of calls within a limited access cooperative telecommunication network are effectively obviated by a new and improved call routing methodology, that initially determines whether the called party is commonly located with the calling party (e.g., within the same private branch exchange). If not, the calling party node broadcasts a query message to all other nodes in the network to locate the called party. Only the node having local knowledge of the called extension will reply to the query message. Once the node sourcing the query message has received this reply message, it will place a call to the node servicing the called extension. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  diagrammatically illustrates a reduced complexity example of a multinode cooperative telecommunication network that employs the extension routing methodology of the present invention; and 
         FIG. 2  shows the cooperative node network of  FIG. 1  with a superimposed sequence diagram for the example of a user at one node attempting to call an extension at another node. 
     
    
    
     DETAILED DESCRIPTION 
     Before describing in detail the new and improved call routing mechanism in accordance with the present invention, it should be observed that the invention resides primarily in what is effectively an information processing routine embedded within the call routing software resident in the various nodes of a cooperative telecommunication network. In order not to obscure the disclosure with details which will be readily apparent to those skilled in the art having the benefit of the description to follow, the invention has been illustrated in the drawings in readily understandable block diagram format, which show only those specific details that are pertinent to the present invention, in a convenient functional grouping, and associated flow chart format, whereby the present invention may be readily understood. 
     Attention is now directed to  FIG. 1 , which diagrammatically illustrates a reduced complexity example of a multinode cooperative telecommunication network, in which the extension routing methodology of the present invention is employed. As shown therein the network contains four switchboard nodes A, B, C and D that communicate with one another by way of an internode communication network  50 , such as but not limited to a frame relay (FR) network, an internet protocol (IP) network, a dedicated T1 communication link, and the like. 
     For purposes of the present description, each of the switchboard nodes A-D may comprise a private branch exchange (PBX) platform that services an associated set of telephone units, each of which is identified by a three-digit extension. To this end, node A is shown as servicing extensions  2 XX, node B services extensions  4 XX, node C services extensions  3 XX, and node D services extensions  5 XX. Each switchboard node has knowledge of each local account (its associated extensions), but has no knowledge of remote accounts, namely what extensions are assigned to other nodes. 
     Also shown coupled with each node is a respective local user resource (telephone unit), the identification of which is defined by a respective three-digit extension. In particular, node A is coupled with a user extension  201 , node B is coupled with a user extension  403 , node C is coupled with a user extension  326  and node D is coupled with a user extension  505 . In addition, node D is coupled to service an extension  356  that falls within the set of extensions  3 XX that are normally associated with node C. Its association with node D is due to the fact that extension  356  has been moved from node C (which customarily services extensions  3 XX) to node D (which customarily services extensions  5 XX). 
     When a call is sourced from an extension serviced by the respective switchboard node to which it is connected, the switchboard examines its list of known accounts, namely, the extensions of all the accounts that are assigned to that switchboard node. If the called extension is found to be local to that node, the switchboard connects the incoming call to the target account. However, if the target account is not local to the switchboard node, the switchboard must determine which remote node contains the target account. In accordance with the present invention this determination is accomplished by broadcasting a search message from the call-sourcing node to all other nodes that are part of the cooperative network. Since each node has a list of all of its local accounts, if the account is present somewhere in the network, one of the nodes will be able to reply that it is servicing that extension. The sourcing node is thereby informed of which node has the called extension and is able to set up the call to the appropriate node servicing the called extension. 
     To illustrate the above described methodology of the invention attention is directed to  FIG. 2 , in which the cooperative node network of  FIG. 1  has been augmented with a superimposed sequence diagram for the example of a user at node A attempting to call an extension that is not at node A, nor is it at the node whose prefix digit used by that node. In the present example, the user at extension  201  is attempting to call the user at extension  356 . As noted above, extension  356  is not located at the node having the dial plan ‘ 3 XX’, which is node C, but is located at the node having the dial plan ‘ 5 XX’, which is node D. 
     As shown at step  1 , the user at extension  201  initially dials the three digit number  356  into its PBX exchange. As pointed out above, when a call is sourced from a local extension, the respective switchboard node to which it is connected examines its list of known accounts, namely, the extensions of all the accounts that are assigned to that switchboard node. In the present example, therefore, node A examines its listed accounts (most of which can be expected to be extensions for the dial plan ‘ 2 XX’), but fails to find extension  356  listed as a local extension, so that a message that extension  356  is not local is returned at step  2 . 
     Failing to find the requested extension, node A knows that the extension, if it is part of the cooperative network, is located at another node, but it does not know which one. Therefore, at step  3 , it sends a query message (“who knows  356 ?”) to the internode communication network  50 , which is broadcast at step  4  to all the other nodes in the network. Typically, it would be expected that extension  356  would be located at node C, due the dial plan of ‘ 3 XX’, except that in the present example, extension  356  has moved to node D, as pointed out above. 
     In response to the (“who knows  356 ?”) query message, each node examines its local accounts for the identified extension. If a node does not have the requested extension, the message is ignored. In the present example, since extension  356  is located at node D, each of nodes B and C will ignore the message. However, if the node is connected to the requested extension, then that node replies to the requesting node that it has the queried target. In the present example, therefore, at step  5 , node D transmits a reply message through the internode communication network  50  to the inquiring node A, that node D has the extension  356 . Next, at step  6 , node A sends a message to node D indicating it has a call for extension  356 . Node D examines its dial plan listing and recognizes that it has extension  356 . At step  7 , node D delivers the call from the sourcing extension  201  at node A to its local called extension  356  and the call connection is complete. 
     A particular advantage of the methodology of the present invention is the fact that it does not require each node to have a copy of the dialing plans for all other nodes. Each node need only have a copy of the dialing plan for itself. This means that each node will have up-to-date information as to what it requires and whatever is required by other nodes, but does not have to concern itself with the accounts of other nodes. As a result each node will not possess possible out-of-date information. 
     While we have shown and described an embodiment in accordance with the present invention, it is to be understood that the same is not limited thereto but is susceptible to numerous changes and modifications as known to a person skilled in the art, and we therefore do not wish to be limited to the details shown and described herein, but intend to cover all such changes and modifications as are obvious to one of ordinary skill in the art.