Abstract:
An apparatus and methods are disclosed for use by organizations that have PBXs at a plurality of sites. The invention pertains to cell phone calls from an affiliated terminal to her “home” private branch exchange. For example, an employee who works at the Chicago branch office might call the Chicago office&#39;s PBX to invoke a feature such as setting up call forwarding, retrieving voice mail, etc. Such calls might be automatically and transparently directed to another PBX when it is advantageous to do so. In the illustrative embodiment, the need or desirability to redirect such calls to another PBX is ascertained while the caller is still in the process of entering all of the required calling information. The effect of assessing whether to redirect the call in parallel with the caller entering the information is to reduce the delays otherwise experienced by the caller when placing calls outside of the enterprise area served by the home private branch exchange.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to telecommunications in general, and, more particularly, placing a call to a second private branch exchange based on determining whether a telecommunications terminal user is trying to place a call to a first private branch exchange (PBX). 
       BACKGROUND OF THE INVENTION 
       [0002]    An organization that desires to provide employees at one location with telephones has, in general, two options. First, the organization can acquire one telephone and one telephone line per employee from the telephone company. Second, the organization can acquire one telephone per employee, a small number of telephone lines from the telephone company, and a piece of equipment that enables the employee&#39;s telephones to share the small number of telephone lines. In general, the second option is substantially less expensive than the first option, and the piece of equipment that enables the employees&#39; telephones to share the small number of telephone lines is called a “private-branch exchange” or “PBX.” In addition, private-branch exchanges typically provide a variety of useful telecommunications features to their users, such as call forwarding, three-way conferencing, and so forth. 
         [0003]      FIG. 1  depicts a schematic diagram of telecommunications system  100  in the prior art. Telecommunications system  100  comprises affiliated off-premises telecommunications terminals  101 - 1  through  101 -X, wherein X is a positive integer; unaffiliated off-premises telecommunications terminal  102 ; affiliated on-premises telecommunications terminals  103 - 1  through  103 -X; private branch exchange telephone system  104 ; and telecommunications network  105 , interconnected as shown. 
         [0004]    The terms “affiliated” and “unaffiliated,” as they apply to the off-premises terminals, refer to whether an off-premises terminal is affiliated with an on-premises terminal (i.e., a terminal served by private branch exchange  104 ). The relationship of an on-premises terminal (e.g., terminal  103 - 1 , etc.) with an affiliated off-premises terminal (e.g., terminal  101 - 1 , etc.) is described below and with respect to  FIG. 2 , with regards to extending a received call to one or both terminals. 
         [0005]    Private branch exchange  104  is capable of switching incoming calls from telecommunications network  105  (e.g., the Public Switched Telephone Network, etc.) via one or more transmission lines to any of on-premises terminals  103 - 1  through  103 -N. Private branch exchange  104  is also capable of handling outgoing calls from any of on-premises terminals  103 - 1  through  103 -N to telecommunications network  105  via one or more transmission lines that connect private branch exchange  104  to telecommunications network  105 . 
         [0006]    Private branch exchange  104  is capable of also extending an incoming call to a telephone number in telecommunications network  105 , in addition to switching the incoming call to on-premises terminal  103 - n , wherein n is an integer between 1 and N, inclusive. The telephone number that is extended-to in telecommunications network  105  corresponds to an affiliated terminal  101 - n.    
         [0007]    In addition, private branch exchange  104  is capable of providing telecommunications features that enable the forwarding of calls, the transferring of calls, conferencing, etc. Typically each user of an on-premises terminal  103 - n  can create a customized profile that is stored at private branch exchange  104  and indicates to private branch exchange  104  how to present information to and respond to signal from on-premises terminal  103 - n  and its affiliated terminal  101 - n . A customized profile might include information such as defaults for various settings and options, what language to use for voice prompts, what menu items to present, how to associate number keys to menu items, and so forth. 
         [0008]      FIG. 1  also depicts the address spaces that are relevant to telecommunications network  100  in the prior art. The term “address space” refers to an addressable region of telephone service. Address space  111  represents the addressable region served by telecommunications network  105 . Address space  112  represents the addressable region served by private branch exchange  104 . 
         [0009]    Private branch exchange  104  acts as a “bridge” between address space  111  and address space  112 . When a calling party places a call to someone served by private branch exchange  104 , the calling party uses a dialing sequence that includes a telephone number that belongs to telecommunications network  105  and residing in address space  111 . As part of the dialing sequence, the calling party also uses an extension number that allows access to one of the on-premises telecommunications terminals that reside within address space  112 . 
         [0010]    Thus an on-premises telephone number is one that exists within the address space of the private branch exchange, and an off-premises telephone number is one that exists within the address space of the Public Switched Telephone Network. 
         [0011]    Some private branch exchanges enable the user of an on-premises terminal to associate an off-premises terminal&#39;s telephone number (e.g., the user&#39;s cell phone number, etc.) with the on-premises terminal&#39;s telephone number for features such as automatic call forwarding. In such instances the off-premises terminal&#39;s telephone number is said to be mapped to the on-premises terminal&#39;s telephone number. Typically a private branch exchange that provides such a mapping feature stores the mappings in a table, such as the one shown in  FIG. 2 . 
       SUMMARY OF THE INVENTION 
       [0012]    The present invention is applicable to organizations that have private branch exchanges (PBXs) at two or more different sites, and pertains to calls from an affiliated off-premises terminal (typically, an employee&#39;s cell phone) to its “home” private branch exchange. For example, an employee who works at an organization&#39;s New York branch office might call the New York office&#39;s PBX to invoke a feature such as setting up call forwarding, canceling call forwarding, retrieving voice mail, and so forth. 
         [0013]    When it is determined that an employee is placing such a call, the call might be automatically and transparently directed to another PBX of the organization when it is advantageous to do so. Re-directing a call to another private branch exchange might be advantageous for a number of reasons, such as for the purposes of security, for reducing toll charges, because of unavailability of a particular private branch exchange (perhaps based in part on the time zones in which the PBXs are located), etc. 
         [0014]    In accordance with the illustrative embodiment, the determination that the employee is placing the call is performed before the employee has keyed in all of the required calling information. The desired functionality is provided via software on the affiliated terminals (i.e., employees&#39; cell phones). In particular, an extra layer of software operates on the affiliated terminals that monitors the user&#39;s input and determines as quickly as possible when the user is in the process of entering keystrokes, or other types of input, for placing a call. As soon as this determination is made, the terminal initiates the PBX redirection, connection, and authentication processes before the user has completed entering the necessary input such as the telephone number, keystrokes to navigate a contact directory, and so forth. The present invention therefore reduces the delays that can be experienced by users when placing a call from outside the enterprise area that is served by the home private branch exchange. 
         [0015]    When a call to an employee&#39;s home private branch exchange is re-directed to a different private branch exchange, the re-direction is done automatically and transparently in such a manner that the user is unaware of its occurrence. In addition, the present invention enables the “non-home” private branch exchange to interact with the user in the same manner as the home private branch exchange (e.g., with the same default values, preferred language, etc.). As a result, the re-directed call appears no different to the user than a call to her home private branch exchange. 
         [0016]    The illustrative embodiment comprises: (a) receiving at a telecommunications terminal a series of inputs, each input corresponding to a data entry by a user of the telecommunications terminal; (b) determining, in response to at least one input having been received in the series of inputs, whether the user is placing a first call to a first private branch exchange, the determination being based on one or more of the inputs already received, wherein the telephone number M of the telecommunications terminal (i) is not in the address space of the first private branch exchange, and (ii) is mapped to a telephone number N in the address space of the first private branch exchange; (c) placing, in response to determining that the user is placing the first call to the first private branch exchange, a second call from the telecommunications terminal to a second private branch exchange whose address space does not contain M and does not contain a telephone number to which M is mapped; and (d) receiving at least one additional input from the user of the telecommunications terminal, wherein the at least one additional input would have been necessary to complete the first call. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]      FIG. 1  depicts a schematic diagram of telecommunications system  100 , in accordance with the prior art. 
           [0018]      FIG. 2  depicts an illustrative table that maps off-premises telephone numbers to on-premises telephone numbers, in accordance with the prior art. 
           [0019]      FIG. 3  depicts a schematic diagram of telecommunications system  300 , in accordance with the illustrative embodiment of the present invention. 
           [0020]      FIG. 4  depicts illustrative table  400  that is stored at affiliated wireless telecommunications terminal  301 , as shown in  FIG. 3 , in accordance with the illustrative embodiment of the present invention. 
           [0021]      FIG. 5  depicts a flowchart of the salient tasks of affiliated telecommunications terminal  301  that comprise receiving a series of inputs for determining a user&#39;s intent, in accordance with the illustrative embodiment of the present invention. 
           [0022]      FIG. 6  depicts a flowchart of the salient tasks of affiliated telecommunications terminal  301  that comprise initiating communication with a private branch exchange, in accordance with the illustrative embodiment of the present invention. 
           [0023]      FIG. 7  depicts a flowchart of the salient tasks of private branch exchange  304 - p , in accordance with the illustrative embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0024]      FIG. 3  depicts a schematic diagram of telecommunications system  300 , in accordance with an illustrative embodiment of the present invention. Telecommunications system  300  comprises telecommunications network  105 , private branch exchange  304 - 1 , on-premises terminals  103 - 1 - 1  through  103 - 1 -Y, private branch exchange  304 - 2 , on-premises terminals  103 - 2 - 1  through  103 - 2 -Z, authentication server  320 , profile database  330 , voicemail server  340 , and off-premises wireless telecommunications terminal  301 , interconnected as shown. 
         [0025]    Private branch exchanges  304 - 1  and  304 - 2  provide all the functionality of private branch exchange  104  of the prior art, and are also capable of performing the tasks of  FIG. 7 , described below. 
         [0026]    On-premises terminals  103 - 1 - 1  through  103 - 1 -Y are the same as on-premises terminals  103  of the prior art, and are associated with private branch exchange  304 - 1 . As shown in  FIG. 3 , the telephone numbers of on-premises terminals  103 - 1 - 1  through  103 - 1 -Y exist in address space  112 - 1 . 
         [0027]    On-premises terminals  103 - 2 - 1  through  103 - 2 -Z are the same as on-premises terminals  103  of the prior art, and are associated with private branch exchange  304 - 2 . As shown in  FIG. 3 , the telephone numbers of on-premises terminals  103 - 2 - 1  through  103 - 2 -Z exist in address space  112 - 2 . 
         [0028]    Authentication server  320  is a server that is capable of presenting authentication challenges to telecommunications terminals, of receiving responses from challenged terminals, and of determining the correctness of responses, as is well-known in the art. The manner in which authentication server  320  performs its authentication functions in accordance with the illustrative embodiment is described below and with respect to  FIG. 7 . 
         [0029]    As will be appreciated by those skilled in the art, in some other embodiments of the present invention, authentication might be performed by an entity other than a centralized authentication server—such as a user&#39;s home private branch exchange, or a “local” authentication server attached to the home PBX, or perhaps the private branch exchange to which a call is re-directed—and it will be clear to those skilled in the art, after reading this specification, how to make and use such embodiments. 
         [0030]    Profile database  330  is a database of PBX profiles for every on-premises telephone number of the organization (in the illustrative embodiment, the telephone numbers of terminals  103 - 1 - 1  through  103 - 1 -Y and terminals  103 - 2 - 1  through  103 - 2 -Z). The profiles stored in profile database  330  contain individualized information about a user&#39;s preferences when interacting with its home PBX  304 , such as the user&#39;s preferred language, preferred timeout durations, customized menus, etc., as is well-known in the art. 
         [0031]    In accordance with the illustrative embodiment, the profile for a particular on-premises telephone number is stored at the home PBX  304  for that telephone number in addition to profile database  330 . It will be clear to those skilled in the art, after reading this specification, how to make and use other embodiments of the present invention in which profiles might be stored only at profile database  330 , or only at the home PBX  304 , or at one or more “non-home” private branch exchanges in addition to the home PBX. Furthermore, the tradeoffs involved in fault-tolerance, consistency, and read-vs.-write performance for each possible implementation are well-understood by those skilled in the art. 
         [0032]    Voicemail server  340  is a server that stores voicemail for all of the on-premises telephone numbers of the organization (in the illustrative embodiment, the telephone numbers of terminals  103 - 1 - 1  through  103 - 1 -Y and terminals  103 - 2 - 1  through  103 - 2 -Z). As will be appreciated by those skilled in the art, in some embodiments of the present invention, voicemail might be stored “locally” at each private branch exchange  304  instead of at a centralized server, and it will be clear, how to make and use such embodiments after reading this specification. 
         [0033]    Off-premises wireless telecommunications terminal  301  is a wireless telecommunications terminal (e.g., cell phone, etc.) that is affiliated with one of the on-premises terminals  103  of private branch exchange  304 - 1  (say  103 - 1 - y , where y is an integer between 1 and Y, inclusive). In accordance with the illustrative embodiment, wireless telecommunications terminal  301  is capable of storing a table of the organization&#39;s private branch exchanges and related information, such as illustrative table  400  shown in  FIG. 4 , and of performing the tasks of  FIGS. 5 and 6 , described below. 
         [0034]    As will be appreciated by those skilled in the art, for the purposes of simplicity telecommunications system  300  of the illustrative embodiment has only two private branch exchanges  304 - 1  and  304 - 2 . However, it will be clear to those skilled in the art, after reading this specification, how to make and use embodiments of the present invention for organizations that have P private branch exchanges, where P is an integer greater than two. 
         [0035]      FIG. 5  depicts a flowchart of the salient tasks of affiliated telecommunications terminal  301  that comprise receiving a series of inputs from a user for determining the user&#39;s intent, in accordance with the illustrative embodiment of the present invention. It will be clear to those skilled in the art which tasks depicted in  FIG. 5  can be performed simultaneously or in a different order than that depicted. 
         [0036]    At task  501 , wireless telecommunications terminal  301  receives one or more inputs in a series of individual data inputs. In accordance with the illustrative embodiment, each input corresponds to a data entry by a user of terminal  301 , such as the entry of a numeric digit (e.g., “one”, “two”, etc.) or a command (e.g., “send” key being depressed, etc.). Each input, for example, can correspond to a keystroke by the user on the keypad of terminal  301 , where the user is providing information to the terminal for the purpose of keying in a telephone number, navigating a contact directory, and so forth. In some embodiments, each data entry is indivisible, such as a single keystroke. As those who are skilled in the art will appreciate, each input might correspond to another type of data entry by the user, such as speaking the information into the terminal&#39;s microphone. 
         [0037]    At task  502 , terminal  301  determines, after receiving J inputs, whether its user is placing a call to her home private branch exchange (i.e., the private branch exchange  304  whose address space contains a telephone number to which wireless terminal  301 &#39;s telephone number is mapped). In the illustrative embodiment, wireless terminal  301 &#39;s home PBX is  304 - 1  because wireless terminal  301  is affiliated with on-premises terminal  103 - 1 - y . Techniques for completing or predicting a string that is being entered by a terminal&#39;s user, based at least in part on the characters that have already been entered, are well-known in the art. 
         [0038]    As those who are skilled in the art will appreciate, the value for J, which is greater than or equal to one, can be selected for a particular operating mode, thereby affecting the speed and accuracy of the prediction. In other words, terminal  301  can wait until it receives multiple inputs, before it attempts to determine whether its user is placing a call to the home PBX. The value for J can be based upon one or more factors, which include i) the network to which terminal  301  is connected at the time that the determination at task  502  is made, ii) the numbering plan in effect (i.e., of the connected network), iii) the number of PBXs for which information is stored at terminal  301 , as described earlier with respect to  FIG. 4 , or iv) the type of data entry being made by terminal  301 &#39;s user (e.g., a phone number, a contact list selection, etc.). 
         [0039]    Additionally, the value for J can be varied, either by the user herself or by a source other than the user (e.g., the manufacturer, the network provider, etc.). For example, the prediction can be made faster, to the point where only a minimum of inputs is required (i.e., the value for J is made small) to determine that the user wants to call the home PBX, resulting in a higher error probability in the prediction. At the other extreme, the prediction can be made more accurate (i.e., the value for J is made large), to the point where many inputs are required to determine that the user wants to call the home PBX, resulting in a lower error probability—or even a zero error probability—in the prediction. 
         [0040]    If terminal  301  determines that the user is, in fact, in the process of placing a call to the home PBX, task execution proceeds to task  503 . Otherwise, task execution proceeds back to task  501  for the purpose of receiving additional inputs. 
         [0041]    In accordance with the illustrative embodiment, terminal  301  performs task  502  in response to each input received. As those who are skilled in the art will appreciate, however, terminal  301  can perform task  502  based on a combination of inputs that is other than each and every input. 
         [0042]    At task  503 , terminal  301  spawns a process to initiate communication with a private branch exchange that is not necessarily the home PBX. The spawned process is described below and with respect to  FIG. 6 . Meanwhile, task execution continues to task  504 . 
         [0043]    At task  504 , terminal  301  determines if additional inputs are being received or are expected. For example, a total of K inputs might be necessary to complete the call that the user is in the process of placing to the home PBX. If more inputs are to be received, task execution proceeds to task  505 . Otherwise, task execution proceeds to task  507 . 
         [0044]    At task  505 , terminal  301  continues to receive one or more inputs for placing a call to the home PBX. Terminal  301  continues to analyze the additional received inputs and to predict what the user is trying to dial. For example, the additional inputs might be considered for the purpose of improving the accuracy of the prediction. As another example, the additional inputs might be checked in the event that terminal  301  moves into a new network while its user is entering calling data, thereby possibly dictating a different PBX to call. If the continued analysis results in a new PBX to be called that is other than the one called at task  503 , then task execution proceeds to task  506 . Otherwise, task execution proceeds back to task  504  to determine if additional inputs are to be received. 
         [0045]    At task  506 , terminal  301  spawns a process to initiate communication with a private branch exchange that is not necessarily the home PBX or the PBX called at task  503 . The spawned process is described below and with respect to  FIG. 6 . In some embodiments, terminal  301  also terminates any previous call that was placed or in the process of being placed, either at task  503  or at a previous iteration of task  506 . Meanwhile, task execution continues back to task  504 . 
         [0046]    At task  507 , terminal  301  forwards the one or more additional inputs received to the private branch exchange that the prediction eventually converges upon, as the result of the final process spawned, as discussed with respect to  FIG. 6 . In some embodiments, the PBX that is receiving the inputs from terminal  301  stores and then forwards, to the home PBX, some or all of the inputs received. The forwarding of the inputs to the home PBX is consistent with the user of terminal  301  having made the call in the first place for the purpose of communicating information to the home PBX. 
         [0047]    After task  507 , the method of  FIG. 5  terminates. 
         [0048]      FIG. 6  depicts a flowchart of the salient tasks of affiliated telecommunications terminal  301  that comprise initiating communication with a private branch exchange, in accordance with the illustrative embodiment of the present invention. It will be clear to those skilled in the art which tasks depicted in  FIG. 6  can be performed simultaneously or in a different order than that depicted. 
         [0049]    At task  601 , wireless telecommunications terminal  301  determines if it is advantageous to direct the call to a different private branch exchange, and if so, selects which private branch exchange to direct the call to (in the illustrative embodiment, the only choice is  304 - 2 ). As discussed above, the determination of whether it is advantageous to direct a call to a different PBX could be based on a number of factors such as security, toll charges, PBX availability, etc.; similarly, the selection of a particular private branch exchange for the re-directed call could be based on factors such as the day and time of the call, the network that wireless terminal  301  is currently connected to, etc. 
         [0050]    At task  602 , wireless telecommunications terminal  301  places a call to either the home private branch exchange or the private branch exchange selected at task  601 , depending on the outcome of task  601 . 
         [0051]    At task  603 , wireless telecommunications terminal  301  is authenticated, in well-known fashion. In accordance with the illustrative embodiment, wireless terminal  301  is authenticated by authentication server  320  via a challenge/response mechanism, in well-known fashion. As will be appreciated by those skilled in the art, in some embodiments of the present invention the challenge/response mechanism might require input from the user of terminal  301  (e.g., a username and password, etc.), while in some other embodiments, wireless terminal  301  might be authenticated without any user input—and perhaps, without the user&#39;s awareness. As described above, it will be clear to those skilled in the art how to make use alternative embodiments of the present invention in which task  603  is performed by one or more entities other than authentication server  320 . 
         [0052]    If the authentication of task  603  is successful, execution continues at task  604 , otherwise execution of the method of  FIG. 6  terminates. 
         [0053]    At task  604 , wireless telecommunications terminal  301  receives a signal from called private branch exchange  304 - p  in accordance with the appropriate profile (i.e., the profile for on-premises terminal  103 - 1 - y  with which wireless terminal  301  is affiliated.) 
         [0054]    After task  604 , the method of  FIG. 6  terminates. 
         [0055]      FIG. 7  depicts a flowchart of the salient tasks of private branch exchange  304 - p , where p is an integer from 1 to P, inclusive, and P is the number of private branch exchanges in the organization (two in the illustrative embodiment). It will be clear to those skilled in the art which tasks depicted in  FIG. 7  can be performed simultaneously or in a different order than that depicted. 
         [0056]    At task  701 , private branch exchange  304 - p  checks whether the appropriate user profile (i.e., the profile for on-premises terminal  103 - 1 - y  with which wireless terminal  301  is affiliated) is stored at private branch exchange  304 - p . In accordance with the illustrative embodiment, this profile is stored only at its home PBX and in profile database  330 . However, as discussed above, in some other embodiments of the present invention a profile might be stored at one or more other private branch exchanges  304 —perhaps cached at a particular PBX during a previous call from wireless terminal  301 , or perhaps replicated for fault-tolerance or performance issues. 
         [0057]    If the profile is stored at private branch exchange  304 - p , execution continues at task  703 , otherwise execution proceeds to task  702 . 
         [0058]    At task  702 , private branch exchange  304 - p  obtains the profile from the appropriate node (e.g., profile database  330 , the home private branch exchange, etc.) in well-known fashion. 
         [0059]    At task  703 , private branch exchange  304 - p  transmits a response to wireless telecommunications terminal  301  in accordance with the profile, in well-known fashion. 
         [0060]    After task  703 , the method of  FIG. 7  terminates. 
         [0061]    It is to be understood that the disclosure teaches just one example of the illustrative embodiment and that many variations of the invention can easily be devised by those skilled in the art after reading this disclosure and that the scope of the present invention is to be determined by the following claims.