8. AMD()

Versucht bei ausgehenden Telefonaten Anrufbeantworter bei der Gegenstelle zu erkennen (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} auf MACHINE gesetzt.
greeting
Maximale Länge einer Ansage. Wenn länger, dann wird ${AMDSTATUS} auf MACHINE gesetzt.
afterGreetingSilence
Maximale Länge der Stille nach der Ansage. Wenn länger, dann wird ${AMDSTATUS} auf HUMAN gesetzt.
totalAnalysisTime
Maximale Zeit die der AMD Algorithmus bekommt, um die Entscheidung HUMAN oder MACHINE zu 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örter in der Ansage. Wenn mehr, dann wird ${AMDSTATUS} auf MACHINE gesetzt.
silenceThreshold
Schwellenwert der Definition von Stille.

Diese Applikation setzt als Ergebnis die Channel-Variablen AMDSTATUS und AMDCAUSE.

AMDSTATUS kann die folgenden Werte bekommen:

  • MACHINE

    Auf der Gegenseite ist ein Anrufbeantworter.

  • HUMAN

    Auf der Gegenseite ist ein Mensch.

  • NOTSURE

    Es kann keine genaue Aussage getroffen werden.

  • HANGUP

    Die 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()
[Anmerkung]Anmerkung

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 zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 2, „Call Files“


Asterisk Schulung

2.1 Beta-Version!

2.1 Beta-Version des Asterisk Buches. Die 1.0 stabile Version ist ebenfalls online. Bitte melden Sie Fehler und Feedback per E-Mail an den Autor.

YouTube Screencasts

Kostenlose Asterisk Screencasts mit jeweils 10 minütigen Erklärungen zu Spezial-Themen.

Shameless Plug

noch-ne-auto-seite.de

Das gedruckte Buch

Werbung

Asterisk-Tag.org 2008

Auf der Asterisk-Tag.org Webseite finden Sie die Folien und Videos der Vorträge.