Abstract:
An apparatus and methods are disclosed that enable a caller to specify a condition of availability for a return call when the caller is unable to reach the called user. A condition might indicate a time interval in which the caller is willing to accept a return call, a location, or some other constraints. In the illustrative embodiments, when a caller places a call and is unable to reach the called user, the caller is prompted via an interactive voice response (IVR) system for one or more conditions of availability for a return call. As soon as the called user&#39;s terminal becomes available, a software application checks whether the condition of availability is satisfied, and if so, establishes a call between the caller&#39;s terminal and the called user&#39;s terminal.

Description:
FIELD OF THE INVENTION 
     The present invention relates to telecommunications in general, and, more particularly, to a technique for establishing calls between telecommunications terminals based on presence information. 
     BACKGROUND OF THE INVENTION 
     When a first telecommunications terminal user U 1  calls a second user U 2 &#39;s terminal and is unable to reach user U 2  (e.g., user U 2  is currently engaged in another call, user U 2 &#39;s terminal is powered off, etc.), typically user U 1  can leave a message for user U 2  (e.g., voice mail, etc.). After the message has been left, typically user U 2 &#39;s terminal outputs a signal that indicates that there is a message waiting (e.g., a red light, a character string such as “1 New Message”, etc.). Alternatively, in some telecommunications systems user U 1  can invoke an automatic callback feature that automatically establishes a call between user U 1 &#39;s terminal and user U 2 &#39;s terminal as soon as user U 2 &#39;s terminal becomes available. 
     SUMMARY OF THE INVENTION 
     The present invention enables a caller, when he or she is unable to reach a called user, to specify a condition of availability for a return call. For example, the caller might indicate that he or she is willing to accept a return call between 7:00 AM and 10:00 PM, or only when he or she is not at home, or when some combination of constraints is satisfied (e.g., both time and location, etc.). When the called user&#39;s telecommunications terminal subsequently becomes available (e.g., the terminal is powered on, etc.), the terminal is called with a message M that (i) indicates that the caller has tried to reach him, and (ii) offers to automatically call the caller. 
     In the illustrative embodiments of the present invention, when a caller places a call and is unable to reach the called user, the caller is prompted via an interactive voice response (IVR) system for one or more conditions of availability for a return call. In the first illustrative embodiment, as soon as the called user&#39;s terminal becomes available, a software application checks whether the condition of availability is presently satisfied. If so, the called user&#39;s terminal is called with message M, as described above; otherwise, no such call is established. The second illustrative embodiment is similar to the first illustrative embodiment except that when the condition of availability is not satisfied, the software application determines whether the condition of availability might possibly be satisfied in the future, and if so, continually checks for the condition of availability to become satisfied. For example, at time 4:30 PM the condition of availability “today between 5:00 PM and 6:00 PM when I am in my office” might be satisfied in the future, but at time 6:30 PM this condition will never be satisfied. 
     The illustrative embodiments of the present invention provide the indicated functionality for a variety of different terminal types (e.g., cell phones, wireline telephones, IEEE [Institute of Electrical and Electronics Engineers] 802.11 wireless local-area network telephones, etc.), and across telecommunications terminals when a user has two or more terminals. For example, suppose a caller calls a user&#39;s cell phone while the user is on an airplane and, unable to reach the user, leaves an condition of availability for a return call. Suppose further that when the called user gets off the airplane, she turns on her IEEE 802.11 phone (some airports provide IEEE 802.11 wireless service), but not her cell phone (perhaps the battery in her cell phone is dead). In the illustrative embodiments, a call will be established with the IEEE 802.11 phone (provided the condition of availability is satisfied) even though the user&#39;s cell phone was called. 
     The illustrative embodiment comprises: receiving a first signal that comprises a condition of availability of a first user for a call with a second user; receiving a second signal that indicates that the second user is able to engage in the call via a telecommunications terminal T; and transmitting a third signal to the telecommunications terminal T if, and only if, the second signal is received when the condition of availability is satisfied, wherein the third signal indicates that the first user called. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  depicts a portion of a telecommunications system in accordance with the illustrative embodiments of the present invention. 
         FIG. 2  depicts a block diagram of the salient components of communications server  104 , as shown in  FIG. 1 , in accordance with the illustrative embodiments of the present invention. 
         FIG. 3  depicts a flowchart of the operation of communications server  104  when an unsuccessful call attempt occurs, in accordance with the first illustrative embodiment of the present invention. 
         FIG. 4  depicts a flowchart of the operation of communications server  104  when an unsuccessful call attempt occurs, in accordance with the second illustrative embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     The term appearing below is given the following definitions for use in this Description and the appended Claims. 
     For the purposes of the disclosure and claims, the term “call” is defined as an interactive communication involving one or more telecommunications terminal users. A call might be a traditional voice telephone call, an instant messaging (IM) session, a video conference, etc. 
       FIG. 1  depicts a portion of telecommunications system  100  in accordance with the illustrative embodiments of the present invention. Telecommunications system  100  comprises telecommunications terminal  101 , telecommunications terminal  102 , private branch exchange (PBX)  103 , communications server  104 , interactive voice response (IVR) system  105 , telecommunications terminals  106 - 1  through  106 -N, where N is a positive integer, and telecommunications network  107 , interconnected as shown. 
     Private branch exchange (PBX)  103  receives incoming calls from telecommunications network  107  and directs the calls to interactive voice response (IVR) system  105  or to one of telecommunications terminals  106 , in well-known fashion. Private branch exchange  103  also receives outbound signals from telecommunications terminals  106  and interactive voice response system  105  and transmits the signals on to telecommunications network  107  for delivery to the appropriate destination terminal, in well-known fashion. 
     Communications server  104  is a data-processing system that is capable of hosting one or more software applications, of receiving data from and transmitting data to private branch exchange  103 , and of receiving data from and transmitting data to interactive voice response (IVR) system  105 , in well-known fashion. 
     Interactive voice response system  105  presents one or more menus to a caller and receives input from the caller (e.g., speech signals, keypad input, etc.) via private branch exchange  103 . Interactive voice response system  105  can also submit commands and forward caller input to software applications that resides on communications server  104 , and can receive output from such software applications. 
     Telecommunications terminals  101  and  102  are two different kinds of wireless terminals (e.g., a cell phone and a wireless-capable personal digital assistant, etc.) carried by a user, as shown in  FIG. 1 . 
     In the illustrative embodiments of the present invention, private branch exchange (PBX)  103 , communications server  104 , interactive voice response (IVR) system  105 , and telecommunications terminals  106 - 1  through  106 -N belong to an enterprise communications system, while telecommunications terminals  101  and  102  do not belong to the enterprise communications system. It will be clear to those skilled in the art, however, that in some other embodiments of the present invention, a different subset of elements of telecommunications system  100 , or none of the elements of telecommunications system  100 , might belong to an enterprise communications system. 
       FIG. 2  depicts a block diagram of the salient components of communications server  104 , in accordance with the illustrative embodiments of the present invention. Communications server  104  comprises network interface  201 , processor  202 , memory  203 , and clock  204 , interconnected as shown. 
     Network interface  201  comprises a receiving part and a transmitting part. The receiving part receives signals from private branch exchange  103  and IVR system  105 , and forwards the information encoded in the signals to processor  202 , in well-known fashion. The transmitting part receives information from processor  202 , and outputs signals that encode this information to private branch exchange  103  and IVR system  105 , in well-known fashion. It will be clear to those skilled in the art how to make and use network interface  201 . 
     Processor  202  is a general-purpose processor that is capable of: receiving information from and transmitting information to network interface  201 ; reading data from and writing data into memory  203 ; receiving signals from clock  204 ; and executing the tasks described below and with respect to  FIGS. 3 and 4 . In some alternative embodiments of the present invention, processor  202  might be a special-purpose processor. In either case, it will be clear to those skilled in the art, after reading this disclosure, how to make and use processor  202 . 
     Memory  203  stores data and executable instructions, as is well-known in the art, and might be any combination of random-access memory (RAM), flash memory, disk drive memory, etc. It will be clear to those skilled in the art, after reading this disclosure, how to make and use memory  203 . 
     Clock  204  transmits the current time, date, and day of the week to processor  202 , in well-known fashion. 
       FIG. 3  depicts a flowchart of the operation of communications server  104  when an unsuccessful call attempt occurs, in accordance with the first illustrative embodiment of the present invention. 
     At task  310 , communications server  104  receives, via private branch exchange  103 , an indication of an unsuccessful call attempt from a user U 1  to a user U 2 , in well-known fashion. In the illustrative embodiments of the present invention, if a call originates from outside the enterprise, it is placed via private branch exchange  103  (e.g., by first dialing a phone number of PBX  103  and subsequently entering the phone number to call via IVR system  105 , etc.) so that private branch exchange  103 , and subsequently communications server  104 , receives an indication of whether the call was successful. As described below, some other embodiments of the present invention do not employ private branch exchange  103 , in which case an alternative mechanism notifies communications server  104  of unsuccessful calls (e.g., a signal might be sent from a Public Switched Telephone Network (PSTN) switch to communications server  104 , etc.) 
     At task  320 , communications server  104  prompts user U 1 , via interactive voice response (IVR) system  105 , for a condition of availability for a return call from user U 2 , in well-known fashion. 
     At task  330 , communications server  104  receives a condition of availability from user U 1 , via interactive voice response (IVR) system  105 , in well-known fashion. The condition of availability might be defined in terms of any combination of the following: a time constraint, a location constraint, a particular telecommunications terminal of user U 1  that must receive the return call, and so forth. A time constraint might be a time interval, as described above, or one or more particular days of the week (e.g., OK to call me on Mondays and Thursdays, etc.), or one or more particular days of the month (e.g., call me anytime except the last day of each month, etc.), or one or more particular days of the year (e.g., call me anytime except December 25 th  and January 1 st , etc.), or some combination thereof. 
     At task  340 , communications server  104  receives an indication that user U 2  is able to engage in a call with user U 1  via a telecommunications terminal T. As will be appreciated by those skilled in the art, this might occur via a power-on registration signal reported by telecommunications terminal T, a signal that indicates that telecommunications terminal T has just entered an area of cellular coverage, and so forth. 
     At task  350 , communications server  104  checks whether the condition of availability received at task  330  is presently satisfied. As will be appreciated by those skilled in the art, checking whether a location constraint is satisfied requires a mechanism in which server  104  receives continual updates of user U 1 &#39;s location (e.g., from a Global Positioning System [GPS]-capable terminal carried by user U 1 , etc.). As will further be appreciated by those skilled in the art, if the condition of availability received at task  330  specifies a particular terminal of user U 1 , communications server  104  checks whether that terminal is available. If the condition of availability is satisfied, execution continues at task  360 ; otherwise the method of  FIG. 3  terminates. 
     At task  360 , communications server  104  transmits, via interactive voice response (IVR) system  105  and private branch exchange  103 , a message to telecommunications terminal T that: (i) indicates that user U 1  called, and (ii) offers to automatically call user U 1 . 
     At task  370 , communications server  104  receives, via interactive voice response (IVR) system  105  and private branch exchange  103 , an indication from user U 2  whether he or she wants the call automatically established, in well-known fashion. 
     At task  380 , communications server  104  performs a branch statement based on user U 2 &#39;s response at task  370 . If the response was affirmative, execution continues at task  390 , otherwise the method of  FIG. 3  terminates. 
     At task  390 , communications server  104  establishes a call between telecommunications terminal T and a terminal of user U 1  that is accessible. If the condition of availability received at task  330  specified a particular terminal of user U 1 , then that terminal is the terminal that is called. Otherwise, as will be appreciated by those skilled in the art, communications server  104  can select one of user U 1 &#39;s available terminals, if there is more than one, based on any of a variety of methods. For example, the terminal with which user U 1  placed the unsuccessful call attempt might always be selected if it is available, or there might be a priority ordering of terminals based on terminal type. After task  390  is completed, the method of  FIG. 3  terminates. 
     As will be appreciated by those skilled in the art, in some other embodiments of the present invention tasks  460  through  490  are bypassed (i.e., a call between user U 1 &#39;s terminal and user U 2 &#39;s terminal is immediately established, without first offering to do so.) In some other embodiments of the present invention, tasks  470  and  480  are bypassed, and at task  460  a message M′ is displayed as the call is established, where message M′ indicates some combination of: (i) the identity of user U 1 , (ii) the time of the unsuccessful call attempt, and (iii) the condition of availability. In still some other embodiments of the present invention, message M′ is displayed at task  460  and tasks  470  through  490  are bypassed (i.e., it is up to user U 2  to proactively call user U 1 .) 
       FIG. 4  depicts a flowchart of the operation of communications server  104  when an unsuccessful call attempt occurs, in accordance with the second illustrative embodiment of the present invention. As described above, the second illustrative embodiment is the same as the first illustrative embodiment except that when a condition of availability is not satisfied, communications server  104  determines whether the condition of availability might possibly be satisfied in the future, and if so, continually checks for the condition of availability to become satisfied. 
     Tasks  410  through  440  are identical to tasks  310  through  340  of  FIG. 3 . 
     At task  450 , communications server  104  checks whether the condition of availability received at task  430  is presently satisfied. If so, execution continues at task  460 , otherwise execution proceeds to task  455 . 
     At task  455 , communications server  104  determines whether the condition of availability might possibly be satisfied in the future. This determination can be performed by checking the time constraints of the condition of availability. If there are no time constraints in the condition of availability, then communications server  104  will conclude that the condition might possibly be satisfied in the future. 
     If communications server  104  determines that the condition of availability cannot possibly be satisfied in the future, the method of  FIG. 4  terminates, otherwise execution continues at task  456 . 
     At task  456 , communications server  104  checks whether telecommunications terminal T is still currently available. If so, execution continues back at task  450 , otherwise execution loops back for another iteration of task  456 . 
     Tasks  460  through  490  are identical to tasks  360  through  390  of  FIG. 3 . 
     As will be appreciated by those skilled in the art, although the illustrative embodiments of the present invention employ both private branch exchange (PBX)  103  and communications server  104 , some embodiments employ only private branch exchange  103  with software capable of performing the methods of  FIGS. 3 and 4 . Similarly, some other embodiments of the present invention employ only communications server  104  (for example, embodiments that are more suitable for a telecommunications service provider than an enterprise). 
     It is to be understood that the above-described embodiments are merely illustrative of the present invention and that many variations of the above-described embodiments can be devised by those skilled in the art without departing from the scope of the invention. For example, in this Disclosure, numerous specific details are provided in order to provide a thorough description and understanding of the illustrative embodiments of the present invention. Those skilled in the art will recognize, however, that the invention can be practiced without one or more of those details, or with other methods, materials, components, etc. 
     Furthermore, in some instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the illustrative embodiments. It is understood that the various embodiments shown in the Figures are illustrative, and are not necessarily drawn to scale. Reference throughout the disclosure to “one embodiment” or “an embodiment” or “some embodiments” means that a particular feature, structure, material, or characteristic described in connection with the embodiment(s) is included in at least one embodiment of the present invention, but not necessarily all embodiments. Consequently, the appearances of the phrase “in one embodiment,” “in an embodiment,” or “in some embodiments” in various places throughout the Disclosure are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, materials, or characteristics can be combined in any suitable manner in one or more embodiments. It is therefore intended that such variations be included within the scope of the following claims and their equivalents.