WO2000074351A2 - Call progress detection - Google Patents

Call progress detection Download PDF

Info

Publication number
WO2000074351A2
WO2000074351A2 PCT/US2000/013509 US0013509W WO0074351A2 WO 2000074351 A2 WO2000074351 A2 WO 2000074351A2 US 0013509 W US0013509 W US 0013509W WO 0074351 A2 WO0074351 A2 WO 0074351A2
Authority
WO
WIPO (PCT)
Prior art keywords
cadence
call progress
audio signal
period
estimated
Prior art date
Application number
PCT/US2000/013509
Other languages
French (fr)
Other versions
WO2000074351A3 (en
Inventor
Alexander Berestesky
David W. Duehren
Luis F. Ortiz
Original Assignee
Brooktrout Technology, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brooktrout Technology, Inc. filed Critical Brooktrout Technology, Inc.
Priority to AU51383/00A priority Critical patent/AU5138300A/en
Publication of WO2000074351A2 publication Critical patent/WO2000074351A2/en
Publication of WO2000074351A3 publication Critical patent/WO2000074351A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/82Line monitoring circuits for call progress or status discrimination

Definitions

  • This invention relates to call progress detection in a telephony network.
  • a telephony network may be any network, whether a dedicated telephone network or a computer network, that handles telephone traffic.
  • a computer telephony network is a network that adds computer intelligence to the making, receiving, and managing of telephone calls.
  • determining the "status" of any given telephone line is an important task. Examples of different statuses include ringing, busy ring, no answer, voice mail answering, or telephone company intercept. Monitoring for these various statuses is referred to as "call progress detection. "
  • An example of a call progress detection sequence is as follows. First, a caller picks up a telephone receiver and hears a dial tone indicating that the telephone line (that is, the corresponding link in the network) is closed. The caller then dials a telephone number. In response, the telephone rings at a telephone receiving the call and the caller hears a corresponding ringing signal . A person receiving the call picks up the ringing telephone and responds with "hello" indicating to the caller that the call has been answered.
  • the call progress detector is an important part of automated telephony systems such as interactive voice response systems.
  • Such interactive voice response systems are used, for example, in telemarketing applications and research survey applications.
  • telemarketers use automatic calling machines that can call many numbers at a time and notify a telemarketer when a call to one of those numbers has been answered.
  • the automatic calling machine must detect the call status for each called number, for example, a busy signal, a voice machine pickup, a voice response, a no answer, or a dial tone.
  • Such call progress analysis can be facilitated using digital signal processing techniques.
  • Fig. 1 is a block diagram of a call progress detector 10 that can detect the progress of a call in a telephony network. To do so, the call progress detector 10 receives a time varying audio input signal 12 (transmitted on the network) and, using a coder/decoder (CODEC) 14, converts it from analog-to-digital (A/D) if the input signal is an analog signal -- that is, a signal continuous in time. During A/D conversion, the CODEC 14 periodically samples in time the analog signal and outputs a digital signal 16 that includes a sequence of the discrete samples. The CODEC 14 optionally may perform other coding / decoding functions (for example, compression / decompression) .
  • CODEC coder/decoder
  • the digital signal 16 is provided to a digital signal processor (DSP) 18 which extracts information from the signal using frequency domain techniques such as Fourier analysis. Such frequency-domain representation of audio signals facilitates analysis of the audio signal 12.
  • DSP digital signal processor
  • a memory section 20 coupled to the DSP 18 is used by the DSP for storing and retrieving data and instructions while analyzing the digital audio signal 16.
  • a call progress detector 21 determines the progress of the call using a voice detector 22, a special information tone (SIT) detector 24 which detects an operator intercept or other call problem, a loop current detector 26 which determines whether a line between the telephone and a central office switch is closed, an answering machine detector 28, a cadence detector 30, and, in some cases, a frequency detector 31.
  • SIT special information tone
  • Cadence of a signal refers to a repeating sequence or cycle of sound
  • a frequency detector that may be used in the call progress detector 21 of Fig. 2 is a "Goertzel detector" -- a mathematical construct that utilizes a
  • Goertzel algorithm to extract information from the input signal 16.
  • the Goertzel algorithm is described in "Digital Signal Processing” by Oppenheim, A. and Schafer, R. , pages 287-289. Additionally, an implementation of the Goertzel detector may be found in Xie et al . (U.S. Patent No.
  • the Goertzel detector acts as a pass-band filter allowing only frequencies falling within a certain bandwidth of a predefined center frequency to pass through.
  • the call progress detector 21 may use multiple frequency detectors 31, each tuned to filter input signals at expected center frequencies .
  • the call progress detector 21 of Fig. 2 also includes a template 32 containing default cadence and frequency definitions (for example, center frequencies of the Goertzel detector) .
  • the template 32 is used by the cadence and frequency detectors 30, 31 to identify cadences and frequencies detected in the input signal 16.
  • a call progress report 34 is generated using output from the detectors 22-31.
  • the default definitions in a template 32 allow the call progress detector 21 to identify frequencies and cadences correctly in the countries and networks for which that template was developed. But if the template 32 is used in a country or network other than that for which it was designed, the template generally is inadequate for identifying a frequency or cadence, and must be modified accordingly.
  • Fig. 3 identifies examples of common call progress signals 40 recommended by the International Telecommunication Union (ITU) in E.180. Among those displayed in Fig. 3, are the call progress signals for the United States, Sweden, Kenya, and China and their corresponding frequencies 42 (in Hz) and cadences 44 ON/OFF (in sec.) . Because cadence is a repeating cycle of ON and OFF signals, a single cycle is an atomic unit of the cadence that completely describes the cadence for any given signal .
  • the value on the left hand side of the slash in column 44 corresponds to the number of seconds that the signal is ON, and the value on the right hand side corresponds to the number of seconds that the signal is OFF.
  • An end of the cycle is represented by an ellipse
  • an end of a single ON/OFF sequence is represented by a dash (-) .
  • frequencies such as the center frequency of a Goertzel detector, and cadence patterns which provide knowledge of the shape of the repeating cycle, typically are predefined in the template 32.
  • a frequency detector 31 and the corresponding template 32 may be tuned to filter input signals 16 at a frequency of 1100 Hz. This enables the detection of call progress signals that transmit at 1100 Hz (for example, a fax signal) .
  • the cadence detector 30 and template 32 may be configured to search for an ON/OFF pattern of the form A/B... Signals such as the ringing signal or the call waiting signal in the United States obey this pattern.
  • Figs. 4-6 show graphs of some typical cadence patterns.
  • Fig. 4 shows a general cadence pattern 46 having the form A/B - A/B - ... , where A corresponds to an interval of non-silence and B corresponds to an interval of silence.
  • An example of a cadence pattern having the form of Fig. 4 is the ringing signal in Sweden, which has a frequency of 425 Hz and an ON/OFF pattern (in units of seconds) given by 1.0/5.0 - 1.0/5.0...
  • Fig. 5 shows a general cadence pattern 48 having the form A/B/A/C/ - A/B/A/C - ... , where A corresponds to intervals of non-silence and B and C correspond to silence intervals of different durations.
  • Fig. 6 shows a pattern 50 having the form A/B/C/D -
  • A/B/C/D correspond to non-silence intervals of different durations and B and D correspond silence intervals of different durations.
  • a call progress detector may not be able to distinguish call progress signals based solely on the outputs of the frequency detector 31, cadence detector 30, and template 32.
  • the call progress detector 21 may detect that a certain input signal has the cadence pattern A/B - A/B - ...
  • both the ringing signal and the call waiting signal in the United States obey this cadence pattern. Consequently, call progress status based on this information alone is indeterminate, and the call progress detector 21 would require additional information to determine call progress.
  • cadence patterns for example, the ringing cadence for Kenya
  • many types of cadence patterns are particularly complex and atypical and/or are used only in a fraction of countries and networks.
  • storage and detection of frequencies and cadence patterns are computationally expensive tasks. Consequently, existing call progress detectors use templates 32 that typically store only some subset of all available cadence patterns and frequencies and use a finite number of frequency detectors 31. Therefore, existing call progress detectors 21 typically are limited to certain countries and/or networks.
  • a method of identifying call progress in a telephony network includes determining frequency components of an audio signal on the network and estimating one or more parameters of the audio signal. The method further includes attempting to determine call progress based on a comparison between the estimated parameters and a parameter library that includes predetermined parameter values. If the attempt to determine call progress fails, the method includes attempting to determine call progress based on a comparison between the estimated parameters and predetermined telecommunications rules .
  • Embodiments may include one or more of the following features .
  • the method may further include estimating a power of the audio signal based on the frequency components.
  • the power estimation may occur in a frequency range from about 250 Hz to 625 Hz.
  • a parameter may correspond to a level that is a measure of the estimated power. The level may have a high value if the estimated power of the audio signal is greater than a predetermined value. Likewise, the level may have a low value if the estimated power is less than or equal to the predetermined value .
  • a parameter may correspond to a period of a cadence that is based on one or more levels. Additionally, the parameter library may include predetermined cadence periods.
  • Estimating the period of the cadence may include measuring high intervals corresponding to durations of one or more consecutive high values and measuring low intervals corresponding to durations of one or more consecutive high values. Estimating the period of the cadence may further include excluding durations that are shorter than a predefined duration. Furthermore, the cadence period may be a minimum number of high and low intervals that form a repeating pattern of intervals.
  • the predetermined telecommunications rules may be consistent with International Telecommunication Union standards .
  • the parameter may correspond to one of three maximum frequency components of the audio signal .
  • the parameter library may correspond to predetermined single-frequency and ulti- frequency tones.
  • the maximum frequency component estimation may occur in a frequency range from about 300 Hz to 4000 Hz.
  • the method may include attempting to determine call progress based on classification of the audio signal as a single-frequency tone, a double- frequency tone, or a multi-frequency tone.
  • the classification may depend on three estimated maximum frequency components.
  • the method may further include attempting to determine call progress based on identifying a presence of a voice in the audio signal. Identifying may be based on averaged estimates and fuzzy logic analysis of the frequency components .
  • the parameter library may be based on a complete frequency spectrum of the audio signal over a range of frequencies.
  • the methods, techniques, and systems described here may provide one or more of the following advantages.
  • the invention may provide a universal call progress detector because both international rules and libraries are used to determine call progress. Additionally, because cadence periods and interval durations and maximum frequency components, as opposed to cadence patterns and filtered frequency components, are estimated, the invention may provide for greater versatility, efficiency, and universality.
  • Fig. 1 is a block diagram of a detector that can be used for detection of call progress in a telephony network.
  • Fig. 2 is a block diagram showing elements of an existing call progress detector.
  • Fig. 3 is a chart of common call progress signals recommended by the International Telecommunication Union (ITU) for the corresponding listed countries.
  • ITU International Telecommunication Union
  • Figs. 4-6 are graphs of some cadence patterns that may be found in a call progress signal.
  • Fig. 7 is a block diagram showing elements of a call progress detector that uses ITU rules, libraries, and a cadence detector to determine call progress.
  • Fig. 8 is a flowchart illustrating the call progress classification of Fig. 7.
  • call progress detectors such as the call progress detector 21 of Fig. 2 are computationally expensive (that is, they require more computational energy to perform their tasks) because the center frequencies and cadence patterns to be used must be predefined. Furthermore, the call progress detector 21 may lack high accuracy because the detector 21 must function to conserve computational energy. For example, the detector 21 stores only a finite number of cadence patterns and frequencies and uses a finite number of frequency detectors and therefore may fail to determine call progress under certain circumstances.
  • a call progress detector that detects frequencies and cadences without requiring preliminary knowledge of frequencies and cadence patterns can determine call progress with improved accuracy and reduced computational expense.
  • a call progress detector that uses both a rules engine (for example, based on ITU recommendation E.180) and user-defined libraries to compare detected cadences and frequencies with known values can determine call progress with improved accuracy and greater simplicity.
  • Fig. 7 illustrates a block diagram of such a call progress detector 70 that detects frequencies and cadences using ITU rules and user-defined libraries.
  • the call progress detector 70 is able to determine cadences and frequencies without preliminary knowledge of the types of cadences and frequencies .
  • a digital audio signal x(n) 16 serves as an input for the call progress detector 70, where n is an index of time.
  • the digital signal 16 is provided to a block 72 which performs a fast Fourier transform (FFT) on accumulated incoming samples x(n) every 10 ms . Output of the FFT block 72 at frequency .
  • FFT fast Fourier transform
  • Output of the FFT block 72 is fed to several blocks -- power estimator 74, voice detector 86, maximum components estimator 88, and channel signal analyzer 98 -- of the call progress detector 70.
  • the power estimator 74 estimates a total power P tot of the signal in a frequency range [250, 625] Hz:
  • the power estimator 74 compares P tot to a predefined threshold Tl and sets a binary level for the signal based on this comparison. If P tot exceeds Tl, the level is set to high or 1 , if P tot does not exceed Tl, the level is set to low or 0. Output of the power estimator 74 is therefore a sequence of the binary values, 0 and 1.
  • a level detector 76 measures a duration of each interval corresponding to repeating l's and 0's that are output from the power estimator 74.
  • the binary levels (1 or 0) can then be represented as a function f (k) of discrete intervals k, where k index'"- the intervals. Additionally, the level detector 76 filters out clicks by eliminating intervals of l's and 0's that are shorter than a predefined interval duration threshold T2.
  • cadences of the signal Repeating sequences or patterns of nonsilence and silence intervals are referred to as cadences of the signal.
  • the index N therefore represents a minimum number of high/low intervals that satisfies Eqn. 2.
  • Figs. 4-6 show graphs of level detector 76 output for audio signals that have a cadence -- the level (nonsilence or silence) f (k) is plotted versus time in units of time index n and interval durations are represented by capital letters A, B, C, and D.
  • Cadences, or repeating sequences of nonsilence and silence occur in audio signals such as the ringing or busy signal and these cadences are used to distinguish different call progress signals.
  • Output of the level detector 76 -- for example, interval durations A, B, C, and D -- is fed to a classifier 78 that performs various tasks to analyze the signal (and will be discussed in detail later) and report call progress.
  • level detector output is fed to a cadence detector 80 that determines the period of the cadence -- that is, the value of N -- for the signal. Once the cadence detector 80 determines N, it defines the cadence by the last N high/low intervals.
  • the detected cadence period is reported to the classifier 78 and a cadence comparator 82 which compares the detected cadence period with user-defined cadence periods in a cadence library 84. Results of the comparison from the cadence comparator 82 are also reported to the classifier 78.
  • a voice detector 86 identifies a presence of a voice in the input signal 16.
  • the voice detector 86 uses several frequency-domain averaged features and employs fuzzy logic for making the voice detection decision.
  • the voice detector 86 is described in detail in the patent application entitled "Voice Detection in Audio Signals," U.S. Serial No. 09/299,631, filed on April 27, 1999, and incorporated herein by reference.
  • Output of the voice detector 86 is a binary decision -- 1 for voice present and 0 for no voice present. This decision is provided to the classifier 78 which uses it to analyze the call progress.
  • a maximum estimator 88 determines three maximum frequency components of the output, that is, Y max ( , of the FFT block 72 in the frequency range . e [300,4000] Hz.
  • the maximum estimator 88 may use other frequency ranges that give preferred results.
  • the maximum estimator 88 uses this information to classify the input signal 16 as a single- frequency tone (such as a fax tone) , a double-frequency tone (such as a dual tone multifrequency, DTMF, tone) , or a multi- frequency tone (such as a special -information tone like operator interrupt) .
  • a spectrum interpolator 90 is used to estimate the complete frequency spectrum and frequencies 1 that correspond to the maximum frequency components, Y max ( .) , of the tones.
  • the tones are fed to a tone comparator 92 which compares the identified tones with user-defined tones in a tone signal library 94. If a match occurs, then the results from the tone comparator 92 are reported and used to determine call progress. Output of the tone comparator 92 is therefore fed to the classifier 78 which can report the call progress.
  • the classifier 78 also receives a set of rules 96 based on the ITU recommendation E.180.
  • a fax tone or CNG tone has a frequency of 1100 Hz and lasts about 0.5 seconds and repeats every 3.5 seconds. Because the frequency, 1100 Hz, lies outside the power estimator 74 range of [250, 625] Hz, the fax tone is detected by the maximum estimator 88 and classified using the tone comparator 92.
  • a DTMF tone comprises one high frequency tone and one low frequency tone selected from eight tones. Of these eight, the first four tones (697, 770, 852, and 941 Hz) represent the low- frequency group and the second four tones (1209, 1336, 1477, and 1633 Hz) represent the high-frequency group.
  • the DTMF tone is detected by the maximum estimator 88 and classified using the tone comparator 92.
  • Call progress signals such as the busy signal in the U.S. (which is a double-frequency tone of 480 Hz and 620 Hz) could, in principal, be reported by the tone comparator 92.
  • the call progress detector 70 can more efficiently determine such signals using the cadence detector 80 and not the tone comparator 92.
  • Fig. 8 is a flowchart illustrating operation of the classifier 78 that analyzes signals from the level detector 76, cadence detector 80, cadence comparator 82, voice detector 86, tone comparator 92, and rules set 96.
  • the classifier 78 uses the information from these input signals to report a call progress result (step 100) such as a ringing or busy signal .
  • the classifier 78 continually receives output from the voice detector 86 and determines if a voice is present on the telephony network (step 102) . If a voice is present, the classifier 78 reports this status of the telephone line in the network (step 100) .
  • the classifier 78 receives output from the tone comparator 92 and determines if a single- or multi-frequency tone is present on the telephony network (step 104) . If the classifier 78 determines that the tone comparator 92 classified the tone using the comparison between output of the spectrum interpolator 90 and the tone library, then the classifier 78 reports that classification as the call progress (step 100) . In parallel with both voice determination (step 102) and tone determination (step 104) , the classifier 78 receives output from the level detector 76, rules set 96, cadence detector 80, and cadence comparator 82 to determine a cadence of the signal .
  • the classifier uses the output from the cadence comparator 82 to determine if N has been classified using the cadence periods in the cadence library 84 (step 106) . If N has been classified by the cadence comparator 82, then the classifier uses information (such as interval durations A, B, C, and D in Fig. 5) from the level detector 76 to completely classify the cadence (step 108) . The classifier compares cadence interval durations with predetermined interval durations of the cadence period in the cadence library 84. For example, in Fig.
  • the classifier 78 determines that N has not been classified by the cadence comparator 82, then the classifier 78 uses the rules set 96 to classify the cadence period N (step 110) . Once N is classified at step 110, the classifier 78 then uses information (such as interval durations A, B, C, and D in Fig. 5) from the level detector 76 to completely classify the cadence (step 108) . The classifier 78 compares cadence interval durations with predetermined durations in the rules set 96. The classifier 78 may then report call progress (step 100) .
  • the ringing signal from Sweden (shown in Fig. 3) has a frequency of 425 Hz and a cadence period of 2 intervals -- with a high level interval duration of 1.0 sec and a low level interval duration of 5.0 sec.
  • the cadence comparator 82 compares this period with periods from the cadence library 84 to classify N.
  • the classifier 78 determines that the cadence comparator 82 has classified N to be the value 2.
  • the cadence comparator 82 If, during initial setup of the call progress detector 70, the cadence comparator 82 does not succeed in classifying detected cadence, then a technician can run a channel signal analyzer 98 which reports parameters of the input signal 16 and a complete frequency spectrum.
  • the information from the channel signal analyzer 98 is used to establish periods, interval durations, and tone frequencies for cadence and tone signals libraries 84, 94.
  • the channel signal analyzer 98 is a diagnostic tool for adjusting the call progress detector 70 as needed for different applications. As such, during normal operation of the call progress detector 70, the channel signal analyzer 98 need not operate.
  • the systems and techniques described here may be used to identify call progress in any telephony network.
  • a computer telephony network is designed to make telephone calling easier and provide extra services for corporate customers. Therefore, the call progress detector 70 may be used in computer telephony applications such as an interactive telephone transactions or call handling to improve application efficiency and accuracy.
  • Apparatus embodying these techniques may include appropriate input and output devices, a computer processor, and a computer program product tangibly embodied in a machine- readable storage device for execution by a programmable processor.
  • a process embodying these techniques may be performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output.
  • the techniques may be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
  • Each computer program may be implemented in a high- level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language may be compiled or interpreted language .
  • Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory.
  • Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application- specific integrated circuits) .

Abstract

The progress of a call in a telephony network is determined using cadence classification, frequency detection, or voice detection on the telephony network. The frequencies are detected and compared to predetermined single-frequency and multi-frequency tones. In parallel, the presence of a voice on the telephony network may be detected using fuzzy logic techniques. In parallel to voice detection and frequency detection, the cadence may be classified using predetermined cadence periods and cadence interval durations or predetermined telecommunications rules.

Description

CALL PROGRESS DETECTION
Background
This invention relates to call progress detection in a telephony network.
A telephony network may be any network, whether a dedicated telephone network or a computer network, that handles telephone traffic. A computer telephony network is a network that adds computer intelligence to the making, receiving, and managing of telephone calls. In any type of telephony network, determining the "status" of any given telephone line is an important task. Examples of different statuses include ringing, busy ring, no answer, voice mail answering, or telephone company intercept. Monitoring for these various statuses is referred to as "call progress detection. "
An example of a call progress detection sequence is as follows. First, a caller picks up a telephone receiver and hears a dial tone indicating that the telephone line (that is, the corresponding link in the network) is closed. The caller then dials a telephone number. In response, the telephone rings at a telephone receiving the call and the caller hears a corresponding ringing signal . A person receiving the call picks up the ringing telephone and responds with "hello" indicating to the caller that the call has been answered.
The call progress detector is an important part of automated telephony systems such as interactive voice response systems. Such interactive voice response systems are used, for example, in telemarketing applications and research survey applications. Typically, telemarketers use automatic calling machines that can call many numbers at a time and notify a telemarketer when a call to one of those numbers has been answered. To perform this function, the automatic calling machine must detect the call status for each called number, for example, a busy signal, a voice machine pickup, a voice response, a no answer, or a dial tone. Such call progress analysis can be facilitated using digital signal processing techniques.
Fig. 1 is a block diagram of a call progress detector 10 that can detect the progress of a call in a telephony network. To do so, the call progress detector 10 receives a time varying audio input signal 12 (transmitted on the network) and, using a coder/decoder (CODEC) 14, converts it from analog-to-digital (A/D) if the input signal is an analog signal -- that is, a signal continuous in time. During A/D conversion, the CODEC 14 periodically samples in time the analog signal and outputs a digital signal 16 that includes a sequence of the discrete samples. The CODEC 14 optionally may perform other coding / decoding functions (for example, compression / decompression) . If the input signal 12 is digital, then no A/D conversion is needed and the CODEC 14 may be bypassed. In either case, the digital signal 16 is provided to a digital signal processor (DSP) 18 which extracts information from the signal using frequency domain techniques such as Fourier analysis. Such frequency-domain representation of audio signals facilitates analysis of the audio signal 12. A memory section 20 coupled to the DSP 18 is used by the DSP for storing and retrieving data and instructions while analyzing the digital audio signal 16.
Examples of existing call progress detector systems include "PerfectCall" and "Basic Call" Progress Analysis by Dialogic Corporation. Information about these Dialogic products may be found at Dialogic ' s web page at http://www.dialogic.com and, specifically, web pages found under Online Support / Software Releases sections at http : //www. support . dialogic . com/releases/dos/voicebrick/vfg/V FG.HTM. Referring to Fig. 2, in general, such a call progress detector 21 determines the progress of the call using a voice detector 22, a special information tone (SIT) detector 24 which detects an operator intercept or other call problem, a loop current detector 26 which determines whether a line between the telephone and a central office switch is closed, an answering machine detector 28, a cadence detector 30, and, in some cases, a frequency detector 31. Cadence of a signal refers to a repeating sequence or cycle of sound
(ON) and silence (OFF) such as the ON/OFF pattern produced by the ringing or busy signal.
An example of a frequency detector that may be used in the call progress detector 21 of Fig. 2 is a "Goertzel detector" -- a mathematical construct that utilizes a
Goertzel algorithm to extract information from the input signal 16. The Goertzel algorithm is described in "Digital Signal Processing" by Oppenheim, A. and Schafer, R. , pages 287-289. Additionally, an implementation of the Goertzel detector may be found in Xie et al . (U.S. Patent No.
5,644,634). The Goertzel detector acts as a pass-band filter allowing only frequencies falling within a certain bandwidth of a predefined center frequency to pass through. The call progress detector 21 may use multiple frequency detectors 31, each tuned to filter input signals at expected center frequencies .
The call progress detector 21 of Fig. 2 also includes a template 32 containing default cadence and frequency definitions (for example, center frequencies of the Goertzel detector) . The template 32 is used by the cadence and frequency detectors 30, 31 to identify cadences and frequencies detected in the input signal 16. A call progress report 34 is generated using output from the detectors 22-31. The default definitions in a template 32 allow the call progress detector 21 to identify frequencies and cadences correctly in the countries and networks for which that template was developed. But if the template 32 is used in a country or network other than that for which it was designed, the template generally is inadequate for identifying a frequency or cadence, and must be modified accordingly.
Fig. 3 identifies examples of common call progress signals 40 recommended by the International Telecommunication Union (ITU) in E.180. Among those displayed in Fig. 3, are the call progress signals for the United States, Sweden, Kenya, and China and their corresponding frequencies 42 (in Hz) and cadences 44 ON/OFF (in sec.) . Because cadence is a repeating cycle of ON and OFF signals, a single cycle is an atomic unit of the cadence that completely describes the cadence for any given signal . The value on the left hand side of the slash in column 44 corresponds to the number of seconds that the signal is ON, and the value on the right hand side corresponds to the number of seconds that the signal is OFF. An end of the cycle is represented by an ellipse (...) and an end of a single ON/OFF sequence is represented by a dash (-) .
In conventional call progress detectors such as the detector of Fig. 2, frequencies, such as the center frequency of a Goertzel detector, and cadence patterns which provide knowledge of the shape of the repeating cycle, typically are predefined in the template 32. For example, a frequency detector 31 and the corresponding template 32 may be tuned to filter input signals 16 at a frequency of 1100 Hz. This enables the detection of call progress signals that transmit at 1100 Hz (for example, a fax signal) . Likewise, the cadence detector 30 and template 32 may be configured to search for an ON/OFF pattern of the form A/B... Signals such as the ringing signal or the call waiting signal in the United States obey this pattern.
Figs. 4-6 show graphs of some typical cadence patterns. Fig. 4 shows a general cadence pattern 46 having the form A/B - A/B - ... , where A corresponds to an interval of non-silence and B corresponds to an interval of silence. An example of a cadence pattern having the form of Fig. 4 is the ringing signal in Sweden, which has a frequency of 425 Hz and an ON/OFF pattern (in units of seconds) given by 1.0/5.0 - 1.0/5.0...
Fig. 5 shows a general cadence pattern 48 having the form A/B/A/C/ - A/B/A/C - ... , where A corresponds to intervals of non-silence and B and C correspond to silence intervals of different durations. Fig. 6 shows a pattern 50 having the form A/B/C/D -
A/B/C/D -..., where A and C correspond to non-silence intervals of different durations and B and D correspond silence intervals of different durations.
In the context of worldwide telephony signals, the number of available frequencies and types of cadence patterns are considerable. Furthermore, under certain circumstances a call progress detector may not be able to distinguish call progress signals based solely on the outputs of the frequency detector 31, cadence detector 30, and template 32. For example, the call progress detector 21 may detect that a certain input signal has the cadence pattern A/B - A/B - ... However, as mentioned above, both the ringing signal and the call waiting signal in the United States obey this cadence pattern. Consequently, call progress status based on this information alone is indeterminate, and the call progress detector 21 would require additional information to determine call progress.
Furthermore, many types of cadence patterns (for example, the ringing cadence for Kenya) are particularly complex and atypical and/or are used only in a fraction of countries and networks. However, storage and detection of frequencies and cadence patterns are computationally expensive tasks. Consequently, existing call progress detectors use templates 32 that typically store only some subset of all available cadence patterns and frequencies and use a finite number of frequency detectors 31. Therefore, existing call progress detectors 21 typically are limited to certain countries and/or networks.
Summary Implementations of the invention may include various combinations of the following features. In one general aspect, a method of identifying call progress in a telephony network is described. The method includes determining frequency components of an audio signal on the network and estimating one or more parameters of the audio signal. The method further includes attempting to determine call progress based on a comparison between the estimated parameters and a parameter library that includes predetermined parameter values. If the attempt to determine call progress fails, the method includes attempting to determine call progress based on a comparison between the estimated parameters and predetermined telecommunications rules .
Embodiments may include one or more of the following features .
The method may further include estimating a power of the audio signal based on the frequency components. The power estimation may occur in a frequency range from about 250 Hz to 625 Hz. A parameter may correspond to a level that is a measure of the estimated power. The level may have a high value if the estimated power of the audio signal is greater than a predetermined value. Likewise, the level may have a low value if the estimated power is less than or equal to the predetermined value . A parameter may correspond to a period of a cadence that is based on one or more levels. Additionally, the parameter library may include predetermined cadence periods. Estimating the period of the cadence may include measuring high intervals corresponding to durations of one or more consecutive high values and measuring low intervals corresponding to durations of one or more consecutive high values. Estimating the period of the cadence may further include excluding durations that are shorter than a predefined duration. Furthermore, the cadence period may be a minimum number of high and low intervals that form a repeating pattern of intervals.
The parameter may correspond to an interval duration of the cadence and the parameter library may include predetermined cadence interval durations. Attempting to determine call progress based on the comparison between the estimated parameters and the parameter library may include classifying the period J the cadence based on a comparison between the estimated cadence period and the predetermined cadence periods in the parameter library. Attempting to determine call progress based on the comparison between the estimated parameters and the parameter library may further include classifying the cadence based on a comparison between the estimated cadence interval durations and the predetermined interval durations in the parameter library.
Attempting to determine call progress based on the comparison between the estimated parameters and predetermined telecommunications rules may include classifying the period of the cadence based on a comparison between the estimated cadence period and the predetermined telecommunications rules. Attempting to determine call progress based on the comparison between the estimated parameters and predetermined telecommunications rules may further include classifying the cadence based on a comparison between the estimated cadence interval durations and the predetermined telecommunications rules .
The predetermined telecommunications rules may be consistent with International Telecommunication Union standards .
The parameter may correspond to one of three maximum frequency components of the audio signal . The parameter library may correspond to predetermined single-frequency and ulti- frequency tones. The maximum frequency component estimation may occur in a frequency range from about 300 Hz to 4000 Hz.
Additionally, the method may include attempting to determine call progress based on classification of the audio signal as a single-frequency tone, a double- frequency tone, or a multi-frequency tone. The classification may depend on three estimated maximum frequency components.
The method may further include attempting to determine call progress based on identifying a presence of a voice in the audio signal. Identifying may be based on averaged estimates and fuzzy logic analysis of the frequency components .
The parameter library may be based on a complete frequency spectrum of the audio signal over a range of frequencies.
The methods, techniques, and systems described here may provide one or more of the following advantages. The invention may provide a universal call progress detector because both international rules and libraries are used to determine call progress. Additionally, because cadence periods and interval durations and maximum frequency components, as opposed to cadence patterns and filtered frequency components, are estimated, the invention may provide for greater versatility, efficiency, and universality.
Other advantages and features will become apparent from the detailed description, drawings, and claims.
Drawing Descriptions Fig. 1 is a block diagram of a detector that can be used for detection of call progress in a telephony network. Fig. 2 is a block diagram showing elements of an existing call progress detector.
Fig. 3 is a chart of common call progress signals recommended by the International Telecommunication Union (ITU) for the corresponding listed countries.
Figs. 4-6 are graphs of some cadence patterns that may be found in a call progress signal.
Fig. 7 is a block diagram showing elements of a call progress detector that uses ITU rules, libraries, and a cadence detector to determine call progress.
Fig. 8 is a flowchart illustrating the call progress classification of Fig. 7.
Like reference numerals in the various figures indicate like elements.
Detailed Description In general, conventional call progress detectors such as the call progress detector 21 of Fig. 2 are computationally expensive (that is, they require more computational energy to perform their tasks) because the center frequencies and cadence patterns to be used must be predefined. Furthermore, the call progress detector 21 may lack high accuracy because the detector 21 must function to conserve computational energy. For example, the detector 21 stores only a finite number of cadence patterns and frequencies and uses a finite number of frequency detectors and therefore may fail to determine call progress under certain circumstances.
In contrast, a call progress detector that detects frequencies and cadences without requiring preliminary knowledge of frequencies and cadence patterns can determine call progress with improved accuracy and reduced computational expense. Furthermore, a call progress detector that uses both a rules engine (for example, based on ITU recommendation E.180) and user-defined libraries to compare detected cadences and frequencies with known values can determine call progress with improved accuracy and greater simplicity.
Fig. 7 illustrates a block diagram of such a call progress detector 70 that detects frequencies and cadences using ITU rules and user-defined libraries. The call progress detector 70 is able to determine cadences and frequencies without preliminary knowledge of the types of cadences and frequencies . A digital audio signal x(n) 16 serves as an input for the call progress detector 70, where n is an index of time. The digital signal 16 is provided to a block 72 which performs a fast Fourier transform (FFT) on accumulated incoming samples x(n) every 10 ms . Output of the FFT block 72 at frequency . is a frequency-domain representation Y( J of the incoming audio signal x(n), where 1 is (2 / ) i , i is a frequency index, and is a length of a fetch which is used to compute the FFT. Output of the FFT block 72 is fed to several blocks -- power estimator 74, voice detector 86, maximum components estimator 88, and channel signal analyzer 98 -- of the call progress detector 70. The power estimator 74 estimates a total power Ptot of the signal in a frequency range [250, 625] Hz:
«w= ∑ \ Y(ω,) \ 1
(0,<=[250,625]Hz where |Y( I is the absolute value of the frequency component Y( .) at the frequency x . Other frequency ranges that provide target results may be employed in the power estimator 74. The power estimator 74 compares Ptot to a predefined threshold Tl and sets a binary level for the signal based on this comparison. If Ptot exceeds Tl, the level is set to high or 1 , if Ptot does not exceed Tl, the level is set to low or 0. Output of the power estimator 74 is therefore a sequence of the binary values, 0 and 1. A level detector 76 measures a duration of each interval corresponding to repeating l's and 0's that are output from the power estimator 74. The binary levels (1 or 0) can then be represented as a function f (k) of discrete intervals k, where k index'"- the intervals. Additionally, the level detector 76 filters out clicks by eliminating intervals of l's and 0's that are shorter than a predefined interval duration threshold T2.
Repeating sequences or patterns of nonsilence and silence intervals are referred to as cadences of the signal. Each cadence may be represented by the function f (k) which has the following property: f(k + N) = f(k), 2 where N equals the period of the cadence. The index N therefore represents a minimum number of high/low intervals that satisfies Eqn. 2. Figs. 4-6 show graphs of level detector 76 output for audio signals that have a cadence -- the level (nonsilence or silence) f (k) is plotted versus time in units of time index n and interval durations are represented by capital letters A, B, C, and D. Cadences, or repeating sequences of nonsilence and silence, occur in audio signals such as the ringing or busy signal and these cadences are used to distinguish different call progress signals.
For example, in Fig. 4, the repeating sequence A/B - A/B -... has a period of N = 2 because f (k+2) = f (k) . In
Fig. 5, the repeating sequence A/B/A/C/ - A/B/A/C/ -... has a period of N = 4 , because f (k+4) = f (k) . In Fig. 6, the repeating sequence A/B/C/D/ - A/B/C/D/ - ... has a period of N = 4, therefore f(k+4) = f (k) . Output of the level detector 76 -- for example, interval durations A, B, C, and D -- is fed to a classifier 78 that performs various tasks to analyze the signal (and will be discussed in detail later) and report call progress. Additionally, level detector output is fed to a cadence detector 80 that determines the period of the cadence -- that is, the value of N -- for the signal. Once the cadence detector 80 determines N, it defines the cadence by the last N high/low intervals. The detected cadence period is reported to the classifier 78 and a cadence comparator 82 which compares the detected cadence period with user-defined cadence periods in a cadence library 84. Results of the comparison from the cadence comparator 82 are also reported to the classifier 78.
A voice detector 86 identifies a presence of a voice in the input signal 16. The voice detector 86 uses several frequency-domain averaged features and employs fuzzy logic for making the voice detection decision. The voice detector 86 is described in detail in the patent application entitled "Voice Detection in Audio Signals," U.S. Serial No. 09/299,631, filed on April 27, 1999, and incorporated herein by reference. Output of the voice detector 86 is a binary decision -- 1 for voice present and 0 for no voice present. This decision is provided to the classifier 78 which uses it to analyze the call progress.
A maximum estimator 88 determines three maximum frequency components of the output, that is, Ymax ( , of the FFT block 72 in the frequency range . e [300,4000] Hz. The maximum estimator 88 may use other frequency ranges that give preferred results. The maximum estimator 88 uses this information to classify the input signal 16 as a single- frequency tone (such as a fax tone) , a double-frequency tone (such as a dual tone multifrequency, DTMF, tone) , or a multi- frequency tone (such as a special -information tone like operator interrupt) . If the signal is classified as a single-frequency or double-frequency tone, a spectrum interpolator 90 is used to estimate the complete frequency spectrum and frequencies 1 that correspond to the maximum frequency components, Ymax ( .) , of the tones. The tones are fed to a tone comparator 92 which compares the identified tones with user-defined tones in a tone signal library 94. If a match occurs, then the results from the tone comparator 92 are reported and used to determine call progress. Output of the tone comparator 92 is therefore fed to the classifier 78 which can report the call progress. The classifier 78 also receives a set of rules 96 based on the ITU recommendation E.180.
For example, a fax tone or CNG tone has a frequency of 1100 Hz and lasts about 0.5 seconds and repeats every 3.5 seconds. Because the frequency, 1100 Hz, lies outside the power estimator 74 range of [250, 625] Hz, the fax tone is detected by the maximum estimator 88 and classified using the tone comparator 92. As another example, a DTMF tone comprises one high frequency tone and one low frequency tone selected from eight tones. Of these eight, the first four tones (697, 770, 852, and 941 Hz) represent the low- frequency group and the second four tones (1209, 1336, 1477, and 1633 Hz) represent the high-frequency group. Again, because these ranges lie outside the power estimator 74 range of [250, 625] Hz, the DTMF tone is detected by the maximum estimator 88 and classified using the tone comparator 92. Call progress signals such as the busy signal in the U.S. (which is a double-frequency tone of 480 Hz and 620 Hz) could, in principal, be reported by the tone comparator 92. However, in practice, the call progress detector 70 can more efficiently determine such signals using the cadence detector 80 and not the tone comparator 92.
Fig. 8 is a flowchart illustrating operation of the classifier 78 that analyzes signals from the level detector 76, cadence detector 80, cadence comparator 82, voice detector 86, tone comparator 92, and rules set 96. The classifier 78 uses the information from these input signals to report a call progress result (step 100) such as a ringing or busy signal .
The classifier 78 continually receives output from the voice detector 86 and determines if a voice is present on the telephony network (step 102) . If a voice is present, the classifier 78 reports this status of the telephone line in the network (step 100) .
In parallel with voice determination (step 102), the classifier 78 receives output from the tone comparator 92 and determines if a single- or multi-frequency tone is present on the telephony network (step 104) . If the classifier 78 determines that the tone comparator 92 classified the tone using the comparison between output of the spectrum interpolator 90 and the tone library, then the classifier 78 reports that classification as the call progress (step 100) . In parallel with both voice determination (step 102) and tone determination (step 104) , the classifier 78 receives output from the level detector 76, rules set 96, cadence detector 80, and cadence comparator 82 to determine a cadence of the signal . Using the output from the cadence comparator 82, the classifier first determines if N has been classified using the cadence periods in the cadence library 84 (step 106) . If N has been classified by the cadence comparator 82, then the classifier uses information (such as interval durations A, B, C, and D in Fig. 5) from the level detector 76 to completely classify the cadence (step 108) . The classifier compares cadence interval durations with predetermined interval durations of the cadence period in the cadence library 84. For example, in Fig. 5, interval k=2 has a duration A of n=50, interval k=3 has a duration B of n=100, interval k=4 has a duration A of n=50, and interval k=5 has a duration C of n=50. Using this combined information, the classifier 78 can report call progress (step 100) .
If, at step 106, the classifier 78 determines that N has not been classified by the cadence comparator 82, then the classifier 78 uses the rules set 96 to classify the cadence period N (step 110) . Once N is classified at step 110, the classifier 78 then uses information (such as interval durations A, B, C, and D in Fig. 5) from the level detector 76 to completely classify the cadence (step 108) . The classifier 78 compares cadence interval durations with predetermined durations in the rules set 96. The classifier 78 may then report call progress (step 100) .
For example, the ringing signal from Sweden (shown in Fig. 3) has a frequency of 425 Hz and a cadence period of 2 intervals -- with a high level interval duration of 1.0 sec and a low level interval duration of 5.0 sec. Because the call progress detector 70 operates most efficiently by determining cadences of signals in the frequency range [250, 625] Hz, the tone comparator 90 is configured to ignore the ringing tone from Sweden; and the cadence detector 80 detects the cadence period of N=2. The cadence comparator 82 compares this period with periods from the cadence library 84 to classify N. Thus, at step 106, the classifier 78 determines that the cadence comparator 82 has classified N to be the value 2. The classifier 78 may then use information about durations of intervals (from level detector 76) in this signal -- namely, A=l .0 sec and B=5.0 sec -- to compare to predetermined interval durations in the cadence library 84 to completely classify the cadence at step 108 and report call progress at step 100.
If, during initial setup of the call progress detector 70, the cadence comparator 82 does not succeed in classifying detected cadence, then a technician can run a channel signal analyzer 98 which reports parameters of the input signal 16 and a complete frequency spectrum. The information from the channel signal analyzer 98 is used to establish periods, interval durations, and tone frequencies for cadence and tone signals libraries 84, 94. Thus, the channel signal analyzer 98 is a diagnostic tool for adjusting the call progress detector 70 as needed for different applications. As such, during normal operation of the call progress detector 70, the channel signal analyzer 98 need not operate.
The systems and techniques described here may be used to identify call progress in any telephony network. For example, a computer telephony network is designed to make telephone calling easier and provide extra services for corporate customers. Therefore, the call progress detector 70 may be used in computer telephony applications such as an interactive telephone transactions or call handling to improve application efficiency and accuracy.
These systems and techniques may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in various combinations thereof.
Apparatus embodying these techniques may include appropriate input and output devices, a computer processor, and a computer program product tangibly embodied in a machine- readable storage device for execution by a programmable processor.
A process embodying these techniques may be performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output. The techniques may be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
Each computer program may be implemented in a high- level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language may be compiled or interpreted language . Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application- specific integrated circuits) .
Other embodiments are within the scope of the following claims.
What is claimed is:

Claims

1. A method of identifying call progress in a telephony network, the method comprising: determining frequency components of an audio signal on the network; estimating one or more parameters of the audio signal; attempting to determine the call progress based on a comparison between the estimated parameters and a parameter library that comprises predetermined parameter values; and if the attempt to determine the call progress fails, attempting to determine the call progress based on a comparison between the estimated parameters and predetermined telecommunications rules.
2. The method of claim 1, further comprising estimating a power of the audio signal based on the frequency components .
3. The method of claim 2, in which the power estimation occurs in a frequency range from about 250 Hz to 625 Hz.
4. The method of claim 2, in which a parameter corresponds to a level that is a measure of the estimated power .
5. The method of claim 4, in which the level has a high value if the estimated power of the audio signal is greater than a predetermined value and the level has a low value if the estimated power is less than or equal to the predetermined value .
6. The method of claim 5, in which a parameter corresponds to a period of a cadence that is based on one or more levels and the parameter library comprises predetermined cadence periods .
7. The method of claim 6, in which estimating the period of a cadence of the audio signal comprises: measuring high intervals corresponding to durations of one or more consecutive high values; and measuring low intervals corresponding to durations of one or more consecutive high values.
8. The method of claim 7, in which estimating the period of the cadence further comprises excluding durations that are shorter than a predefined duration.
9. The method of claim 7, in which the cadence period is a minimum number of high and low intervals that form a repeating pattern of intervals .
10. The method of claim 9, in which a parameter corresponds to an interval duration of the cadence and the parameter library comprises predetermined cadence interval durations.
11. The method of claim 10, in which attempting to determine call progress based on the comparison between the estimated parameters and the parameter library comprises: classifying the period of the cadence based on a comparison between the estimated cadence period and the predetermined cadence periods in the parameter library; and classifying the cadence based on a comparison between the estimated cadence interval durations and the predetermined interval durations in the parameter library.
12. The method of claim 11, in which attempting to determine call progress based on the comparison between the estimated parameters and predetermined telecommunications rules comprises: classifying the period of the cadence based on a comparison between the estimated cadence period and the predetermined telecommunications rules; and classifying the cadence based on a comparison between the estimated cadence interval durations and the predetermined telecommunications rules.
13. The method of claim 1, in which the predetermined telecommunications rules are consistent with International Telecommunication Union standards.
14. The method of claim 1, in which the parameter corresponds to one of three maximum frequency components of the audio signal and the parameter library comprises predetermined single-frequency and multi-frequency tones.
15. The method of claim 14 , in which maximum frequency component estimation occurs in a frequency range from about 300 Hz to 4000 Hz.
16. The method of claim 1, further comprising attempting to determine the call progress based on classification of the audio signal as a single-frequency tone, a double-frequency tone, or a multi-frequency tone.
17. The method of claim 16, in which the classification depends on three estimated maximum frequency components .
18. The method of claim 1, further comprising attempting to determine the call progress based on identifying a presence of a voice in the audio signal .
19. The method of claim 18, in which identifying is based on averaged estimates and fuzzy logic analysis of the sampled frequency components.
20. The method of claim 1, further comprising building the parameter library using parameters of the audio signal and a complete frequency spectrum over a range of frequencies of the audio signal.
21. A method of identifying call progress in a telephony network, the method comprising: estimating a power of an audio signal on the network; determining a period of a cadence in the audio signal based on the estimated power; and attempting to determine the call progress based on the determined period of the cadence .
22. The method of claim 21, in which the estimated power is based on frequency components of the audio signal.
23. The method of claim 22, in which power estimation occurs in a frequency range from about 250 Hz to 625 Hz.
24. The method of claim 21, in which determining the period of the cadence is based on estimating one or more levels.
25. The method of claim 22, in which the level has a high value if the estimated power is greater than a predetermined value and the level has a low value if the estimated power is less than or equal to the predetermined value .
26. The method of claim 25, in which determining the period of the cadence comprises: measuring high intervals corresponding to durations of one or more consecutive high values; measuring low intervals corresponding to durations of one or more consecutive low values; and defining the period to correspond to a minimum number of high and low intervals that form a repeating pattern of intervals.
27. The method of claim 26, in which determining the period of the cadence comprises excluding durations that are shorter than a minimum number of consecutive values.
28. The method of claim 26, further comprising attempting to determine the call progress based on the cadence interval durations.
29. The method of claim 26, further comprising attempting to determine the call progress based on a comparison between the estimated cadence period and a library of cadence periods.
30. The method of claim 29, in which the cadence period library is based on a complete frequency spectrum over a range of frequencies.
31. The method of claim 29, further comprising attempting to determine the call progress based on a comparison between the estimated cadence period and predetermined telecommunications rules.
32. The method of claim 21, further comprising attempting to determine the call progress based on an estimation of three maximum frequency components of the audio signal .
33. The method of claim 21, further comprising attempting to determine call progress based on identifying a presence of a voice in the audio signal .
34. The method of claim 33, in which identifying the presence of the voice is based on averaged estimates and fuzzy logic analysis of the sampled frequency components.
35. A universal call progress detector used in a telephony network, the detector comprising: a power estimator that estimates a power of an audio signal in the telephony network based on frequency components of the audio signal; a cadence detector that estimates a period of a cadence in the audio signal based on output of the power estimator; a cadence comparator that compares the estimated cadence period to cadence periods in a cadence library,- and a classifier that compares the estimated cadence period to predetermined telecommunications rules to determine call progress.
36. A universal call progress detector used in a telephony network, the detector comprising: a power estimator that estimates a power of an audio signal in the telephony network based on frequency components of the audio signal; a cadence detector that estimates a period of a cadence in the audio signal based on output of the power estimator; and a classifier that compares the estimated cadence period and predetermined cadence periods to determine call progress.
37. A universal call progress detector used in a telephony network, the detector comprising: a power estimator that estimates a power of an audio signal in the telephony network based on frequency components of the audio signal; a level detector that estimates levels of the audio signal based on the estimated power; a cadence detector that estimates a period of a cadence in the audio signal based on output of the level detector; a cadence comparator that compares the estimated cadence period to predetermined cadence periods; and a classifier that compares the estimated cadence period to predetermined telecommunications rules, and receives input from the cadence comparator, the cadence detector, the level detector, a voice detector, and a tone detector to classify the call progress.
38. Computer software, stored on a computer- readable medium, for identifying call progress in a telephony network, the software comprising instructions for causing a computer system to perform the following operations: determine frequency components of an audio signal on the network; estimate one or more parameters of the audio signal based on the frequency components; attempt to determine the call progress based on a comparison between the estimated parameters and a parameter library; and if attempt to determine the call progress fails, attempt to determine the call progress based on a comparison between the estimated parameters and predetermined telecommunications rules.
39. Computer software, stored on a computer- readable medium, for identifying call progress in a telephony network, the software comprising ins ructions for causing a computer system to perform the following operations: estimate a power of an audio signal on the network; determine a period of a cadence in the audio signal based on the estimated power; and classify the call progress based on the determined period of the cadence.
PCT/US2000/013509 1999-06-02 2000-05-18 Call progress detection WO2000074351A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU51383/00A AU5138300A (en) 1999-06-02 2000-05-18 Call progress detection

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US32393399A 1999-06-02 1999-06-02
US09/323,933 1999-06-02

Publications (2)

Publication Number Publication Date
WO2000074351A2 true WO2000074351A2 (en) 2000-12-07
WO2000074351A3 WO2000074351A3 (en) 2001-09-13

Family

ID=23261331

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/013509 WO2000074351A2 (en) 1999-06-02 2000-05-18 Call progress detection

Country Status (2)

Country Link
AU (1) AU5138300A (en)
WO (1) WO2000074351A2 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0575725A2 (en) * 1992-05-26 1993-12-29 Vmx Inc. Adaptive signal detection process for the evaluation of multifrequency coded signals
WO1996013130A2 (en) * 1994-10-17 1996-05-02 Excel, Inc. Universal call progress analysis system
US5521967A (en) * 1990-04-24 1996-05-28 The Telephone Connection, Inc. Method for monitoring telephone call progress
US5787164A (en) * 1996-08-12 1998-07-28 Ellipsys Technologies, Inc. Switched network call progress protocol analyzer
WO1999057870A1 (en) * 1998-05-06 1999-11-11 Siemens Information And Communication Networks, Inc. Adaptive call progress tone detection system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5521967A (en) * 1990-04-24 1996-05-28 The Telephone Connection, Inc. Method for monitoring telephone call progress
EP0575725A2 (en) * 1992-05-26 1993-12-29 Vmx Inc. Adaptive signal detection process for the evaluation of multifrequency coded signals
WO1996013130A2 (en) * 1994-10-17 1996-05-02 Excel, Inc. Universal call progress analysis system
US5787164A (en) * 1996-08-12 1998-07-28 Ellipsys Technologies, Inc. Switched network call progress protocol analyzer
WO1999057870A1 (en) * 1998-05-06 1999-11-11 Siemens Information And Communication Networks, Inc. Adaptive call progress tone detection system

Also Published As

Publication number Publication date
AU5138300A (en) 2000-12-18
WO2000074351A3 (en) 2001-09-13

Similar Documents

Publication Publication Date Title
US5533118A (en) Voice activity detection method and apparatus using the same
US6321194B1 (en) Voice detection in audio signals
US5325427A (en) Apparatus and robust method for detecting tones
US5023906A (en) Method for monitoring telephone call progress
US4696031A (en) Signal detection and discrimination using waveform peak factor
US6940966B2 (en) Method and apparatus for detection of a telephone CPE alerting signal
JPH06153244A (en) Method and apparatus for discrimination frequency signal existing in plurality of single-frequency signals
US5070526A (en) Signal analyzing system
US6711540B1 (en) Tone detector with noise detection and dynamic thresholding for robust performance
EP0663783B1 (en) Disconnect signalling detection arrangement
US5479501A (en) Far-end disconnect detector for telephony systems
WO2009111957A1 (en) A method and corresponding device for detecting line status, and a predictive outbound dialing system
US5970447A (en) Detection of tonal signals
US5255340A (en) Method for detecting voice presence on a communication line
JP2728232B2 (en) Tone detection method and call progress method
US5311575A (en) Telephone signal classification and phone message delivery method and system
WO2000074351A2 (en) Call progress detection
US6748059B2 (en) Apparatus and method for unified tone detection
US7054435B2 (en) Apparatus and method for determining a minimal time bound for performing tone detection
JP2621241B2 (en) Call signal identification method
KR100556494B1 (en) Method for detecting conversation disconnection signal
JPH05130197A (en) Hook-off detector for terminal equipment connecting to telephone line

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP