Applikationen im Dialplan

Applikationen sind die Befehle, die Sie im Dialplan (in der /etc/asterisk/extensions.conf) aufrufen. Welche Applikationen in Ihrer Installation verfügbar sind, hängt davon ab, welche Module geladen sind — core show applications zeigt die aktuelle Liste im CLI. Details zu einer einzelnen Applikation liefert core show application <name>.

Frühere Auflagen dieses Buches hatten hier einen Anhang mit über 200 Einzelseiten, je eine pro Applikation. Für die Evergreen-Ausgabe wurde dieser Anhang drastisch gekürzt: Die vollständige und jeweils aktuelle Referenz steht in der offiziellen Asterisk-Dokumentation unter https://docs.asterisk.org. Wir listen hier nur die Applikationen, die Sie im Alltag wirklich brauchen, und verweisen für den Rest auf die Upstream-Doku.

Zur Orientierung ein kurzer Überblick über die wichtigsten Applikationen, gruppiert nach Einsatzzweck:

Anruf-Verwaltung

Answer(), Hangup(), Busy(), Congestion(), Ringing(), Dial(), RetryDial(), ChannelRedirect(), Transfer(), Park(), ParkedCall(), Pickup(), PickupChan(), FollowMe(), ChanIsAvail(), Page().

Flusskontrolle

Goto(), GotoIf(), GotoIfTime(), Gosub(), GosubIf(), Return(), StackPop(), While(), EndWhile(), ExitWhile(), ContinueWhile(), ExecIf(), ExecIfTime().

Macro(), MacroExclusive(), MacroIf(), MacroExit() sind entfernt — benutzen Sie Gosub() und GosubIf(). Siehe Makros — und warum heute Gosub() benutzt wird. Auch Random() ist nicht mehr im Core enthalten; werfen Sie einen gewichteten „Münzwurf" im Dialplan statt mit $\{RAND()} und GotoIf().

Variablen und Ein-/Ausgabe

Set(), MSet(), Read(), SendDTMF(), SendText(), MessageSend().

SetVar() ist seit langem ein Alias für Set(). SetGlobalVar(), ImportVar(), ReadFile() sind als Applikationen entfernt — globale Variablen setzen Sie mit Set(GLOBAL(NAME)=wert), vererbte Channel-Variablen mit Unterstrich-Präfix (__NAME) in Set(), und Dateien lesen Sie über die Funktion $\{FILE(pfad,…)}.

Musik-/Sprachausgabe

Playback(), Background(), ControlPlayback(), BackgroundDetect(), MusicOnHold(), StartMusicOnHold(), StopMusicOnHold(), WaitMusicOnHold(), Playtones(), StopPlaytones(), MP3Player(), Echo(), SayAlpha(), SayDigits(), SayNumber(), SayPhonetic(), SayUnixTime().

Aufzeichnen

MixMonitor(), StopMixMonitor(), Monitor(), StopMonitor(), ChanSpy(), ExtenSpy(), Record(), Dictate().

Die alte Monitor()-Applikation gibt es weiterhin, wird aber größtenteils durch MixMonitor() ersetzt; MixMonitor() schreibt eine einzelne gemischte Audiodatei, was in 99 % der Fälle gewünscht ist.

Voicemail

VoiceMail(), VoiceMailMain(), VoiceMailPlayMsg(), Directory(), VMAuthenticate().

MailboxExists() und MailboxCount() sind keine Applikationen mehr. Benutzen Sie die Dialplan-Funktionen $\{VM_INFO(mailbox,exists)} bzw. $\{VMCOUNT(mailbox,folder)} — siehe Funktionen.

Konferenzen (ConfBridge)

ConfBridge(), ConfKick().

ConfBridgeAdmin() und ConfBridgeInfo() gibt es nicht als eigenständige Applikationen. Administrator-Funktionen sind Menü-Einträge im ConfBridge-User-Profil (siehe confbridge.conf), und Informationen liest der Dialplan über die Funktion $\{CONFBRIDGE_INFO(…​)} aus. Die Aufzeichnung einer Konferenz aktivieren Sie im Bridge-Profil (record_conference=yes) oder starten/stoppen sie pro Session über das DTMF-Menü. MeetMe(), MeetMeAdmin(), MeetMeCount(), MeetMeChannelAdmin() sind deprecated und benötigen DAHDI — benutzen Sie ConfBridge().

Warteschlangen, Call-Center

Queue(), QueueLog(), AddQueueMember(), RemoveQueueMember(), PauseQueueMember(), UnpauseQueueMember(), QueueUpdate(), AgentLogin(), AgentRequest().

AgentCallbackLogin() und AgentMonitorOutgoing() sind entfernt — benutzen Sie AddQueueMember() im Dialplan, um einen Agent einer Queue hinzuzufügen (siehe extensions.conf).

Externe Skripte / Steuerung

AGI(), EAGI(), DeadAGI(), System(), TrySystem(), Exec(), TryExec(), UserEvent(), Log(), Verbose(), NoOp(), DumpChan(), Stasis().

Stasis(<app>) ist der Einsprungpunkt in eine ARI-Anwendung — der moderne Weg für komplexere externe Call-Control. Die klassischen AGI-/AMI-Pfade bleiben für einfachere Aufgaben voll funktional.

Authentifizierung, Kennung, Sicherheit

Authenticate(), VMAuthenticate(), PrivacyManager(), SoftHangup().

SetCallerPres() ist entfernt — die Caller-ID-Presentation steuern Sie heute über die Funktion Set(CALLERID(pres)=prohib) o. ä.

CDR / CEL / Abrechnung

ResetCDR(), ForkCDR(), CELGenUserEvent().

NoCDR() und SetAMAFlags() sind entfernt — statt NoCDR() setzen Sie Set(CDR_PROP(disable)=1), statt SetAMAFlags() schreiben Sie Set(CDR(amaflags)=<flag>) bzw. nutzen den CDR(accountcode)/ CDR(amaflags)-Accessor.

SIP / PJSIP-spezifisch

PJSIPNotify(), PJSIPHangup().

Die chan_sip-spezifischen Applikationen (SIPAddHeader(), SIPdtmfMode(), SIPGetHeader()) sind mit chan_sip entfernt. Header greifen Sie bei PJSIP über die Dialplan-Funktion $\{PJSIP_HEADER(…​)} ab, Ziel-Kontakte über $\{PJSIP_DIAL_CONTACTS(…​)} — siehe Funktionen.

Referenz

Die vollständige, jeweils aktuelle Referenz mit allen Parametern und Rückgabewerten finden Sie in der offiziellen Dokumentation unter https://docs.asterisk.org. Alternativ direkt im CLI:

debian*CLI> core show applications    ; alle Applikationen auflisten
debian*CLI> core show application Dial ; Details zu Dial()

Diese CLI-Ausgabe ist exakt zur Version passend, die Sie installiert haben — und ist der verlässlichste Bezugspunkt, wenn man konkret wissen will, welche Optionen eine Applikation gerade unterstützt.