How does answering machine detection work?

Answering machine detection in the digital age is now more art than science. Since almost all answering machines are digital recordings and most phone lines are digital as well, machines can no longer rely on a click or beep/tone to determine if it isan answering machine or not.

Asterisk actually analyzes the message as it is playing trying to determine whether it is more likely a recording or a human being who just picked up the phone.

Below are the 8 keywords that control how answering machine detection is handled along with their default settings. Be careful in changing these as you could cause it to detect no answering machines, or all calls as answering machines: These settings are stored in the amd.conffile which is located in the asterisk area of the machine.


NOTE: Do not change these settings without first discussing the ramifications with Survox support personnel.

Length settings are in in milliseconds. So first instance, the default for initial_silence is 2.5 seconds.


initial_silence = 2500 Maximum silence duration before the greeting.if exceeded then MACHINE
greeting = 1500 Maximum length of a greeting If exceeded then MACHINE
after_greeting_silence = 800 Silence after detecting a greeting.If exceeded then HUMAN
total_analysis_time = 5000 Maximum time allowed for the algorithm to decide on a HUMAN or MACHINE
min_word_length = 100 Minimum duration of Voice to considered as a word
between_words_silence = 50 Minimum duration of silence after a word to consider the audio what follows as a new word
maximum_number_of_words = 3 Maximum number of words in the greeting.if exceeded then MACHINE
silence_threshold = 256 Maximum length of individual silence

NOTE: If a number is marked as an answering machine then Asterisk will report back as to which of the above settings was used to determine if it was an answering machine. However, if a call is marked as a connect, but really was an answering machine, you cannot tell from the logs how to adjust the settings so that it could trap that call properly as an answering machine.

Turing on answering machine detection will definitely increase the time from when the respondent says hello until when that call is connected to an interviewer since the inbound audio has to analyzed. Depending upon how the respondent actually answers the call, this could be a fair amount of time, up to the setting for total analysis time.

The use of answering machine detection is set on a study by study basis in the <studyname>.dial file which is stored in the dialer sub-directory of the control directory. If no <studyname>,.dial file exists, then the shopwide.dial settings are used.