C.9. AMD()
Versucht bei ausgehenden Telefonaten Anrufbeantworter bei der
Gegenstelle zu erkennen (AMD steht für Answering Machine
Detection).
AMD([initialSilence[,greeting[,afterGreetingSilence[,totalAnalysisTime[,minWordLength[,betweenWordsSilence[,maxNumberOfWords[,silenceThreshold]]]]]]]])
Wird z. B. über ein CallFile ein ausgehender Anruf initiiert, so
kann in der aufgerufenen Extension die Applikation
AMD()
benutzt werden, um bei der Gegenstelle einen Anrufbeantworter zu erkennen.
Default-Parameter können in der Datei amd.conf
eingestellt werden.initialSilence- Maximale Länge der Stille vor einer Ansage. Wenn länger, dann wird
${AMDSTATUS}aufMACHINEgesetzt. greeting- Maximale Länge einer Ansage. Wenn länger, dann wird
${AMDSTATUS}aufMACHINEgesetzt. afterGreetingSilence- Maximale Länge der Stille nach der Ansage. Wenn länger, dann wird
${AMDSTATUS}aufHUMANgesetzt. totalAnalysisTime- Maximale Zeit, die der AMD-Algorithmus bekommt, um die Entscheidung
HUMANoderMACHINEzu treffen. minWordsSilence- Die minimale Länge eines Geräusches, um es als Wort zu registrieren.
betweenWordsSilence- Die minimale Länge von Stille nach einem Wort, damit ein neues Wort beginnen kann.
maxNumberOfWords- Maximale Anzahl von Wörtern in der Ansage. Wenn mehr, dann wird
${AMDSTATUS}aufMACHINEgesetzt. silenceThreshold- Schwellenwert der Definition von Stille.
Diese Applikation setzt als Ergebnis die Channel-Variablen
AMDSTATUS und AMDCAUSE.AMDSTATUS kann die folgenden Werte bekommen:MACHINEAuf der Gegenseite ist ein Anrufbeantworter.HUMANAuf der Gegenseite ist ein Mensch.NOTSUREEs kann keine genaue Aussage getroffen werden.HANGUPDie Gegenseite hat aufgelegt.
AMDCAUSE kann die folgenden Werte bekommen:TOOLONG-<%d total_time>INITIALSILENCE-<%d silenceDuration>-<%d initialSilence>HUMAN-<%d silenceDuration>-<%d afterGreetingSilence>MAXWORDS-<%d wordsCount>-<%d maximumNumberOfWords>LONGGREETING-<%d voiceDuration>-<%d greeting>
; Von einem CallFile wird diese Extension aufgerufen:
exten => 10,1,AMD()
exten => 10,n,Goto(Status-${AMDSTATUS})
exten => 10,n(Status-HUMAN),Playback(spam)
exten => 10,n,Hangup()
exten => 10,n(Status-MACHINE),Hangup()
exten => 10,n(Status-NOTSURE),Hangup()
exten => 10,n(Status-HANGUP),Hangup()
Asterisk-Versionen:
| | | 1.4 |————————| 1.6 |————————
Interner Hilfetext zu dieser Applikation in Asterisk 1.4:
-= Info about application 'AMD' =-
[Synopsis]
Attempts to detect answering machines
[Description]
AMD([initialSilence][|greeting][|afterGreetingSilence][|totalAnalysisTime]
[|minimumWordLength][|betweenWordsSilence][|maximumNumberOfWords]
[|silenceThreshold])
This application attempts to detect answering machines at the beginning
of outbound calls. Simply call this application after the call
has been answered (outbound only, of course).
When loaded, AMD reads amd.conf and uses the parameters specified as
default values. Those default values get overwritten when calling AMD
with parameters.
- 'initialSilence' is the maximum silence duration before the greeting. If
exceeded then MACHINE.
- 'greeting' is the maximum length of a greeting. If exceeded then MACHINE.
- 'afterGreetingSilence' is the silence after detecting a greeting.
If exceeded then HUMAN.
- 'totalAnalysisTime' is the maximum time allowed for the algorithm to decide
on a HUMAN or MACHINE.
- 'minimumWordLength'is the minimum duration of Voice to considered as a word.
- 'betweenWordsSilence' is the minimum duration of silence after a word to
consider the audio that follows as a new word.
- 'maximumNumberOfWords'is the maximum number of words in the greeting.
If exceeded then MACHINE.
- 'silenceThreshold' is the silence threshold.
This application sets the following channel variable upon completion:
AMDSTATUS - This is the status of the answering machine detection.
Possible values are:
MACHINE | HUMAN | NOTSURE | HANGUP
AMDCAUSE - Indicates the cause that led to the conclusion.
Possible values are:
TOOLONG-<%%%%d total_time>
INITIALSILENCE-<%%%%d silenceDuration>-<%%%%d initialSilence>
HUMAN-<%%%%d silenceDuration>-<%%%%d afterGreetingSilence>
MAXWORDS-<%%%%d wordsCount>-<%%%%d maximumNumberOfWords>
LONGGREETING-<%%%%d voiceDuration>-<%%%%d greeting>Differenz des internen Hilfetexts von Asterisk 1.2 zu 1.4:
— in Asterisk 1.2 nicht vorhanden —Differenz des internen Hilfetexts von Asterisk 1.4 zu 1.6:
--- in Asterisk 1.4
+++ in Asterisk 1.6
@@ -4,9 +4,9 @@
Attempts to detect answering machines
[Description]
- AMD([initialSilence][|greeting][|afterGreetingSilence][|totalAnalysisTime]
- [|minimumWordLength][|betweenWordsSilence][|maximumNumberOfWords]
- [|silenceThreshold])
+ AMD([initialSilence],[greeting],[afterGreetingSilence],[totalAnalysisTime]
+ ,[minimumWordLength],[betweenWordsSilence],[maximumNumberOfWords]
+ ,[silenceThreshold],[|maximumWordLength])
This application attempts to detect answering machines at the beginning
of outbound calls. Simply call this application after the call
has been answered (outbound only, of course).
@@ -26,7 +26,8 @@
- 'maximumNumberOfWords'is the maximum number of words in the greeting.
If exceeded then MACHINE.
- 'silenceThreshold' is the silence threshold.
- This application sets the following channel variable upon completion:
+ - 'maximumWordLength' is the maximum duration of a word to accept. If exceeded then MACHINE
+ This application sets the following channel variables upon completion:
AMDSTATUS - This is the status of the answering machine detection.
Possible values are:
MACHINE | HUMAN | NOTSURE | HANGUP
@@ -37,3 +38,4 @@
HUMAN-<%%%%d silenceDuration>-<%%%%d afterGreetingSilence>
MAXWORDS-<%%%%d wordsCount>-<%%%%d maximumNumberOfWords>
LONGGREETING-<%%%%d voiceDuration>-<%%%%d greeting>
+ MAXWORDLENGTH-<%%%%d consecutiveVoiceDuration>