Server User Guides > Interviewer - Server > Interviewing Options > Dialer settings > Configuring answering machine detection
 
Configuring answering machine detection
IBM SPSS Dialer supports a simple answering machine detection (AMD) that can be useful when dialing residential numbers. It is based on the observation that human greetings are usually short, whereas answering machine messages are long. When an auto-dialed participant record is dialed, and IBM SPSS Dialer detects that an answering machine picked up the call, the call is automatically ended with the Answering Machine call outcome when the UNICOM Intelligence Interviewer - Server Admin is properly configured to support the feature. Answering machine detection is currently configured through the DPM Explorer tool.
When answering machine filtering is in effect (amd=1), calls are only connected to an interviewer if the greeting is shorter than max. All other calls are dispositioned as answering machines and hung-up by the dialer. The dialer can optionally play a sound file (amfile) to the answering machine.
A DSP listens for the greeting. The DSP asserts voice when the received audio signal raises above a threshold (db, dBm, decibels relative to 1 mW power). Start-of-voice also starts timer max.
If the DSP asserts end-of-voice before timer max expires, the call is connected to an interviewer. Since the interviewer does not hear the respondent’s greeting, the dialer plays a distinct beep WBeep that informs the interviewer to start talking.
If timer max expires before end-of-voice is asserted, the dialer dispositions “Answering machine”:
– If no amfile is specified, the dialer hangs up the call.
– Otherwise the dialer awaits end-of-voice before playing amfile.
The dialing algorithm proceeds in dialing further calls, without waiting for the playback to complete.
Notes
This section assumes that you have a working knowledge of DPM Explorer. For more information, see DPM Explorer.
Simple answering machine detection is not suitable when dialing business numbers with long greetings, mobile numbers with loud background noise, or persons who might be slow in answering the phone.
To configure answering machine detection
1 Start DPM Explorer:
Code\Tools\VB.NET\DPM Explorer.Net\DPMExplorer.exe
2 Create the following properties under Site > Properties > DefaultCatiProjectProperties:
AmdMode
The answering machine detection mode. Possible values include: Disabled, Filtering, and Calibration.
AmdParameters
The answering machine detection parameters. All of the optional parameters (off, max, on, db, and so on) are encapsulated in this property. For example, max:4.5,on:11(using commas as the delimiter).
AmFile
The name of the sound file to play for an answering machine, including the pathname (relative to AudioDir on the IBM SPSS Dialer). You are not required to provide a value for this setting.
This graphic is described in the surrounding text.
3 Exit DPM Explorer.
The answering machine detection properties affect all new projects. When an auto-dialed participant record is dialed, and a dialer detects that an answering machine picked up the call, the call automatically ends with the Answering Machine call outcome.
Existing projects
For existing projects, add the answering machine detection properties to each project: Projects > <ProjectName> > mrInterview.
False positives
False positives are humans that were misinterpreted as answering machines, in which case the dialer hangs up the call, or plays the amfile. The main causes of false positives are:
The human speaks a long greeting (> max). This typically happens when reaching a business number. If an amfile file is specified, the respondent will hear it.
The human has loud background noise (permanently above the db threshold). This typically occurs with car phones. The playback of amfile starts when the AMD algorithm has waited for end-of-greeting for off seconds. However, this timer needs to be longer than the longest AM greeting (~30 seconds), so it is unlikely that the respondent will wait long enough to hear amfile.
Humans can also be misinterpreted as “No audio”. This occurs when:
There is no audio connection (for example, because the battery in the respondent’s phone is running low). After on seconds without start-of-voice, the dialer hangs up (call outcome: No audio).
The human picks up the phone but does not start speaking immediately (for example, the respondent is busy, or due to a disability). After on seconds, the dialer hangs up.
The greeting was spoken very softly (below the db threshold). Usually the respondent speaks up louder, but if the voice is not raised the dialer hangs up after on seconds. The dialer plays the amfile to “No audio” numbers unless the setting is disabled by option cp:-S (hangup immediately if silence).
Qualification timers
Spoken words contains short gaps in the audio due to articulation. The dialer ignores gaps that are shorter than a qualification timer qoff; that is, the end-of-voice is asserted when qoff expires.
The dialer utilizes two qualification timers:
qoff, for humans, determines when a call is connected to an interviewer. The settings should be short (<0.8 seconds); otherwise the respondent might become impatient and hang up. However, a qoff that is too short causes many false negatives because the timer fails to bridge well-articulated greetings.
qam, for answering machines, determines when amfile is played. It should be long (>2 seconds), otherwise the playback might start before the answering machine is ready to record it.
Calibration mode
Calibration mode is a means to determine the optimum AMD parameters. In calibration mode, all calls are connected to interviewers (just as when AMD is disabled). The AMD measures the duration of the respondent’s initial greeting. During this phase, the interviewer can hear the respondent, but cannot talk. When the AMD measurement is finished (end-of-voice), the interviewer hears a short beep (WBeep) and audio is connected in both directions.
In cases of long initial silence (longer than coff seconds) or persistent voice (longer than con seconds), the AMD measurement is aborted and audio is connected in both directions. This makes it possible to try out different values of db and qoff without losing the contacts.
The greet time measured by AMD is sent to the application and recorded in call.log. To determine the reliability of a given max setting for the AMD call dispositions, make a frequency distribution of the call outcomes according to the following table:
Interviewer’s disposition
AMD reported greet value
 
greet = 0
greet ≤ max
greet > max
Human (proceed, appointment, refusal, and so on)
False positive? [1]
Correct (human)
False positive
Answering machine
Semi-correct (AM) [2]
False negative
Correct (AM)
[1] greet=0 can be an artifact from using a too small coff value, such that the AMD measurement was abandoned before the greeting started.
[2] greet=0 starts playback of amfile, but possibly too early, before the answering machine is ready to record it.
Summary of AMD modes and parameters
Syntax
mode , param1 : value , param2 : value2...
Example
amd = 1,qoff:0.40,log:1
Mode values
0
Meaning: Disabled
No AMD analysis (but the Call Progress parameter cp is used).
1
Meaning: Filtering
Only “live” calls are through-connected to an interviewer; otherwise the amfile is played.
2
Meaning: Calibration
Calls are connected in listen-only mode during AMD analysis; the result is reported in greet.
Parameter values
Name
Default
Unit
Description
Action if exceeded
Applies to
off
6.0
seconds
Max silence at start of call
Hangup QSAMP_NO_AUDIO
Filtering
coff
4.5
seconds
Max silence at start of call
Connect two-way audio
Calibration
max
1.15
seconds
Max greeting from human [1]
Hangup QSAMP_ANSMC
Filtering
on
60.0
seconds
Max greeting from AM
Play amfile to AM
Filtering
con
3.0
seconds
Max greeting measured
Connect two-way audio
Calibration
qoff
0.35
seconds
Qualification timer for end of voice [2]
Connect QSAMP_CONNECTED
Both
qam
2.9
seconds
Qualification timer for starting playback
Play amfile
Filtering
db
-34.0
dBm
Silence threshold (range -46 to -34 dBm) [3]
Start max timer
Both
log
0
0 or 1
If =1, report greet and silence times (milliseconds) in call.log [4]
 
Both
cp
 
 
Override dialer.ini call progress analysis completion criteria CpComplete [5]
 
All
[1] max recommended range from 0.9 seconds (aggressive, many false positives) to 2.1 seconds (conservative, many false negatives).
[2] qoff recommended range from 0.3 seconds (many false negatives) to 1.1 (detects most AM, but connects humans very slowly to an interviewer).
[3] db should be high (insensitive) to avoid detecting people in noisy environments as answering machines (false positives).
[4] log times are measured on the dialer PC and can differ slightly from the greet times measured by the DSP.
[4] log times are measured on the dialer PC and can differ slightly from the greet times measured by the DSP.
[5] cp should normally not be applied for AMD; the only relevant parameter is cp:-S. If persistent silence is detected, hangup call without playing amfile.
AMD parameter for call progress analysis
The cp parameter specifies the actions to take when detecting call progress tones, overriding the default call progress analysis completion criteria CpComplete in the dialer.ini file. Application areas:
Calling countries with non-standard ringback or “number unobtainable” tones.
Calling networks that announce tariff information at the start of the call.
Calling subscribers with personalized ringback tones (music or announcements).
In order to achieve special effects, such as recording of in-band announcements.
Syntax
cp: actionID event... [ actionID event... ] ...
Default
cp:-b-c-d-f!r:t:v-B-C+D-F-T
Examples
cp:=vea
Ignore pre-CONNECT voice events (for instance, personalized ringback tones).
cp:*t*v
Record recfile when detecting tritone or start-of-voice (until stopped by noansw timeout).
cp:+v
Connect to extension when detecting start-of-voice.
Call progress events
Each event is identified by a letter; pre-CONNECT events in lower case, post-CONNECT in upper case. Each letter or group of letters is preceded by an action identifier (see the legend below the table). The post-CONNECT events are only detected in AMD filtering or calibration mode (amd=1 or amd=2).
 
Default
 
 
pre
post
Call outcome if action is ‘-’ or ‘:’
Call progress event
connect
Dialer
Interviewer Phone
Quancept
d
Dial tone (steady tone for >3 s)
-d
+D
QSAMP_BADNUMBER
QSAMP_BUSY
d_badsyn
r
Ringback pulse (duration 1.5 - 3 s)
!r
=R
QSAMP_RINGING
n/a (see note 1)
d_error (see note 2)
q
End of ringback (no pulse for >8 s)
=q
=Q
QSAMP_NOANSW
coNoAnswer
d_na
b
Busy tone (cadence or “precise” tone: see note 3)
-b
-B
QSAMP_BUSY
coBusy
d_busy
c
Congested / reorder tone (cadence)
-c
-C
QSAMP_FASTBUSY
coFastBusy
d_sitout
t
Tritone (Special Information Tone)
:t
-T
QSAMP_TRITONE
coTriTone
d_sitout
f
Fax/modem tone
-f
-F
QSAMP_MODEM
coFaxModem
d_modem
v
Start of voice (diffuse energy above db dBm)
:v
=V
QSAMP_ANNOUNCEMT
coAnnouncement
d_sitout
e
End of voice (for qoff seconds)
=e
=E
QSAMP_ANNOUNCEMT
coAnnouncement
d_sitout
a
Voice for more than max seconds
=a
=A
QSAMP_ANNOUNCEMT
coAnnouncement
d_sitout
s
Silence; no voice for off seconds (see note 4)
n/a
=S
QSAMP_ANNOUNCEMT
coNoAudio
d_error (see note 2)
w
Call waiting, ignore voice events (see note 5)
=w
=W
QSAMP_BUSY
coBusy
d_busy
1 Call outcome QSAMP_RINGING does not map to a supported CallOutcome in Interviewer Phone 5.6.
2 Call outcomes can be mapped to other tipcode values in section [qsamp map] in the qts-sms.ini file.
3 “Precise” tone means the 480 + 620 Hz busy tone of the North American Precise Audible Tones Plan.
4 Condition S (silence) is only generated in AMD filtering or calibration mode (amd=1 or amd=2).
5 Condition W (waiting) is generated by signaling events with the action announcemt in causes.cfg.
Action identifiers
Identifier
Description
-
Hangup immediately
!
Start noansw timer
:
Hangup if no CONNECT is received within two seconds
^
Stop CP analysis (ends AMD, connecting the extension)
+
Connect to extension even if no CONNECT was received
=
No action (can be used to override default actions)
*
Start recording (for use with recfile option beg:3)
See also
Dialer settings