Automatic call back system and method of operation
TECHNICAL FIELD OF THE INVENTION 
     This invention relates to a system and method of answering incoming communication calls and more particularly to such a system and method for establishing an automatic callback for certain of the incoming calls. 
     BACKGROUND OF THE INVENTION 
     A common telephone experience is dialing a number, only to be told to wait while the operators are handling other calls. This message is usually a prerecorded announcement informing the hapless caller that &#34;all operators are busy. Please remain on the line and your call will be answered by the first available attendant.&#34; 
     Wait or call back? A dilemma without answer. How long will the wait be? How important is the information (or the order for goods or services) to the caller? To add injury to the situation, often the called party takes this opportunity to play commercials to the captive listener! To add further insult, often the call is long distance and the caller is paying for the commercial! 
     From the called party&#39;s point of view there is lost business because some percentage of callers hang up and do not call back. In many situations, the incoming call is being paid for by the called party and this &#34;holding&#34; time is costly to the called party especially when many calls are placed on hold routinely. In either event, a great deal of inconvenience and frustration is involved for those who do call back, especially because there is no guarantee that the second call can be completed either. This, then, is a no-win situation. 
     Thus, a need exists in the art for a system which eliminates the need for callers to decide whether to hold or hang up and which converts a no-win situation into one in which both parties can be satisfied. 
     A further need exists in the art for such a solution which does not cost either party time or effort or significant installation costs. It must also maximize the effective use of time by both the calling and the called parties, while reducing the communication cost to at least one of the parties. 
     In some situations, for example immediately after a commercial has been aired on TV, a business is inundated with a very large volume of incoming calls. In this situation, all of the available operators, or other communication resources, become swamped. Usually, the incoming trunks to the business cannot handle the temporary calling volume and many callers get busy tone. This, again, is frustrating to the caller and is potential lost business to the called party. 
     Thus, a need exists in the art for a system which reduces to a minimum the trunk holding time during high volume periods, while still processing the calls in an orderly and efficient manner. 
     In still another context, many communications today are effected between computers, or between other electronic equipment, such as facsimile machines. These communications do not always require human intervention and thus often can be accomplished at off-hour times to take advantage of reduced traffic and reduced costs. This situation can also occur across wide time zones where data transfer which is convenient for one party is not convenient for the other. 
     Thus, a need also exists in the art for a system which allows a calling party, or a called party, to schedule the communication to take place at some time in the future which is mutually agreed upon. Such a system must be capable of operating without human intervention. 
     In a still further context, many callers call into a facility, get put on hold, and then after some period of time (for which someone is paying) reach an attendant (or other resource, only to find out that the transaction they desired, or the information they wanted was not available at the called facility. The calling party is then told to call some other number and the process of waiting on hold begins again. 
     Thus a need exists in the art for a system which allows a called facility to identify callers, establish a time of call back and then handle that call in an efficient manner for all parties, all without requiring the calling party to requeue at another called facility. 
     SUMMARY OF THE INVENTION 
     These objectives, as well as others, have been achieved by a system and method of operation which provides an electronic operator to process calls which cannot (or should not) be serviced immediately by either a live attendant or by other call servicing resources, such as computers, data bases, modems, facsimile machines, etc. In addition, the necessary resource need not be the call completion resource, but could be an intermediate call progress resource, such as a voice recognition module, a rotary dial translator or a DTMF decoder. The robot operator determines the call back identity of the caller and also establishes a time, or a range of time, when a resource will be available. This time for the callback is communicated to the caller so that the caller can go about his/her business and not be tied to the telephone listening to unwanted music or messages and paying for the same. 
     The robot can automatically ascertain the call back number, or can ascertain by interrogation of the caller the number at which the calling party desires to be called back. 
     A still further enhancement allows the robot to ascertain exactly the time the caller wishes to be called back in the event the time assigned by the robot is inconvenient. This then allows both the caller and the called party to schedule the time for the call back. The call back time can be set to be a few minutes, an hour, or even days later. The call back number can be the caller&#39;s current number or a different number, depending upon the calling party&#39;s schedule. 
     Both parties benefit under this scenario: the caller because he/she need not remain on the line waiting and can even go to another location and be available at a particular time; the called party because when the call is returned, it will be greeted by a receptive customer. The called party benefits because it can schedule its work force to accommodate the preplanned call back. 
     Further refinements allow the called party to ascertain the type of information the customer wishes and thus further tailor the call back response. 
     The called party can determine the call back number from some systems using automatic number identification (ANI) or the calling number can be identified by recording the digits entered by the calling party in response to prompts by the answering robot. Prompts can also be used to solicit other information from the caller which will be useful in returning the call. 
     The call back time can be predicted automatically on a statistical basis if the calling party does not establish a particular time for the call back. In addition, the answering robot, based on statistics or on other information, can tell the caller that the call back will be at a precise time or within a range of times. The system then sets the call back for the established time or on an availability basis within the established defined call back time limits. 
     For anticipated high volume call-in times, trunk time can be minimized by having the robot answer all calls with a greeting such as, &#34;Hello, many calls are coming in to us now. We have identified your call back number as XXX XXXXXXX, we will call you at that number in YY minutes. If the call back identity is correct and if the time is acceptable please press the number 1 on your dial and then hang up the telephone. Please press 2 if a different call back number should be used or press number 3 if a different time is desired.&#34; 
     Assume a situation in which a calling facility, for example a bank computer, wishes to transfer data with a called facility, such as another bank&#39;s computer, and also assume for a moment that the called bank&#39;s computer is busy, or worse, experiencing down time. Also, let us assume that this transaction can occur any time before the opening of business the next day. Under this scenario then, the calling computer places the calling connection to the called bank. A robot operator answers on a temporary basis and first ascertains the call back identity of the calling computer. The robot then informs the calling computer the time of the call back. This can be predictively determined or can be preset, such as in the case of maintenance downtime. Alternatively, the calling computer can be instructed to call back at the given time. 
     In situations where a call cannot be handled by the resources available at the called facility, the call back identity can be obtained, with or without a specified call back time, and the information forwarded to another remote facility. In this manner the calling party will be called back, perhaps at a given time, by resources located at the remote facility. 
     Thus, it is a further technical advantage of this invention that the robot operator can identify call back identities and call back times as well as other pertinent information from a caller and then forward the information to a remote facility for further processing by that other facility. In this manner, all parties save time and effort and the customer is served in an efficient manner. 
     It is a technical advantage of this invention to minimize the trunk holding time for peak incoming calls by robotically ascertaining a call back number and call back time for incoming calling connections. When the desired resource is available, a call back will be made to the identified calling party. 
     It is a still further advantage of this invention to provide such a system in which the parties can schedule a call back time by the exchange of information. The information from the called party, as well as from certain calling parties, can be robotically generated by predictive or other arrangements. 
     Accordingly, it is a technical advantage of the invention that a called party determine from a calling party, either automatically or manually, a call back number and then place a call back to the calling party at a predetermined time. 
     It is a further technical advantage of the present invention that the system operates without any modification to the calling party&#39;s telephone and without cost (other than normal toll charges) to the calling party. 
     It is a technical advantage of this invention to minimize the trunk holding time for peak incoming calls by robotically ascertaining a call back number and call back time for incoming calling connections. When the desired resource is available, a call back will be made to the identified calling party. 
     It is a still further advantage of this invention to provide such a system in which the parties can schedule a call back time by the exchange of information. The information from the called party, as well as from certain calling parties, can be robotically generated by predictive or other arrangements. 
     It is a still further advantage of this invention to provide an automatic caller identity and to forward that identity to another facility for call back by that other facility. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The foregoing objects, features and technical advantages, as well as others, of the invention will be more apparent from the following description of the drawing in which: 
     FIG. 1 illustrates a block diagram of the present invention; 
     FIG. 2 illustrates a logic flow chart of the call-reception procedure of the present invention; 
     FIG. 3 illustrates a logic flow chart of the call back procedure of the present invention; and 
     FIG. 4 illustrates a logic flow chart of the dequeue subroutine of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The preferred embodiment of the present invention is best understood by referring to FIGS. 1-5 of the drawings, like numerals being used for like and corresponding parts of the various drawings. 
     FIG. 1 illustrates a block diagram of the present invention, generally indicated as 10. Outside telephone lines are coupled through a telephone control switch 12 to a robot controller 14, which is controlled, in part, by CPU 13 and memory 17. Robot controller 14 can be a standalone system or can be part of telephone control switch 12. Switch 12 can include an ACD/PBX with attendants 19, if desired. Other call completion resources can be connected to the outside lines. These, for example, are shown in box 18 to be a host computer, a data base, or other resources, such as FAX machines, modems, etc. Any number and type of resources can be served by this system. 
     Circuitry for automatic number identification (ANI) 16 is coupled to, or combined within, robot controller 14. The ANI function could be performed, for example, from information sent over the incoming lines or trunks from the calling station, or from central office generated information, or from ISDN information. 
     In operation, incoming telephone calls from outside telephone lines are allocated by ACD/PBX 18 or by the telephone switch to available resources such as attendants 19 or to computer 18. In the event that the resources are unavailable, robot controller 14 directs ANI 16 to determine, if possible, the telephone number of the incoming call. Robot controller 14 then advises the caller that all required resources are busy. After making some predictive calculations, robot controller 14 advises the caller as to the time (or range of times) when he or she can expect the call to be returned. The caller could also be requested to input (DTMF, rotary, or voice) a call back time and a call back number. The robot controller then either ends the calling connection or queries the caller to determine if the caller wishes to hold or be called back. If the caller wishes to be called back, robot controller 14 attains the caller&#39;s name, verifies (or obtains, if ANI or other automatic systems are not available) his or her telephone number, or call back identity. 
     If a callback is acceptable to the caller, robot controller 14 terminates the call and places the information obtained from the caller into callback queue 11. At the established time, assuming that the proper resource is available, robot controller 14, in conjunction with information from queue 11 and time controller 15, reestablishes the call, verifies that the answering party is the person to be called, and then transfers the call through ACD/PBX 18 or other internal switching to the available resource. 
     Systems, such as ACD/PBX 18 which answer incoming telephone calls and allocate the calls to available attendants, are well known in the art and will not be detailed here. Such a system is disclosed in U.S. Pat. No. 3,571,518 issued to Chipman et al., which is incorporated herein by reference. 
     As discussed above, the time of call back can be predictively generated based on the known or calculated time of availability, such as a scheduled return from a maintenance down time of certain resources, or such as the arrival time of human attendants, or such as the anticipated end of a peak call-in period. The call back time could also be established statistically. Once this determination is made, the system can be arranged to communicate this expected call back time to the calling party and then hang-up. Alternatively, the call back time can be communicated and then the calling party queried as to whether or not this is acceptable. The robot operator can use a human understandable voice, or if desired, digital information could be provided to the calling line to handle situations where the caller is a machine, such as a computer. Responses from the calling line can require many different resources within the robot operator to process the information, which can be a human voice, typed key pad responses to queries, or other types of information coming from the calling line or outside the calling line, for example, by integrated services digital network (ISDN) signals. One such arrangement for handling such resources is shown in copending patent application of Apparatus and Method for Automatically Reconfiguring Telephone Network Resources, filed concurrently herewith assigned to a common assignee, and which is hereby incorporated by reference herein. 
     Digressing momentarily, it should be understood that the ascertainment of the calling party identity and the ascertainment of the call back time is made without human intervention at the called facility on a call by call basis. Many different types of resources can be used to complete calling connections and the lines can be digital or analog or a combination of both. 
     FIG. 2 illustrates a logic flow chart of the operation of robot controller 14 as it manages incoming calls from outside telephone lines. After initializing 200 the system, robot controller 14 waits for an incoming call 202. Once a call is received, the system obtains an automatic number identification 204 from the incoming call, if possible. Connection is then made and controller 14 prompts the caller for the required resource 206. If the resource is available 208, controller 14 connects the call 210 with the resource and continues waiting for incoming calls 202. 
     If the required resource is not available, controller 14 asks the caller whether the caller will accept a callback 212 at a later time. If the caller will not accept a callback, the caller is asked whether he/she wishes to hold 214; if so, a delay period 216 is initiated after the expiration of which controller 14 determines whether the required resource is then available 208. If the caller will not accept a callback 212 and is not willing to hold 214, controller 14 requests the caller to call back at a later time 216. The callback time can be suggested by controller 14. The call is then disconnected 218 and controller 14 waits for further incoming calls 202. 
     If the caller is willing to accept a callback 212, controller 14 records the caller&#39;s name 220 and, if ANI was provided 222, has the caller verify the number provided 224. If ANI was not provided 222 or if the ANI number provided was incorrect 224, robot controller 14 prompts the caller for the proper callback number 226. Once the correct callback number has been verified 226 and 224, robot controller 14 asks the caller whether he/she desires a callback at the earliest possible time or at a predetermined scheduled time 228. If the caller responds that he/she wishes to be called back at the earliest possible time, controller 14 computes the estimated callback time 230, notifies the caller and asks whether the estimated callback time is acceptable 232. If the estimated callback time is not acceptable or if the caller wanted to schedule a callback time 228, controller 14 prompts the caller for the desired callback time 234 and then asks for verification 236. If the callback time is incorrect 236, controller 14 will again prompt the caller for a convenient callback 234. 
     Once the callback time is verified 236 and 232, controller 14 places the caller&#39;s name and callback number in the callback queue 300, disconnects the call 218 and waits for new incoming calls 202. 
     Again digressing momentarily, various blocks of the flow chart of FIG. 2 could be bypassed to modify the service. For example, box 208 can be made temporarily (or permanently) busy for peak-period call in, so as to minimize trunk holding time. Likewise, box 212 could be bypassed, either temporarily or permanently, depending upon the application or depending again upon trunk hold time calculations. Other boxes, such as box 228 and box 234, could be temporarily or permanently bypassed to change the service for a particular facility or for a period of time. In addition, various functions can be added to allow the system to obtain other information from the calling line, such as, for example, the name and address of the calling party or the nature of the call. This information would be stored in conjunction with the call back time so as to assist in the type of call back that will be established. Different resources could be assigned to the call back dependent on this obtained information, or the caller could be directed to call other facilities to obtain the desired information. Of course, the call back need not even come from the called facility but may, in fact be provided from a totally independant facility. In this regard, the queued information would be communicated to the remote facility via path 101 (FIG. 1). This communication can be by wire or by transmission in any manner and can occur immediately upon generation at the called facility or may occur at a later time and processed as a batch file. 
     FIG. 3 illustrates a logic flow chart of the call back procedure of controller 14. After entering the procedure 300, controller 14 proceeds to the dequeue procedure 400 and obtains a call back number and name message from the appropriate queue. The number is dialed 304 and controller 14 waits for the line to be answered 306. If, after a prescribed number of rings, the line is not answered, controller 14 terminates the call attempt and determines whether the call was the third attempted call back to that number 308. If so, the number is placed in a rejected list 310 and controller 14 returns to determine whether a resource is available 302 for other callbacks. If the call just attempted was not the nth attempted callback to the number, the number and name message are requeued 317 with a n minutes delay and controller 14 returns to start 300 other callbacks. 
     If the line is answered 406, a greeting message is played and the called party requested. Controller 14 then verifies that the correct party is on the line 314 and connects the called party with the required resource 316. Controller 14 then waits until the end of the telephone call 318 before returning to determine whether a resource is available 302 for other callbacks. Of course, when the facility has multiple resources, many such routines are in progress under control of robot controller 14. 
     FIG. 4 shows the dequeue logic for removing information from the queue and establishing calls at the proper time. Pointer 401 points to the start of the queue. Box 402 checks to determine if the next record is due to be removed based on call back time. If yes, then a check is made to see if the desired resource is available. If there is no such resource or no such number, then we end this routine by box 408. However, if the resource is available, then the resource in box 404, including the number, name and any other information obtained when the call first arrived is processed in a straightforward manner under control of box 406 working in conjunction with robot controller 14 and with telephone control switch 12. 
     The dequeue procedure of FIG. 4 could also be used to send information at the appropriate time to a remote facility or the system could be arranged to gather information and transmit as gathered or in batches. 
     Consequently, the system of the present invention has the technical advantage of providing automatic callback to callers at the earliest or scheduled times, at the caller&#39;s option. As a result, callers are not forced to make a choice between waiting on hold for an indefinite period of time or calling back later. Rather, callers are extended the courtesy of having the call returned automatically at an established time. 
     Although the present invention has been described in detail in conjunction with a ACD/PBX, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims. The ACD/PBX need not be provided and the network can complete calls to resources in any manner. In some situations call completion resources need not be available at the called facility. In such a situation, all of the call back activity would be preformed from a remote facility.