Method for monitoring telephone call progress
First Claim
1. A method for monitoring the progress of a phone call placed over the phone lines comprising the steps of:
- detecting audio signals on a phone line;
determining a power spectrum of said audio signals periodically over a predetermined period of time, said power spectrum being defined by the presence of power at each of a predetermined number of select frequencies from the detected audio signals;
determining the total power of said audio signals periodically over said predetermined period of time;
providing a plurality of simple signal definitions corresponding to possible simple signals to be recognized each of which being defined by the presence of power at a unique combination of said predetermined number of select frequencies and the absence of power at a unique combination of said predetermined number of select frequencies;
comparing the power spectrum with each of said simple signal definitions periodically over said predetermined period of time;
identifying the possible simple signal from said plurality of simple signal definitions which most closely matches the power spectrum;
storing data corresponding to the possible simple signal which most closely matches the power spectrum in a signal meld list at the end of said predetermined period of timestoring the power of said audio data in a power meld list at the end of said predetermined period of time;
accumulating data of matched signals in said signal meld list over time;
accumulating data of the total power of said audio signals over time;
providing a plurality of commands for examining said signal meld list and said power meld list for detecting select ones of possible simple signals for preset time durations or predetermined sequences of said possible simple signals, each for preset time durations;
examining said signal meld list and said power meld list according to said commands periodically at said predetermined period of time;
identifying which of said possible simple signals or predetermined sequence of possible simple signals match with the contents of said signal meld list and said power meld list in said preset durations; and
reporting the possible simple signal or sequence of possible simple signals that match with the contents of said signal meld list and said power meld list.
7 Assignments
0 Petitions
Accused Products
Abstract
A call progress monitor and algorithm for placing a phone call over the phone lines. The algorithm is hierarchically arranged having three major routines or portions: tone detection, signal recognition and situation recognition. Based upon the definitions stored in a memory and the commands, the call progress monitor algorithm is applied to the telephone audio data. The call progress monitor algorithm is controlled by a host computer which sends a Recognize Situation Command and expects to receive some time later, a Recognize Command Termination Report. The tone detection portion of the algorithm measures the power at each of a predetermined number of frequencies of interest. The signal recognition portion of the algorithm detects the presence of a particular signal. A signal is a particular tone or set of tones that are uniquely present (while all other tones are absent). Furthermore, a signal has qualifying requirements of signal to noise ratio (SNR), twist, and noise variance, that must be met to define a particular signal. The situation recognition portion of the algorithm determines that a certain sequence or pattern of signals has occurred with a particular timing or cadence. When a match to a particular desired condition specified in a situation definition is made, a success is reported in the Recognize Command Termination Report. Otherwise, a failure is reported, together with the condition detected which elicited the failure response.
74 Citations
37 Claims
-
1. A method for monitoring the progress of a phone call placed over the phone lines comprising the steps of:
-
detecting audio signals on a phone line; determining a power spectrum of said audio signals periodically over a predetermined period of time, said power spectrum being defined by the presence of power at each of a predetermined number of select frequencies from the detected audio signals; determining the total power of said audio signals periodically over said predetermined period of time; providing a plurality of simple signal definitions corresponding to possible simple signals to be recognized each of which being defined by the presence of power at a unique combination of said predetermined number of select frequencies and the absence of power at a unique combination of said predetermined number of select frequencies; comparing the power spectrum with each of said simple signal definitions periodically over said predetermined period of time; identifying the possible simple signal from said plurality of simple signal definitions which most closely matches the power spectrum; storing data corresponding to the possible simple signal which most closely matches the power spectrum in a signal meld list at the end of said predetermined period of time storing the power of said audio data in a power meld list at the end of said predetermined period of time; accumulating data of matched signals in said signal meld list over time; accumulating data of the total power of said audio signals over time; providing a plurality of commands for examining said signal meld list and said power meld list for detecting select ones of possible simple signals for preset time durations or predetermined sequences of said possible simple signals, each for preset time durations; examining said signal meld list and said power meld list according to said commands periodically at said predetermined period of time; identifying which of said possible simple signals or predetermined sequence of possible simple signals match with the contents of said signal meld list and said power meld list in said preset durations; and reporting the possible simple signal or sequence of possible simple signals that match with the contents of said signal meld list and said power meld list. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for monitoring the progress of a phone call placed over the phone lines comprising the steps of:
-
detecting audio signals on a phone line; determining a power spectrum of said audio signals periodically over a predetermined period of time, said power spectrum being defined by the presence of power at each of a predetermined number of select frequencies from the detected audio signals; determining the total power of said audio signals periodically over said predetermined period of time; providing a plurality of possible simple signal definitions corresponding to possible simple signals to be recognized each of which being defined by the presence of power at a unique combination of said predetermined number of select frequencies and the absence of power at a unique combination of said predetermined number of select frequencies, said possible simple signals including silence, dialtone, ringing, busy, voice, special information tones, and high energy at no particular frequency; comparing the power spectrum with each of said possible simple signal definitions periodically over said predetermined period of time; identifying the possible simple signal from said plurality of signal definitions which most closely matches the power spectrum; storing data corresponding to the possible simple signal which most closely matches the power spectrum in a signal meld list at the end of said predetermined period of time; storing the power of said audio data in a power meld list at the end of said predetermined period of time; accumulating data of matched simple signals in said signal meld list over time; accumulating data of the total power of said audio signals over time; providing a plurality of complex pattern definitions, each complex pattern definition defining a complex pattern comprising a preset sequence and cadence of a plurality of possible simple signals; providing a plurality of continuing pattern definitions, each continuing pattern definition defining a continuing pattern comprising predetermined transitions between at least two possible simple signals; providing a plurality of situation definitions, each situation definition comprising signal commands for examining said signal meld list and said power meld list for detecting select ones of said possible simple signals, complex pattern commands for examining said signal meld list and said power meld list and detecting select ones of said complex patterns, continuing pattern commands for examining said signal meld list and said power meld list and detecting select ones of said continuing patterns, each situation definition being dedicated to detecting the presence of a particular one of said possible simple signals, a particular one of said complex patterns, or a particular one of said continuing patterns; issuing a Situation Recognize Command specifying a particular situation definition dedicated for detecting a particular one of said possible simple signals, a particular one of said complex patterns, or a particular one of said continuing patterns; examining said signal meld list and said power meld list according to said particular situation definition periodically at said predetermined period of time; identifying which of said possible simple signals, said complex patterns, and said continuing patterns match with the contents of said signal meld list and said power meld list; and reporting the possible simple signal, the complex pattern, or the continuing pattern that matches with the contents of said signal meld list and said power meld list. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A system for monitoring the progress of a phone call placed by a host or other automated device, the system comprising:
-
a host for placing a phone call over the phone lines and issuing a Recognize Situation Command specifying a particular situation to be detected; call progress monitor means responsive to said Recognize Situation Command and generating a Recognize Command Termination Report; and means for communicating said Recognize Situation Command from said host to said call progress monitor means and for communicating said Recognize Command Termination Report from said call progress monitor means to said host; said call progress monitor means; detecting audio signals on a phone line, determining a power spectrum of said audio signals periodically over a predetermined period of time, said power spectrum being defined by the presence of power at each of a predetermined number of select frequencies from the detected audio signals determining the total power of said audio signals periodically over said predetermined period of time; providing a plurality of signal definitions corresponding to possible signals to be recognized each of which being defined by the presence of power at a unique combination of said predetermined number of select frequencies and the absence of power at unique combination of said predetermined number of select frequencies; comparing the power spectrum with each of said signal definitions periodically over said predetermined period of time; identifying the possible signal from said plurality of signal definitions which most closely matches the power spectrum; storing data corresponding to the possible signal which most closely matches the power spectrum in a signal meld list at the end of said predetermined period of time; storing the power of said audio data in a power meld list at the end of said predetermined period of time; accumulating data of matched signals in said signal meld list over time; accumulating data of the total power of said audio signals over time; providing a plurality of situation definitions, each situation definition comprising commands for examining said signal meld list and said power meld list for detecting select ones of said possible signals, each situation definition dedicated to detecting the presence of a particular one or ones of said possible signals in said audio data in preset patterns or for preset time durations; examining said signal meld list and said power meld list periodically at said predetermined period of time according to said particular situation specified in said Recognize Situation Command which corresponds to a particular situation definition; identifying which of said possible signals or preset patterns of possible signals match with the contents of said signal meld list and said power meld list; and reporting to the host the possible signal or preset pattern of possible signals that match with the contents of said signal meld list and said power meld list in said Recognize Command Termination Report. - View Dependent Claims (26, 27)
-
-
28. A method for monitoring the progress of a phone call placed by a host over the phone lines, the method comprising the steps of:
-
detecting audio signals on a phone line; determining a power spectrum of said audio signals periodically over a predetermined period of time, said power spectrum being defined by the presence of power at each of a predetermined number of select frequencies from the detected audio signals; determining the total power of said audio signals periodically over said predetermined period of time; providing a plurality of signal definitions corresponding to possible signals to be recognized each of which being defined by the presence of power at a unique combination of said predetermined number of select frequencies and the absence of power at a unique combination of said predetermined number of select frequencies, said possible signals including a dialtone signal, a pickup signal, and voice signals; comparing the power spectrum with each of said signal definitions periodically over said predetermined period of time; identifying the possible signal from said plurality of signal definitions which most closely matches the power spectrum; storing data corresponding to the possible signal which most closely matches the power spectrum in a signal meld list at the end of said predetermined period of time; storing the power of said audio data in a power meld list at the end of said predetermined period of time; accumulating data of matched signals in said signal meld list over time; accumulating data of the total power of said audio signals over time; providing a plurality of situation definitions, each situation definition comprising commands for examining said signal meld list and said power meld list for detecting select ones of said possible signals, each situation definition dedicated to detecting the presence of a particular one or ones of said possible signals in said audio data in preset patterns or for preset time durations; placing the phone line off hook; issuing a Recognize Situation Command specifying the recognition of the presence of a dialtone signal for a preset time duration on the phone line after the host has placed the phone line off hook; examining said signal meld list periodically at said predetermined period of time; reporting that dialtone is detected as soon as the dialtone signal is detected for said preset time duration and dialing the telephone number to be called; reporting that a signal other than dialtone is detected as soon as one of said possible signals other than dialtone is detected; dialing a telephone number on said phone line if a dialtone signal is reported; issuing a Recognize Situation Command specifying the recognition of the presence of a pickup signal on the phone line and voice signals subsequent to the pickup signal if a dialtone signal is reported; examining the signal meld list and the power meld list periodically at said predetermined period of time; reporting that pickup occurred as soon as the pickup and voice signals are detected; and reporting that one of said possible signals other than pickup and voice is detected a preset period of time subsequent to dialing the telephone number.
-
-
29. A system for monitoring the progress of a phone call placed by a host over the phone lines comprising:
-
a host for placing a phone call over the phone lines and issuing a Recognize Situation Command specifying a particular situation to be detected; call progress monitor means connected to said host and responsive to said Recognize Situation Command and generating a Recognize Command Termination Report; and means for communicating said Recognize Situation Command from said host to said call progress monitor means and for communicating said Recognize Command Termination Report from said call progress monitor means to said host; said call progress monitor means; detecting audio signals on a phone line; determining a power spectrum of said audio signals periodically over a predetermined period of time, said power spectrum being defined by the presence of power at each of a predetermined number of select frequencies from the detected audio signals; determining the total power of said audio signals periodically over said predetermined period of time; providing a plurality of possible simple signal definitions corresponding to possible simple signals to be recognized each of which being defined by the presence of power at a unique combination of said predetermined number of select frequencies and the absence of power at a unique combination of said predetermined number of select frequencies, said possible simple signals including silence, dialtone, ringing, busy, voice, special information tones, and high energy at no particular frequency; comparing the power spectrum with each of said signal definitions periodically over said predetermined period of time; identifying the possible simple signal from said plurality of signal definitions which most closely matches the power spectrum; storing data corresponding to the possible simple signal which most closely matches the power spectrum in a signal meld list at the end of said predetermined period of time; storing the power of said audio data in a power meld list at the end of said predetermined period of time; accumulating data of matched simple signals in said signal meld list over time; accumulating data of the total power of said audio signals over time; providing a plurality of complex pattern definitions, each complex pattern definition defining a complex pattern comprising a preset sequence and cadence of a plurality of possible simple signals; providing a plurality of continuing pattern definitions, each continuing pattern definition defining a continuing pattern comprising predetermined transitions between at least two possible simple signals; providing a plurality of situation definitions, each situation definition comprising signal commands for examining said signal meld list and said power meld list for detecting select ones of said possible simple signals, complex pattern commands for examining said signal meld list and said power meld list and detecting select ones of said complex patterns, continuing pattern commands for examining said signal meld list and said power meld list and detecting select ones of said continuing patterns, each situation definition being dedicated to detecting the presence of a particular one of said possible simple signals, a particular one of said complex patterns, or a particular one of said continuing patterns; issuing a Situation Recognize Command specifying a particular situation definition dedicated for detecting a particular one of said possible simple signals, a particular one of said complex patterns, or a particular one of said continuing patterns; examining said signal meld list and said power meld list according to said particular situation definition periodically at said predetermined period of time; and reporting in said Recognize Command Termination Report when the particular one of said possible simple signals, the particular one of said complex patterns, or the particular one of said continuing patterns, corresponding to a particular situation definition, is detected.
-
-
30. A method for monitoring the progress of a phone call placed over the phone lines comprising the steps of:
-
detecting audio signals on a phone line; determining a power spectrum of said audio signals periodically over a predetermined period of time, said power spectrum being defined by the presence of power at each of a predetermined number of select frequencies from the detected audio signals; determining the total power of said audio signals periodically over said predetermined period of time; providing a plurality of possible simple signal definitions corresponding to possible simple signals to be recognized each of which being defined by the presence of power at a unique combination of said predetermined number of select frequencies and the absence of power at a unique combination of said predetermined number of select frequencies; comparing the power spectrum with each of said signal definitions periodically over said predetermined period of time; identifying the possible simple signal from said plurality of signal definitions which most closely matches the power spectrum; storing data corresponding to the possible simple signal which most closely matches the power spectrum in a signal meld list at the end of said predetermined period of time; storing the power of said audio data in a power meld list at the end of said predetermined period of time; accumulating data of matched simple signals in said signal meld list over time; accumulating data of the total power of said audio signals over time; providing a plurality of situation definitions, each situation definition comprising signal commands for examining said signal meld list and said power meld list for detecting select ones of said possible simple signals in predetermined sequences, each situation definition being dedicated to detecting the presence of a particular one or ones of said possible signals in said predetermined sequences; issuing a Situation Recognize Command specifying a particular situation definition dedicated for detecting a particular one or ones of said possible simple signals; examining said signal meld list and said power meld list according to said particular situation definition periodically at said predetermined period of time; and reporting that the particular one or ones of said possible simple signals is detected and the identity of the possible simple signals other than said particular one or ones of said possible simple signals are detected if the particular one or ones of said possible simple signals are not detected. - View Dependent Claims (31, 32)
-
-
33. A system for monitoring the progress of a phone call placed by a host over the phone lines comprising:
-
at least one phone line for supporting telephone communication; a host for placing a phone call over said phone line and issuing a Recognize Situation Command specifying a particular situation to be detected, said host including means for dialing a phone number; call progress monitor means responsive to said Recognize Situation Command and generating a Recognize Command Termination Report; means for communicating s id Recognize Situation Command from said host to said call progress monitor means and for communicating said Recognize Command Termination Report from said call progress monitor means to said host; and means for placing said phone line off hook in attempt to receive a dialtone on said phone line; said call progress monitor means; detecting audio signals on said phone line; determining a power spectrum of said audio signals periodically over a predetermined period of time, said power spectrum being defined by the presence of power at each of a predetermined number of select frequencies from the detected audio signals; determining the total power of said audio signals periodically over said predetermined period of time; providing a plurality of signal definitions corresponding to possible signals to be recognized each of which being defined by the presence of power at a unique combination of said predetermined number of select frequencies and the absence of power at a unique combination of said predetermined number of select frequencies, said possible signals including a dialtone signal, a pickup signal, and voice signals;
comparing the power spectrum with each of said signal definitions periodically over said predetermined period of time;identifying the possible signal from said plurality of signal definitions which most closely matches the power spectrum; storing data corresponding to the possible signal which most closely matches the power spectrum in a signal meld list at the end of said predetermined period of time; storing the power of said audio data in a power meld list at the end of said predetermined period of time; accumulating data of matched signals in said signal meld list over time; accumulating data of the total power of said audio signals over time; providing a plurality of situation definitions, each situation definition comprising commands for examining said signal meld list and said power meld list for detecting select ones of said possible signals each situation definition dedicated to detecting the presence of a particular one or ones of said possible signals in s id audio data in preset patterns or for preset time durations; said host activating said means for placing the phone line off hook and issuing a Recognize Situation Command specifying the recognition of the presence of a dialtone signal for preset time duration on the phone line after the host has placed the phone line off hook; said call progress monitor means examining said signal meld list periodically at said predetermined period of time and reporting that dialtone is present as soon as the dialtone signal is detected for said preset time duration and dialing the telephone number to be called, or reporting the identity of the possible signal other than dialtone that is detected; said host activating said means for dialing a telephone number on said phone line if a dialtone signal is reported in said Recognize Command Termination Report and issuing a Recognize Situation Command specifying the recognition of pickup of the phone line if a dialtone signal is reported; said call progress monitor means examining the signal meld list and the power meld list periodically at said predetermined period of time and reporting in said Recognize Command Termination Report that pickup is detected as soon as pickup is detected, or reporting that one of said possible signals other than pickup is detected a preset period of time subsequent to dialing the telephone number.
-
-
34. A method for monitoring the progress of a phone call placed over the phone lines comprising the steps of:
-
detecting digital data representative of telephone audio signals on each channel of a multiple channel digital phone line; determining a power spectrum of said audio signals on each of said channels periodically over a predetermined period of time, said power spectrum being defined by the presence of power at each of a predetermined number of select frequencies from the detected audio signals; determining the total power of said audio signals on each of said channels periodically over said predetermined period of time; providing a plurality of possible simple signal definitions corresponding to possible simple signals to be recognized each of which being defined by the presence of power at a unique combination of said predetermined number of select frequencies and the absence of power at a unique combination of said predetermined number of select frequencies, said possible simple signals including silence, dialtone, ringing, busy, voice, special information tones, and high energy at no particular frequency; comparing the power spectrum with each of said signal definitions on each of said channels periodically over said predetermined period of time; identifying the possible simple signal from said plurality of signal definitions which most closely matches the power spectrum on each of said channels; storing data corresponding to the possible simple signal which most closely matches the power spectrum in signal meld list at the end of said predetermined period of time for each of said channels; storing the power of said audio data in a power meld list at the end of said predetermined period of time for each of said channels; accumulating data of matched simple signals in said signal meld list over time for each of said channels; accumulating data of the total power of said audio signals over time for each of said channels; providing a plurality of complex pattern definitions, each complex pattern definition defining a complex pattern comprising a preset sequence and cadence of a plurality of possible simple signals; providing a plurality of continuing pattern definitions, each continuing pattern definition defining a continuing pattern comprising predetermined transitions between at least two possible simple signals; providing a plurality of situation definitions, each situation definition comprising signal commands for examining said signal meld list and said power meld list for detecting select ones of said possible simple signals, complex pattern commands for examining said signal meld list and said power meld list and detecting select ones of said complex patterns, continuing pattern commands for examining said signal meld list and said power meld list and detecting select ones of said continuing patterns, each situation definition being dedicated to detecting the presence of a particular one of said possible simple signals, a particular one of said complex patterns, or a particular one of said continuing patterns; issuing a Situation Recognize Command specifying a particular situation definition dedicated for detecting a particular one of said possible simple signals, a particular one of said complex patterns, or a particular one of said continuing patterns; examining said signal meld list and said power meld list according to said particular situation definition periodically at said predetermined period of time; identifying which of said possible simple signals, said complex patterns, and said continuing patterns match with the contents of said signal meld list and said power meld list; and reporting the possible simple signal, the complex pattern, or the continuing pattern that matches with the contents of said signal meld list and said power meld list. - View Dependent Claims (35, 36, 37)
-
Specification