Page 400 - Asterisk™: The Future of Telephony
P. 400
AMD() Answering machine detection
AMD([initialSilence[,greeting[,afterGreetingSilence[,totalAnalysisTime
[,minimumWordLength[,betweenWordsSilence[,maximumNumberOfWords
[,silenceThreshold]]]]]]]])
This application attempts to detect an answering machine, based on the timing pat-
terns. This application is usually used by outbound calls originated from either call files
or from the Asterisk manager Interface. This application sets AMDSTATUS variable is set
to one of the following, to show what type of call was detected:
MACHINE
The called party is believed to be an answering machine.
HUMAN
The called party is believed to be a human being, and not an answering machine.
NOTSURE
The application was unable to tell whether the called party was a human or an
answering machine.
HANGUP
A hangup occurred during the detection.
The AMD() application also sets a channel variable named AMDCAUSE with the cause that
lead to the conclusion stated in the AMDSTATUS variable. The AMDCAUSE variable will be
set to one of the following values:
TOOLONG-total_time
INITIALSILENCE-silence_duration-initial_silence
HUMAN-silence_duration-after_greeting_silence
MAXWORDS-word_count-maximum_number_of_words
LONGGREETING-voice_duration-greeting
The parameters to this application all help tune it so that it can more effectively tell the
difference between a human and an answering machine. If the parameters are not
passed to this application, Asterisk will read the default values as configured in
amd.conf. The parameters are:
initialSilence
The maximum silence duration before the greeting. If exceeded, then the AMDSTA
TUS variable will be set to MACHINE.
greeting
The maximum length of the greeting. If exceeded, then the AMDSTATUS variable will
set to MACHINE.
afterGreetingSilence
The maximum silence after detecting a greeting. If exceeded, then the AMDSTATUS
variable will be set to MACHINE.
372 | Appendix B: Application Reference