Technical Field
The invention relates generally to a telephone calling system. In particular, the invention relates to an automated telephone calling system which detects a call pickup by an answering machine.
Background of the Invention
Various methodologies have been developed to automatically determine when a machine-placed telephone call made to a telephone subscriber, such as is done by a telemarketing computer calling system, has been answered. Such determinations must be made within a very short time frame, almost instantaneously, so that a calling system can reduce productivity losses and, by connecting a waiting operator to the subscriber without any perceivable delay, increase performance quality.
The more preferable methodologies are based on techniques which detect the voice of an answering subscriber. However, many of the telephone line monitoring sub-systems of present calling systems that implement such techniques cannot detect voice in a sufficiently fast manner. An example of a monitoring sub-system which requires relatively long sampling periods of the input signal is described in U.S. Pat. No. 4,356,348. More advanced techniques, and monitoring sub-systems, have been developed recently which can detect the voice of an answering subscriber almost instantaneously and in a reliable and inexpensive manner. Such a telephone line monitoring sub-system is described in U.S. Pat. No. 4,742,537.
With the growing use of automatic answering machines by subscribers, it also has now become desirable to have a calling system which can determine when a call has been answered by a subscriber or by an answering machine. Upon a determination that a call has been answered by an answering machine, such a calling system could then undertake an alternative action, for example, not connect a waiting operator to the telephone line. If not required to complete the call, the calling system operator can then use the saved time to handle other answered calls that are received by the calling system during a telephone calling campaign.
Ironically, although many present calling systems are slow in detecting and responding to human voice, they are fast enough in detecting and responding to answering machines. For instance, such systems may take advantage of their slow voice detection and further wait to detect whether a voice continues speaking without a long break (such as would normally occur after a subscriber answers a call by saying "hello"), thus indicating a prerecorded message from an answering machine. Clearly, imitation of such a methodology by a system which provides instantaneous voice detection would eliminate the advantage such a system holds with respect to detecting and responding to subscribers. In fact, the loss of productivity of a few seconds in the handling of each call by an "instantaneous voice detection" calling system using such a methodology becomes a net loss for an entire telephone calling campaign by the calling system, even with improved detection and response to answering machines. In addition, the natural start of conversations provided by "instantaneous voice detection" calling systems would be lost. Consequently, there is a need to develop a system and methodology that will detect and respond to answering machines in an efficient, reliable and inexpensive manner while conserving the advantage of an "instantaneous voice detection" calling system.
Summary of the Invention
Briefly, the invention provides an automatic telephone calling system having means for placing the call to the subscriber's telephone station and receiving the response thereto and means for characterizing the response from the subscriber's telephone station to the placed call. The system also has means for operably connecting the calling system to the subscriber's telephone station upon a characterization of the response as a voice signal; means for determining whether the response characterized as a voice signal is delivered by an answering machine; and means for terminating the operable connection upon a determination by the means for determining that the response is delivered by an answering machine.
The means for characterizing can include means for detecting the occurrence of each waveform composing the response signal; means for measuring the wavelength of each waveform detected; means for counting the number of waveforms within each of a plurality of predetermined wavelength groupings; and means for characterizing the response based on the counts of waveforms within the plurality of predetermined wavelength groupings and the distribution thereof. The means for characterizing can also include, alternatively, means for detecting a particular polarity change of the voltage of the response signal over a selected interval; means for measuring the wavelength of each waveform composing the response signal between each polarity change detected; means for counting the number of waveforms composing the response signal within each of a plurality of predetermined wavelength groupings; and means for processing the frequency-related information of the response signal from the means for detecting, the means for measuring, and the means for counting to determine the characterization of the response.
The means for operably connecting can include means for partially operably connecting the calling system to the subscriber's telephone station upon a characterization of the response as a voice signal and means for completing an operable connection of the calling system to the subscriber's telephone station upon a determination by the means for determining. The means for operably connecting can also include, alternatively, means for establishing two-way audio communication between the system and the subscriber's telephone station.
The means for determining can include means for detecting a predetermined period of silence from the end of the response from the subscriber's telephone station in order to determine whether a response characterized as a voice signal is delivered by an answering machine.
The means for terminating can include means for delivering a prerecorded message to the subscriber's telephone station, via the means for placing, before terminating the operable connection. Further, the system can also include means for overriding the operation of the means for terminating and maintaining an operable connection of the calling system to the subscriber's telephone station.
Brief Description of the Drawings
For a better understanding of the invention, reference is made to the following description of an exemplary embodiment thereof, and to the accompanying drawings, wherein:
FIG. 1 is a block diagram of an automated telephone calling system constructed in accordance with the present invention;
FIG. 2a is a flow chart of a software program used by the calling system of FIG. 1 formatted without the option of answering machine detection;
FIG. 2b is a flow chart of a software program used by the calling system of FIG. 1 formatted with the option of answering machine detection; and
FIG. 3 is an activity versus time chart for certain hardware components of the calling system of FIG. 1.
Detailed Description
FIG. 1 is a block diagram of an automated telephone calling system 10, such as a telemarketing computer calling system, constructed in accordance with the present invention. The calling system 10 is connected by telephone lines 11a, 11b, 11c to a telephone switching network 12, as usually provided by the local telephone company and associated long distance telephone companies. The telephone switching network 12, in turn, is connected by respective telephone lines 13a, 13b, 13c to a plurality of subscriber telephone sets 14a, 14b, 14c. As shown, an automatic answering machine 15 is connected in-line with one of the sets 14a (although other types of connections therebetween are possible) so as to form a bridge between the set 14a and the respective telephone line 13a. The answering machine 15 may be a device of any type, model or brand and may include "voice mail" services and the like (i.e., telephone answering services provided via software, usually by various telephone system vendors, that function as an answering machine equivalent without any device being physically present at a subscriber location). Subscriber's equipment, such as subscriber set 14 and the answering machine 15, is also referred to as subscriber's telephone station.
The calling system 10 comprises a call processor 16 which switches each of a plurality of trunks 16a, 16b, 16c to connect to a respective telephone line 11a, 11b, 11c between the calling system 10 and the telephone network 12 in order to place outgoing calls to the subscriber sets 14a, 14b, 14c and to receive responses or incoming calls from the subscriber sets 14a, 14b, 14c. The call processor 16 thus functions as the dialer and traffic controller for the system 10. A plurality of message announcers 17 are operably connected to, and which may form part of, the call processor 16. As detailed below, the message announcers 17 are actuated by the operation of the call processor 16 to deliver prerecorded messages that are to be received and recorded by an answering machine 15 connected to a subscriber set 14a. The calling system 10 also comprises a trunk processor 18 which is operably connected to, and which may form part of, the call processor 16 and which monitors the condition of each trunk 16a, 16b, 16c connected to a respective telephone line 11a, 11b, 11c. The calling system 10 further comprises a call manager 19 which is connected to the call processor 16 and which oversees the operation of a plurality of operator stations 20, 22, 24. Each operator station 20, 22, 24 comprises a voice terminal 20a, 22a, 24a, i.e., a telephone set, which is connected via a respective voice path to the call processor 16 and a data terminal 20b, 22b, 24b (having an appropriate input/output device, such as a video display) which is connected via a respective data path to the call manager 19. Each operator station 20, 22, 24 is a communication device between a human operator (not shown) and the call manager 19, whereby the operator can send and receive information to and from the calling system 10, and, ultimately, between the human operator and a connected subscriber set 14a, 14b, 14c. One or more of the operator stations 20, 22, 24 may be a supervisory station that performs various functions for the calling system 10, such as, setting up the format of the operation of the calling system 10, implementing any changes to the format, and monitoring any of the other operator stations 20, 22, 24. The calling system 10 relies on either a central logic element, individual logic elements within each system component, or a combination of the two to control the overall operation of the calling system 10 and the exchange of information (e.g., messages, instructions, etc.) among the various components. FIGS. 2a and 2b show flowcharts for a software program that is used by the logic elements of the calling system 10.
The calling system 10 can utilize either analog or digital transmission technology, or a combination of both. Further, the system 10 can easily accommodate the appropriate interfaces and network terminations (not shown) required to link into an integrated-services digital network (ISDN) or the like. In such an ISDN environment, the calling system 10 components, or their ISDN equivalents, will act in similar fashion as described herein. Thus, for example, instead of switching the plurality of trunks 16a, 16b, 16c (and associated telephone lines 11a, 11b, 11c), the call processor 16 may switch the equivalent ISDN elements, i.e., the plurality of B channels and the D channel, via an ISDN interface. Notably, the performance of the calling system 10, particularly the instantaneous voice detection elements and the improved answering machine detection elements, will be enhanced in an ISDN environment since control information and voice/data information of a communication are on separate channels and may be routed directly to the appropriate system 10 components. This can result in the calling system 10 operating more quickly and more accurately and can reduce the cost of the system 10 by eliminating certain coding and switching circuitry and replacing hardware and software, for example, for detecting special information tones.
Before operation of the calling system 10, a human operator at a supervisory station will format the operation of the calling system 10 for the particular campaign of telephone calling. The format includes the establishment of the various parameters of the calling campaign, for example, the particular queue of the operator stations 20, 22, 24 in being connected to answered telephone calls. The format also includes the selection of various system 10 options, including for example, the option of detecting and responding to an answering machine 15 at a subscriber location, the option of delivering a prerecorded message to an answering machine 15, and the option of having a supervisory station monitor the individual stations 20, 22, 24 and validate a station's selection of any override options. The format, including the selected options, are then stored for subsequent implementation by the various calling system 10 components.
FIG. 2a is a flow chart of a software program used by the calling system 10 formatted without the selection of the option of detecting and responding to an answering machine 15 at a subscriber location. In operation, the call processor 16 commands the trunk processor 18 to seize one of the available trunk lines 16a and then dials the telephone number of a subscriber to place an outgoing call via the trunk line 16a and the respective telephone line 11a to which it will be connected. The telephone network 12 routes the outgoing call from the telephone line 11a to the subscriber telephone set 14a via the respective subscriber telephone line 13a. The call processor 16 commands detection circuitry of the trunk processor 18 to monitor the particular active trunk 16a for a connection to the respective subscriber telephone set 14a, i.e., a pick-up of the telephone set 14a and analysis circuitry of the trunk processor 18 to determine, via the use of voice detection software, whether the response from the telephone set 14a is voice or telephone tone. In an "instantaneous voice detection" system, as described in U.S. Pat. No. 4,742,537, (which disclosure is incorporated by reference into the present specification) this determination is typically accomplished within twenty milliseconds. Note that the response may be in analog or digital form and that the calling system 10 can process either type of response or both. Further, depending upon the application, the calling system 10 can be configured to convert one form into another before processing the response.
If it is determined that the response is voice, the analysis circuitry of the trunk processor 18 sends a "voice detect" signal to the call processor 16 which then connects the output of the active trunk 16a to the next available operator station 20 in the station queue and connects back the output of the particular operator station 20, i.e., completes the station side of the connection. This establishes a voice path (i.e., two-way audio communication) between the voice terminal 20a of the operator station 20 and the subscriber set 14a. The call processor 16 also notifies the call manager 19 of the completed connection. In turn, the call manager 19 notifies the operator, by flashing a message onto the display of the data terminal 20b of the operator station 20, that an outgoing call has been answered and, since the answering machine detection option was not selected during the formatting of the system 10, that the answering machine option was not selected. Normal operation continues as a particular video display may then be generated for operator use and the operator may, for example, then talk to a subscriber if actually present on the telephone line 11a, verbally leave a message on the answering machine 15, or take information regarding the dialed telephone number from a telephone company intercept message. Upon completion of the operation, the operator sends a command, via the data terminal 20bto the call manager 19 to send a hang-up signal, an "H" signal, to the call processor 16 to hang up the telephone line 11a by terminating the connection between the active trunk 16a and the respective telephone line 11a and to place the operator station 20 at the end of the station queue. In addition, the operator may select the option of forcing the sending of a special hang-up signal, an "HA" signal, to the call processor 16 as detailed below.
If it is determined that the response is not voice, i.e., a telephone tone, the analysis circuitry of the trunk processor 18 signals the disposition to the call processor 16 which terminates the call by disconnecting the active trunk 16a from the telephone line 11a, enabling the call processor 16 to re-utilize the trunk line 16a for a new call. Note that the system 10 can be configured to distinguish between various telephone tones, such as special information tones, each of which will actuate a different action. If so configured, the call manager 19 will pass the formatting information regarding how to treat the different responses to the call processor 16. Thus, for example, the call manager 19 will make decisions about redialing and will pass each redial request, at the appropriate time, to the call processor 16.
FIG. 2b is a flow chart of a software program used by the calling system 10 formatted with the selection of the option of detecting and responding to an answering machine 15 at a subscriber location and FIG. 3 shows the operation of the components of the calling system 10 after the selection of the answering machine detection option. The calling system operates to place a call and to detect voice in the same manner as previously described. See 51, 52, and 53 on FIG. 3. If it is then determined that the response from the telephone set 14a is voice, the analysis circuitry of the trunk processor 18 sends a "voice detect" signal to the call processor 16 which orders the detection circuitry of the trunk processor 18 to monitor for "voice silence" on the active trunk 16a (and from the connected telephone set 14a). See line segment 54 and 70 on FIG. 3. After a predetermined period, for example, three seconds, the analysis circuitry of the trunk processor 18 makes a determination of whether the response is a live voice or the answering machine 15. See line segment 56 on FIG. 3. If silence is detected of sufficient duration, e.g., 700 milliseconds, then the call is determined to be a live voice. This duration represents the pause that most people make after answering a telephone call to allow the calling party to respond. It should be noted that although pauses are perceived after each and every spoken word, whether from a live voice or an answering machine, these pauses do not actually exist. The pauses are a result of the cognitive effect of the mental processing of voice that groups syllables into words with pauses in between. It should also be noted that, in an ISDN environment, the trunk processor 18 may make the live voice/answering machine determination by relying on the receipt of certain control information rather than the monitoring of "voice silence".
Pending the live voice/answering machine determination from the trunk processor 18, the call processor 16 connects the output of the active trunk 16a to the next available operator station 20 in the station queue without connecting back the output of the particular operator station 20 (see 55 on FIG. 3). The call processor 16 notifies the call manager 19, which then notifies the operator via a data terminal 20b message, of this partial connection to the active trunk 16a, i.e., that an outgoing call has been answered and is currently being analyzed for detection of an answering machine 15. See line segments 50 and 70 on FIG. 3. At this time, audio communication is partially established on the voice path between voice terminal 20a and the subscriber set 14a to the extent that the operator can listen to the active trunk 16a (and the connected telephone set 14a). Such partial communication is also referred to as one-way audio communication or partial operable connection. This enables the operator to exercise any option to override the system 10 operation if warranted by the circumstances (e.g., an unusual response from a subscriber). Thus, for example, at this time the operator is also given an override option to issue an "OV" command via the call manager 19 which instructs the call processor 16 to complete the station side of the connection and ignore further determinations from the trunk processor 18. The call processor 16 also informs the call manager 19 to notify the operator at the operator station 20. Once the station side of the connection is completed, the operator will then be in control of the active trunk 16a and may continue with normal operation (for example, talk to a subscriber if actually present on the telephone line 11a, verbally leave a message on the answering machine 15, or take information regarding the telephone number from a telephone company intercept message).
Upon completion of the analysis, the trunk processor 18 sends its determination to the call processor 16. See line segment 58 on FIG. 3. Regardless of the signal received from the trunk processor 18, the call processor 16 then completes the station 20 connection (i.e. establishes a complete operable connection, see 59 on FIG. 3) with the active trunk 16a and sends to the call manager 19 either a "DZ" signal which signifies that the answering machine 15 has responded or a "Dz"signal which signifies that a live voice has responded (see line segment 60 on FIG. 3). The call processor 16 takes no further action with respect to that active trunk 16a until it receives further commands from the call manager 19. Note that upon receipt of an "OV" command from the operator station 20 no action is taken by the call processor 16 in response to the determination by the trunk processor 18.
Upon receipt of a "Dz" signal, the call manager 19 notifies the operator station 20, which in turn notifies the operator, that a live voice has responded and that the operator now has control of the active trunk 16a and may continue with normal operation. See line segment 61 on FIG. 3. Upon receipt of a "DZ" signal, the call manager 19 notifies the operator station 20, which in turn notifies the operator, that an answering machine 15 has responded and that the calling system 10 is about to terminate the call (see line segment 62 on FIG. 3). The call manager 19 waits a predetermined period, for example, two seconds, before sending the special hang-up signal, an "HA" signal, to the call processor 16. See line segment 63 on FIG. 3. The "HA" signal commands the call processor 16 to hang up the telephone line 11a by terminating the connection between the active trunk 16a and the respective telephone line 11a and to re-queue the operator station 20 as if there had been no call. The waiting time of the station 20, accumulating from the start of the station's initial time in the queue, is stored by the call processor 16 so that it can be retrieved and the station 20 re-positioned to its original place in the operator station queue. During the wait by the call manager 19, the operator at the operator station 20 has the option to override the sending of any "HA" signal and to issue instead a "Do" command to the call manager 19 which then instructs the call manager 19 to treat the station 20 as if a "Dz" signal had been received instead (see line segment 67 on FIG. 3). This, for example, enables an operator to prevent the generation of an unnecessary nuisance call to a subscriber when the call is answered by a subscriber with an unusually long response.
Upon completion of the particular operation, the operator then sends a command, via the data terminal 20b, to the call manager 19 to send a hang-up signal, an "H" signal, to the call processor 16 to hang up the telephone line 11a by terminating the connection between the active trunk 16a and the respective telephone line 11a and to place the operator station 20 at the end of the station queue (see line segment 66 on FIG. 3).
Regardless whether or not the answering machine detection option is selected, the operator may be given the option to force the sending of the special hang-up signal, an "HA" signal, to the call processor 16 at any time and, thus, restore the operator station 20 to its original position in the operator station queue. See line segment 64 on FIG. 4. This option may be made available for a only limited time period, e.g., five seconds, after a call is connected to prevent eager operators from "jumping" the queue if a subscriber conversation is ended too quickly. In addition, the calling system 10 may be formatted so that the operator, with the use of the operator station 20, can manually report the incident of an answering machine response. This option would be available when the answering machine detection option was not selected and when an operator overrides the system 10 and takes control of the active trunk 16a.
The calling system 10 may also be formatted so that upon the detection of an answering machine 15 response, the system 10 can can have an option to deliver a prerecorded message to the answering machine 15 rather than hanging up the telephone line 11a. After receiving the "HA" signal, the call processor 16 does not disconnect the active trunk 16a from the respective telephone line 11a but does disconnect the active trunk 16a from the station 20 so as to free the operator station 20 (i.e., return the station 20 to the operator station queue) without hanging up the connected telephone line 11a. The call processor 16 also sends a signal to the detection circuitry of the trunk processor 18 to monitor for a significant pause (of a predetermined period), a beep tone on the active trunk 16a, or another type of signal which would indicate that the answering machine 15 was entering its record mode. Upon its determination of the answering machine record mode, the trunk processor 18 signals the call processor 16 to queue the output of the active trunk 16a to the appropriate message announcer 17 which thereupon delivers a prerecorded message. After the message is delivered, the call processor 16 then terminates the call by disconnecting the active trunk 16a from the respective telephone line 11a. The particular message announcer 17 (and associated message) to be connected is set up during the initial formatting of the system 10 or any subsequent changes thereto.
As stated previously, the formatting of the system 10 also includes the establishment of the operational queue for the operator stations 20, 22, 24. The operational queue makes each station 20, 22, 24 available, in respective turn, to be operably connected to a respective subscriber telephone set. The queue can be controlled by scheduling software that paces the dialing rate of the call processor 16 to meet the supply of available operator stations 20, 22, 24. Such scheduling software can utilize an accelerator parameter that promotes a specified average rate of call connections for a respective station and a throttle parameter that establishes a tolerable amount of unsuccessful call connections by a respective station. The former parameter can be, for example, a reference time period between calls received by a respective station (e.g., as measured from the time of a hang-up of a first call to the pick-up of the succeeding call). The latter parameter can be, for example, a count of the connected calls that do not result in an operator conversation with a subscriber, such as dropped calls (i.e., abandoned or unanswered by an operator); telephone tones that are passed through to an operator; or calls responded by an answering machine 15, in proportion to the amount of successful calls connected. Note that the throttle parameter includes an answering machine response as an unsuccessful call connection otherwise the large amount of time in handling such a response would lower the average rate of call connections for a respective station and, thus, slow the dialing rate for the station and the entire system 10.
The system 10 may also be configured to monitor and detect answering machine responses before the determination of a voice response by the trunk processor 18. For example, the detection circuitry of the trunk processor 18 may include means for monitoring the quality of the response from the telephone set 14a and determining therefrom whether an answering machine 15 delivered the response. In particular, upon the call processor's command to monitor for a pick-up and to determine whether a voice response exists, the detection circuitry may also monitor for a characteristic signature, over a short period of time, on the active trunk 16a indicative of an answering machine response (e.g., a noise having a characteristic increasing amplitude and frequency). This is possible since most presently available answering machines employ mechanical tape drive systems and the action of ramping the drive speed can cause a characteristic signature which is transmitted onto the active trunk 16a. The trunk processor 18 will consequently detect the answering machine 15 prior to the detection of voice. Upon notification from the trunk processor 18, the call processor 16 can then terminate the call or take any other appropriate action depending upon the formatting and the application. The means for monitoring element, and the accompanying detection methodology, can be incorporated into the system 10 as a supplement to the previously described detection elements and methodology and can operate whether or not the system 10 is formatted with the selection of the option of detecting and responding to an answering machine. In addition, the means for monitoring element, and the accompanying detection methodology, can be incorporated into the system 10 as an alternative to the previously described detection elements and methodology during the system formatting.
The embodiments described herein are merely illustrative of the principles of the present invention. Various modifications may be made thereto by persons ordinarily skilled in the art, without departing from the scope or spirit of the invention. For example, the call processor 16 can order a complete connection between the active trunk 16a and the operator station 20, rather than a partial connection, upon the receipt of the "voice detect" signal from the trunk processor 18 and while the trunk processor 18 is making its live voice/answering machine determination.
Further, each component of the calling system 10 may be scaled as required by the application and, thus, can be constructed as a discrete component, as an individual integrated circuit board, or as a segment of a single integrated circuit board. Further, each component may be located at different physical locations than any or each of the other components. Further, in many applications users will have existing systems that perform the function of a certain component, such as the calling manager 19 or the operator stations 20, 22, 24, so that the calling system 10 may be composed of existing components of a user and newly installed components.