Anhang B. Applikationen im Dialplan

Im Folgenden werden die Applikationen beschrieben, die im Dialplan (also in der /etc/asterisk/extensions.conf) verwendet werden können. Beachten Sie bitte, dass nur solche Applikationen in Ihrer Installation verfügbar sind, die in der /etc/asterisk/modules.conf im Abschnitt [modules] durch autoload=yes oder explizites load => app_applikationsname.so geladen wurden. Eine Liste aller in Ihrem Asterisk verfügbaren Applikationen können Sie mit dem CLI Befehl core show applications abrufen. Genaue Informationen zu einer bestimmten Applikation können Sie im CLI mit dem Befehl core application Applikationsname anzeigen.

[Tipp]Tipp

Die Befehle core application xyz und core applications existieren erst in der Asterisk Version 1.4. Sollten Sie ein Asterisk 1.2 betreuen, können Sie die gleichen Funktionen mit den Befehlen show application xyz und show applications abrufen. Die alten Befehle funktionen auch noch in der Version 1.4, sind aber deprecated.

Der Begriff „Applikationen“ (oder „Befehle“) darf nicht mit „Funktionen“ verwechselt werden, die ggf. innerhalb eines Befehlsaufrufs stehen. „Applikationen“ (applications) ist vielleicht irreführend, aber der gängige Ausdruck.

[Anmerkung]Anmerkung

Ein Hinweis am Rande: Die Konfigurationsdateien von Asterisk verwenden leider ein recht schwammiges Format (als INI bekannt), für das nie eine offizielle Grammatik veröffentlicht wurde. Der Parser geht auch nicht den üblichen Weg von lexikalischer Analyse, Tokenizing und syntaktischer Analyse. Aus diesem Grund steigt übrigens der Asterisk-Ableger OpenPBX auf die von Mac OS X bekannten, aber auch auf anderen Plattformen verfügbaren „Property Lists“ (.plist) als Format für Konfigurationsdateien um.

Hier sei nur gesagt, dass es aufgrund mangelnder Spezifikation nicht immer klar ist, an welcher Stelle z.B. Leerzeichen erlaubt sind oder wo Anführungszeichen erwartet werden. Meist werden mehrere Schreibweisen erkannt. Im Zweifelsfall hilft nur Ausprobieren, wenn eine Schreibweise in Ihrer Asterisk-Version nicht funktioniert. Sollten Sie Fehler entdecken, wird um Rückmeldung gebeten.

Es ist oft möglich, Parameter auszulassen. Wenn ausgelassene Parameter nicht am Ende stehen, müssen Sie trotzdem ein Komma angeben, um anzuzeigen, dass der Parameter leer ist (also der Default-Wert verwendet wird), z.B. so:

exten => s,1,Dial(IAX2/User:Passwort@beispiel.de/123,,tT)

Im Allgemeinen kann gesagt werden, dass Fehler beim Ausführen einer Applikation durch den Rückgabewert -1 ausgedrückt werden, Erfolg durch 0. Ein Rückgabewert von -1 bedeutet, dass Asterisk den Kanal auflegt und nicht weiter den Dialplan abarbeitet.

[Wichtig]Wichtig

Bitte beachten Sie, dass, abhängig von der eingesetzten Asterisk-Version die Parameter durch , (Komma) oder | (Pipe) getrennt werden. In diesem Buch wird hauptsächlich das , (Komma) benutzt.

Wer Asterisk schon länger kennt, wird sich vielleicht wundern, warum hier die eine oder andere Applikation nicht aufgeführt ist. Das hat den einfachen Grund, dass bereits in Asterisk 1.2 etliche Applikationen als „deprecated“ (= veraltet, soll nicht mehr verwendet werden) gekennzeichnet sind und in 1.4 nicht mehr existieren. Solche Befehle werden hier nicht mehr beschrieben, Sie finden die entsprechenden Funktionen in Anhang C, Funktionen im Dialplan. Die beigefügten Diffs der internen Hilfetexte sind immer vom neueren 1.4 zum älteren 1.2.

In den Beispielen wird oft die willkürlich gewählte Extension 123 und die Priorität 1 verwendet, was in der Praxis natürlich nicht immer sinnvoll ist.

Viele Applikationen vor Asterisk 1.2 sprangen bei einem Fehler zur Priorität n+101, wenn vorhanden (wobei n die aktuelle Priorität bezeichnet). Dieses alte Verhalten („priority jumping“) lässt sich bei einigen Befehlen durch die Option j (jump) erreichen oder indem man in der extensions.conf im Abschnitt [general] den Parameter priorityjumping=yes setzt. Dieses Verhalten ist aber „deprecated“. Die neuere Methode ist das Abfragen der gesetzten Channelvariablen.

Um eine leichtere Verwendung als Nachschlagewerk zu ermöglichen, sind die Applikationen in alphabetischer Reihenfolge aufgeführt. Da sie sich aber auch sinnvoll gruppieren lassen, finden Sie hier einen entsprechenden Index:

Anruf-Verwaltung (abheben, durchstellen, auflegen, ...)

Abschnitt 9, „Answer() - Abheben
Abschnitt 14, „Busy() - Besetztzeichen signalisieren
Abschnitt 17, „ChanIsAvail() - Prüfen, ob ein Channel verfügbar ist
Abschnitt 18, „ChannelRedirect() - Kanal auf eine andere Extension umleiten
Abschnitt 20, „Congestion() - Stau signalisieren
Abschnitt 27, „Dial() - Einen Anruf durchstellen / mit einem Channel verbinden
Abschnitt 30, „DISA() - DISA (Direct Inward System Access)
Abschnitt 44, „FollowMe() - „Folge-Mir“-Funktionalität
Abschnitt 52, „Hangup() - Auflegen
Abschnitt 75, „Page() - Rundruf
Abschnitt 76, „Park() - Gespräch parken
Abschnitt 83, „Pickup() - Heranholen eines Anrufs
Abschnitt 98, „RetryDial() - Dial() mit „Wahlwiederholung
Abschnitt 100, „Ringing() - Klingeln signalisieren

Flusskontrolle und Timeouts

Abschnitt 21, „ContinueWhile() - Zum Anfang einer While-Schleife springen
Abschnitt 34, „EndWhile() - Ende einer While-Schleife
Abschnitt 35, „Exec() - Ausführen einer Applikation
Abschnitt 36, „ExecIf() - Bedingtes Ausführen einer Applikation
Abschnitt 37, „ExecIfTime() - Zeitabhängiges Ausführen einer Applikation
Abschnitt 38, „ExitWhile() - Eine While-Schleife abbrechen
Abschnitt 47, „Gosub() - Zu einer Unterroutine springen
Abschnitt 48, „GosubIf() - Bedingtes Gosub()
Abschnitt 49, „Goto() - Zu einer Priorität, Extension oder anderem Context springen
Abschnitt 50, „GotoIf() - Bedingtes Goto()
Abschnitt 51, „GotoIfTime() - Bedingtes Gosub() je nach Datum/Uhrzeit
Abschnitt 90, „Random() - Zufällig im Dial-Plan springen
Abschnitt 99, „Return() - Aus einem Gosub() oder GosubIf() zurückkehren
Abschnitt 125, „TryExec() - Versuch der Ausführung einer Applikation
Abschnitt 139, „While() - Anfang einer While-Schleife

Macros

Abschnitt 58, „Macro() - Macro aufrufen
Abschnitt 59, „MacroExclusive() - Macro zu einem Zeitpunkt nur einmal aufrufen
Abschnitt 60, „MacroExit() - Macro abbrechen
Abschnitt 61, „MacroIf() - Ein Macro bedingt ausführen

Anrufer-Kennung (Caller-ID, Name, ...)

Abschnitt 15, „CallingPres() - „Caller Presentation“ verändern
Abschnitt 56, „LookupBlacklist() - Caller-ID in Blacklist nachschlagen
Abschnitt 57, „LookupCIDName() - Caller-ID-Name in Datenbank nachschlagen
Abschnitt 86, „PrivacyManager() - Eingabe einer Telefonnummer verlangen falls ohne Caller-ID
Abschnitt 112, „SetCallerPres() - Caller-ID setzen, unanhängig vom Channel
Abschnitt 120, „SoftHangup() - Auflegen verlangen
Abschnitt 140, „Zapateller() - Werbeanrufe blockieren

Gesprächsprotokolle (CDRs)

Abschnitt 10, „AppendCDRUserField() - Einen Wert an das CDR-User-Feld anhängen
Abschnitt 45, „ForkCDR() - Den CDR in zwei getrennte Einträge aufspalten
Abschnitt 73, „NoCDR() - CDR für diesen Anruf deaktivieren
Abschnitt 97, „ResetCDR() - CDR-Eintrag zurücksetzen
Abschnitt 111, „SetAMAFlags() - AMA-Flags setzen
Abschnitt 113, „SetCDRUserField() - CDR-User-Feld setzen

Voicemail

Abschnitt 29, „Directory() - Dial-by-Name-Telefonbuch anbieten
Abschnitt 62, „MailboxExists() - Prüft, ob Mailbox existiert
Abschnitt 132, „VoiceMail() - Anrufbeantworter
Abschnitt 133, „VoiceMailMain() - Anrufbeantworter abhören
Abschnitt 131, „VMAuthenticate() - User anhand der voicemail.conf authentifizieren

Konferenzen

Abschnitt 63, „MeetMe() - MeetMe-Konferenz
Abschnitt 64, „MeetMeAdmin() - MeetMe-Konferenz verwalten
Abschnitt 65, „MeetMeCount() - Anzahl der Teilnehmer einer MeetMe-Konferenz

Variablen verändern

Abschnitt 54, „ImportVar() - Variable von einem Channel importieren
Abschnitt 91, „Read() - Eine Variable (Ziffern) vom User einlesen
Abschnitt 92, „ReadFile() - Eine Datei in eine Variable einlesen
Abschnitt 93, „RealTime() - Variablen aus dem Realtime-System einlesen
Abschnitt 94, „RealTimeUpdate() - Variablen im Realtime-System verändern
Abschnitt 110, „Set() - Eine Channel-Variable setzen
Abschnitt 114, „SetGlobalVar() - Eine globale Variable setzen

Musik-/Sprachausgabe

Abschnitt 12, „Background() - Im Hintergrund eine Sound-Datei spielen
Abschnitt 13, „BackgroundDetect() - Background() mit Spracherkennung
Abschnitt 22, „ControlPlayback() - Playback() mit Vor-/Zurückspulen und Abbrechen
Abschnitt 23, „DateTime() - Datum/Uhrzeit ansagen
Abschnitt 33, „Echo() - Audio-Eingabe wiedergeben
Abschnitt 42, „Festival() - Text mit dem Festival-Synthesizer sprechen
Abschnitt 66, „Milliwatt() - Einen konstanten 1000-Hz-Ton mit 0 dbm erzeugen
Abschnitt 70, „MP3Player() - MP3-Datei oder -Stream spielen
Abschnitt 71, „MusicOnHold() - Wartemusik spielen
Abschnitt 72, „NBScat() - NBS-Stream abspielen
Abschnitt 84, „Playback() - Eine Sound-Datei spielen
Abschnitt 85, „Playtones() - Töne spielen
Abschnitt 87, „Progress() - Audio vor dem Abheben spielen
Abschnitt 101, „SayAlpha() - Buchstabieren (alphanumerisch)
Abschnitt 102, „SayDigits() - Ziffern ansagen
Abschnitt 103, „SayNumber() - Nummer ansagen
Abschnitt 104, „SayPhonetic() - Buchstabieren
Abschnitt 105, „SayUnixTime() - Datum/Uhrzeit ansagen
Abschnitt 115, „SetMusicOnHold() - Wartemusik festlegen
Abschnitt 122, „StopPlaytones() - Playtones() beenden

Aufzeichnen

Abschnitt 5, „AgentMonitorOutgoing() - Ausgehende Anrufe eines Agenten aufzeichnen
Abschnitt 16, „ChangeMonitor() - Die Datei für Monitor() verändern
Abschnitt 19, „ChanSpy() - Ein Gespräch mithören
Abschnitt 27, „Dial() - Mit der Option w oder W im Gespräch aufzeichnen
Abschnitt 28, „Dictate() - Diktat aufnehmen und wiedergeben
Abschnitt 39, „ExtenSpy() - Ein Gespräch mithören
Abschnitt 67, „MixMonitor() - Ähnlich Monitor(), aber nur eine Datei
Abschnitt 68, „Monitor() - Ein Gespräch mitschneiden
Abschnitt 79, „PauseMonitor() - Mitschneiden pausieren
Abschnitt 95, „Record() - Eingehendes Audio mitschneiden
Abschnitt 121, „StopMonitor() - Monitor() beenden
Abschnitt 127, „UnpauseMonitor() - Pausierung des Mitschnitts aufheben
Abschnitt 141, „ZapBarge() - Einen ZAP-Channel belauschen
Abschnitt 143, „ZapScan() - Zwecks Mithören durch ZAP-Kanäle schalten

Datenbank-Zugriffe

Abschnitt 24, „DBdel() - Einen Datenbankeintrag löschen
Abschnitt 25, „DBdeltree() - Einen Datenbank-Zweig löschen

Allgemeines

Abschnitt 11, „Authenticate() - Einen User authentifizieren
Abschnitt 106, „SendDTMF() - DTMF-Töne senden
Abschnitt 107, „SendImage() - Ein Bild senden
Abschnitt 108, „SendText() - Einen Text senden
Abschnitt 109, „SendURL() - Eine URL senden
Abschnitt 124, „Transfer() - Anruf weiterleiten
Abschnitt 131, „VMAuthenticate() - User anhand der voicemail.conf authentifizieren
Abschnitt 134, „Wait() - Eine bestimmte Zeit warten
Abschnitt 135, „WaitExten() - Auf Eingabe einer Extension warten
Abschnitt 136, „WaitForRing() - Auf Klingeln warten
Abschnitt 137, „WaitForSilence() - Auf Stille warten
Abschnitt 138, „WaitMusicOnHold() - Warten mit Musik

Externe Skripte

Abschnitt 6, „AGI() - Eine AGI-Anwendung ausführen
Abschnitt 26, „DeadAGI() - AGI() auf einem aufgelegten Channel
Abschnitt 31, „DumpChan() - Informationen über einen Kanal auf dem CLI ausgeben
Abschnitt 32, „EAGI() - Siehe AGI()
Abschnitt 40, „ExternalIVR() - Einen externen IVR-Generator ausführen
Abschnitt 41, „FastAGI() - AGI() auf einem entfernten Rechner
Abschnitt 55, „Log() - Eine Nachricht in einem bestimmten Verbosity-Level loggen
Abschnitt 58, „Macro() - Ein Makro ausführen
Abschnitt 74, „NoOp() - Nichts tun. Schreibt Debugging-Informationen
Abschnitt 81, „Perl() - res_perl ist wie mod_perl für Apache, aber für Asterisk
Abschnitt 82, „PHP() - res_php ist wie mod_php für Apache, aber für Asterisk
Abschnitt 91, „Read() - Eine Variable (Ziffern) vom User einlesen
Abschnitt 123, „System() - Einen Shell-Befehl ausführen
Abschnitt 126, „TrySystem() - Wie System(), gibt aber immer 0 zurück
Abschnitt 129, „UserEvent() - Dem Manager-Interface ein Event schicken
Abschnitt 130, „Verbose() - Eine Nachricht in einem bestimmten Verbosity-Level loggen

SIP

Abschnitt 118, „SIPdtmfMode() - DTMF-Modus während SIP-Verbindung ändern
Abschnitt 117, „SIPAddHeader() - Einem ausgehenden Anruf einen SIP-Header hinzufügen

ZAP

Abschnitt 43, „Flash() - Einen Switchhook-Flash auf einem ZAP-Trunk senden
Abschnitt 141, „ZapBarge() - Einen ZAP-Channel belauschen
Abschnitt 142, „ZapRAS() - RAS (Remote Access Server) auf einem ZAP-ISDN-Channel bereitstellen
Abschnitt 143, „ZapScan() - Zwecks Mithören durch ZAP-Kanäle schalten

Warteschlangen, Call-Center

Abschnitt 1, „AddQueueMember() - Interface dynamisch in Warteschleife einreihen
Abschnitt 3, „AgentCallbackLogin() - Call-Center-Agenten einloggen (mit Rückruf)
Abschnitt 4, „AgentLogin() - Call-Center-Agenten einloggen
Abschnitt 5, „AgentMonitorOutgoing() - Ausgehende Anrufe eines Agenten aufzeichen
Abschnitt 77, „ParkAndAnnounce() - Anruf parken und ankündigen
Abschnitt 78, „ParkedCall() - Einen geparkten Anruf annehmen
Abschnitt 80, „PauseQueueMember() - Einen Agenten pausieren
Abschnitt 88, „Queue() - Eingehenden Anruf in Warteschleife einreihen
Abschnitt 89, „QueueLog() - Beliebigen Eintrag im Queue-Log schreiben
Abschnitt 96, „RemoveQueueMember() - Interface aus Warteschleife entfernen
Abschnitt 128, „UnpauseQueueMember() - Einen pausierenden Agenten wieder aktivieren

ADSI

Abschnitt 2, „ADSIProg() - Ein ADSI-Skript in ein Telefon laden
Abschnitt 46, „GetCPEID() - ADSI-CPE-ID abfragen

Verschiedenes

Abschnitt 8, „AMD() - Einen Anrufbeantworter erkennen
Abschnitt 7, „AlarmReceiver() - Einen Contact-ID-Alarm-Empfänger von Ademco emulieren
Abschnitt 53, „IAX2Provision() - Versorgt ein IAXy
Abschnitt 69, „Morsecode() - Sendet einen Text als Morsezeichen
Abschnitt 116, „SetTransferCapability() - ISDN-Transfer-Capability setzen
Abschnitt 119, „SMS() - Sendet oder empfängt SMS-Nachrichten

1. AddQueueMember()

Reiht Interfaces dynamisch in eine Anruf-Warteschleife ein.

AddQueueMember(Warteschleife[,Interface[,Malus[|,Optionen]]])

Reiht das angegebene Interface dynamisch als Agent in eine vorhandene Warteschleife (Queue) ein, die in queues.conf definiert wurde. Die Malus-Punkte beeinflussen ggf. die Position bei der Abarbeitung. Agenten mit niedrigerem Malus werden vor Einträgen mit höherem Malus aufgerufen.

Falls das angegebene Interface bereits in die Warteschlange eingereiht ist und eine n+101 Priorität existiert (n ist die aktuelle Priorität), wird die Abarbeitung bei dieser Priorität fortgesetzt, andernfalls wird ein Fehler (d.h. -1) zurückgeliefert. (Je nach Asterisk-Version muss für das Springen zu n+101 die Option j (jump) angegeben werden.)

Wird AddQueueMember() ohne den Interface-Parameter aufgerufen, findet das vom Teilnehmer zu diesem Zeitpunkt benutzte Interface Verwendung.

In manchen Asterisk-Versionen kann man statt der Pipe-Zeichen (|) auch Kommas verwenden.

Die Applikation setzt auch die Channelvariable ${AQMSTATUS} auf ADDED (hinzugefügt), MEMBERALREADY (ist bereits Mitglied) oder NOSUCHQUEUE (Warteschlange nicht vorhanden).

; SIP/3000 zur "supportschlange" hinzufügen:
exten => 123,1,AddQueueMember(supportschlange,SIP/3000)

; das aktuelle Interface mit Malus 2 hinzufügen:
exten => 123,1,AddQueueMember(supportschlange,,2)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'AddQueueMember' =- 

[Synopsis]
Dynamically adds queue members

[Description]
   AddQueueMember(queuename[|interface[|penalty[|options]]]):
Dynamically adds interface to an existing queue.
If the interface is already in the queue and there exists an n+101 priority
then it will then jump to this priority.  Otherwise it will return an error
The option string may contain zero or more of the following characters:
       'j' -- jump to +101 priority when appropriate.
  This application sets the following channel variable upon completion:
     AQMSTATUS    The status of the attempt to add a queue member as a 
                     text string, one of
           ADDED | MEMBERALREADY | NOSUCHQUEUE 
Example: AddQueueMember(techsupport|SIP/3000)

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine -

Siehe auch. Abschnitt 88, „Queue(), Abschnitt 96, „RemoveQueueMember(), queues.conf

2. ADSIProg()

Lädt ein ADSI-Skript in ein ADSI-fähiges Telefon.

ADSIProg([Script])

Programmiert ein ADSI[97]-Telefon mit einem vorhandenen Skript. Wird kein Skript angegeben, wird das Default-Skript asterisk.adsi verwendet. Die Pfadangabe zum Script versteht sich relativ zum Asterisk-Konfigurationsverzeichnis, i.d.R. /etc/asterisk/, es kann aber ebenso ein vollständiger (absoluter) Pfad zu der Skript-Datei angegeben werden.

Benutzen Sie die GetCPEID()-Anwendung, um die CPE-ID und weitere Informationen über das ADSI-fähige Telefon zu erfahren.

; das ADSI-Telefon mit dem Skript telcordia-1.adsi programmieren:
exten => 123,1,ADSIProg(telcordia-1.adsi)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ADSIProg' =- 

[Synopsis]
Load Asterisk ADSI Scripts into phone

[Description]
  ADSIProg(script): This application programs an ADSI Phone with the given
script. If nothing is specified, the default script (asterisk.adsi) is used.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 46, „GetCPEID(), adsi.conf

3. AgentCallbackLogin()

Ermöglicht Login eines Call-Center-Agenten mit Rückruf.

AgentCallbackLogin([Agenten-Nr][,Optionen[,Extension@Context]])

Ermöglicht einem Anruf-Agenten, identifiziert durch die Agenten-Nummer, sich in das Anruf-Warteschlangen-System einzuloggen, um bei einem eingehenden Anruf für ihn zurückgerufen zu werden.

Bei einem eingehenden Anruf für diesen Agenten wird Asterisk die spezifizierte zugehörige Extension (gegebenenfalls mit dem optional angegebenem Context Context) aufrufen.

Der Optionen-Parameter kann den Wert s enthalten, der ein Silent Login (stille Anmeldung) bewirkt.

; still als Agent 33 (wie in agents.conf definiert) einloggen. Asterisk
; wird SIP/300 anrufen, sobald für diesen Agenten ein Anruf eingeht:
exten => 123,1,AgentCallbackLogin(33,s,${CALLERID(num)})

; wenn wir davon ausgehen, dass die Agentennummer mit der Anrufer-
; Extension übereinstimmt:
exten => 123,1,AgentCallbackLogin(${CALLERID(num)},s,${CALLERID(num)})

Auf http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+AgentCallbackLogin sind viele Beispiele zu finden.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'AgentCallbackLogin' =- 

[Synopsis]
Call agent callback login

[Description]
  AgentCallbackLogin([AgentNo][|[options][|[exten]@context]]):
Asks the agent to login to the system with callback.
The agent's callback extension is called (optionally with the specified
context).
The option string may contain zero or more of the following characters:
      's' -- silent login - do not announce the login ok segment agent logged in/off

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 4, „AgentLogin()

4. AgentLogin()

Erlaubt es einem Anruf-Agenten, sich in das System einzuloggen/sich am System anzumelden.

AgentLogin([Agenten-Nr][,Optionen])

Meldet den gegenwärtigen Anrufer als Call Agent (optional durch Agenten-Nr zu identifizieren) im Anruf-Warteschlangen-System an. Solange er als Agent angemeldet ist, kann er Anrufe entgegennehmen und hört bei neuen eingehenden Anrufen einen Piepton auf der Leitung. Der Agent kann den Anruf durch Betätigen der Stern-Taste (*) beenden.

Der Optionen-Parameter kann den Wert s enthalten, der ein Silent Login (stille Anmeldung) bewirkt.

; still als Agent 33 (wie in agents.conf definiert) einloggen
exten => 123,1,AgentLogin(33,s)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'AgentLogin' =- 

[Synopsis]
Call agent login

[Description]
  AgentLogin([AgentNo][|options]):
Asks the agent to login to the system.  Always returns -1.  While
logged in, the agent can receive calls and will hear a 'beep'
when a new call comes in. The agent can dump the call by pressing
the star key.
The option string may contain zero or more of the following characters:
      's' -- silent login - do not announce the login ok segment after agent logged in/off

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 3, „AgentCallbackLogin()

5. AgentMonitorOutgoing()

Speichert die ausgehenden Anrufe eines Agenten.

AgentMonitorOutgoing([Optionen])

Zeichnet alle ausgehenden Anrufe eines Agenten auf.

Diese Anwendung versucht, die ID eines Agenten, der einen ausgehenden Anruf tätigt, herauszufinden, indem er die ID des Anrufers (Caller ID) des gegenwärtigen Interfaces mit einer von der AgentCallbackLogin()-Anwendung gesetzten globalen Variablen vergleicht. Daher wird dringend empfohlen, diese Anwendung nur in Verbindung mit der AgentCallbackLogin()-Anwendung (und zwar nach dieser!) zu verwenden. Um die Anrufe aufzuzeichnen, werden anstelle der Anwendung Monitor() die Überwachungsfunktionen des chan_agent-Moduls benutzt. Deshalb muss das Aufzeichnen der Anrufe in der agents.conf-Datei korrekt konfiguriert sein.

Standardmäßig werden aufgezeichnete Anrufe im Verzeichnis /var/spool/asterisk/monitor/ abgelegt. Diese Einstellung kann durch Anpassung des Parameters savecallsin in der Datei agents.conf überschrieben werden. Bitte seien sie sich bewusst, dass die Speicherung von Telefonaten dem Datenschutz und der Wahrung von Persönlichkeitsrechten unterliegen. Sie sollten sich genau darüber informieren, wann und wie sie Telefonate aufzeichnen dürfen. Als allgemeine Regel gilt, dass sie ohne Wissen und Einverständnis der Teilnehmer kein Telefonat aufzeichnen dürfen.

Können die ID des Anrufers (caller id) und/oder die ID des Agenten (agent id) nicht ermittelt werden, wird diese Anwendung zur Priorität n+101 springen, falls diese existiert.

Falls keine der folgenden Optionen anderes bewirkt, liefert die Anwendung 0 zurück.

Der Optionen-Parameter kann aus einem oder mehreren der folgenden Optionen zusammengesetzt sein.

d
Zwingt die Anwendung zur Rückgabe von -1, falls ein Fehler vorliegt und keine Priorität n+101 existiert.
c
Ändert den Call Detail Record dahingehend, dass Agent/AgentenNr als Channel, von dem der Anruf ausgeht, gespeichert wird, damit festgestellt werden kann, von welchem Agenten der Anruf ausging.
n
Unterdrückt Warnmeldungen im Falle, dass Caller-ID bzw. Agent-ID unbekannt sind. Diese Option ist hilfreich, wenn ein gemeinsamer Context für Agenten- und Nicht-Agenten-Anrufe erwünscht ist.
; ausgehende Anrufe dieses Agenten aufzeichnen, und den CDR
; entsprechend anpassen:
exten => 123,1,AgentMonitorOutgoing(c)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'AgentMonitorOutgoing' =- 

[Synopsis]
Record agent's outgoing call

[Description]
  AgentMonitorOutgoing([options]):
Tries to figure out the id of the agent who is placing outgoing call based on
comparison of the callerid of the current interface and the global variable 
placed by the AgentCallbackLogin application. That's why it should be used only
with the AgentCallbackLogin app. Uses the monitoring functions in chan_agent 
instead of Monitor application. That have to be configured in the agents.conf file.

Return value:
Normally the app returns 0 unless the options are passed. Also if the callerid or
the agentid are not specified it'll look for n+101 priority.

Options:
 'd' - make the app return -1 if there is an error condition and there is
       no extension n+101
 'c' - change the CDR so that the source of the call is 'Agent/agent_id'
 'n' - don't generate the warnings when there is no callerid or the
       agentid is not known.
             It's handy if you want to have one context for agent and non-agent calls.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 3, „AgentCallbackLogin(), agents.conf, Abschnitt 68, „Monitor(), Abschnitt 19, „ChanSpy()

6. AGI()

Ruft eine AGI-konforme Anwendung auf

AGI(Programm[,Argumente])

(Analog auch EAGI(), FastAGI(), DeadAGI())

Führt ein Asterisk-Gateway-Interface-kompatibles Programm Programm auf dem aktuellen Channel aus. Solche externen Programme (die in fast jeder beliebigen Sprache vorliegen können - z.B. Perl, PHP, ...), können den Telefonkanal steuern, Audiodateien abspielen, DTMF-Ziffern auslesen und so weiter. Asterisk kommuniziert dabei mit dem AGI-Program über STDIN und STDOUT. Die spezifizierten Argumente werden an das AGI-Programm durchgereicht.

Das Programm muss im zugrundeliegenden Dateisystem als executable (ausführbar) gekennzeichnet sein. Der Pfad zum Programm ist relativ zum Asterisk-AGI-Verzeichnis, standardmäßig /var/lib/asterisk/agi-bin/.

Soll ein AGI-Programm laufen, ohne dass ein Channel offen ist (wie in einer h-Extension, aufgelegt), muss statt dieser die DeadAGI()-Anwendung verwendet werden. Falls AGI über ein Netzwerk laufen soll, benutzen Sie FastAGI().

Benötigen Sie aus Ihrem AGI-Programm heraus Zugriff auf den eingehenden Audiostream, benutzen Sie EAGI() (Extended AGI) an Stelle von AGI(). Das eingehende Audio-Signal kann dann unter File Descriptor 3[98] eingelesen werden.

Liefert -1 mit dem Auflegen oder falls ein Auflegen durch das Programm verlangt wurde oder 0, falls nicht aufgelegt werden soll.

; mein AGI-Skript aufrufen:
exten => 123,1,AGI(agi-skript)
exten => 123,n,EAGI(eagi-skript)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'AGI' =- 

[Synopsis]
Executes an AGI compliant application

[Description]
  [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant
program on a channel. AGI allows Asterisk to launch external programs
written in any language to control a telephony channel, play audio,
read DTMF digits, etc. by communicating with the AGI protocol on stdin
and stdout.
  This channel will stop dialplan execution on hangup inside of this
application, except when using DeadAGI.  Otherwise, dialplan execution
will continue normally.
  A locally executed AGI script will receive SIGHUP on hangup from the channel
except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel
variable to "no" before executing the AGI application.
  Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
on file descriptor 3

  Use the CLI command 'agi show' to list available agi commands
  This application sets the following channel variable upon completion:
     AGISTATUS      The status of the attempt to the run the AGI script
                    text string, one of SUCCESS | FAILED | HANGUP

Differenz zum internen Hilfetext in Asterisk 1.2: 

13,19c13,15
<   This channel will stop dialplan execution on hangup inside of this
< application, except when using DeadAGI.  Otherwise, dialplan execution
< will continue normally.
<   A locally executed AGI script will receive SIGHUP on hangup from the channel
< except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel
< variable to "no" before executing the AGI application.
<   Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
---
> Returns -1 on hangup (except for DeadAGI) or if application requested
>  hangup, or 0 on non-hangup exit. 
> Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
22,25c18
<   Use the CLI command 'agi show' to list available agi commands
<   This application sets the following channel variable upon completion:
<      AGISTATUS      The status of the attempt to the run the AGI script
<                     text string, one of SUCCESS | FAILED | HANGUP
---
> Use the CLI command 'show agi' to list available agi commands

Siehe auch. Abschnitt 26, „DeadAGI(), Abschnitt 41, „FastAGI()

7. AlarmReceiver()

Bietet Unterstützung für den Empfang von Alarm-Reporten von einem Einbrecher- oder Feueralarm-Bedienfeld.

AlarmReceiver()

Emuliert einen Alarm-Empfänger und ermöglicht Asterisk, spezielle Daten von Einbrecher- und/oder Feueralarm-Bedienfeldern zu empfangen und zu dekodieren. Zum jetzigen Zeitpunkt wird ausschließlich das Ademco Contact ID Format unterstützt.

Nachdem AlarmReceiver() aufgerufen worden ist, wird ein Handshake mit dem Alarm-Bedienfeld durchgeführt, Events empfangen und validiert und anschließend gespeichert, bis das Bedienfeld die Verbindung beendet. Nachdem das Bedienfeld die Verbindung beendet hat, wird die in der eventsmd-Einstellung der Datei alarmreceiver.conf spezifizierte Befehlskette von der Anwendung ausgeführt, und die Events auf die Standardeingabe der Anwendung umgeleitet. Die Datei alarmreceiver.conf enthält ebenfalls Einstellungen zum DTMF-Timing und für die Lautstärke der Meldetöne.

Für die zuverlässige Funktion dieser Anwendung kann keine Garantie übernommen werden. Verlassen Sie sich also nicht ausschließlich auf diese Anwendung, wenn Sie sie nicht bereits ausgiebig getestet haben!

Diese Applikation gibt immer 0 zurück.

; Asterisk soll Meldungen eines Feueralarm-Knopfes empfangen:
exten => s,1,AlarmReceiver()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'AlarmReceiver' =- 

[Synopsis]
Provide support for receiving alarm reports from a burglar or fire alarm panel

[Description]
  AlarmReceiver(): Only 1 signalling format is supported at this time: Ademco
Contact ID. This application should be called whenever there is an alarm
panel calling in to dump its events. The application will handshake with the
alarm panel, and receive events, validate them, handshake them, and store them
until the panel hangs up. Once the panel hangs up, the application will run the
system command specified by the eventcmd setting in alarmreceiver.conf and pipe
the events to the standard input of the application. The configuration file also
contains settings for DTMF timing, and for the loudness of the acknowledgement
tones.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< Provide support for receiving alarm reports from a burglar or fire alarm panel
---
> Provide support for receving alarm reports from a burglar or fire alarm panel

Siehe auch. alarmreceiver.conf

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“

9. Answer()

Antwortet auf einen klingelnden Channel.

Answer([Verzögerung])

Veranlasst Asterisk zum Beantworten eines Channels, wenn er gerade klingelt. Falls der aktuelle Channel nicht klingelt, tut diese Anwendung nichts.

Es ist generell empfehlenswert, Answer() vor dem Aufrufen irgendwelcher anderen Anwendungen auf dem Channel aufzurufen, außer es besteht ein guter Grund, das nicht zu tun. Die meisten Anwendungen verlangen, dass der Channel beantwortet wird, bevor sie aufgerufen werden, und werden andernfalls eventuell nicht in der Lage sein, ihre Arbeit korrekt zu verrichten.

Die optionale Verzögerung weist Asterisk an, soviele Millisekunden vor dem Antworten zu warten.

Gibt bei Erfolg 0 zurück.

exten => 123,1,Answer()
exten => 123,n,Wait(1)
exten => 123,n,Playback(hallo)
exten => 123,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Answer' =- 

[Synopsis]
Answer a channel if ringing

[Description]
  Answer([delay]): If the call has not been answered, this application will
answer it. Otherwise, it has no effect on the call. If a delay is specified,
Asterisk will wait this number of milliseconds before answering the call.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 52, „Hangup()

10. AppendCDRUserField()

Hängt einen String an das CDR-User-Feld an.

AppendCDRUserField(String)

Hängt den übergebenen String an das CDR-User-Feld an.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'AppendCDRUserField' =- 

[Synopsis]
Append to the CDR user field

[Description]
[Synopsis]
AppendCDRUserField(value)

[Description]
AppendCDRUserField(value): Append value to the CDR user field
       The Call Data Record (CDR) user field is an extra field you
       can use for data not stored anywhere else in the record.
       CDR records can be used for billing or storing other arbitrary data
       (I.E. telephone survey responses)
       Also see SetCDRUserField().

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 
[Wichtig]Wichtig

Obwohl in der internen Hilfe noch kein Hinweis darauf steht, ist diese Applikation deprecated. Im Source-Code wird man fündig:

ast_log(LOG_WARNING, "AppendCDRUserField is deprecated.  Please use CDR(userfield) instead.\n");

Bitte verwenden Sie also die Funktion CDR(userfield).

Siehe auch. Abschnitt 6, „CDR()

11. Authenticate()

Verlangt zur Fortsetzung eines Vorgangs die Eingabe eines Passworts vom Anrufer.

Authenticate(Passwort[,Optionen[,maxZiffern]])

Verlangt, dass der Anrufer ein gegebenes Passwort korrekt eingibt, um dann mit der Ausführung der nächsten Priorität im Dialplan fortzufahren. Authenticate() gibt dem Anrufer drei Versuche, das Passwort korrekt einzugeben. Andernfalls wird die Verbindung beendet.

Falls Passwort mit dem /-Zeichen beginnt, wird es als Datei interpretiert, die eine Liste gültiger Passwörter (genau eins pro Zeile) enthält. Passwörter können auch in der Asterisk-Datenbank (AstDB) gespeichert sein, siehe dazu die Option d weiter unten.

Folgende Optionen sind möglich (auch in Kombination):

a
(accountcode) Setzt den Namen des CDR-Felds accountcode und die Variable für den Channel, ACCOUNTCODE, auf das eingegebene Passwort.
d
(database) Interpretiert Passwort als Schlüssel der Asterisk-Datenbank. Wenn ein Datenbankschlüssel benutzt wird, kann der mit dem Schlüssel assoziierte Wert beliebig sein.
r
(remove) Entfernt den Datenbankschlüssel nach erfolgreicher Verbindung und Eintreten in die Datenbank (nur möglich mit Option d).
j
(jump) Bei falschem Passwort statt aufzulegen zur Priorität n+101 springen, falls diese existiert.
[Wichtig]Wichtig

Beachten Sie bei der Option d, dass - wenig nachvollziehbar! - als Parameter /passwoerter/1234 verlangt wird, wobei passwoerter die Familie ist und 1234 das Passwort; der unter diesem Schlüssel gespeicherte Wert ist irrelevant. Der gesunde Menschenverstand würde einen Datenbank-Eintrag wie /passwoerter/art => 1234 erwarten.

Mit Angabe von maxZiffern wird die Eingabe automatisch nach sovielen Ziffern beendet, ohne dass der User # drücken muss (Default: 0 für keine Begrenzung).

Liefert 0 zurück, falls der Benutzer nach maximal drei Versuchen ein gültiges Passwort eingegeben hat, sonst -1 (auch nach Auflegen).

; Passwort 1234 verlangen:
exten => 123,1,Answer()
exten => 123,2,Authenticate(1234,j,4)           ; hier ausnahmsweise mit Priority-Jumping
                                                ; weil wir dem Anrufer noch sagen wollen
                                                ; dass sein Passwort falsch ist
exten => 123,3,Playback(pin-nummer-akzeptiert)
exten => 123,103,Playback(pin-nummer-falsch)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Authenticate' =- 

[Synopsis]
Authenticate a user

[Description]
  Authenticate(password[|options[|maxdigits]]): This application asks the caller
to enter a given password in order to continue dialplan execution. If the password
begins with the '/' character, it is interpreted as a file which contains a list of
valid passwords, listed 1 password per line in the file.
  When using a database key, the value associated with the key can be anything.
Users have three attempts to authenticate before the channel is hung up. If the
passsword is invalid, the 'j' option is specified, and priority n+101 exists,
dialplan execution will continnue at this location.
  Options:
     a - Set the channels' account code to the password that is entered
     d - Interpret the given path as database key, not a literal file
     j - Support jumping to n+101 if authentication fails
     m - Interpret the given path as a file which contains a list of account
         codes and password hashes delimited with ':', listed one per line in
         the file. When one of the passwords is matched, the channel will have
         its account code set to the corresponding account code in the file.
     r - Remove the database key upon successful entry (valid with 'd' only)
     maxdigits  - maximum acceptable number of digits. Stops reading after
         maxdigits have been entered (without requiring the user to
         press the '#' key).
         Defaults to 0 - no limit - wait for the user press the '#' key.

Differenz zum internen Hilfetext in Asterisk 1.2: 

8,10c8,10
<   Authenticate(password[|options[|maxdigits]]): This application asks the caller
< to enter a given password in order to continue dialplan execution. If the password
< begins with the '/' character, it is interpreted as a file which contains a list of
---
>   Authenticate(password[|options]): This application asks the caller to enter a
> given password in order to continue dialplan execution. If the password begins
> with the '/' character, it is interpreted as a file which contains a list of
25,28d24
<      maxdigits  - maximum acceptable number of digits. Stops reading after
<          maxdigits have been entered (without requiring the user to
<          press the '#' key).
<          Defaults to 0 - no limit - wait for the user press the '#' key.

Siehe auch. Abschnitt 131, „VMAuthenticate()

12. Background()

Spielt eine Audiodatei, während Touch-Tone-Ziffern (DTMF-Töne) akzeptiert werden.

Background(Datei1[&Datei2...][,Optionen[,Sprache]])

Spielt die angegebene(n) Audiodatei(en), während auf den Start der Eingabe einer Extension durch den Benutzer gewartet wird. Sobald der Benutzer mit der Eingabe einer Extension begonnen hat, wird die Wiedergabe beendet. Der Dateiname sollte ohne Dateiendung angegeben werden, da Asterisk dann automatisch das Dateiformat mit den geringsten Übersetzungskosten auswählt.

Optionen ist einer der folgenden Werte (nicht kombinierbar):

skip
Die Wiedergabe der Nachricht wird übersprungen, falls sich der Channel gegenwärtig nicht im up-Status befindet (z.B., weil er bisher nicht beantwortet wurde). Ist skip angegeben, wird die Anwendung unverzüglich beendet, falls der Channel aufgelegt ist.
noanswer
Der Channel kann erst beantwortet werden, nachdem die angegebene Audiodatei abgespielt wurde. Ist diese Option nicht angegeben, wird der Channel automatisch beantwortet, bevor die Audiodatei abgespielt wird. Es gilt zu beachten, dass nicht alle Kanäle erlauben, vor ihrer Beantwortung eine Nachricht abzuspielen.

Der Parameter Sprache kann verwendet werden, um eine bestimmte Sprache zu definieren, in der Nachrichten abgespielt werden sollen, falls diese nicht der für diesen Channel aktuell eingestellten Sprache entspricht.

Liefert -1 zurück, wenn aufgelegt wurde oder falls der angegebene Dateiname nicht existiert, sonst 0.

exten => 123,1,Answer()
exten => 123,n,Background(bitte-extension-eingeben)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'BackGround' =- 

[Synopsis]
Play an audio file while waiting for digits of an extension to go to.

[Description]
  Background(filename1[&filename2...][|options[|langoverride][|context]]):
This application will play the given list of files while waiting for an
extension to be dialed by the calling channel. To continue waiting for digits
after this application has finished playing files, the WaitExten application
should be used. The 'langoverride' option explicitly specifies which language
to attempt to use for the requested sound files. If a 'context' is specified,
this is the dialplan context that this application will use when exiting to a
dialed extension.  If one of the requested sound files does not exist, call processing will be
terminated.
  Options:
    s - Causes the playback of the message to be skipped
          if the channel is not in the 'up' state (i.e. it
          hasn't been answered yet). If this happens, the
          application will return immediately.
    n - Don't answer the channel before playing the files.
    m - Only break if a digit hit matches a one digit
          extension in the destination context.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< Play an audio file while waiting for digits of an extension to go to.
---
> Play a file while awaiting extension
12c12
< should be used. The 'langoverride' option explicitly specifies which language
---
> should be used. The 'langoverride' option explicity specifies which language
18c18
<     s - Causes the playback of the message to be skipped
---
>     s - causes the playback of the message to be skipped
20c20
<           hasn't been answered yet). If this happens, the
---
>           hasn't been answered yet.) If this happens, the
22,24c22,24
<     n - Don't answer the channel before playing the files.
<     m - Only break if a digit hit matches a one digit
<           extension in the destination context.
---
>     n - don't answer the channel before playing the files
>     m - only break if a digit hit matches a one digit
>           extension in the destination context

Siehe auch. Abschnitt 84, „Playback(), Abschnitt 13, „BackgroundDetect(), CLI-Befehl show translation

13. BackgroundDetect()

Spielt eine Audiodatei im Hintergrund und erkennt Sprechen.

BackgroundDetect(SoundDatei[,Stille[,Min[,Max]]])

Ähnlich Background(), versucht jedoch Sprechen zu erkennen.

Während der Wiedergabe der Datei wird Eingang von Audio in Empfangsrichtung überwacht. Wird eine Geräuschphase von mehr als Min Millisekunden Dauer und weniger als Max Millisekunden registriert, und darauf folgend eine geräuschlose Phase von wenigstens Stille Millisekunden, wird die Audiowiedergabe abgebrochen und die Ausführung an die Extension talk delegiert, falls diese existiert.

Sind Stille, Min und Max nicht spezifiziert, werden jeweils die Standardwerte 1000 ms, 100 ms und unendlich angenommen.

Wenn aufgelegt wird, liefert die Anwendung -1 zurück, nach abgeschossener Wiedergabe ohne vorhandene Ausstiegsbedingungen 0.

exten => 123,1,BackgroundDetect(sinfonie)
exten => 123,n,Playback(vm-sorry)
exten => talk,1,Playback(ja-bitte)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'BackgroundDetect' =- 

[Synopsis]
Background a file with talk detect

[Description]
  BackgroundDetect(filename[|sil[|min|[max]]]):  Plays  back  a  given
filename, waiting for interruption from a given digit (the digit must
start the beginning of a valid extension, or it will be ignored).
During the playback of the file, audio is monitored in the receive
direction, and if a period of non-silence which is greater than 'min' ms
yet less than 'max' ms is followed by silence for at least 'sil' ms then
the audio playback is aborted and processing jumps to the 'talk' extension
if available.  If unspecified, sil, min, and max default to 1000, 100, and
infinity respectively.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 84, „Playback(), Abschnitt 12, „Background()

14. Busy()

Zeigt dem Channel besetzt an.

Busy([Timeout])

Fordert den Channel auf, ein Besetzt-Zeichen zu signalisieren und wartet dann, bis der Benutzer auflegt oder auf den Ablauf der optional anzugebenden zeitlichen Frist (Timeout, in Sekunden).

Diese Anwendung signalisiert einen Besetzt-Zustand nur dem überbrückten Channel (bridged channel). Jeder spezielle Channeltyp hat seine eigene Art, dem Anrufer besetzt mitzuteilen. Sie können Playtones(busy) verwenden, um dem Anrufer ein Besetztzeichen vorzuspielen.

Gibt immer -1 zurück.

exten => 123,1,Playback(vm-sorry)
exten => 123,n,Playtones(busy)
exten => 123,n,Busy()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Busy' =- 

[Synopsis]
Indicate the Busy condition

[Description]
  Busy([timeout]): This application will indicate the busy condition to
the calling channel. If the optional timeout is specified, the calling channel
will be hung up after the specified number of seconds. Otherwise, this
application will wait until the calling channel hangs up.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 20, „Congestion(), Abschnitt 87, „Progress(), Abschnitt 85, „Playtones()

15. CallingPres()

Ändert die Präsentation der Anrufer-ID (Caller-ID).

CallingPres(presentation)

Ändert die Präsentations-Parameter für die Anrufer ID auf einer Q.931 PRI-Verbindung. Diese Parameter sollten gesetzt sein, bevor ein ausgehender Anruf getätigt wird. Der Präsentations-Parameter presentation bestimmt zum ersten, ob der angerufene Teilnehmer die Caller-ID-Information angezeigt bekommt oder nicht, und zum zweiten, ob die Caller-ID-Information von verlässlicher Quelle auf verifiziert geprüft wurde oder nicht (engl.: screening).

Diese Anwendung wurde durch SetCallerPres() ersetzt, welche einfacher handzuhaben und weniger abhängig von Zaptel ist.

Diese Anwendung generiert aus der Kombination von Anrufpräsentations-Einstellungen und Screening-Einstellungen eine Zahl. Die Werte selbst sind im ITU Q.931-Standard wie in den folgenden Tabellen definiert.

Screening wird durch die Bits 1 und 2 gesteuert:

Bit1Bit2Erläuterung
00Die Caller-ID-Information liefert der Teilnehmer, sie ist nicht verifiziert.
01Die Caller-ID-Information liefert der Teilnehmer, sie ist erfolgreich verifiziert.
10Die Caller-ID-Information liefert der Teilnehmer, die Verifizierung war nicht erfolgreich.
11Die Caller-ID-Information liefert das Netzwerk.

Präsentation wird durch die Bits 6 und 7 gesteuert:

Bit6Bit7Erläuterung
00Anzeige der Caller-ID-Information ist erlaubt.
01Anzeige der Caller-ID-Information ist nicht erlaubt.
10Die Nummer ist aufgrund von Zwischenstationen nicht verfügbar.
11Reserviert

Presentation indicator (octet 3a) Bits 7 6 Meaning 0 0 Presentation allowed 0 1 Presentation restricted 1 0 Number not available due to interworking 1 1 Reserved Screening indicator (octet 3a) Bits 2 1 Meaning 0 0 User-provided, not screened 0 1 User-provided, verified and passed 1 0 User-provided, verified and failed 1 1 Network provided In essence, it says, 'Is the person who has been called allowed to see the callers number?' and 'What authority was used to verify that this is a genuine number?'

Die Bits 3, 4, 5 und 8 sollten alle auf Null (0) gesetzt werden. Beachten Sie, dass die Bits in der Folge vom höchstwertigsten zum niederwertigsten nummeriert sind in der Form 87654321.

; presentation setzen auf:
; presentation erlaubt                (00000000)
; Netzwerk angegeben                  (00000011)
; ------------------                  ----------
; Ergebnis: 3 (bitweises UND)         (00000011)
exten => 123,1,CallingPres(3)
exten => 123,2,Dial(Zap/g1/1234567)
; presentation setzen auf:
; presentation nicht erlaubt          (00100000)
; vom User, verifiziert               (00000001)
; ------------------                  ----------
; Ergebnis: 33 (bitweises UND)        (00100001)
exten => 124,1,CallingPres(33)
exten => 124,2,Dial(Zap/g1/1234568)

Siehe auch. Abschnitt 112, „SetCallerPres()

16. ChangeMonitor()

Ändert den Dateinamen der Protokolldatei für einen Channel.

ChangeMonitor(Basis-Dateiname)

Ändert den Namen der bei der Überwachung eines Channels mit Monitor() aufgezeichneten Datei. Diese Anwendungen hat keinerlei Auswirkungen, wenn der fragliche Channel nicht überwacht wird.

; Channel mitschneiden mit Datei-Basisname 'mitschnitt'
exten => 123,1,Monitor(mitschnitt)
; Datei-Basisnamen auf 'mitschnitt2' ändern
exten => 123,n,ChangeMonitor(mitschnitt2)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ChangeMonitor' =- 

[Synopsis]
Change monitoring filename of a channel

[Description]
ChangeMonitor(filename_base)
Changes monitoring filename of a channel. Has no effect if the channel is not monitored
The argument is the new filename base to use for monitoring this channel.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 68, „Monitor(), Abschnitt 121, „StopMonitor()

17. ChanIsAvail()

Ermittelt, ob ein bestimmter Channel momentan verfügbar ist.

ChanIsAvail(Technology1/Resource1[&Technology2/Resource2...][,Optionen])

Prüft, ob irgendeiner der angeforderten Kanäle verfügbar ist (in der angegebenen Reihenfolge). Liefert 0 zurück bei Erfolg oder -1, falls kein Kanal verfügbar ist.

Ist die Option s (für state) angegeben, wird Asterisk den Channel als nicht verfügbar betrachten, wenn er in Gebrauch ist, sogar falls er einen weiteren anderen Anruf aufnehmen kann. Mit der Option j wird, falls der Channel nicht verfügbar ist, zur Priorität n+101 gesprungen.

[Anmerkung]Anmerkung

Dass ein Kanal verfügbar ist, bedeutet aber nicht automatisch, dass er auch frei ist oder dass das Endgerät einen Anruf akzeptieren würde. Das erfährt man durch ein Dial() zum Kanal.

ChanIsAvail() setzt die folgenden Channelvariablen:

${AVAILCHAN}
Der Name des verfügbaren Channels, inklusive der Session-Nummer des Anrufs.
${AVAILORIGCHAN}
Der kanonische Channelname, der benutzt wurde um den Channel zu erstellen, d.h. der Channelname ohne eine Session-Nummer.
${AVAILSTATUS}

Der Status-Code des Channels:

AST_DEVICE_UNKNOWN (0)
Unbekannt. Der Channel ist gültig, aber in unbekanntem Zustand.
AST_DEVICE_NOT_INUSE (1)
Channel wird nicht verwendet.
AST_DEVICE_IN_USE (2)
Der Channel ist in Gebrauch.
AST_DEVICE_BUSY (3)
Besetzt.
AST_DEVICE_INVALID (4)
Ungültig. Unbekannter Channel.
AST_DEVICE_UNAVAILABLE (5)
Nicht verfügbar. Channel ist nicht registriert.
AST_DEVICE_RINGING (6)
Channel klingelt.
[Anmerkung]Anmerkung

Diese Anwendung arbeitet auf MGCP-Kanälen nicht ordnungsgemäß.

; Zap/1 und Zap/2 auf Verfügbarkeit prüfen:
exten => 123,1,ChanIsAvail(Zap/1&Zap/2,j)
; hier ausnahmsweise mit Priority jumping, da wir, falls kein Kanal
; frei ist, noch eine Ansage machen wollen

; mindestens einer der Kanäle verfügbar, auf diesem wählen:
exten => 123,2,NoOp(${AVAILORIGCHAN} ist verfuegbar)
exten => 123,3,Dial(${AVAILORIGCHAN}/123456)

; wenn wir bei Prio. 102 landen, ist weder Zap/1 noch Zap/2 verfügbar
exten => 123,102,Playback(alle-kanaele-belegt)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ChanIsAvail' =- 

[Synopsis]
Check channel availability

[Description]
  ChanIsAvail(Technology/resource[&Technology2/resource2...][|options]): 
This application will check to see if any of the specified channels are
available. The following variables will be set by this application:
  ${AVAILCHAN}     - the name of the available channel, if one exists
  ${AVAILORIGCHAN} - the canonical channel name that was used to create the channel
  ${AVAILSTATUS}   - the status code for the available channel
  Options:
    s - Consider the channel unavailable if the channel is in use at all
    j - Support jumping to priority n+101 if no channel is available

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

18. ChannelRedirect()

Leitet einen Channel auf eine andere Priorität.

ChannelRedirect(Channel,[Context,]Extension,Priorität)

Leitet den angegebenen Channel auf eine andere Extension im Dialplan um.

Channel
Name des Channels der umgeleitet werden soll
Context
Ziel-Context zu dem gesprungen werden soll
Extension
Ziel-Extension zu der gesprungen werden soll
priority
Ziel-Priorität in der neuen Extension
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ChannelRedirect' =- 

[Synopsis]
Redirects given channel to a dialplan target.

[Description]
ChannelRedirect(channel|[[context|]extension|]priority):
  Sends the specified channel to the specified extension priority

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 49, „Goto(), Abschnitt 124, „Transfer()

19. ChanSpy()

Einen Channel belauschen

ChanSpy([Channelpräfix[,Optionen]])

Erlaubt es, das Gespräch auf beliebigen Kanälen mitzuhören. (Ist also nicht wie ZapBarge()/ZapScan() an Zap-Kanäle gebunden.) Für das Verständnis einiger Optionen ist zu beachten, dass diese Applikation einzelne Kanäle abhört, aber nicht Gespräche im eigentlichen Sinn (min. 2 Teilnehmer), obwohl Sie natürlich das ein- und ausgehende Audio auf dem abgehörten Channel hören können. Bitte achten sie die Persönlichkeitsrechte anderer! Falls sie Gespräche unaufgefordert und ohne Wissen der Teilnehmer mithören machen sie sich strafbar.

Wenn Channelpräfix angegeben ist, stehen nur Kanäle, die mit diesem String beginnen, zur Auswahl.

Optionen (auch in Kombination):

b
(bridged) Auswahl nur auf verbundene Kanäle beschränken.
g(grp)
(group) Auswahl auf Kanäle beschränken, auf denen grp in der durch Doppelpunkt (:) getrennten Liste ${SPYGROUP} (Channelvariable) enthalten ist.
q
(quiet) Keine Piep-Töne beim Umschalten von Kanälen spielen und Channelname nicht ankündigen.
r([Name])

(record) Die Sitzung in einer Datei im Verzeichnis /var/spool/asterisk/monitor/ aufzeichnen. Default-Basis-Dateiname (also ohne Endung) ist chanspy.

v[(Wert)]

(volume) Die anfängliche Lautstärkeeinstellung von -4 (leise) bis 4 (laut) verändern.

w
(whisper) Flüster-Modus aktivieren. Damit kann der lauschende Channel mit dem belauschten sprechen, wobei dies nur der belauschte Channel hört, nicht dessen Gesprächspartner. (Diese Option ist seit Asterisk 1.4 verfügbar.)
W
(private whisper) Privater Flüster-Modus. Wie w, aber der lauschende Channel kann den belauschten nicht hören. (sinnvoll?)

Während des Abhörens können folgende Tastenbefehle gegeben werden:

#
Schaltet durch die Lautstärkeeinstellung (-4 bis 4)
*
Schaltet zu einem anderen Channel
...#
Eine Reihe von Ziffern, abgeschlossen durch #, wird an Channelpräfix angehängt. Wenn Sie z.B. ChanSpy(Agent) ausführen und 1234# eingeben, werden Sie auf dem Channel Agent/1234 lauschen.
; Agenten belauschen:
exten => 123,1,ChanSpy(Agent)
exten => 123,n,Hangup()

; Beispiel für die Option g:
; auf Anrufen auf 0... SPYGROUP 10005 setzen:
exten => _0.,1,Set(SPYGROUP=10005)
;...
; Kanäle der SPYGROUP 10005 belauschen:
exten => 123,1,ChanSpy(,g(10005))
exten => 123,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ChanSpy' =- 

[Synopsis]
Listen to a channel, and optionally whisper into it

[Description]
  ChanSpy([chanprefix][|options]): This application is used to listen to the
audio from an Asterisk channel. This includes the audio coming in and
out of the channel being spied on. If the 'chanprefix' parameter is specified,
only channels beginning with this string will be spied upon.
  While spying, the following actions may be performed:
    - Dialing # cycles the volume level.
    - Dialing * will stop spying and look for another channel to spy on.
    - Dialing a series of digits followed by # builds a channel name to append
      to 'chanprefix'. For example, executing ChanSpy(Agent) and then dialing
      the digits '1234#' while spying will begin spying on the channel
      'Agent/1234'.
  Options:
    b             - Only spy on channels involved in a bridged call.
    g(grp)        - Match only channels where their ${SPYGROUP} variable is set to
                    contain 'grp' in an optional : delimited list.
    q             - Don't play a beep when beginning to spy on a channel, or speak the
                    selected channel name.
    r[(basename)] - Record the session to the monitor spool directory. An
                    optional base for the filename may be specified. The
                    default is 'chanspy'.
    v([value])    - Adjust the initial volume in the range from -4 to 4. A
                    negative value refers to a quieter setting.
    w             - Enable 'whisper' mode, so the spying channel can talk to
                    the spied-on channel.
    W             - Enable 'private whisper' mode, so the spying channel can
                    talk to the spied-on channel but cannot listen to that
                    channel.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5,6
< Listen to a channel, and optionally whisper into it
---
> Listen to the audio of an active channel
> 
9c10
< audio from an Asterisk channel. This includes the audio coming in and
---
> audio from an active Asterisk channel. This includes the audio coming in and
12c13
<   While spying, the following actions may be performed:
---
>   While Spying, the following actions may be performed:
17c18
<       the digits '1234#' while spying will begin spying on the channel
---
>       the digits '1234#' while spying will begin spying on the channel,
20,24c21,24
<     b             - Only spy on channels involved in a bridged call.
<     g(grp)        - Match only channels where their ${SPYGROUP} variable is set to
<                     contain 'grp' in an optional : delimited list.
<     q             - Don't play a beep when beginning to spy on a channel, or speak the
<                     selected channel name.
---
>     b - Only spy on channels involved in a bridged call.
>     g(grp) - Match only channels where their ${SPYGROUP} variable is set to
>              'grp'.
>     q - Don't play a beep when beginning to spy on a channel.
28,34c28,29
<     v([value])    - Adjust the initial volume in the range from -4 to 4. A
<                     negative value refers to a quieter setting.
<     w             - Enable 'whisper' mode, so the spying channel can talk to
<                     the spied-on channel.
<     W             - Enable 'private whisper' mode, so the spying channel can
<                     talk to the spied-on channel but cannot listen to that
<                     channel.
---
>     v([value]) - Adjust the initial volume in the range from -4 to 4. A
>                  negative value refers to a quieter setting.

Siehe auch. Abschnitt 39, „ExtenSpy(), Abschnitt 141, „ZapBarge(), Abschnitt 143, „ZapScan(), Abschnitt 68, „Monitor()

20. Congestion()

Zeigt Stau (Überlastung) auf dem Channel an.

Congestion([Timeout])

Zeigt auf dem Channel Stau an und wartet dann, bis der Teilnehmer auflegt, oder bis die optional spezifizierbare Frist (Timeout, in Sekunden) abgelaufen ist.

Diese Anwendung signalisiert Stau lediglich, sie spielt aber dem Teilnehmer keinen Stau-Ton vor. Um einem Anrufer einen Stau-Ton vorzuspielen, kann Playtones(congestion) verwendet werden.

Liefert stets -1 zurück.

; bei Caller ID is 0123-123456 immer Stau-Signal spielen:
exten => 123,1,GotoIf($[${CALLERID(num)} = 0123123456]?10)
exten => 123,n,Playtones(congestion)
exten => 123,n,Congestion(5)
exten => 123,n,Hangup()
exten => 123,10,Dial(Zap/1)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Congestion' =- 

[Synopsis]
Indicate the Congestion condition

[Description]
  Congestion([timeout]): This application will indicate the congestion
condition to the calling channel. If the optional timeout is specified, the
calling channel will be hung up after the specified number of seconds.
Otherwise, this application will wait until the calling channel hangs up.

Differenz zum internen Hilfetext in Asterisk 1.2: 

8c8
<   Congestion([timeout]): This application will indicate the congestion
---
>   Congestion([timeout]): This application will indicate the congenstion

Siehe auch. Abschnitt 14, „Busy(), Abschnitt 87, „Progress(), Abschnitt 85, „Playtones()

21. ContinueWhile()

Springt während der Ausführung einer While-Schleife wieder zum Anfang.

ContinueWhile()

Mit ContinueWhile() kann die Ausführung einer While-Schleife im Dialplan unterbrochen werden. Es wird dann direkt zum Beginn der While-Schleife gesprungen und die Bedingung erneut geprüft.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ContinueWhile' =- 

[Synopsis]
Restart a While loop

[Description]
Usage:  ContinueWhile()
Returns to the top of the while loop and re-evaluates the conditional.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- nicht in Version 1.2. vorhanden --

Siehe auch. Abschnitt 139, „While(), Abschnitt 38, „ExitWhile(), Abschnitt 1, „TBD“

22. ControlPlayback()

Spielt eine Datei ab und kann diese auch schnell vor- und zurückspulen.

ControlPlayback(Datei[,skipms[,ffchar[,rewchar[,stopchar[,pausechar]]]]])

Spielt die angegebene Datei ab und ermöglicht es dem Anrufer, sich durch Betätigen der Tasten ffchar und rewchar in dieser Datei vorwärts und rückwärts zu bewegen. Als Standardeinstellung können die Tasten # und * zum Vor- und Zurückspulen der Datei verwendet werden. Ist stopchar spezifiziert, hält die Anwendung die Wiedergabe an, wenn die stopchar-Taste gedrückt wird. Existiert die Datei nicht, geht die Anwendung zu Priorität n+101 über, falls vorhanden.

Die skipms-Option gibt an, wie weit mit jedem Drücken von ffchar oder rewchar in der Datei vor- bzw. zurückgesprungen wird.

Die pausechar-Option kann ebenfalls spezifiziert werden, sie erlaubt es, die Wiedergabe der Datei vorübergehend anzuhalten (Pause). Erneutes Drücken von pausechar setzt die Wiedergabe der Datei dann fort.

Gibt -1 zurück, falls der Channel während der Wiedergabe aufgelegt wurde.

; dem Anrufer "sinfonie" vorspielen mit Steuerungsmöglichkeit:
exten => 123,1,ControlPlayback(sinfonie,5000,#,*,5,0)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ControlPlayback' =- 

[Synopsis]
Play a file with fast forward and rewind

[Description]
  ControlPlayback(file[|skipms[|ff[|rew[|stop[|pause[|restart|options]]]]]]]):
This application will play back the given filename. By default, the '*' key
can be used to rewind, and the '#' key can be used to fast-forward.
Parameters:
  skipms  - This is number of milliseconds to skip when rewinding or
            fast-forwarding.
  ff      - Fast-forward when this DTMF digit is received.
  rew     - Rewind when this DTMF digit is received.
  stop    - Stop playback when this DTMF digit is received.
  pause   - Pause playback when this DTMF digit is received.
  restart - Restart playback when this DTMF digit is received.
Options:
  j - Jump to priority n+101 if the requested file is not found.
This application sets the following channel variable upon completion:
  CPLAYBACKSTATUS -  This variable contains the status of the attempt as a text
                     string, one of: SUCCESS | USERSTOPPED | ERROR

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 84, „Playback(), Abschnitt 12, „Background()

23. DateTime()

Sagt die angegebene Uhrzeit.

DateTime([Unix-Zeit[,timezone[,Format]]])

Sagt die angegebene Uhrzeit an. DateTime() ist zwar (noch?) nicht deprecated, ist aber intern nur noch ein Alias auf SayUnixTime(), siehe dort für Aufruf und Funktionsweise.

Siehe auch. Abschnitt 105, „SayUnixTime()

24. DBdel()

Löscht einen Schlüssel aus der AstDB.

DBdel(Familie/Schlüssel)

Löscht den durch key spezifizierten Schlüssel aus der Schlüsselfamilie Familie aus der AstDB.

Liefert stets 0 zurück.

exten => 123,1,Set(DB(test/name)=Peter)    ; in AstDB speichern
exten => 123,n,Set(name=${DB(test/name)})  ; abfragen
exten => 123,n,DBdel(test/name)            ; löschen
[Wichtig]Wichtig

Die Applikation DBdel() ist seit 1.4 „deprecated“ und wird durch die Funktion DB_DELETE() ersetzt.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'DBdel' =- 

[Synopsis]
Delete a key from the database

[Description]
  DBdel(family/key): This application will delete a key from the Asterisk
database.
  This application has been DEPRECATED in favor of the DB_DELETE function.

Differenz zum internen Hilfetext in Asterisk 1.2: 

10d9
<   This application has been DEPRECATED in favor of the DB_DELETE function.

Siehe auch. Abschnitt 25, „DBdeltree(), Abschnitt 11, „DB(), Abschnitt 12, „DB_DELETE()

25. DBdeltree()

Löscht eine Familie oder einen Schlüsselbaum aus der AstDB.

DBdeltree(Familie[/Schlüsselzweig])

Löscht den angegebenen Schlüsselzweig aus der AstDB.

Liefert immer 0 zurück.

; Einträge in der AstDB anlegen:
exten => 123,1,Set(DB(farben/eins)=rot)
exten => 123,n,Set(DB(farben/zwei)=blau)
; now delete the key family named test
exten => 123,n,DBdeltree(farben)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'DBdeltree' =- 

[Synopsis]
Delete a family or keytree from the database

[Description]
  DBdeltree(family[/keytree]): This application will delete a family or keytree
from the Asterisk database

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 24, „DBdel(), Abschnitt 11, „DB()

26. DeadAGI()

Führt ein AGI-konformes Skript auf einem toten (aufgelegten) Channel aus.

DeadAGI(Programm,Argumente)

Führt ein AGI-konformes Skript auf einem toten (aufgelegten) Channel aus. Mit Hilfe von AGI kann Asterisk externe Programme in nahezu jeder beliebigen Sprache ausführen (starten), um einen Telefonkanal zu steuern, Audio abzuspielen, DTMF-Ziffern auszulesen usw., indem es nach dem AGI-Protokoll auf STDIN und STDOUT mit diesen kommuniziert. Die übergebenen Argumente werden an das AGI-Programm durchgereicht.

Diese Anwendung wurde speziell für tote Kanäle entwickelt, weil das Standard AGI-Interface nicht funktioniert, nachdem der Channel aufgelegt wurde. Dass der Channel „tot“ ist, ist allerdings keine Voraussetzung für den Start eines DeadAGI-Skripts!

Benutzen Sie den Befehl show agi auf der Kommandozeilen-Schnittstelle, um eine Liste aller verfügbaren AGI-Befehle zu erhalten.

Liefert -1 zurück, falls die Anwendung ein Auflegen angefordert hat, oder 0 beim Austritt ohne Auflegen.

; mit einem bereits aufgelegten (h) Kanal noch ein AGI-Skript ausführen:
exten => h,1,DeadAGI(agi-test)
[Wichtig]Wichtig

Der Channel wird solange als aktiv angesehen wird, bis das Skript beendet wird, was z.B. für CDRs von Bedeutung sein kann.

Beachten Sie, dass auch DeadAGI-Skripte beim Auflegen des Channels ein SIGHUP-Signal erhalten, was ggf. ignoriert werden muss:

Perl
$SIG{HUP} = "IGNORE";
PHP
pcntl_signal(SIGHUP, SIG_IGN);
(PHP muss mit --enable-pcntl kompiliert worden sein, was per Default nicht der Fall ist!)
Ruby
trap('SIGHUP','IGNORE')

Es ist auch wichtig, dass Sie nach dem Auflegen nicht mehr mit Asterisk kommunizieren, sonst erhält das Skript ein SIGPIPE, was das Skript beendet, sofern Sie es nicht ignorieren.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'DeadAGI' =- 

[Synopsis]
Executes AGI on a hungup channel

[Description]
  [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant
program on a channel. AGI allows Asterisk to launch external programs
written in any language to control a telephony channel, play audio,
read DTMF digits, etc. by communicating with the AGI protocol on stdin
and stdout.
  This channel will stop dialplan execution on hangup inside of this
application, except when using DeadAGI.  Otherwise, dialplan execution
will continue normally.
  A locally executed AGI script will receive SIGHUP on hangup from the channel
except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel
variable to "no" before executing the AGI application.
  Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
on file descriptor 3

  Use the CLI command 'agi show' to list available agi commands
  This application sets the following channel variable upon completion:
     AGISTATUS      The status of the attempt to the run the AGI script
                    text string, one of SUCCESS | FAILED | HANGUP

Differenz zum internen Hilfetext in Asterisk 1.2: 

13,19c13,15
<   This channel will stop dialplan execution on hangup inside of this
< application, except when using DeadAGI.  Otherwise, dialplan execution
< will continue normally.
<   A locally executed AGI script will receive SIGHUP on hangup from the channel
< except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel
< variable to "no" before executing the AGI application.
<   Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
---
> Returns -1 on hangup (except for DeadAGI) or if application requested
>  hangup, or 0 on non-hangup exit. 
> Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
22,25c18
<   Use the CLI command 'agi show' to list available agi commands
<   This application sets the following channel variable upon completion:
<      AGISTATUS      The status of the attempt to the run the AGI script
<                     text string, one of SUCCESS | FAILED | HANGUP
---
> Use the CLI command 'show agi' to list available agi commands

Siehe auch. Abschnitt 6, „AGI(), Abschnitt 41, „FastAGI()

27. Dial()

Verbindet Kanäle.

Dial(Tech/Resource,Timeout,Optionen,URL)
Dial(Tech1/Resource1[&Tech2/Resource2[&...]],Timeout,Optionen,URL)
Dial(Tech/User:Passwort@Host/Extension,Timeout,Optionen)

Ermöglicht es, zwei Kanäle miteinander zu verbinden.[99] Dial() ist eine der wichtigsten Anwendungen in Asterisk, lesen Sie diesen Ausschnitt deshalb bitte aufmerksam und eventuell mehrmals durch.

Jeder gültige Channeltyp (wie z.B. SIP, IAX2, H.323, MGCP, Local oder Zap) wird von Dial() akzeptiert, aber die Parameter, die jedem Channel übergeben werden müssen, hängen von denjenigen Informationen ab, die der entsprechende Channeltyp benötigt, um seine Arbeit zu verrichten. So wird zum Beispiel ein SIP-Channel eine Netzwerkadresse und einen Benutzer benötigen, zu dem die Verbindung hergestellt werden soll, während ein ZAP-Channel irgendeine Art von Telefonnummer verlangt.

Wenn ein Netzwerk-basierter Channeltyp spezifiziert wird, können Zielhost (Name oder IP-Adresse), Benutzername, Passwort und Fernsteuerungs-Extension als Teil der Optionen an Dial() übergeben werden, oder man kann auf den Namen eines Channeleintrags in der entsprechenden Konfigurationsdatei (.conf-Datei) verweisen - alle notwendigen Informationen müssen dann in dieser Datei vorhanden sein. Benutzername und Passwort können durch den Namen der Channelkonfigurationsdatei, umgeben von eckigen Klammern ([]) ersetzt werden. Die Angabe des Hostnamens ist optional.

Ein Beispiel für einen gültigen Aufruf:

exten => s,1,Dial(SIP/peter:geheim@meier.tld)

Das Gleiche würde auch der folgende Aufruf bewirken:

exten => s,1,Dial(SIP/ein_SIP_friend)

wenn in sip.conf ein entsprechender Channel definiert ist:

[ein_SIP_friend]
fromuser=peter
password=geheim
host=meier.tld

Oft ist eine Extension wie folgt an die Adressinformation angehängt:

exten => s,1,Dial(IAX2/benutzer:passwort@beispiel.de/500)

Dadurch wird das entfernte Ende aufgefordert, den Anruf mit Extension 500 zu verbinden, und zwar in dem Context, in der der Channel eingegangen ist. Diese Extension wird von Dial() nicht benötigt, weil die in der Channelkonfiguration des entfernten Endes vorliegenden Daten verwendet werden oder der Remoteserver den Anruf zur s-Extension in dem Context, in dem der Anruf eingegangen ist, weiterleitet.

Schlussendlich kontrolliert das entfernte Ende, was mit dem Anruf geschehen soll - Sie können lediglich eine spezielle Behandlung anfragen.

Wenn kein Timeout spezifiziert ist, wird der Channel unendlich klingeln. Dieses Verhalten muss nicht immer schlecht sein, es besteht keine Veranlassung, ihn immer zu setzen - man muss sich nur vergegenwärtigen, dass unendlich evtl. eine sehr lange Zeit bedeuten kann.[100] Timeout wird in Sekunden angegeben. Der Klingel-Timeout folgt immer der Adressinformation, wie folgt:

exten => s,1,Dial(IAX2/user:pass@beispiel.de/500,20)

Mit Dial() können auch mehrere Channels parallel angerufen werden. Dabei gilt das Prinzip „Wer zuerst kommt, mahlt zuerst“. Welcher Angerufene als erstes abhebt, bekommt das Gespräch:

exten => s,1,Dial(SIP/2000&SIP/2001&SIP/2303)

Ein großer Teil der Mächtigkeit der Dial()-Anwendung liegt in den Optionen oder Flags. Diese werden nach der Adress- und Timeout-Information angegeben, und zwar so:

exten => s,1,Dial(IAX2/user:pass@beispiel.de/500,60,Flags)

Wichtig! Es gilt zu beachten, dass, wenn Sie Flags hinzufügen möchten, aber kein Timeout spezifiert ist, dennoch der Ort für den Timeout nicht fehlen darf. D. h., ein zusätzliches Komma muss an der Stelle eingefügt werden, an der normalerweise der Wert für den Timeout stehen würde, also so:

exten => s,1,Dial(IAX2/user:pass@beispiel.de/500,,Flags)

Die gültigen Flags, die mit der Dial()-Anwendung benutzt werden können, sind:

d
Erlaubt es dem Teilnehmer, während des Wartens auf die Beantwortung eines Anrufs eine einziffrige Extension zu wählen. Der Anruf wird dann zu dieser Extension umgeleitet (d.h. der Anruf wird zugunsten dieser Extension beendet) (entweder im aktuellen Context oder, falls er spezifiziert wurde, im Context ${EXITCONTEXT}).
t
Erlaubt es dem angerufenen Teilnehmer, einen verbundenen Anruf durch Drücken der #-Taste zu übertragen. Es gilt zu beachten, dass Neueinladungen nicht möglich sind, wenn diese Option benutzt wird, weil Asterisk den Anruf überwachen muss, um zu erkennen, wenn die angerufene Seite die #-Taste drückt.
T
Erlaubt es dem Anrufer, einen verbundenen Anruf durch Drücken der #-Taste zu übertragen. Auch hier beachten Sie bitte, dass Neueinladungen bei Benutzung dieser Option nicht möglich sind, weil Asterisk den Anruf überwachen muss, um zu erkennen, wenn die angerufene Seite die #-Taste drückt.
w
Ermöglicht es dem angerufenen Teilnehmer den Anruf durch Eintippen der automon-Sequenz (wie in features.conf konfiguriert) aufzunehmen (Audio to disk). Falls die Variable TOUCH_MONITOR gesetzt ist, wird ihr Wert als Parameter der Monitor()-Anwendung weitergeleitet, wenn die Aufnahme startet. Ist sie nicht gesetzt, wird Monitor() die Vorgabe WAV,,m übergeben.
W
Ermöglicht es dem Anrufer den Anruf durch Eintippen der automon-Sequenz (wie in features.conf konfiguriert) aufzunehmen (Audio to disk).
f
Durch dieses Flag muss die Caller-ID als die Extension der Leitung gesetzt werden, die den ausgehenden Anruf erstellt oder umleitet. Das wird so gemacht, weil einige PSTN-Diensteanbieter es nicht erlauben, die Caller-ID auf irgendeinen anderen als den Ihnen zugewiesenen Wert zu setzen. Zum Beispiel würden Sie, wenn Sie einen PRI hatten, das Flag f verwenden, um irgendeine lokal im SIP-Telefon gespeicherte Caller-ID zu überscheiben.
o
Benutzt die auf der eingehenden Strecke des Anrufs empfangene Caller ID als die Caller ID auf der ausgehenden Richtung des Anrufs. Das ist nützlich, falls ein Anruf akzeptiert und dann zu einem anderen Ziel weitergeleitet wird, wobei die Caller ID der eingehenden Richtung des Anrufs weitergeben wird, statt diese zunächst mit den lokalen Caller ID-Einstellungen zu überschreiben.
r
Signalisiert dem Anrufer Klingeln, ohne dass Audio weitergeleitet wird, bevor der Anruf beantwortet wird. Dieses Flag wird für gewöhnlich nicht benötigt, um Klingeln zu signalisiern, da Asterisk Klingeln signalisiert, wenn ein Channel angerufen wird.
m[Klasse]
Beliefert den Anruf mit Musik, bis der Anruf beantwortet wird. Optional können Sie auch die Music-on-Hold-Klasse (z.B. Musikrichtung) angeben.
M(x[^arg])

Führt auf die Verbindung eines Anrufs hin das Makro x aus, und leitet dabei optional Parameter, getrennt durch ^, weiter. Das Makro kann auch die MACRO_RESULT-Channelvariable auf einen der folgenden Werte setzen:

ABORT
Legt bei beiden Enden des Anrufs auf.
CONGESTION
Wirkt, als wäre Stau auf der Leitung.
BUSY
Wirkt, als wäre die Leitung besetzt (geht zur Priorität n+101).
CONTINUE
Legt die Seite des Angerufenen auf und fährt im Wählplan fort.
GOTO:<Context>^<Extension>^<Priorität>
Springt zu der angegebenen Position im Wählplan.
h
Erlaubt es dem angerufenen Teilnehmer, die Leitung durch Drücken von * aufzulegen.
H
Erlaubt es dem anrufenden Teilnehmer, die Leitung durch Drücken von * aufzulegen.
C
Setzt das Call Detail Record (Anrufprotokoll) zurück. Da die CDR-Zeit zum Zeitpunkt der Beantwortung des Anrufs gesetzt wird, ist es sinnvoll, CDR ebenfalls zurückzusetzen, damit dem Teilnehmer nicht die Zeit vor dem Aufruf der Dial()-Anwendung in Rechnung gestellt wird.
P[(x)]
Aktiviert den Geheimhaltungs-Modus, wobei optional x als Familie/Schlüssel-Wert in der AstDB spezifiziert werden kann. Dieser Modus ist beispielsweise nützlich, wenn Anrufe aus einer Blacklist (Anrufe von Nummern aus der Blacklist werden explizit abgelehnt) oder Whitelist (Anrufe von den gelisteten Nummern werden explizit akzeptiert) angenommen werden. Siehe auch LookupBlacklist().
g
Geht weiter im Context, wenn der Zielkanal aufgelegt wird.
G(context^extension^priority)
Übermittelt beide Seiten zum spezifizierten Ziel, wenn der Anruf beantwortet wird.
A(x)
Spielt dem angerufenen Teilnehmer eine Ankündigung vor. x ist der Dateiname der Audiodatei, die als Ankündigung abzuspielen ist.
D([called][:calling])
Sendet DTMF-Ziffern, nachdem der Anruf beantwortet wurde, aber bevor der Anruf überbrückt wird. Der Parameter called wird an die angerufene Seite weitergegeben, und der Parameter calling an die anrufende Seite. Beide Parameter können individuell eingesetzt werden.
L(x[:y][:z])

Begrenzt die Dauer des Anrufs auf x Millisekunden, wobei y Millisekunden vor Ablauf der festgesetzten Dauer und danach wiederholt alle z Millisekunden bis zum Anlauf der Frist eine Warnung signalisiert wird. Der x-Parameter muss angegeben werden, y und z sind optional. Die folgenden speziellen Variablen können ebenfalls gesetzt werden und stellen zusätzliche Kontrollmöglichkeiten zur Verfügung:

LIMIT_PLAYAUDIO_CALLER=yes|no
Gibt an, ob dem Anrufer Audiodateien vorgespielt werden sollen.
LIMIT_PLAYAUDIO_CALLEE=yes|no
Gibt an, ob dem Angerufenen Audiodateien vorgespielt werden sollen.
LIMIT_TIMEOUT_FILE=filename
Gibt an, welche Datei abgespielt werden soll, nachdem die Zeit abgelaufen ist.
LIMIT_CONNECT_FILE=filename
Gibt an, welche Datei zu Beginn des Anrufs abgespielt werden soll.
LIMIT_WARNING_FILE=filename
Gibt an, welche Datei gespielt werden soll, wenn der Parameter y angegeben ist.
j

Erlaubt, dass zu Priorität n+101 übergegangen wird (n: aktuelle Priorität), falls alle Kanäle als besetzt erachtet werden.

Ein Anruf kann auch geparkt werden, statt übermittelt zu werden (was mit t oder T-Flag der Fall ist). Anrufe werden gewöhnlich geparkt, indem man sie der Extension 700 übermittelt, aber dieses Verhalten ist in features.conf konfigurierbar.

Mit dem Enden der Dial()-Anwendung werden die folgenden Variablen gesetzt:

DIALEDTIME
Die gesamte Zeit, die von der Ausführung der Dial()-Anwendung an bis zu ihrer Beendigung verstrichen ist.
ANSWEREDTIME
Die gesamte Zeit, die während des Anrufs vergangen ist.
DIALSTATUS

Der Status des Anrufs, ausgedrückt durch einen der folgenden Werte:

CHANUNAVAIL
Der Channel ist nicht verfügbar.
CONGESTION
Der Channel hat ein Stau-Signal zurückgeliefert, was gewöhnlich die Unfähigkeit der Fertigstellung der Verbindung kennzeichnet.
NOANSWER
Der Channel hat in der durch die Klingel-Timeout-Option gesetzten Frist nicht geantwortet.
BUSY
Der angerufene Channel ist momentan belegt.
ANSWER
Der Channel hat den Anruf beantwortet.
CANCEL
Der Anruf wurde abgebrochen.
; eine Nummer auf Zap-Channel 2 wählen, max. 10 Sekunden klingeln:
exten => 123,1,Dial(Zap/2/1234567,10,tTm)
; sonst weiter im Dialplan:
exten => 123,n,Playback(tut-uns-leid)
exten => 123,n,Hangup()

; über IAX die Extension 500 auf dem Host beispiel.de wählen:
exten => 123,1,Dial(IAX/username:password@beispiel.de/500)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Dial' =- 

[Synopsis]
Place a call and connect to the current channel

[Description]
  Dial(Technology/resource[&Tech2/resource2...][|timeout][|options][|URL]):
This application will place calls to one or more specified channels. As soon
as one of the requested channels answers, the originating channel will be
answered, if it has not already been answered. These two channels will then
be active in a bridged call. All other channels that were requested will then
be hung up.
  Unless there is a timeout specified, the Dial application will wait
indefinitely until one of the called channels answers, the user hangs up, or
if all of the called channels are busy or unavailable. Dialplan executing will
continue if no requested channels can be called, or if the timeout expires.

  This application sets the following channel variables upon completion:
    DIALEDTIME   - This is the time from dialing a channel until when it
                   is disconnected.
    ANSWEREDTIME - This is the amount of time for actual call.
    DIALSTATUS   - This is the status of the call:
                   CHANUNAVAIL | CONGESTION | NOANSWER | BUSY | ANSWER | CANCEL
                   DONTCALL | TORTURE
  For the Privacy and Screening Modes, the DIALSTATUS variable will be set to
DONTCALL if the called party chooses to send the calling party to the 'Go Away'
script. The DIALSTATUS variable will be set to TORTURE if the called party
wants to send the caller to the 'torture' script.
  This application will report normal termination if the originating channel
hangs up, or if the call is bridged and either of the parties in the bridge
ends the call.
  The optional URL will be sent to the called party if the channel supports it.
  If the OUTBOUND_GROUP variable is set, all peer channels created by this
application will be put into that group (as in Set(GROUP()=...).

  Options:
    A(x) - Play an announcement to the called party, using 'x' as the file.
    C    - Reset the CDR for this call.
    d    - Allow the calling user to dial a 1 digit extension while waiting for
           a call to be answered. Exit to that extension if it exists in the
           current context, or the context defined in the EXITCONTEXT variable,
           if it exists.
    D([called][:calling]) - Send the specified DTMF strings *after* the called
           party has answered, but before the call gets bridged. The 'called'
           DTMF string is sent to the called party, and the 'calling' DTMF
           string is sent to the calling party. Both parameters can be used
           alone.
    f    - Force the callerid of the *calling* channel to be set as the
           extension associated with the channel using a dialplan 'hint'.
           For example, some PSTNs do not allow CallerID to be set to anything
           other than the number assigned to the caller.
    g    - Proceed with dialplan execution at the current extension if the
           destination channel hangs up.
    G(context^exten^pri) - If the call is answered, transfer the calling party to
           the specified priority and the called party to the specified priority+1.
           Optionally, an extension, or extension and context may be specified. 
           Otherwise, the current extension is used. You cannot use any additional
           action post answer options in conjunction with this option.
    h    - Allow the called party to hang up by sending the '*' DTMF digit.
    H    - Allow the calling party to hang up by hitting the '*' DTMF digit.
    i    - Asterisk will ignore any forwarding requests it may receive on this
           dial attempt.
    j    - Jump to priority n+101 if all of the requested channels were busy.
    L(x[:y][:z]) - Limit the call to 'x' ms. Play a warning when 'y' ms are
           left. Repeat the warning every 'z' ms. The following special
           variables can be used with this option:
           * LIMIT_PLAYAUDIO_CALLER   yes|no (default yes)
                                      Play sounds to the caller.
           * LIMIT_PLAYAUDIO_CALLEE   yes|no
                                      Play sounds to the callee.
           * LIMIT_TIMEOUT_FILE       File to play when time is up.
           * LIMIT_CONNECT_FILE       File to play when call begins.
           * LIMIT_WARNING_FILE       File to play as warning if 'y' is defined.
                                      The default is to say the time remaining.
    m([class]) - Provide hold music to the calling party until a requested
           channel answers. A specific MusicOnHold class can be
           specified.
    M(x[^arg]) - Execute the Macro for the *called* channel before connecting
           to the calling channel. Arguments can be specified to the Macro
           using '^' as a delimeter. The Macro can set the variable
           MACRO_RESULT to specify the following actions after the Macro is
           finished executing.
           * ABORT        Hangup both legs of the call.
           * CONGESTION   Behave as if line congestion was encountered.
           * BUSY         Behave as if a busy signal was encountered. This will also
                          have the application jump to priority n+101 if the
                          'j' option is set.
           * CONTINUE     Hangup the called party and allow the calling party
                          to continue dialplan execution at the next priority.
           * GOTO:<context>^<xexten>^<priority> - Transfer the call to the
                          specified priority. Optionally, an extension, or
                          extension and priority can be specified.
           You cannot use any additional action post answer options in conjunction
           with this option. Also, pbx services are not run on the peer (called) channel,
           so you will not be able to set timeouts via the TIMEOUT() function in this macro.
    n    - This option is a modifier for the screen/privacy mode. It specifies
           that no introductions are to be saved in the priv-callerintros
           directory.
    N    - This option is a modifier for the screen/privacy mode. It specifies
           that if callerID is present, do not screen the call.
    o    - Specify that the CallerID that was present on the *calling* channel
           be set as the CallerID on the *called* channel. This was the
           behavior of Asterisk 1.0 and earlier.
    O([x]) - "Operator Services" mode (Zaptel channel to Zaptel channel
             only, if specified on non-Zaptel interface, it will be ignored).
             When the destination answers (presumably an operator services
             station), the originator no longer has control of their line.
             They may hang up, but the switch will not release their line
             until the destination party hangs up (the operator). Specified
             without an arg, or with 1 as an arg, the originator hanging up
             will cause the phone to ring back immediately. With a 2 specified,
             when the "operator" flashes the trunk, it will ring their phone
             back.
    p    - This option enables screening mode. This is basically Privacy mode
           without memory.
    P([x]) - Enable privacy mode. Use 'x' as the family/key in the database if
           it is provided. The current extension is used if a database
           family/key is not specified.
    r    - Indicate ringing to the calling party. Pass no audio to the calling
           party until the called channel has answered.
    S(x) - Hang up the call after 'x' seconds *after* the called party has
           answered the call.
    t    - Allow the called party to transfer the calling party by sending the
           DTMF sequence defined in features.conf.
    T    - Allow the calling party to transfer the called party by sending the
           DTMF sequence defined in features.conf.
    w    - Allow the called party to enable recording of the call by sending
           the DTMF sequence defined for one-touch recording in features.conf.
    W    - Allow the calling party to enable recording of the call by sending
           the DTMF sequence defined for one-touch recording in features.conf.
    k    - Allow the called party to enable parking of the call by sending
           the DTMF sequence defined for call parking in features.conf.
    K    - Allow the calling party to enable parking of the call by sending
           the DTMF sequence defined for call parking in features.conf.

Differenz zum internen Hilfetext in Asterisk 1.2: 

62,63d61
<     i    - Asterisk will ignore any forwarding requests it may receive on this
<            dial attempt.
95,96c93
<            with this option. Also, pbx services are not run on the peer (called) channel,
<            so you will not be able to set timeouts via the TIMEOUT() function in this macro.
---
>            with this option.
105,114d101
<     O([x]) - "Operator Services" mode (Zaptel channel to Zaptel channel
<              only, if specified on non-Zaptel interface, it will be ignored).
<              When the destination answers (presumably an operator services
<              station), the originator no longer has control of their line.
<              They may hang up, but the switch will not release their line
<              until the destination party hangs up (the operator). Specified
<              without an arg, or with 1 as an arg, the originator hanging up
<              will cause the phone to ring back immediately. With a 2 specified,
<              when the "operator" flashes the trunk, it will ring their phone
<              back.
132,135d118
<     k    - Allow the called party to enable parking of the call by sending
<            the DTMF sequence defined for call parking in features.conf.
<     K    - Allow the calling party to enable parking of the call by sending
<            the DTMF sequence defined for call parking in features.conf.

Siehe auch. Abschnitt 98, „RetryDial()

28. Dictate()

Virtuelles Diktiergerät

Dictate([Verzeichnis[,Dateiname]])

Startet ein virtuelles Diktiergerät. Mit den Parametern lassen sich das Verzeichnis für die Aufzeichnungen (Default: /var/spool/asterisk/dictate/) und der Dateiname (numerisch!) bestimmen. Aufgezeichnet wird im Format raw.

Der User kann das Diktiergerät mit folgenden Tasten steuern:

0
Hilfe
1
Schaltet zwischen Aufnahme- und Abspielmodus hin und her.
*
Pause / weiter
#
Datei wählen / neuen Dateinamen eingeben (z.B. 1234#)

Im Abspielmodus:

2
Schaltet die Abspielgeschwindigkeit um (1x, 2x, 3x, 4x)
7
Ein Stück zurück springen
8
Ein Stück weiter springen

Im Aufnahmemodus:

8
Aufnahme löschen und neu anfangen
; Diktiergerät starten:
exten => 123,1,Dictate()

Um jedem User sein eigenes Diktiergerät zu geben, könnte man z.B. als Pfad /var/spool/asterisk/dictate/${EXTEN} angeben.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Dictate' =- 

[Synopsis]
Virtual Dictation Machine

[Description]
  Dictate([<base_dir>[|<filename>]])
Start dictation machine using optional base dir for files.

Differenz zum internen Hilfetext in Asterisk 1.2: 

8c8
<   Dictate([<base_dir>[|<filename>]])
---
>   Dictate([<base_dir>])

Siehe auch. Abschnitt 95, „Record()

29. Directory()

Stellt ein Verzeichnis anwählbarer (Voicemail-)Extensions bereit (internes Telefonbuch, Dial-by-name, siehe Abschnitt 5, „Telefonbuch (Dial-by-Name)“).

Directory(VM-Context[,Wähl-Context[,Optionen]])

Liefert Benutzern ein Verzeichnis mit Extensionen, aus dem anhand des Namens ausgewählt werden kann. Die Liste von Namen und Extensionen findet sich in voicemail.conf. Der VM-Context muss angegeben werden, er bestimmt den zu benutzenden Context aus voicemail.conf.

Der Wähl-Context bestimmt den zum Anrufen der Benutzer zu verwendenden Context. Falls er nicht angegeben ist, wird VM-Context angenommen. Momentan ist die einzige mögliche Option, die im Optionen-Parameter Verwendung finden kann, f (wie first name), die das Verzeichnis veranlasst, die Eingabe anhand des Vornamens statt des Nachnamens abzugleichen.

Gibt der Benutzer 0 (Null) ein, und es existiert eine Extension o (kleiner Buchstabe o) im aktuellen Context, geht die Steuerung des Anrufs an diese Extension über. Durch Drücken der Taste * wird analog dazu zur a-Extension übergegangen. Diese Verhalten ähnelt dem von Voicemail().

Gibt 0 zurück, es sei denn, der Teilnehmer legt auf.

exten => *,1,Directory(default,incoming)
exten => #,1,Directory(default,incoming,f)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Directory' =- 

[Synopsis]
Provide directory of voicemail extensions

[Description]
  Directory(vm-context[|dial-context[|options]]): This application will present
the calling channel with a directory of extensions from which they can search
by name. The list of names and corresponding extensions is retrieved from the
voicemail configuration file, voicemail.conf.
  This application will immediately exit if one of the following DTMF digits are
received and the extension to jump to exists:
    0 - Jump to the 'o' extension, if it exists.
    * - Jump to the 'a' extension, if it exists.

  Parameters:
    vm-context   - This is the context within voicemail.conf to use for the
                   Directory.
    dial-context - This is the dialplan context to use when looking for an
                   extension that the user has selected, or when jumping to the
                   'o' or 'a' extension.

  Options:
    e - In addition to the name, also read the extension number to the
        caller before presenting dialing options.
    f - Allow the caller to enter the first name of a user in the directory
        instead of using the last name.

Differenz zum internen Hilfetext in Asterisk 1.2: 

25,26d24
<     e - In addition to the name, also read the extension number to the
<         caller before presenting dialing options.

Siehe auch. voicemail.conf

30. DISA()

Direct Inward System Access erlaubt auswärtigen Anrufern Anrufe mit internem System-Wählton.

DISA(Passwort[,Context[,CallerID[,Mailbox[@VM-Context]]]])
DISA(Passwort-Datei[,CallerID[,Mailbox[@VM-Context]]])

Erlaubt Anrufern von außen einen internen System-Wählton zu erhalten und entsprechend Anrufe zu tätigen, als würden diese von innerhalb des Switches aus getätigt. Dem Teilnehmer wird ein Wählton zur Verfügung gestellt, nach dem er einen Zugangskode eingeben muss gefolgt von der Rautetaste (#). Ist der Zugangskode korrekt, erhält er einen System-Wählton, auf dem er einen Anruf tätigen kann.

[Achtung]Achtung

Diese Art von Zugang kann ein ernstes Sicherheitsrisiko sein und sollte sorgfältig überlegt werden, damit die Sicherheit Ihres Systems nicht gefährdet ist!

Der Passwort-Parameter ist ein numerischer Zugangskode, den der Benutzer eingeben muss, um Anrufe tätigen zu können. Mit dieser Syntax werden alle Benutzer dieser Extension das gleiche Passwort benutzen. Möchten Sie Benutzern erlauben, DISA() ohne Passwort zu verwenden, übergeben Sie die Zeichenkette no-password an der Stelle des Passwortes.

Der Context-Parameter spezifiziert den Context, in dem sich ein Benutzer einwählen wird. Wird kein Context spezifiziert, nimmt die DISA()-Anwendung den Context disa an.

Die CallerID ist die Mailbox-Nummer (und optional Voicemail-Context VM-Context) einer Voicemailbox. Der Anrufer wird einen so genannten „stuttered dial-tone“ (das ist ein regelmäßig kurz unterbrochener, „stotternder“ Wählton) hören, falls neue Nachrichten in der angegebenen Voicemailbox vorliegen.

Außerdem können Sie eine alternative Syntax benutzen und den Namen einer global verfügbaren Passwortdatei statt der Parameter Passwort und Context übergeben. In jeder Zeile kann diese Datei entweder einen Zugangskode oder eine Kombination aus Zugangskode und Context, getrennt durch das Zeichen |, enthalten. Ist kein Context mit angegeben, wird standardmäßig der Context disa verwendet.

Ist das Einloggen des Teilnehmers erfolgreich, wird die Anwendung die gewählte Nummer in dem spezifizierten Context interpretieren.

; Anrufern von außen erlauben, 0800er-Nummern zu wählen, sofern sie
; das Passwort (1234) wissen. Dabei ihre Caller-ID so setzen, dass
; es aussieht, als riefen sie von innerhalb der Firma an:
[incoming]
exten => 123,1,DISA(1234,disa,Apfelmus GmbH <(0261) 1234567>)
[disa]
exten => _0800XXXXXXXX,1,Dial(Zap/4/${EXTEN})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'DISA' =- 

[Synopsis]
DISA (Direct Inward System Access)

[Description]
DISA(<numeric passcode>[|<context>]) or DISA(<filename>)
The DISA, Direct Inward System Access, application allows someone from 
outside the telephone switch (PBX) to obtain an "internal" system 
dialtone and to place calls from it as if they were placing a call from 
within the switch.
DISA plays a dialtone. The user enters their numeric passcode, followed by
the pound sign (#). If the passcode is correct, the user is then given
system dialtone on which a call may be placed. Obviously, this type
of access has SERIOUS security implications, and GREAT care must be
taken NOT to compromise your security.

There is a possibility of accessing DISA without password. Simply
exchange your password with "no-password".

    Example: exten => s,1,DISA(no-password|local)

Be aware that using this compromises the security of your PBX.

The arguments to this application (in extensions.conf) allow either
specification of a single global passcode (that everyone uses), or
individual passcodes contained in a file. It also allows specification
of the context on which the user will be dialing. If no context is
specified, the DISA application defaults the context to "disa".
Presumably a normal system will have a special context set up
for DISA use with some or a lot of restrictions. 

The file that contains the passcodes (if used) allows specification
of either just a passcode (defaulting to the "disa" context, or
passcode|context on each line of the file. The file may contain blank
lines, or comments starting with "#" or ";". In addition, the
above arguments may have |new-callerid-string appended to them, to
specify a new (different) callerid to be used for this call, for
example: numeric-passcode|context|"My Phone" <(234) 123-4567> or 
full-pathname-of-passcode-file|"My Phone" <(234) 123-4567>.  Last
but not least, |mailbox[@context] may be appended, which will cause
a stutter-dialtone (indication "dialrecall") to be used, if the
specified mailbox contains any new messages, for example:
numeric-passcode|context||1234 (w/a changing callerid).  Note that
in the case of specifying the numeric-passcode, the context must be
specified if the callerid is specified also.

If login is successful, the application looks up the dialed number in
the specified (or default) context, and executes it if found.
If the user enters an invalid extension and extension "i" (invalid) 
exists in the context, it will be used. Also, if you set the 5th argument
to 'NOANSWER', the DISA application will not answer initially.

Differenz zum internen Hilfetext in Asterisk 1.2: 

8c8
< DISA(<numeric passcode>[|<context>]) or DISA(<filename>)
---
> DISA(<numeric passcode>[|<context>]) or disa(<filename>)
28c28
< individual passcodes contained in a file. It also allows specification
---
> individual passcodes contained in a file. It also allow specification
52,53c52
< exists in the context, it will be used. Also, if you set the 5th argument
< to 'NOANSWER', the DISA application will not answer initially.
---
> exists in the context, it will be used.

31. DumpChan()

Gibt Informationen über den anrufenden Channel auf der Konsole aus.

DumpChan([min_verbose_level])

Zeigt Informationen über den anrufenden Channel an und auch eine Auflistung aller Channelvariablen. Falls min_verbose_level angegeben ist, werden Ausgaben nur im Falle eines aktuell gleich hoch oder höher gesetzten Verbosity-Levels angezeigt.

Gibt stets 0 zurück.

exten => 123,1,Answer()
exten => 123,n,DumpChan()
exten => 123,n,Background(enter-ext-of-person)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'DumpChan' =- 

[Synopsis]
Dump Info About The Calling Channel

[Description]
   DumpChan([<min_verbose_level>])
Displays information on channel and listing of all channel
variables. If min_verbose_level is specified, output is only
displayed when the verbose level is currently set to that number
or greater.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 74, „NoOp(), Abschnitt 55, „Log(), Abschnitt 130, „Verbose()

32. EAGI()

Ruft eine AGI-konforme Anwendung auf

EAGI(Programm[,Argumente])

(Analog auch AGI(), FastAGI(), DeadAGI())

Führt ein Asterisk-Gateway-Interface-kompatibles Programm Programm auf dem aktuellen Channel aus. Solche externen Programme (die in fast jeder beliebigen Sprache vorliegen können - z.B. Perl, PHP, ...), können den Telefonkanal steuern, Audiodateien abspielen, DTMF-Ziffern auslesen und so weiter. Asterisk kommuniziert dabei mit dem AGI-Program über STDIN und STDOUT. Die spezifizierten Argumente werden an das AGI-Programm durchgereicht.

Das Programm muss im zugrundeliegenden Dateisystem als executable (ausführbar) gekennzeichnet sein. Der Pfad zum Programm ist relativ zum Asterisk-AGI-Verzeichnis, standardmäßig /var/lib/asterisk/agi-bin/.

EAGI() bietet im Gegensatz zu den anderen AGI() Befehlen Zugriff auf den eingehenden Audiostream. Das eingehende Audio-Signal kann dann unter File Descriptor 3[101] eingelesen werden.

Liefert -1 mit dem Auflegen oder falls ein Auflegen durch das Programm verlangt wurde oder 0, falls nicht aufgelegt werden soll.

; mein AGI-Skript aufrufen:
exten => 123,1,AGI(agi-skript)
exten => 123,n,EAGI(eagi-skript)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'EAGI' =- 

[Synopsis]
Executes an EAGI compliant application

[Description]
  [E|Dead]AGI(command|args): Executes an Asterisk Gateway Interface compliant
program on a channel. AGI allows Asterisk to launch external programs
written in any language to control a telephony channel, play audio,
read DTMF digits, etc. by communicating with the AGI protocol on stdin
and stdout.
  This channel will stop dialplan execution on hangup inside of this
application, except when using DeadAGI.  Otherwise, dialplan execution
will continue normally.
  A locally executed AGI script will receive SIGHUP on hangup from the channel
except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel
variable to "no" before executing the AGI application.
  Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
on file descriptor 3

  Use the CLI command 'agi show' to list available agi commands
  This application sets the following channel variable upon completion:
     AGISTATUS      The status of the attempt to the run the AGI script
                    text string, one of SUCCESS | FAILED | HANGUP

Differenz zum internen Hilfetext in Asterisk 1.2: 

13,19c13,15
<   This channel will stop dialplan execution on hangup inside of this
< application, except when using DeadAGI.  Otherwise, dialplan execution
< will continue normally.
<   A locally executed AGI script will receive SIGHUP on hangup from the channel
< except when using DeadAGI. This can be disabled by setting the AGISIGHUP channel
< variable to "no" before executing the AGI application.
<   Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
---
> Returns -1 on hangup (except for DeadAGI) or if application requested
>  hangup, or 0 on non-hangup exit. 
> Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
22,25c18
<   Use the CLI command 'agi show' to list available agi commands
<   This application sets the following channel variable upon completion:
<      AGISTATUS      The status of the attempt to the run the AGI script
<                     text string, one of SUCCESS | FAILED | HANGUP
---
> Use the CLI command 'show agi' to list available agi commands

Siehe. Abschnitt 6, „AGI().

33. Echo()

Wiederholt inwärtiges Audio für den Anrufer.

Echo()

Gibt auf dem Channel eingehendes Audio direkt wieder auf diesem Channel aus. Diese Anwendung findet häufig zum Testen der Verzögerung (Latenz) und Sprachqualität einer VoIP-Verbindung Verwendung. Der Anrufer kann zum Beenden die #-Taste drücken.

Gibt 0 zurück, falls der Benutzer durch die #-Taste beendet, oder -1, falls der Benutzer auflegt.

exten => 123,1,Echo()
exten => 123,n,Playback(vm-goodbye)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Echo' =- 

[Synopsis]
Echo audio, video, or DTMF back to the calling party

[Description]
  Echo(): This application will echo any audio, video, or DTMF frames read from
the calling channel back to itself. If the DTMF digit '#' is received, the
application will exit.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< Echo audio, video, or DTMF back to the calling party
---
> Echo audio read back to the user
8,10c8,10
<   Echo(): This application will echo any audio, video, or DTMF frames read from
< the calling channel back to itself. If the DTMF digit '#' is received, the
< application will exit.
---
>   Echo():  Echo audio read from channel back to the channel. 
> User can exit the application by either pressing the '#' key, 
> or hanging up.

Siehe auch. Abschnitt 66, „Milliwatt()

34. EndWhile()

Beendet eine While-Schleife.

EndWhile()

Kehrt zur vorangehend aufgerufenen While()-Anwendung zurück. Für eine vollständige Beschreibung zur Benutzung einer While-Schleife siehe Abschnitt 139, „While().

exten => 123,1,Answer()
exten => 123,n,Set(i=1)
exten => 123,n,While($[${i} < 5])
exten => 123,n,SayNumber(${i})
exten => 123,n,Set(i=$[${i} + 1])
exten => 123,n,EndWhile()
exten => 123,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'EndWhile' =- 

[Synopsis]
End a while loop

[Description]
Usage:  EndWhile()
Return to the previous called While

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< End a while loop
---
> End A While Loop
10a11
> 

Siehe auch. Abschnitt 139, „While(), Abschnitt 50, „GotoIf()

35. Exec()

Führt eine Asterisk-Anwendung dynamisch aus.

Exec(Applikationsname(Argumente))

Erlaubt den Aufruf einer beliebigen Anwendung, selbst wenn er nicht fest im Wählplan einprogrammiert ist. Liefert den Wert zurück, den diese Asterisk-Anwendung zurückliefert, oder -2, wenn die aufgerufene Anwendung nicht gefunden werden kann. Die Argumente werden an die aufgerufene Anwendung durchgereicht.

Diese Anwendung erlaubt den dynamischen Aufruf von Anwendungen, die aus einer Datenbank oder externen Quelle gelesen werden.

exten => 123,1,Set(app=SayDigits(12345))
exten => 123,2,Exec(${app})
[Wichtig]Wichtig

Bei einem negativen Rückgabewert wird die Ausführung des Dialplans beendet. Will man das nicht, verwendet man TryExec().

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Exec' =- 

[Synopsis]
Executes dialplan application

[Description]
Usage: Exec(appname(arguments))
  Allows an arbitrary application to be invoked even when not
hardcoded into the dialplan.  If the underlying application
terminates the dialplan, or if the application cannot be found,
Exec will terminate the dialplan.
  To invoke external applications, see the application System.
  If you would like to catch any error instead, see TryExec.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< Executes dialplan application
---
> Executes internal application
10,14c10,12
< hardcoded into the dialplan.  If the underlying application
< terminates the dialplan, or if the application cannot be found,
< Exec will terminate the dialplan.
<   To invoke external applications, see the application System.
<   If you would like to catch any error instead, see TryExec.
---
> hardcoded into the dialplan. To invoke external applications
> see the application System. Returns whatever value the
> app returns or a non-zero value if the app cannot be found.

Siehe auch. Abschnitt 36, „ExecIf(), Abschnitt 125, „TryExec(), Abschnitt 123, „System()

36. ExecIf()

Führt eine Asterisk-Anwendung unter bestimmten Bedingungen aus.

ExecIf(Ausdruck,Applikation,Argumente)

Ist Ausdruck wahr, wird die angegebene Applikation mit den Parametern Argumente ausgeführt, und deren Ergebnis zurückgeliefert. Siehe doc/README.variables (1.2) / doc/channelvariables.txt (1.4) für weiterführende Informationen über Standard-Asterisk-Ausdrücke.

Ist der Ausdruck nicht wahr (also false), wird die Ausführung mit der nächsten Priorität fortgesetzt.

exten => 123,1,ExecIf($[${CALLERID(num)} = 101],SayDigits,123)
exten => 123,n,SayDigits(678)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ExecIf' =- 

[Synopsis]
Executes dialplan application, conditionally

[Description]
Usage:  ExecIF (<expr>|<app>|<data>)
If <expr> is true, execute and return the result of <app>(<data>).
If <expr> is true, but <app> is not found, then the application
will return a non-zero value.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< Executes dialplan application, conditionally
---
> Conditional exec
12d11
< 

Siehe auch. Abschnitt 35, „Exec()

37. ExecIfTime()

Führt eine Applikation unter bestimmten zeitlichen Bedingungen aus.

ExecIf(Uhrzeit|Wochentag|Monatstag|Monat?Applikation[,Argumente])

Ist das angegebene Zeitmuster zutreffend, wird die angegebene Applikation mit den Parametern Argumente ausgeführt, und deren Ergebnis zurückgeliefert. Die Uhrzeit wird wie bei include (siehe „Includes zeitgesteuert“), GotoIfTime() (siehe Abschnitt 51, „GotoIfTime()) oder IFTIME() (siehe Abschnitt 28, „IFTIME()) angegeben.

Trifft der Ausdruck nicht zu, wird die Ausführung mit der nächsten Priorität fortgesetzt.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ExecIfTime' =- 

[Synopsis]
Conditional application execution based on the current time

[Description]
  ExecIfTime(<times>|<weekdays>|<mdays>|<months>?appname[|appargs]):
This application will execute the specified dialplan application, with optional
arguments, if the current time matches the given time specification.

Differenz zum internen Hilfetext in Asterisk 1.2: 

10c10,12
< arguments, if the current time matches the given time specification.
---
> arguments, if the current time matches the given time specification. Further
> information on the time speicification can be found in examples illustrating
> how to do time-based context includes in the dialplan.

Siehe auch. Abschnitt 35, „Exec(), Abschnitt 36, „ExecIf(), Abschnitt 51, „GotoIfTime(), Abschnitt 28, „IFTIME()

38. ExitWhile()

Beendet innerhalb einer While-Schleife deren Ausführung.

ExitWhile()

Mit ExitWhile() kann innerhalb einer While-Schleife die weitere Ausführung abgebrochen werden, unabhängig davon, ob die While-Kondition erfüllt ist oder nicht.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ExitWhile' =- 

[Synopsis]
End a While loop

[Description]
Usage:  ExitWhile()
Exits a While loop, whether or not the conditional has been satisfied.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 139, „While(), Abschnitt 34, „EndWhile()

39. ExtenSpy()

Einen Kanal belauschen und bei Bedarf reinflüstern.

ExtenSpy(Extension[@Context][,Optionen])

ExtenSpy() kann auf Channels zu der angegebenen Extension geschaltet werden um das ein- und ausgehende Audio mitzuhören. Optionen:

b
Nur Channels abhören, die zu einem verbundenen Anruf gehören.
g(grp)
Nur Channels abhören, bei denen in deren Kanal-Variable ${SPYGROUP} die Gruppe grp enthalten ist. ${SPYGROUP} kann eine durch : getrennt Liste von Werten sein.
q
Keinen Ton beim Beginn abspielen.
r([name])
Abgehörte Gespräche werde im Spool-Verzeichnis aufgezeichnet. Bei Bedarf kann mit name ein Dateiname (ohne Erweiterung) eingestellt werden, Default ist chanspy.
v([wert])
Verändert die anfängliche Lautstärke. Die Werte reichen von -4 bis 4.
w
Aktiviert den Flüster-Modus (whisper mode). So kann man in den abgehörten Channel reinflüstern.
W
Aktiviert „private whisper mode“. So kann man zwar in den abgehörten Channel sprechen, diesen aber nicht hören.

Während des Abhörens können folgende Tastenbefehle gegeben werden:

#
Schaltet durch die Lautstärkeeinstellung (-4 bis 4)
*
Schaltet zu einem anderen Channel
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ExtenSpy' =- 

[Synopsis]
Listen to a channel, and optionally whisper into it

[Description]
  ExtenSpy(exten[@context][|options]): This application is used to listen to the
audio from an Asterisk channel. This includes the audio coming in and
out of the channel being spied on. Only channels created by outgoing calls for the
specified extension will be selected for spying. If the optional context is not
supplied, the current channel's context will be used.
  While spying, the following actions may be performed:
    - Dialing # cycles the volume level.
    - Dialing * will stop spying and look for another channel to spy on.
  Options:
    b             - Only spy on channels involved in a bridged call.
    g(grp)        - Match only channels where their ${SPYGROUP} variable is set to
                    contain 'grp' in an optional : delimited list.
    q             - Don't play a beep when beginning to spy on a channel, or speak the
                    selected channel name.
    r[(basename)] - Record the session to the monitor spool directory. An
                    optional base for the filename may be specified. The
                    default is 'chanspy'.
    v([value])    - Adjust the initial volume in the range from -4 to 4. A
                    negative value refers to a quieter setting.
    w             - Enable 'whisper' mode, so the spying channel can talk to
                    the spied-on channel.
    W             - Enable 'private whisper' mode, so the spying channel can
                    talk to the spied-on channel but cannot listen to that
                    channel.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 19, „ChanSpy(), Abschnitt 141, „ZapBarge(), Abschnitt 143, „ZapScan(), Abschnitt 68, „Monitor()

40. ExternalIVR()

Startet eine externe IVR-Applikation.

ExternalIVR(Shell-Befehl[,Arg1[,Arg2[,...]]])

Forkt den Prozess und startet eine externe IVR[102]-Applikation. Diese Applikation erhält alle DTMF-Ereignisse um darauf reagieren zu können. Sie wird beim Auflegen des Kanals benachrichtigt, muss sich aber selber beenden. Das Kommunikations-Protokoll zwischen Asterisk und der Applikation wird in doc/externalivr.txt beschrieben.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ExternalIVR' =- 

[Synopsis]
Interfaces with an external IVR application

[Description]
  ExternalIVR(command[|arg[|arg...]]): Forks an process to run the supplied command,
and starts a generator on the channel. The generator's play list is
controlled by the external application, which can add and clear entries
via simple commands issued over its stdout. The external application
will receive all DTMF events received on the channel, and notification
if the channel is hung up. The application will not be forcibly terminated
when the channel is hung up.
See doc/externalivr.txt for a protocol specification.

Differenz zum internen Hilfetext in Asterisk 1.2: 

15c15
< See doc/externalivr.txt for a protocol specification.
---
> See doc/README.externalivr for a protocol specification.

41. FastAGI()

Führt ein AGI-konformes Skript über eine Netzwerkverbindung aus.

FastAGI(agi://hostname[:Port][/script],Argumente)

Führt ein AGI-konformes Skript über das Netzwerk aus. Diese Anwendung ist AGI() sehr ähnlich, außer dass sie ein FastAGI-Skript über eine Netzwerkverbindung ausführt. Der wichtigste Verwendungszweck ist, rechenintensive AGI-Skripte von Remote-Servern ausführen zu lassen und die Startzeiten von AGI-Skripten zu reduzieren (ein FastAGI Skript läuft bereits bevor Asterisk sich mit ihm verbindet, ähnlich FastCGI bei Web-Servern).

FastAGI() versucht, sich direkt zu einem laufenden FastAGI-Programm zu verbinden, welches auf einem spezifizierten Port des Servers hostname bereits auf Verbindungen wartet. Als Standardport wird 4573 benutzt, falls kein anderer angegeben ist. Ist script angegeben, wird es als agi_network_script-Variable an das FastAGI-Programm übergeben. Die in Argumente stehenden Parameter werden an das Programm weitergegeben.

Im Verzeichnis agi/fastagi-test befindet sich ein Beispiel-FastAGI-Skript. Verwenden Sie es als Ansatzpunkt für Ihre eigenen FastAGI-Programme.

Liefert -1, falls die Anwendung ein Auflegen verlangt, oder 0 bei Beendigung ohne Auflegen.

; mit dem Beispiel-FastAGI-Programm "fastagi-test" verbinden, das
; bereits auf dem lokalen Rechner laufen muss:
exten => 123,1,Answer()
exten => 123,n,FastAGI(agi://localhost/fastagi-test)

; mit dem FastAGI-Skript "test" auf einem Host namens "testbox" auf
; Port 9000 verbinden und als Parameter "123" übergeben:
exten => 124,1,Answer()
exten => 124,n,FastAGI(agi://testbox:9000/test,123)

Siehe auch. Abschnitt 6, „AGI(), Abschnitt 26, „DeadAGI()

42. Festival()

Verwendet das Sprachsynthese-System (Text-to-speech) Festival, um dem Anrufer Text vorzulesen.

Festival(Text[,Tasten])

Verbindet sich zum lokal laufenden Festival-Server (muss installiert sein), sendet ihm den angegebenen Text und spielt dem Teilnehmer die resultierende Audiodatei vor. Wenn Tasten angegeben wurden und der Anrufer während des Abspielens eine davon drückt, wird der Abspielvorgang beendet und die entsprechende Taste zurückgegeben. Falls als Tasten der Wert any angegeben ist, wird jede Taste erkannt (und an die entsprechende Extension weitergeleitet).

Sie müssen den Festival-Server vor Asterisk starten und die Answer()-Anwendung zum Beantworten des Channels verwenden, bevor Sie Festival() aufrufen.

exten => 123,1,Answer()
exten => 123,n,Festival('Hallo Welt',#)

Alternativ zu der Applikation Festival() kann man auch mit dem System()-Befehl Festivals Programm text2wave aufrufen und die resultierende Audiodatei mit Background() oder Playback() abspielen, etwa so (nur als Beispiel, Verzeichnisse beachten!):

exten => 123,1,Answer()
exten => 123,n,System(echo 'Hallo Welt' | text2wave -o sound.wav -otype wav -)
exten => 123,n,Background(sound)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Festival' =- 

[Synopsis]
Say text to the user

[Description]
  Festival(text[|intkeys]):  Connect to Festival, send the argument, get back the waveform,play it to the user, allowing any given interrupt keys to immediately terminate and return
the value, or 'any' to allow any number back (useful in dialplan)

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. contrib/README.festival

43. Flash()

Flasht einen Zap-Channel.

Flash()

Sendet einen Flash auf einen Zap-Channel. Dies ist nichts weiter als ein Hack für Leute, die Übermittlungen und andere Aktionen, die einen Flash durch ein AGI-Skript benötigen, durchführen möchten.

Liefert bei Erfolg 0 zurück, oder -1, falls der Channel kein Zap-Channel ist.

exten => 123,1,Flash()

Falls Ihnen auf Ihrer Leitung Link-Transfer bereitgestellt wird (typischerweise ein Zusatzdienst), könnten Sie so einen Anruf auf eine andere externe Nummer umleiten:

[macro-link-umleitung]
exten => s,1,Playback(transfer)
exten => s,n,Flash()
exten => s,n,Wait(1)
exten => s,n,SendDTMF(${ARG1})
exten => s,n,Wait(1)
exten => s,n,Hangup()

[externe-apparate]
; eingehende Anrufe auf 6001 auf die externe Nummer 0261123456 umleiten:
exten => 6001,1,Macro(link-umleitung,0261123456)

Es kann dazu nötig sein, die Flash-Dauer (Einstellung flash) in der zapata.conf auf die Vorgabe Ihres Anbieters zu setzen, z.B. flash=200.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Flash' =- 

[Synopsis]
Flashes a Zap Trunk

[Description]
  Flash(): Sends a flash on a zap trunk.  This is only a hack for
people who want to perform transfers and such via AGI and is generally
quite useless oths application will only work on Zap trunks.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

44. FollowMe()

Follow-Me/Find-Me Funktionalität.

FollowMe(FollowMeID,Optionen)

Bitte lesen die Konfigurationsdatei followme.conf.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'FollowMe' =- 

[Synopsis]
Find-Me/Follow-Me application

[Description]
  FollowMe(followmeid|options):
This application performs Find-Me/Follow-Me functionality for the caller
as defined in the profile matching the <followmeid> parameter in
followme.conf. If the specified <followmeid> profile doesn't exist in
followme.conf, execution will be returned to the dialplan and call
execution will continue at the next priority.

  Options:
    s    - Playback the incoming status message prior to starting the follow-me step(s)
    a    - Record the caller's name so it can be announced to the callee on each step
    n    - Playback the unreachable status message if we've run out of steps to reach the
           or the callee has elected not to be reachable.
Returns -1 on hangup

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

45. ForkCDR()

Erstellt ein zusätzliches CDR aus dem aktuellen Anruf.

ForkCDR()

Erstellt für den Rest des aktuellen Anrufs einen zusätzlichen Call Detail Record, um die in Rechnung zu stellende Gesprächszeit von der Gesamtdauer des Anrufs zu unterscheiden.

exten => 123,n,ForkCDR()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ForkCDR' =- 

[Synopsis]
Forks the Call Data Record

[Description]
  ForkCDR([options]):  Causes the Call Data Record to fork an additional
cdr record starting from the time of the fork call
If the option 'v' is passed all cdr variables will be passed along also.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 73, „NoCDR(), Abschnitt 97, „ResetCDR()

46. GetCPEID()

Holt die CPE-ID eines ADSI-fähigen Telefons.

GetCPEID()

Holt die CPE-ID und weitere Informationen und zeigt sie auf der Asterisk-Konsole an. Diese Informationen werden häufig benötigt, um die Datei zapata.conf für Operationen bei ADSI-fähigen Telefonen einzurichten.

Liefert beim Auflegen -1 zurück.

exten => 123,1,GetCPEID()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'GetCPEID' =- 

[Synopsis]
Get ADSI CPE ID

[Description]
  GetCPEID: Obtains and displays ADSI CPE ID and other information in order
to properly setup zapata.conf for on-hook operations.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 2, „ADSIProg(), adsi.conf, zapata.conf

47. Gosub()

Springt zu einer bestimmten Priorität, Extension und einem bestimmten Context (mit der Möglichkeit der Rückkehr).

Gosub([[Context,]Extension,]Priorität)
Gosub(benannte_Priorität)

Springt wie Goto() im Dialplan, erlaubt es dem Unterprogramm aber, mit Return() zurückzukehren.

Gibt 0 zurück oder -1, wenn das Sprungziel ungültig ist.

exten => 123,1,Gosub(cid-setzen)
exten => 123,n,Dial(SIP/${EXTEN})

exten => 123,10(cid-setzen),Set(CALLERID(all)=Apfelmus GmbH <012345678>)
exten => 123,n,Return()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Gosub' =- 

[Synopsis]
Jump to label, saving return address

[Description]
Gosub([[context|]exten|]priority)
  Jumps to the label specified, saving the return address.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 48, „GosubIf(), Abschnitt 49, „Goto(), Abschnitt 50, „GotoIf(), Abschnitt 99, „Return(), Abschnitt 58, „Macro()

48. GosubIf()

Springt bedingt zu der angegebenen Priorität (mit der Möglichkeit der Rückkehr).

GosubIf(Bedingung?PrioWahr:PrioFalsch)

Springt wie GotoIf() unter einer bestimmten Bedingung im Dialplan, erlaubt es dem Unterprogramm aber, mit Return() zurückzukehren.

Gibt 0 zurück oder -1, wenn das Sprungziel ungültig ist.

exten => telcid,1,Set(CALLERID(all)=Apfelmus <0123456780>)
exten => telcid,n,Return()
exten => faxcid,1,Set(CALLERID(all)=Apfelmus <0123456785>)
exten => faxcid,n,Return()

exten => _0.,1,GosubIf($[${CHANNEL:4:2} = 43]?faxcid,1:telcid,1)
exten => _0.,n,Dial(${TRUNK}/${EXTEN:1},,T)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'GosubIf' =- 

[Synopsis]
Conditionally jump to label, saving return address

[Description]
GosubIf(condition?labeliftrue[:labeliffalse])
  If the condition is true, then jump to labeliftrue.  If false, jumps to
labeliffalse, if specified.  In either case, a jump saves the return point
in the dialplan, to be returned to with a Return.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< Conditionally jump to label, saving return address
---
> Jump to label, saving return address

Siehe auch. Abschnitt 47, „Gosub(), Abschnitt 49, „Goto(), Abschnitt 50, „GotoIf(), Abschnitt 99, „Return(), Abschnitt 58, „Macro()

49. Goto()

Springt zu einer bestimmten Priorität, Extension und einem bestimmten Context.

Goto([[Context,]Extension,]Priorität)
Goto(benannte_Priorität)

Übergibt die Kontrolle des aktuellen Channels ohne Möglichkeit der Rückkehr an die spezifizierte Priorität und setzt optional Extension und Context des Ziels.

Optional können Sie die Anwendung dazu benutzen, zu der durch den Parameter benannte_Priorität angegebenen Priorität (also Priorität mit Label) zu gelangen. Benannte Prioritäten funktionieren ausschließlich in der aktuellen Extension.

Liefert immer 0 zurück, auch falls der gegebene Context, die geg. Extension oder Priorität nicht gültig sind.

exten => 123,1,Answer()
exten => 123,2,Set(COUNT=1)
exten => 123,3,SayNumber(${COUNT})
exten => 123,4,Set(COUNT=$[ ${COUNT} + 1 ])
exten => 123,5,Goto(3)

; das gleiche mit einer benannten Priorität:
exten => 124,1,Answer()
exten => 124,2,Set(COUNT=1)
exten => 124,3(ansage),SayNumber(${COUNT})
exten => 124,4,Set(COUNT=$[ ${COUNT} + 1 ])
exten => 124,5,Goto(ansage)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Goto' =- 

[Synopsis]
Jump to a particular priority, extension, or context

[Description]
  Goto([[context|]extension|]priority): This application will cause the
calling channel to continue dialplan execution at the specified priority.
If no specific extension, or extension and context, are specified, then this
application will jump to the specified priority of the current extension.
  If the attempt to jump to another location in the dialplan is not successful,
then the channel will continue at the next priority of the current extension.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 50, „GotoIf(), Abschnitt 51, „GotoIfTime(), Abschnitt 47, „Gosub(), Abschnitt 48, „GosubIf(), Abschnitt 58, „Macro()

50. GotoIf()

Springt bedingt zu der angegebenen Priorität,

GotoIf(Bedingung?PrioWahr:PrioFalsch)

Schickt den Anruf ohne Möglichkeit der Rückkehr an die Priorität PrioWahr, falls die Bedingung wahr ist oder zu PrioFalsch, falls sie falsch ist. Entweder PrioWahr oder PrioFalsch können ausgelassen werden (dann wird ggf. mit der nächsten Priorität weitergemacht), aber nicht beide (und nicht der Doppelpunkt!).

Eine Priorität ist hier eines der Folgenden:

  • eine Priorität, z.B. 10
  • eine Extension und eine Priorität, z.B. 123,10
  • Context, Extension und Priorität, z.B. incoming,123,10
  • eine benannte Priorität innerhalb der gleichen Extension, z.B. ok
exten => 123,1,GotoIf($[ ${test} = 5 ]?ok:nein)
exten => 123,10(ok),Playback(tt-monkeys)
exten => 123,20(nein),Playback(tt-weasels)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'GotoIf' =- 

[Synopsis]
Conditional goto

[Description]
  GotoIf(condition?[labeliftrue]:[labeliffalse]): This application will cause
the calling channel to jump to the specified location in the dialplan based on
the evaluation of the given condition. The channel will continue at
'labeliftrue' if the condition is true, or 'labeliffalse' if the condition is
false. The labels are specified with the same syntax as used within the Goto
application.  If the label chosen by the condition is omitted, no jump is
performed, but execution continues with the next priority in the dialplan.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 49, „Goto(), Abschnitt 51, „GotoIfTime(), Abschnitt 47, „Gosub(), Abschnitt 48, „GosubIf(), Abschnitt 58, „Macro()

51. GotoIfTime()

Verzweigt bedingt, abhängig von Zeit und Tag.

GotoIfTime(Zeit,Wochentag,Monatstag,Monat?[[Context,]Extension,]Prio)

Verzweigt zu der angegebenen Priorität, falls die aktuelle Zeit in das angegebene Muster fällt. Jedes Element kann auch als * (für immer) oder als Spanne (mit -) definiert werden.

Die Parameter zu dieser Anwendung sind:

Uhrzeit-Spanne
Zeitintervall, im 24-Stunden-Format mit Minuten, z.B. 9:00-17:00
Wochentag
Wochentage (mon, tue, wed, thu, fri, sat, sun), z.B. mon-fri
Monatstag
Tag des Monats (1-31), z.B. 1-15
Monat
Monate (jan, feb, mar, apr, mai, jun, jul, aug, sep, oct, nov, dec), z.B. apr-oct
; Während der Öffnungszeiten zum Context incoming-geoeffnet springen.
; Wir haben montags-freitags von 9 bis 18 Uhr geöffnet:
exten => s,1,GotoIfTime(09:00-17:59,mon-fri,*,*?incoming-geoeffnet,s,1)
; außerdem samstags von 9 bis 12:
exten => s,n,GotoIfTime(09:00-11:59,sat,*,*?incoming-geoeffnet,s,1)
; Außerhalb der Öffnungszeiten zum Context incoming-geschlossen:
exten => s,n,Goto(incoming-geschlossen,s,1)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'GotoIfTime' =- 

[Synopsis]
Conditional Goto based on the current time

[Description]
  GotoIfTime(<times>|<weekdays>|<mdays>|<months>?[[context|]exten|]priority):
This application will have the calling channel jump to the specified location
in the dialplan if the current time matches the given time specification.

Differenz zum internen Hilfetext in Asterisk 1.2: 

9,10c9,12
< This application will have the calling channel jump to the specified location
< in the dialplan if the current time matches the given time specification.
---
> This application will have the calling channel jump to the speicified location
> int the dialplan if the current time matches the given time specification.
> Further information on the time specification can be found in examples
> illustrating how to do time-based context includes in the dialplan.

Siehe auch. Abschnitt 50, „GotoIf(), Abschnitt 37, „ExecIfTime(), Abschnitt 28, „IFTIME()

52. Hangup()

Legt den aktuellen Channel auf.

Hangup()

Legt den aktuellen Channel bedingungslos auf.

Liefert stets -1 zurück.

exten => 123,1,Answer()
exten => 123,n,Playback(vm-goodbye)
exten => 123,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Hangup' =- 

[Synopsis]
Hang up the calling channel

[Description]
  Hangup([causecode]): This application will hang up the calling channel.
If a causecode is given the channel's hangup cause will be set to the given
value.

Differenz zum internen Hilfetext in Asterisk 1.2: 

8,10c8
<   Hangup([causecode]): This application will hang up the calling channel.
< If a causecode is given the channel's hangup cause will be set to the given
< value.
---
>   Hangup(): This application will hang up the calling channel.

Siehe auch. Abschnitt 9, „Answer()

53. IAX2Provision()

Versorgt eine anrufende IAXy-Einheit.

IAX2Provision([Template])

Stellt einer anrufende IAXy-Einheit die Vorlage Template bereit. Ist keine Vorlage angegeben, wird die Standard-Vorlage benutzt. IAXy-Versorgungsvorlagen sind in der Konfigurationsdatei iaxprov.conf definiert.

Liefert 0 bei Erfolg oder -1 bei einem Fehler.

exten => 123,1,IAX2Provision(default)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'IAX2Provision' =- 

[Synopsis]
Provision a calling IAXy with a given template

[Description]
  IAX2Provision([template]): Provisions the calling IAXy (assuming
the calling entity is in fact an IAXy) with the given template or
default if one is not specified.  Returns -1 on error or 0 on success.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

54. ImportVar()

Setzt eine Variable basierend auf einer Channelvariable eines anderen Channels.

ImportVar(NeueVariable=Channel,Variable)

Setzt die Variable NeueVariable auf den Wert von Variable des angegebenen Channels. Falls NeueVariable mit dem Zeichen _ beginnt, wird einfache Vererbung angenommen. Falls NeueVariable mit __ beginnt, wird unbeschränkte Vererbung angenommen.

; Caller-ID vom Channel Zap/1 importieren:
exten => 123,1,Answer()
exten => 123,n,ImportVar(cid=Zap/1,CALLERID)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ImportVar' =- 

[Synopsis]
Import a variable from a channel into a new variable

[Description]
  ImportVar(newvar=channelname|variable): This application imports a variable
from the specified channel (as opposed to the current one) and stores it as
a variable in the current channel (the channel that is calling this
application). Variables created by this application have the same inheritance
properties as those created with the Set application. See the documentation for
Set for more information.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 110, „Set()

55. Log()

Sendet den angegebenen Text an den angegebenen Log-Level.

Log(Level,Nachricht)

Gibt die angegebene Nachricht an den entsprechenden Log-Level weiter.

Level
Einer der folgenden Ziellevel: ERROR, WARNING, NOTICE, DEBUG, VERBOSE, DTMF
Nachricht
Zu loggende Nachricht
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Log' =- 

[Synopsis]
Send arbitrary text to a selected log level

[Description]
Log(<level>|<message>)
  level must be one of ERROR, WARNING, NOTICE, DEBUG, VERBOSE, DTMF

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 74, „NoOp(), Abschnitt 31, „DumpChan(), Abschnitt 130, „Verbose()

56. LookupBlacklist()

Schlägt die Caller-ID-Nummer in der lokalen Blacklist-Datenbank in der AstDB nach.

LookupBlacklist([Optionen])

Sucht die Caller-ID-Nummer (/-Name) des aktiven Channels in der AstDB in der Familie blacklist. Wenn die Option j (jump) angegeben ist, die Nummer gefunden wird und eine Priorität n+101 existiert, geht die Ausführung bei dieser Priorität weiter. Wird auf dem Channel keine Caller-ID empfangen, tut die Anwendung nichts.

Die Applikation setzt auch die Channelvariable LOOKUPBLSTATUS auf FOUND (gefunden) oder NOTFOUND (nicht gefunden).

Um der Blacklist Einträge hinzuzufügen, geben Sie im CLI database put blacklist "Nummer" "1", bzw. database del blacklist "Nummer" zum Löschen oder database show blacklist für eine Auflistung ein.

; Nummern aus der Schwarzen Liste nicht zulassen,
; andernfalls die Nummer in der Variablen ${PETER} wählen:
exten => 123,1,Answer()
exten => 123,n,LookupBlacklist()
exten => 123,n,GotoIf($["${LOOKUPBLSTATUS}" = "FOUND"]?black,1)
exten => 123,n,Dial(${PETER},30)

exten => black,1,Playback(tt-allbusy)
exten => black,n,Hangup()

Die Applikation LookupBlacklist() könnte folgendermaßen ersetzt werden:

exten => 123,1,Macro(blacklist,${CALLERID(num)})
exten => 123,n,Dial(IAX2/benutzer:passwort@beispiel.de/500)

[macro-blacklist]
; Aufruf: Macro(blacklist,${CALLERID(num)})
exten => s,1,GotoIf(${DB_EXISTS(blacklist/${ARG1})}?black)
exten => s,10(black),NoOp(Nummer ${ARG1} ist auf der Blacklist)
exten => s,n,Busy(5)
exten => s,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'LookupBlacklist' =- 

[Synopsis]
Look up Caller*ID name/number from blacklist database

[Description]
  LookupBlacklist(options): Looks up the Caller*ID number on the active
channel in the Asterisk database (family 'blacklist').  
The option string may contain the following character:
 'j' -- jump to n+101 priority if the number/name is found in the blacklist
This application sets the following channel variable upon completion:
 LOOKUPBLSTATUS  The status of the Blacklist lookup as a text string, one of
  FOUND | NOTFOUND
Example: exten => 1234,1,LookupBlacklist()

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

57. LookupCIDName()

Sucht einen Caller-ID-Namen in der AstDB.

LookupCIDName()

Schlägt die Caller-ID-Nummer des aktiven Channels in der AstDB (Familie cidname) nach und setzt den Caller-ID-Namen - wenn vorhanden - auf den gespeicherten Wert. Diese Anwendung tut nichts, wenn auf dem Channel keine Caller-ID empfangen wird. LookupCIDName() kann nützlich sein, wenn Sie nur eine Caller-ID-Nummer, aber keinen -Namen empfangen, oder wenn Sie den Caller-ID-Namen für einige eingehende Anrufe ändern möchten.

Liefert stets 0 zurück.

Um der Liste Einträge hinzuzufügen, geben Sie im CLI database put cidname "Nummer" "Name", bzw. database del cidname "Nummer" zum Löschen oder database show cidname für eine Auflistung ein.

exten => 123,1,Answer()
exten => 123,n,LookupCIDName()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'LookupCIDName' =- 

[Synopsis]
Look up CallerID Name from local database

[Description]
  LookupCIDName: Looks up the Caller*ID number on the active
channel in the Asterisk database (family 'cidname') and sets the
Caller*ID name.  Does nothing if no Caller*ID was received on the
channel.  This is useful if you do not subscribe to Caller*ID
name delivery, or if you want to change the names on some incoming
calls.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

58. Macro()

Ruft ein zuvor definiertes Makro auf.

Macro(macroname[,Arg1[,Arg2[,...]]])

Führt ein im Context macro-macroname definiertes Makro aus, indem es zur s-Extension dieses Contextes springt und nach der Ausführung des Makros zurückkehrt.

Die angerufene Extension, Context und Priorität sind innerhalb des Makros in ${MACRO_EXTEN}, ${MACRO_CONTEXT} und ${MACRO_PRIORITY} verfügbar. Die Parameter Arg1, Arg2 ... werden im MakroContext zu ${ARG1}, ${ARG2} usw.

Macro() liefert -1 zurück, falls irgendein Schritt des Makros -1 zurückliefert, sonst 0. Falls bei Beendigung des Ablaufs ${MACRO_OFFSET} gesetzt ist, versucht die Anwendung bei Priorität n+1+MACRO_OFFSET fortzufahren, falls ein solcher Schritt existiert, sonst bei n+1.

Falls die Goto()-Anwendung aus dem Makro heraus aufgerufen wird, wird das Makro enden und die Kontrolle an das Ziel von Goto() gehen.

; ein Makro definieren, das vom übergebenen Wert runterzählt:
[macro-countdown]
exten => s,1,Set(COUNT=${ARG1})
exten => s,n,While($[ ${COUNT} > 0])
exten => s,n,SayNumber(${COUNT})
exten => s,n,Set(COUNT=$[ ${COUNT} - 1 ])
exten => s,n,EndWhile()

[default]
exten => 123,1,Macro(countdown,3)   ; das Makro "countdown" mit ARG1=3 aufrufen
exten => 124,1,Macro(countdown,5)   ; das Makro "countdown" mit ARG1=5 aufrufen
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Macro' =- 

[Synopsis]
Macro Implementation

[Description]
  Macro(macroname|arg1|arg2...): Executes a macro using the context
'macro-<macroname>', jumping to the 's' extension of that context and
executing each step, then returning when the steps end. 
The calling extension, context, and priority are stored in ${MACRO_EXTEN}, 
${MACRO_CONTEXT} and ${MACRO_PRIORITY} respectively.  Arguments become
${ARG1}, ${ARG2}, etc in the macro context.
If you Goto out of the Macro context, the Macro will terminate and control
will be returned at the location of the Goto.
If ${MACRO_OFFSET} is set at termination, Macro will attempt to continue
at priority MACRO_OFFSET + N + 1 if such a step exists, and N + 1 otherwise.
WARNING: Because of the way Macro is implemented (it executes the priorities
         contained within it via sub-engine), and a fixed per-thread
         memory stack allowance, macros are limited to 7 levels
         of nesting (macro calling macro calling macro, etc.); It
         may be possible that stack-intensive applications in deeply nested macros
         could cause asterisk to crash earlier than this limit.

Differenz zum internen Hilfetext in Asterisk 1.2: 

22,23c22,23
<          may be possible that stack-intensive applications in deeply nested macros
<          could cause asterisk to crash earlier than this limit.
---
>          may be possible that stack-intensive applications in deeply nested
>          macros could cause asterisk to crash earlier than this limit.

Siehe auch. Abschnitt 49, „Goto(), Abschnitt 47, „Gosub()

59. MacroExclusive()

Ruft ein zuvor definiertes Makro auf. Aber nur eins zu einem gegebenen Zeitpunkt.

MacroExclusive(macroname[,Arg1[,Arg2[,...]]])

Führt - wie Macro() - ein im Context macro-macroname definiertes Makro aus (und nur das eine!), indem es zur s-Extension dieses Contextes springt und nach der Ausführung des Makros zurückkehrt. Wird das Macro während es bereits läuft an einer anderen Stelle des Dialplanes noch einmal aufgerufen, so muss diese Instanz warten, bis das erste Macro fertig abgearbeitet ist.

Die angerufene Extension, Context und Priorität sind innerhalb des Makros in ${MACRO_EXTEN}, ${MACRO_CONTEXT} und ${MACRO_PRIORITY} verfügbar. Die Parameter Arg1, Arg2 ... werden im MakroContext zu ${ARG1}, ${ARG2} usw.

Macro() liefert -1 zurück, falls irgendein Schritt des Makros -1 zurückliefert, sonst 0. Falls bei Beendigung des Ablaufs ${MACRO_OFFSET} gesetzt ist, versucht die Anwendung bei Priorität n+1+MACRO_OFFSET fortzufahren, falls ein solcher Schritt existiert, sonst bei n+1.

Falls die Goto()-Anwendung aus dem Makro heraus aufgerufen wird, wird das Makro enden und die Kontrolle an das Ziel von Goto() gehen.

; ein Makro definieren, das vom übergebenen Wert runterzählt:
[macro-countdown]
exten => s,1,Set(COUNT=${ARG1})
exten => s,n,While($[ ${COUNT} > 0])
exten => s,n,SayNumber(${COUNT})
exten => s,n,Set(COUNT=$[ ${COUNT} - 1 ])
exten => s,n,EndWhile()

[default]
exten => 123,1,MacroExclusive(countdown,3)   ; das Makro "countdown" mit ARG1=3 aufrufen
exten => 124,1,MacroExclusive(countdown,5)   ; das Makro "countdown" mit ARG1=5 aufrufen
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MacroExclusive' =- 

[Synopsis]
Exclusive Macro Implementation

[Description]
  MacroExclusive(macroname|arg1|arg2...):
Executes macro defined in the context 'macro-macroname'
Only one call at a time may run the macro.
(we'll wait if another call is busy executing in the Macro)
Arguments and return values as in application Macro()

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 58, „Macro(), Abschnitt 49, „Goto(), Abschnitt 47, „Gosub(), doc/macroexclusive.txt

60. MacroExit()

Bricht die Abarbeitung eines Macros ab.

MacroExit()

Kann innerhalb eines Macros dazu benutzt werden das selbige vorzeigtig zu beenden.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MacroExit' =- 

[Synopsis]
Exit From Macro

[Description]
  MacroExit():
Causes the currently running macro to exit as if it had
ended normally by running out of priorities to execute.
If used outside a macro, will likely cause unexpected
behavior.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 58, „Macro()

61. MacroIf()

Startet verschiedene Macros in Abhängigkeit einer Expression.

MacroIf(Ausdruck?MacronameA[,argA1][:MacronameB[,argB1]])

Ruft bedingt ein Makro auf, wobei ein Ausdruck im Stil von GotoIf() ausschlaggebend ist.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MacroIf' =- 

[Synopsis]
Conditional Macro Implementation

[Description]
  MacroIf(<expr>?macroname_a[|arg1][:macroname_b[|arg1]])
Executes macro defined in <macroname_a> if <expr> is true
(otherwise <macroname_b> if provided)
Arguments and return values as in application macro()

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 58, „Macro(), Abschnitt 50, „GotoIf(), Abschnitt 48, „GosubIf()

62. MailboxExists()

Verzweigt bedingt, falls die angegebene Voicemailbox existiert.

MailboxExists(Mailbox[@Context][,Optionen])

Prüft, ob die durch Mailbox angegebene Voicemailbox existiert. Sie können zusätzlich einen Voicemail-Context Context übergeben, wenn die Mailbox nicht zum Standard-Voicemail-Context gehört.

Setzt die Channelvariable VMBOXEXISTSSTATUS auf SUCCESS (Erfolg, Mailbox vorhanden) oder FAILED (fehlgeschlagen, Mailbox nicht vorhanden).

Mit der Option j wird bei vorhandener Mailbox zur Priorität n+101 gesprungen.

exten => 123,1,Answer()
exten => 123,n,MailboxExists(123@default)
exten => 123,n,Goto(box-${VMBOXEXISTSSTATUS})
exten => 123,10(box-SUCCESS),Voicemail(123,u)
exten => 123,20(box-FAILED),Playback(tut-uns-leid)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MailboxExists' =- 

[Synopsis]
Check to see if Voicemail mailbox exists

[Description]
  MailboxExists(mailbox[@context][|options]): Check to see if the specified
mailbox exists. If no voicemail context is specified, the 'default' context
will be used.
  This application will set the following channel variable upon completion:
    VMBOXEXISTSSTATUS - This will contain the status of the execution of the
                        MailboxExists application. Possible values include:
                        SUCCESS | FAILED

  Options:
    j - Jump to priority n+101 if the mailbox is found.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 57, „VMCOUNT()

63. MeetMe()

Nimmt den Anrufer in eine MeetMe-Konferenz auf.

MeetMe([KonferenzNr][,Optionen[,PIN]])

Verbindet den Anrufer auf dem aktuellen Channel zu einer MeetMe-Konferenz, angegeben durch den Parameter KonferenzNr. Ohne Angabe der Konferenznummer wird der Teilnehmer zur Eingabe derselben aufgefordert.

Wird als PIN-Parameter die PIN-Nummer der Konferenz (statisch in meetme.conf oder dynamisch vom Ersteller festgelegt) übergeben, so wird der Anrufer direkt in die Konferenz geleitet. Ansonsten muss der Anrufer die PIN eingeben, um beitreten zu können.

[Wichtig]Wichtig

Damit MeetMe-Konferenzen funktionieren, muss ein passendes Zaptel-Interface installiert sein. Alternativ kann auch der ztdummy-Treiber für Timing-Zwecke verwendet werden.

MeetMe-Konferenzen benutzen offenbar intern immer den uLaw-Codec, je mehr Teilnehmer in einer Konferenz andere Codecs wie GSM verwenden, desto mehr Rechenleistung wird für die Umkodierung benötigt.

Die Optionen können sich aus folgenden Zeichen zusammensetzen:

a
Aktiviert den Administrator-Modus.
A
Markiert den eintretenden User als besonderen Teilnehmer (siehe w und x).
b
Startet das in ${MEETME_AGI_BACKGROUND} spezifizierte AGI-Skript, standardmäßig conf-background.agi. (Funktioniert nur dann korrekt, wenn alle Kanäle in einer Konferenz Zap-Kanäle sind.) Das Skript erhält alle DTMF-Tanstendrücke, wodurch die Kombination mit Optionen, die auch das Abfangen von Tasten zur Folge haben (p), nicht möglich ist.
c
Kündigt beim Betreten die Zahl der Teilnehmer an.
d
Legt dynamisch einen neuen Konferenzraum an.
D
Legt dynamisch einen neuen Konferenzraum an, wobei die Festlegung der PIN verlangt wird. (Wenn der User keine PIN will, muss er # drücken.)
e
Wählt eine leere Konferenz aus.
E
Wählt eine leere Konferenz aus, die keine PIN verlangt.
i
Kündigt Betreten oder Verlassen eines Teilnehmers an (nur mit Zap-Kanälen).
m
Aktiviert den Monitor-Modus (nur hören, nicht sprechen).
M
Aktiviert Wartemusik (Music on Hold), wenn nur ein Teilnehmer in der Konferenz ist.
p
Ermöglicht es dem Teilnehmer, die Konferenz durch Drücken von # zu verlassen.
P
Fragt immer nach der PIN, auch wenn sie hier im Befehl angegeben ist.
q
Aktiviert den ruhigen Modus (spielt keine Eintritts-/Austrittsklänge ab).
r
Zeichnet eine Konferenz auf. Datei: ${MEETME_RECORDINGFILE}, Format: ${MEETME_RECORDINGFORMAT}. Der Standard-Dateiname lautet meetme-conf-rec-${KonferenzNr}-${UniqueID}, wobei UniqueID eine einmalige ID ist. Das Standardformat ist wav. (Funktioniert nur mit Zap-Kanälen)
s
Wechselt beim Drücken von * ins (Teilnehmer- oder Administrator-)Menü.
t
Aktiviert den Nur-Sprechen-Modus (nur reden, nicht hören).
T
Aktiviert die Sprecher-Erkennung (wird zum Manager-Inferface gesendet und in der MeetMe-Liste im CLI angezeigt).
v
Aktiviert den Video-Modus (bisher ohne Funktion).
w
Wartet, bis ein gekennzeichneter Teilnehmer (siehe A) die Konferenz betritt. Bis dahin hören alle Teilnehmer Wartemusik.
x
Schließt die Konferenz, wenn sie vom letzten gekennzeichneten Teilnehmer (siehe A) verlassen wird.
X
Ermöglicht es dem Teilnehmer, die Konferenz durch Eingabe einer einziffrigen Extension im Context ${MEETME_EXIT_CONTEXT} zu verlassen, oder durch Eingabe der Nummer einer Extension des aktuellen Contexts, falls diese Variable nicht definiert ist.

Die Option X funktioniert nicht zusammen mit p oder s.

Verwenden Sie e (oder E) zusammen mit d (oder D), um dynamisch einen neuen Konferenzraum zu eröffnen, wobei Asterisk automatisch die KonferenzNr festlegt. Sie müssen dann natürlich den anderen Teilnehmern die Nummer mitteilen oder entsprechende Dialplan-Logik einsetzen.

[Anmerkung]Anmerkung

Mit d oder D werden dynamisch Konferenzräume angelegt, in der meetme.conf können sie statisch definiert werden.

exten => 123,1,Answer()
; den Anrufer in Konferenzraum 333 schicken (mit der PIN 1234):
exten => 123,n,MeetMe(333,DpM,1234)

Siehe auch. Abschnitt 64, „MeetMeAdmin(), Abschnitt 65, „MeetMeCount()

Befehle im CLI. Diese Befehle stehen im CLI zur Verfügung, um MeetMe-Konferenzen zu verwalten (dabei ist die TeilnehmerNr die in der Liste angezeigte Nummer des Teilnehmers):

MeetMe
Listet alle Konferenzen auf.
MeetMe list KonferenzNr
Listet die Teilnehmer einer Konferenz auf.
MeetMe kick KonferenzNr TeilnehmerNr
Wirft einen Teilnehmer aus der Konferenz.
MeetMe kick KonferenzNr
Wirft alle Teilnehmer aus der Konferenz.
MeetMe lock KonferenzNr
Sperrt eine Konferenz, so dass keine Teilnehmer mehr aufgenommen werden.
MeetMe unlock KonferenzNr
Hebt eine Konferenz-Sperre (s.o.) wieder auf.
MeetMe mute KonferenzNr TeilnehmerNr
Schaltet einen Teilnehmer stumm.
MeetMe unmute KonferenzNr TeilnehmerNr
Hebt die Stummschaltung eines Teilnehmers (s.o.) wieder auf.
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MeetMe' =- 

[Synopsis]
MeetMe conference bridge

[Description]
  MeetMe([confno][,[options][,pin]]): Enters the user into a specified MeetMe
conference.  If the conference number is omitted, the user will be prompted
to enter one.  User can exit the conference by hangup, or if the 'p' option
is specified, by pressing '#'.
Please note: The Zaptel kernel modules and at least one hardware driver (or ztdummy)
             must be present for conferencing to operate properly. In addition, the chan_zap
             channel driver must be loaded for the 'i' and 'r' options to operate at all.

The option string may contain zero or more of the following characters:
      'a' -- set admin mode
      'A' -- set marked mode
      'b' -- run AGI script specified in ${MEETME_AGI_BACKGROUND}
             Default: conf-background.agi  (Note: This does not work with
             non-Zap channels in the same conference)
      'c' -- announce user(s) count on joining a conference
      'd' -- dynamically add conference
      'D' -- dynamically add conference, prompting for a PIN
      'e' -- select an empty conference
      'E' -- select an empty pinless conference
      'i' -- announce user join/leave with review
      'I' -- announce user join/leave without review
      'l' -- set listen only mode (Listen only, no talking)
      'm' -- set initially muted
      'M' -- enable music on hold when the conference has a single caller
      'o' -- set talker optimization - treats talkers who aren't speaking as
             being muted, meaning (a) No encode is done on transmission and
             (b) Received audio that is not registered as talking is omitted
             causing no buildup in background noise
      'p' -- allow user to exit the conference by pressing '#'
      'P' -- always prompt for the pin even if it is specified
      'q' -- quiet mode (don't play enter/leave sounds)
      'r' -- Record conference (records as ${MEETME_RECORDINGFILE}
             using format ${MEETME_RECORDINGFORMAT}). Default filename is
             meetme-conf-rec-${CONFNO}-${UNIQUEID} and the default format is
             wav.
      's' -- Present menu (user or admin) when '*' is received ('send' to menu)
      't' -- set talk only mode. (Talk only, no listening)
      'T' -- set talker detection (sent to manager interface and meetme list)
      'w[(<secs>)]'
          -- wait until the marked user enters the conference
      'x' -- close the conference when last marked user exits
      'X' -- allow user to exit the conference by entering a valid single
             digit extension ${MEETME_EXIT_CONTEXT} or the current context
             if that variable is not defined.
      '1' -- do not play message when first person enters

Differenz zum internen Hilfetext in Asterisk 1.2: 

8,11c8,11
<   MeetMe([confno][,[options][,pin]]): Enters the user into a specified MeetMe
< conference.  If the conference number is omitted, the user will be prompted
< to enter one.  User can exit the conference by hangup, or if the 'p' option
< is specified, by pressing '#'.
---
>   MeetMe([confno][,[options][,pin]]): Enters the user into a specified MeetMe conference.
> If the conference number is omitted, the user will be prompted to enter
> one. 
> User can exit the conference by hangup, or if the 'p' option is specified, by pressing '#'.
20,21c20,21
<              Default: conf-background.agi  (Note: This does not work with
<              non-Zap channels in the same conference)
---
>              Default: conf-background.agi
>              (Note: This does not work with non-Zap channels in the same conference)
27,30c27,28
<       'i' -- announce user join/leave with review
<       'I' -- announce user join/leave without review
<       'l' -- set listen only mode (Listen only, no talking)
<       'm' -- set initially muted
---
>       'i' -- announce user join/leave
>       'm' -- set monitor only mode (Listen only, no talking)
32,35d29
<       'o' -- set talker optimization - treats talkers who aren't speaking as
<              being muted, meaning (a) No encode is done on transmission and
<              (b) Received audio that is not registered as talking is omitted
<              causing no buildup in background noise
41,42c35
<              meetme-conf-rec-${CONFNO}-${UNIQUEID} and the default format is
<              wav.
---
>              meetme-conf-rec-${CONFNO}-${UNIQUEID} and the default format is wav.
52d44
<       '1' -- do not play message when first person enters

64. MeetMeAdmin()

Administration von MeetMe-Konferenzen

MeetMeAdmin(KonferenzNr,Befehl[,TeilnehmerNr])

Führt den angegebenen MeetMe-Administrationsbefehl in der angegebenen Konferenz aus. Der Befehl kann einer der folgenden sein (Die TeilnehmerNr wird nur für den Befehl k benötigt.):

K
Wirft alle Teilnehmer aus der Konferenz.
k
Wirft den Teilnehmer mit der angegebenen TeilnehmerNr aus der Konferenz
e
Wirft den letzten Teilnehmer, der sich zu der Konferenz verbunden hat, raus
L
Sperrt die Konferenz (d.h. keine neuen Teilnehmer)
l
Entsperrt die Konferenz.
M
Schaltet die Konferenz für einen User stumm.
m
Hebt die Stummschaltung (durch M) auf
N
Schaltet alle Teilnehmer außer dem Administrator stumm
n
Hebt die Stummschaltung (durch N) auf
; Konferenz 333 fuer den User 3 stummschalten:
exten => 123,1,MeetMeAdmin(333,M,3)

; Teilnehmer 3 aus der Konferenz 333 kicken:
exten => 123,1,MeetMeAdmin(333,k,3)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MeetMeAdmin' =- 

[Synopsis]
MeetMe conference Administration

[Description]
  MeetMeAdmin(confno,command[,user]): Run admin command for conference
      'e' -- Eject last user that joined
      'k' -- Kick one user out of conference
      'K' -- Kick all users out of conference
      'l' -- Unlock conference
      'L' -- Lock conference
      'm' -- Unmute one user
      'M' -- Mute one user
      'n' -- Unmute all users in the conference
      'N' -- Mute all non-admin users in the conference
      'r' -- Reset one user's volume settings
      'R' -- Reset all users volume settings
      's' -- Lower entire conference speaking volume
      'S' -- Raise entire conference speaking volume
      't' -- Lower one user's talk volume
      'T' -- Raise one user's talk volume
      'u' -- Lower one user's listen volume
      'U' -- Raise one user's listen volume
      'v' -- Lower entire conference listening volume
      'V' -- Raise entire conference listening volume

Differenz zum internen Hilfetext in Asterisk 1.2: 

14,27c14,17
<       'm' -- Unmute one user
<       'M' -- Mute one user
<       'n' -- Unmute all users in the conference
<       'N' -- Mute all non-admin users in the conference
<       'r' -- Reset one user's volume settings
<       'R' -- Reset all users volume settings
<       's' -- Lower entire conference speaking volume
<       'S' -- Raise entire conference speaking volume
<       't' -- Lower one user's talk volume
<       'T' -- Raise one user's talk volume
<       'u' -- Lower one user's listen volume
<       'U' -- Raise one user's listen volume
<       'v' -- Lower entire conference listening volume
<       'V' -- Raise entire conference listening volume
---
>       'm' -- Unmute conference
>       'M' -- Mute conference
>       'n' -- Unmute entire conference (except admin)
>       'N' -- Mute entire conference (except admin)

Siehe auch. Abschnitt 63, „MeetMe(), Abschnitt 65, „MeetMeCount()

65. MeetMeCount()

Zählt die Teilnehmer einer MeetMe-Konferenz.

MeetMeCount(KonferenzNr[,Variablenname])

Spielt die Anzahl der Teilnehmer in der MeetMe-Konferenz ab. Falls eine Variable angegeben ist, wird der Abspielvorgang übersprungen und die Anzahl in diese Variable geschrieben.

Liefert bei Erfolg 0 zurück, bei einem Fehler -1

Zählt die Teilnehmer in Konferenz 501, und weist diese Zahl ${COUNT} zu.

; die Teilnehmerzahl der Konferenz 333 in ${anzahl} speichern:
exten => 333,1,MeetMeCount(123,anzahl)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MeetMeCount' =- 

[Synopsis]
MeetMe participant count

[Description]
  MeetMeCount(confno[|var]): Plays back the number of users in the specified
MeetMe conference. If var is specified, playback will be skipped and the value
will be returned in the variable. Upon app completion, MeetMeCount will hangup
the channel, unless priority n+1 exists, in which case priority progress will
continue.
A ZAPTEL INTERFACE MUST BE INSTALLED FOR CONFERENCING FUNCTIONALITY.

Differenz zum internen Hilfetext in Asterisk 1.2: 

10,12c10,11
< will be returned in the variable. Upon app completion, MeetMeCount will hangup
< the channel, unless priority n+1 exists, in which case priority progress will
< continue.
---
> will be returned in the variable. Upon app completion, MeetMeCount will hangup the
> channel, unless priority n+1 exists, in which case priority progress will continue.

Siehe auch. Abschnitt 63, „MeetMe(), Abschnitt 64, „MeetMeAdmin()

66. Milliwatt()

Erzeugt einen 1000-Hz-Ton.

Milliwatt()

Erzeugt einen konstanten 1000-Hz-Ton bei 0 dbm (u-law). Diese Anwendung wird häufig verwendet, um die Audioeigenschaften eines bestimmten Channels zu testen. Allerdings ist die Bezeichnung etwas irreführend, sinnvoller schiene „Kilohertz()“.

; einen 1000-Hz-Ton erzeugen:
exten => 123,1,Milliwatt()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Milliwatt' =- 

[Synopsis]
Generate a Constant 1000Hz tone at 0dbm (mu-law)

[Description]
Milliwatt(): Generate a Constant 1000Hz tone at 0dbm (mu-law)

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 33, „Echo()

67. MixMonitor()

Schneidet das Gespräch auf dem aktuellen Channel mit (eine Datei)

MixMonitor(Basisname.Format[,Optionen[,Befehl]])

Startet die Audio-Aufzeichnung des aktuellen Channels. Dabei werden im im Gegensatz zu Monitor() direkt beide Kanäle zu einer Datei gemischt.

Optionen:

a
Hängt den Audio-Stream an eine bestehende Datei an.
b
Startet die Aufnahme erst, nachdem der Anruf mit einem anderen Channel verbunden wurde, also nachdem z.B. durch Dial() tatsächlich ein Gespräch zustande kommt.
v(x)
Passt die eingehende Lautstärke um Faktor x an (-4 bis 4).
V(x)
Passt die ausgehende Lautstärke um Faktor x an (-4 bis 4).
W(x)
Passt die eingehende und ausgehende Lautstärke um Faktor x an (-4 bis 4).

Befehl wird (falls angegeben) nach der Aufzeichnung ausgeführt. Die Variable ${MIXMONITOR_FILENAME} wird auf den Namen der aufgezeichneten Datei gesetzt.

Beachten Sie auch die Hinweise bei Monitor().

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MixMonitor' =- 

[Synopsis]
Record a call and mix the audio during the recording

[Description]
  MixMonitor(<file>.<ext>[|<options>[|<command>]])

Records the audio on the current channel to the specified file.
If the filename is an absolute path, uses that path, otherwise
creates the file in the configured monitoring directory from
asterisk.conf.

Valid options:
 a      - Append to the file instead of overwriting it.
 b      - Only save audio to the file while the channel is bridged.
          Note: does not include conferences.
 v(<x>) - Adjust the heard volume by a factor of <x> (range -4 to 4)
 V(<x>) - Adjust the spoken volume by a factor of <x> (range -4 to 4)
 W(<x>) - Adjust the both heard and spoken volumes by a factor of <x>
         (range -4 to 4)

<command> will be executed when the recording is over
Any strings matching ^{X} will be unescaped to ${X} and 
all variables will be evaluated at that time.
The variable MIXMONITOR_FILENAME will contain the filename used to record.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 68, „Monitor()

68. Monitor()

Schneidet das Gespräch auf dem aktuellen Channel mit (zwei Dateien)

Monitor([Format[,Basisname[,Optionen]]])

Startet die Audio-Aufzeichnung des aktuellen Channels. Die auf dem Channel eingehenden und ausgehenden Sprachpakete werden in seperaten Dateien aufgezeichnet, bis der Channel aufgelegt oder die Überwachung durch die StopMonitor()-Anwendung beendet wird.

Format gibt das Dateiformat (= Dateiendung) an. Ohne Angabe wird wav verwendet.

Basisname gibt den Basis-Dateinamen an (also ohne Dateiendung). Ohne Angabe wird der Name aus dem Channelnamen und einer Nummer zusammengesetzt, z.B. IAX2[foo@bar]-3. Das eingehende Audio wird in Basisname-in.Format, das ausgehende in Basisname-out.Format im Verzeichnis /var/spool/asterisk/monitor/ gespeichert.

Eine der beiden Optionen kann angegeben werden:

m

Nach dem Beenden der Aufnahme werden die Dateien für In und Out in eine gemischt und die ursprünglichen Dateien gelöscht. Dazu muss das Programm soxmix aus dem Paket sox installiert sein[103]. Falls die Variable ${MONITOR_EXEC} definiert ist, wird statt soxmix die angegebene Anwendung ausgeführt, und die ursprünglichen Dateien für beide Richtungen nicht automatisch gelöscht[104]. soxmix (bzw. ${MONITOR_EXEC}) werden drei Parameter übergeben, die beiden Aufzeichnungsdateien und der Dateiname für die zu erstellende gemischte Datei, welcher dem Basisnamen ohne -in/-out entspricht. Ist ${MONITOR_EXEC_ARGS} gesetzt, werd der Inhalt als zusätzliche Argumente an ${MONITOR_EXEC} übergeben.

[Wichtig]Wichtig

Bei der Verwendung von soxmix ist zu beachten, dass soxmix ohne explizite Angabe der Dateitypen diese aus den Endungen erkennt. gsm und wav bereiten z.B. keine Probleme, aber für die Formate alaw und ulaw werden als Endungen al bzw. ul erwartet. Lesen Sie also ggf. die Anleitung von sox (/soxmix) und verwenden Sie ${MONITOR_EXEC_ARGS} oder benutzen Sie ein kleines Wrapper-Skript als ${MONITOR_EXEC}, das die Datei-Parameter liest und soxmix mit Angabe der Typen aufruft.

[Anmerkung]Anmerkung

Wenn Sie eine kombinierte Aufzeichnung wollen, ist meist MixMonitor() die bessere Alternative, da es die Kanäle direkt während der Aufnahme mischt und dadurch Lastspitzen am Ende der Aufzeichnung vermeidet.

b
Startet die Aufnahme erst, nachdem ein Anruf zu einem anderen Channel verbunden wurde, also nachdem z.B. durch Dial() tatsächlich ein Gespräch zustande kommt.

Gibt 0 bei Erfolg zurück oder -1 bei einem Fehler (Überwachungsdateien konnten nicht geöffnet werden, Channel wird bereits aufgezeichnet, ...)

; das Gespräch aufzeichnen und hinterher die Audio-Kanäle mixen:
exten => 123,1,Answer()
exten => 123,n,Monitor(gsm,,mb)
exten => 123,n,SayDigits(123456789)
exten => 123,n,Hangup()

; wie oben aber mit einem eigenen Wrapper, der soxmix aufruft:
exten => 123,1,Answer()
exten => 123,n,Set(MONITOR_EXEC=/pfad/zu/mein-soxmix-wrapper.sh)
exten => 123,n,Monitor(gsm,,mb)
exten => 123,n,SayDigits(123456789)
exten => 123,n,Hangup()
[Wichtig]Wichtig

Stellen Sie vor dem Mitschneiden von Gesprächen sicher, dass die rechtlichen Voraussetzungen erfüllt sind. Meist müssen beide Teilnehmer von der Aufzeichnung informiert sein.[105]

[Anmerkung]Anmerkung

Einige Anwender, die viele (50-500) Gespräche gleichzeitig aufnehmen, berichten von stark verbesserter Performance, wenn man auf eine RAM-Disk aufzeichnet (weniger Such-Operationen) und die Dateien erst nach Gesprächsende auf die Festplatte (lokal oder gemountet) kopiert.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Monitor' =- 

[Synopsis]
Monitor a channel

[Description]
Monitor([file_format[:urlbase]|[fname_base]|[options]]):
Used to start monitoring a channel. The channel's input and output
voice packets are logged to files until the channel hangs up or
monitoring is stopped by the StopMonitor application.
  file_format  optional, if not set, defaults to "wav"
  fname_base   if set, changes the filename used to the one specified.
  options:
    m   - when the recording ends mix the two leg files into one and
          delete the two leg files.  If the variable MONITOR_EXEC is set, the
          application referenced in it will be executed instead of
          soxmix and the raw leg files will NOT be deleted automatically.
          soxmix or MONITOR_EXEC is handed 3 arguments, the two leg files
          and a target mixed file name which is the same as the leg file names
          only without the in/out designator.
          If MONITOR_EXEC_ARGS is set, the contents will be passed on as
          additional arguements to MONITOR_EXEC
          Both MONITOR_EXEC and the Mix flag can be set from the
          administrator interface

    b   - Don't begin recording unless a call is bridged to another channel

Returns -1 if monitor files can't be opened or if the channel is already
monitored, otherwise 0.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 16, „ChangeMonitor(), Abschnitt 121, „StopMonitor(), Abschnitt 79, „PauseMonitor(), Abschnitt 127, „UnpauseMonitor(), Abschnitt 67, „MixMonitor(), Abschnitt 95, „Record()

69. Morsecode()

Gibt einen angegebenen String als Morsezeichen aus.

Morsecode(String)

Spielt den angegebenen String als Morsezeichen.

exten => 123,1,Answer()
exten => 123,n,Morsecode("Das Pferd frisst den Hafer nicht.")
exten => 123,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Morsecode' =- 

[Synopsis]
Plays morse code

[Description]
Usage: Morsecode(<string>)
Plays the Morse code equivalent of the passed string.  If the variable
MORSEDITLEN is set, it will use that value for the length (in ms) of the dit
(defaults to 80).  Additionally, if MORSETONE is set, it will use that tone
(in Hz).  The tone default is 800.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

70. MP3Player()

Gibt eine MP3-Datei oder einen MP3-Stream wieder.

MP3Player(Dateiname)

Verwendet das Programm mpg123[106], um dem Anrufer eine MP3-Datei vorzuspielen. Der angegebene Dateiname kann auch eine URL sein. Der Anrufer kann die Wiedergabe durch Betätigung einer beliebigen Taste stoppen.

Die richtige Version von mpg123 muss installiert sein, damit diese Anwendung ordnungsgemäß funktioniert. Asterisk arbeitet momentan mit der Version 0.59r ideal.

[Anmerkung]Anmerkung

Das häufig als Alternative installierte und auf mpg123 verlinkte Programm mpg321 funktioniert nicht einwandfrei.

Liefert -1, falls aufgelegt wird, sonst 0.

; lokale Datei spielen:
exten => 123,1,Answer()
exten => 123,n,MP3Player(test.mp3)

; Datei von einer URL spielen:
exten => 123,1,Answer()
exten => 123,n,MP3Player(http://server.tld/test.mp3)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MP3Player' =- 

[Synopsis]
Play an MP3 file or stream

[Description]
  MP3Player(location) Executes mpg123 to play the given location,
which typically would be a filename or a URL. User can exit by pressing
any key on the dialpad, or by hanging up.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

71. MusicOnHold()

Spielt endlos Wartemusik.

MusicOnHold(class)

Spielt die durch class spezifizierte Wartemusik, wie in musiconhold.conf konfiguriert. Wird class nicht angegeben, wird die Standardmusik-Klasse für diesen Channel verwendet. Um die Standardmusik-Klasse für einen Channel einzustellen, können Sie die Funktion MUSICCLASS() verwenden.

Liefert -1, falls aufgelegt wird, ansonsten wird sie endlos ausgeführt.

; auf diese Extension könnte man Telefonverkäufer schicken:
exten => 123,1,Answer()
exten => 123,2,Playback(tt-allbusy)
exten => 123,3,MusicOnHold(default)
exten => 123,4,Goto(2)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'MusicOnHold' =- 

[Synopsis]
Play Music On Hold indefinitely

[Description]
MusicOnHold(class): Plays hold music specified by class.  If omitted, the default
music source for the channel will be used. Set the default 
class with the SetMusicOnHold() application.
Returns -1 on hangup.
Never returns otherwise.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 138, „WaitMusicOnHold(), Abschnitt 35, „MUSICCLASS()

72. NBScat()

Wiedergabe eines lokalen NBS-Streams

NBScat()

Verwendet das nbscat8k-Programm, um den lokalen NBS (Network Broadcast Sound)-Stream zu hören. (Schauen Sie sich das nbs-Modul in Digiums CVS-Server an, um weitere Informationen zu erhalten.) Der Anrufer kann durch Drücken einer beliebigen Taste aussteigen.

Die Anwendung liefert -1, falls aufgelegt wird, ansonsten wird sie endlos ausgeführt.

exten => 123,1,Answer()
exten => 123,n,NBScat()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'NBScat' =- 

[Synopsis]
Play an NBS local stream

[Description]
  NBScat: Executes nbscat to listen to the local NBS stream.
User can exit by pressing any key
.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

73. NoCDR()

Unterdrückt das CDR.

NoCDR()

Unterdrückt die Erstellung eines Anrufprotokolls (Call Detail Record) für den aktuellen Anruf.

; für Anrufe an 0123-45678 kein CDR:
exten => 5551212,1,Answer()
exten => 5551212,n,NoCDR()
exten => 5551212,n,Dial(Zap/4/012345678)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'NoCDR' =- 

[Synopsis]
Tell Asterisk to not maintain a CDR for the current call

[Description]
  NoCDR(): This application will tell Asterisk not to maintain a CDR for the
current call.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 45, „ForkCDR()

74. NoOp()

Tut nichts (no operation).

NoOp(Text)

Diese Anwendung tut nichts - dem Namen nach. Mit NoOp() kann man aber Text auf dem Asterisk-CLI ausgeben - eine zum Debugging sehr nützliche Eigenschaft.

Sie müssen den Text nicht in Anführungszeichen betten. Stehen Anführungszeichen innerhalb der Klammern, werden diese auf der Konsole ausgegeben.

[Wichtig]Wichtig

Die Ausgabe von NoOp() auf dem CLI erfolgt erst ab dem Verbose-Level 3. Dieser kann im CLI mit set verbose 3 gesetzt werden.

exten => 123,1,NoOp(Caller-ID: ${CALLERID})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'NoOp' =- 

[Synopsis]
Do Nothing

[Description]
  NoOp(): This applicatiion does nothing. However, it is useful for debugging
purposes. Any text that is provided as arguments to this application can be
viewed at the Asterisk CLI. This method can be used to see the evaluations of
variables or functions without having any effect.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 31, „DumpChan(), Abschnitt 55, „Log(), Abschnitt 130, „Verbose()

75. Page()

Rundruf.

Page(Technology/Resource[&Technology2/Resource2[&...]][,Optionen])

Die als Parameter angegebenen Telefone werden angerufen und kommen automatisch in einen Konferenzraum, in dem sie allerdings nicht sprechen können. Dies kann nur der Initiator des Rundrufes. Optionen:

d
Full-Duplex-Modus aktivieren
q
Es wird kein Ton abgespielt.
r
Der Rundruf wird in einer Datei aufgezeichnet.
exten => 123,1,Page(SIP/2000&SIP/2001&SIP/2002)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Page' =- 

[Synopsis]
Pages phones

[Description]
Page(Technology/Resource&Technology2/Resource2[|options])
  Places outbound calls to the given technology / resource and dumps
them into a conference bridge as muted participants.  The original
caller is dumped into the conference as a speaker and the room is
destroyed when the original caller leaves.  Valid options are:
        d - full duplex audio
        q - quiet, do not play beep to caller
        r - record the page into a file (see 'r' for app_meetme)

Differenz zum internen Hilfetext in Asterisk 1.2: 

14,15c14
<         q - quiet, do not play beep to caller
<         r - record the page into a file (see 'r' for app_meetme)
---
>    q - quiet, do not play beep to caller

76. Park()

Parkt den aktuellen Anruf.

Park(Extension)

Parkt den aktuellen Anruf (typischerweise in Kombination mit einer beaufsichtigten Übertragung, um die „Parkplatznummer“ zu bestimmen). Diese Anwendung ist intern stets registriert und muss nicht explizit im Wählplan eingefügt werden, jedoch müssen Sie den parkedcalls-Context mit der Zeile include => parkedcalls einbinden. Die Parkkonfiguration wird in features.conf vorgenommen.

; den Anruf auf 701 parken:
include => parkedcalls
exten => 123,1,Answer()
exten => 123,n,Park(701)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Park' =- 

[Synopsis]
Park yourself

[Description]
Park():Used to park yourself (typically in combination with a supervised
transfer to know the parking space). This application is always
registered internally and does not need to be explicitly added
into the dialplan, although you should include the 'parkedcalls'
context (or the context specified in features.conf).

If you set the PARKINGEXTEN variable to an extension in your
parking context, park() will park the call on that extension, unless
it already exists. In that case, execution will continue at next
priority.

Differenz zum internen Hilfetext in Asterisk 1.2: 

12,17c12
< context (or the context specified in features.conf).
< 
< If you set the PARKINGEXTEN variable to an extension in your
< parking context, park() will park the call on that extension, unless
< it already exists. In that case, execution will continue at next
< priority.
---
> context.

Siehe auch. Abschnitt 77, „ParkAndAnnounce(), Abschnitt 78, „ParkedCall()

77. ParkAndAnnounce()

Parkt den aktuellen Anruf und macht ihn über den spezifizierten Channel bekannt.

ParkAndAnnounce(Template,Timeout,Channel[,Return-Context])

Parkt den aktuellen Anruf in dem dafür vorgesehenen Bereich (auf dem Parkplatz) und meldet ihn über den spezifizierten Channel. Template bezeichnet eine Liste von durch Kommas voneinander getrennten Dateien, die anzukündigen sind; das Wort PARKED wird durch die Parkplatznummer des Anrufs ersetzt. Der Parameter Timeout bestimmt die Zeit in Sekunden, nach deren Ablauf der Anruf zum Return-Context zurückkehrt. Channel bezeichnet den Channel, der anzurufen ist, um die Ankündigung zu machen (Console/dsp ruft die Konsole auf). Return-Context ist ein Label im GoTo()-Stil, um den Anruf nach der Beendigung zurückzubringen. Standardeinstellung hierfür ist n+1 im Context Return-Context.

include => parkedcalls
exten => 123,1,Answer()
exten => 123,n,ParkAndAnnounce(vm-youhave:a:pbx-transfer:at:vm-extension:PARKED,120,Console/dsp)
exten => 123,n,Playback(vm-nobodyavail)
exten => 123,n,Playback(vm-goodbye)
exten => 123,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ParkAndAnnounce' =- 

[Synopsis]
Park and Announce

[Description]
  ParkAndAnnounce(announce:template|timeout|dial|[return_context]):
Park a call into the parkinglot and announce the call to another channel.

announce template: Colon-separated list of files to announce.  The word PARKED
                   will be replaced by a say_digits of the extension in which
                   the call is parked.
timeout:           Time in seconds before the call returns into the return
                   context.
dial:              The app_dial style resource to call to make the
                   announcement.  Console/dsp calls the console.
return_context:    The goto-style label to jump the call back into after
                   timeout.  Default <priority+1>.

The variable ${PARKEDAT} will contain the parking extension into which the
call was placed.  Use with the Local channel to allow the dialplan to make
use of this information.

Differenz zum internen Hilfetext in Asterisk 1.2: 

9,23c9,14
< Park a call into the parkinglot and announce the call to another channel.
< 
< announce template: Colon-separated list of files to announce.  The word PARKED
<                    will be replaced by a say_digits of the extension in which
<                    the call is parked.
< timeout:           Time in seconds before the call returns into the return
<                    context.
< dial:              The app_dial style resource to call to make the
<                    announcement.  Console/dsp calls the console.
< return_context:    The goto-style label to jump the call back into after
<                    timeout.  Default <priority+1>.
< 
< The variable ${PARKEDAT} will contain the parking extension into which the
< call was placed.  Use with the Local channel to allow the dialplan to make
< use of this information.
---
> Park a call into the parkinglot and announce the call over the console.
> announce template: colon separated list of files to announce, the word PARKED
>                    will be replaced by a say_digits of the ext the call is parked in
> timeout: time in seconds before the call returns into the return context.
> dial: The app_dial style resource to call to make the announcement. Console/dsp calls the console.
> return_context: the goto style label to jump the call back into after timeout. default=prio+1

Siehe auch. Abschnitt 76, „Park(), Abschnitt 78, „ParkedCall()

78. ParkedCall()

Beantwortet einen geparkten Anruf.

ParkedCall(Extension)

Verbindet den Anrufer mit dem auf dem durch Extension identifizierten Parkplatz geparkten Anruf. Diese Anwendung ist intern ständig registriert und muss daher dem Wählplan nicht explizit hinzugefügt werden. Sie sollten jedoch den parkedcalls-Context einbinden.

; den Anruf auf "Parkplatz" 701 wiederaufnehmen:
exten => 123,1,Answer()
exten => 123,n,ParkedCall(701)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ParkedCall' =- 

[Synopsis]
Answer a parked call

[Description]
ParkedCall(exten):Used to connect to a parked call.  This application is always
registered internally and does not need to be explicitly added
into the dialplan, although you should include the 'parkedcalls'
context.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 76, „Park(), Abschnitt 77, „ParkAndAnnounce()

79. PauseMonitor()

Stoppt das Monitoring eines Channels.

PauseMonitor()

Pausiert die Aufzeichnung eines Channels, bis die Pause mit UnpauseMonitor() wieder aufgehoben wird.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'PauseMonitor' =- 

[Synopsis]
Pause monitoring of a channel

[Description]
PauseMonitor
Pauses monitoring of a channel until it is re-enabled by a call to UnpauseMonitor.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 68, „Monitor(), Abschnitt 127, „UnpauseMonitor(), Abschnitt 121, „StopMonitor(), Abschnitt 16, „ChangeMonitor()

80. PauseQueueMember()

Pausiert ein Warteschlangenmitglied, so dass es keine Anrufe empfangen kann.

PauseQueueMember([Schlange],Interface[,Optionen])

Pausiert die Durchstellung von Anrufen zu einem Warteschlangenmitglied. Das spezifizierte Interface wird in der gegebenen Warteschlange zeitweilig angehalten. Dadurch wird verhindert, dass Anrufe aus der Warteschlange zu diesem Interface durchgestellt werden, bis es nicht wieder freigegeben wurde durch UnpauseQueueMember() oder das Manager-Interface. Wenn kein Warteschlangenname angegeben ist, wird das Interface in jeder Warteschlange, in der es ein Mitglied ist, angehalten. Befindet sich das Interface nicht in der benannten Warteschlange, oder wenn keine Warteschlange angegeben und das Interface nicht Mitglied irgendeiner Warteschlange ist, wird - bei Angabe der Option j - die Ausführung bei Priorität n+101 fortgesetzt, falls diese existiert.

Gibt -1 zurück, falls das Interface nicht gefunden wurde oder keine Extension existiert, zu der gesprungen werden kann, sonst 0. Setzt die Channel-Variable PQMSTATUS auf PAUSED (pausiert) oder NOTFOUND (nicht gefunden).

; wenn *111002 gewählt wird, wird Agent/1002 auf allen Schlangen pausiert:
exten => *11ZXXX,1,PauseQueueMember(,Agent/${EXTEN:3})

; mit *121002 wird Agent/1002 wieder aktiviert:
exten => *12ZXXX,1,UnpauseQueueMember(,Agent/${EXTEN:3})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'PauseQueueMember' =- 

[Synopsis]
Pauses a queue member

[Description]
   PauseQueueMember([queuename]|interface[|options]):
Pauses (blocks calls for) a queue member.
The given interface will be paused in the given queue.  This prevents
any calls from being sent from the queue to the interface until it is
unpaused with UnpauseQueueMember or the manager interface.  If no
queuename is given, the interface is paused in every queue it is a
member of.  If the interface is not in the named queue, or if no queue
is given and the interface is not in any queue, it will jump to
priority n+101, if it exists and the appropriate options are set.
The application will fail if the interface is not found and no extension
to jump to exists.
The option string may contain zero or more of the following characters:
       'j' -- jump to +101 priority when appropriate.
  This application sets the following channel variable upon completion:
     PQMSTATUS      The status of the attempt to pause a queue member as a
                     text string, one of
           PAUSED | NOTFOUND
Example: PauseQueueMember(|SIP/3000)

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 128, „UnpauseQueueMember()

81. Perl()

Führt eine Perl-Funktion oder ein Perl-Skript aus.

Perl(Funktionsname[:Arg1[:Arg2[:...]]])
Perl(Loadfile:Dateiname[:Arg1[:Arg2[:...]]])
[Wichtig]Wichtig

Für Perl() muss das Modul res_perl[107] kompiliert und geladen sein! Alternativ können mit System() Perl-Skripte ausgeführt werden.

Führt eine Funktion aus dem Paket Asterisk::Embed in /usr/local/res_perl/modules/asterisk_init.pm oder ein Perl-Skript (z.B. demo.pl) aus dem Verzeichnis /usr/local/res_perl/apps/ aus, was im Vergleich zum Aufruf auf der Shell den Vorteil hat, dass der Interpreter nicht jedesmal neu geladen wird.

res_perl ist möglicherweise nicht zu aktuellen Asterisk-Versionen kompatibel und wird in diesem Buch nicht weiter beschrieben.

Siehe auch. Abschnitt 123, „System(), Abschnitt 6, „AGI()

82. PHP()

Führt ein PHP-Skript aus.

PHP(Dateiname[|Arg1[|Arg2[|...]]])
[Wichtig]Wichtig

Für PHP() muss das Modul res_php[108] kompiliert und geladen sein! Alternativ können mit System() PHP-Skripte ausgeführt werden.

Führt ein PHP-Skript aus, was im Vergleich zum Aufruf auf der Shell den Vorteil hat, dass der Interpreter nicht jedesmal neu geladen wird.

res_php ist z.Zt. nicht mit aktuellen Asterisk-Versionen kompatibel und wird in diesem Buch nicht weiter beschrieben.

Siehe auch. Abschnitt 123, „System(), Abschnitt 6, „AGI()

83. Pickup()

Einen Anruf an eine andere Extension entgegennehmen.

Pickup(Extension[@Context][&Extension2@Context2[&...]])

Mit Pickup() kann ein Gespräch, das an einem anderen Telefon auf Entgegennahme wartet übernommen werden. („Heranholen“)

exten => 1234,1,Pickup(2000@verkauf)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Pickup' =- 

[Synopsis]
Directed Call Pickup

[Description]
  Pickup(extension[@context][&extension2@context...]): This application can pickup any ringing channel
that is calling the specified extension. If no context is specified, the current
context will be used. If you use the special string "PICKUPMARK" for the context parameter, for example
10@PICKUPMARK, this application tries to find a channel which has defined a channel variable with the same content
as "extension".

Differenz zum internen Hilfetext in Asterisk 1.2: 

8c8
<   Pickup(extension[@context][&extension2@context...]): This application can pickup any ringing channel
---
>   Pickup(extension[@context]): This application can pickup any ringing channel
10,12c10,11
< context will be used. If you use the special string "PICKUPMARK" for the context parameter, for example
< 10@PICKUPMARK, this application tries to find a channel which has defined a channel variable with the same content
< as "extension".
---
> context will be used.
> 

84. Playback()

Spielt dem Anrufer eine Audiodatei vor.

Playback(Dateiname[,Optionen])

Spielt dem Anrufer die Audiodatei Dateiname (aus dem Verzeichnis /var/lib/asterisk/sounds/) vor. Der Dateiname enthält keine Dateiendung, damit Asterisk automatisch die Audiodatei mit dem niedrigsten Konvertierungsaufwand auswählen kann. Keine, eine oder mehr Optionen können hinzugefügt werden.

Die Option skip bewirkt, dass die Wiedergabe der Nachricht übersprungen wird, wenn sich der Channel nicht im Up-Status befindet.

Normalerweise wird der Channel beantwortet, bevor die Audiodatei wiedergegeben wird, es sei denn, noanswer ist angegeben. (Nicht alle Kanäle unterstützen die Wiedergabe von Nachrichten, wenn sie noch aufgelegt sind.)

Liefert -1 zurück, wenn der Channel aufgelegt wurde. Wenn die Datei nicht existiert, wird zur Priorität n+101 übergegangen, falls diese existiert.

exten => 123,1,Answer()
exten => 123,n,Playback(tt-weasels)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Playback' =- 

[Synopsis]
Play a file

[Description]
  Playback(filename[&filename2...][|option]):  Plays back given filenames (do not put
extension). Options may also be included following a pipe symbol. The 'skip'
option causes the playback of the message to be skipped if the channel
is not in the 'up' state (i.e. it hasn't been  answered  yet). If 'skip' is 
specified, the application will return immediately should the channel not be
off hook.  Otherwise, unless 'noanswer' is specified, the channel will
be answered before the sound is played. Not all channels support playing
messages while still on hook. If 'j' is specified, the application
will jump to priority n+101 if present when a file specified to be played
does not exist.
This application sets the following channel variable upon completion:
 PLAYBACKSTATUS    The status of the playback attempt as a text string, one of
               SUCCESS | FAILED

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 12, „Background()

85. Playtones()

Wiedergabe einer Tonliste.

Playtones(Tonliste)

Spielt eine Liste von Tönen ab. Die Ausführung wird augenblicklich mit dem nächsten Schritt fortgesetzt, während die Töne weiter abgespielt werden. Tonliste ist entweder ein Tonname, der in der indications.conf definiert ist, oder eine Liste von Tonfrequenzen und -dauern. Für eine Beschreibung der Spezifikation einer eigenen Tonliste siehe indications.conf.

Verwendet die StopPlaytones()-Anwendung, um die Wiedergabe der Töne anzuhalten.

; 2 Sekunden Besetzt-, dann 2 Sekunden Stau-Signal spielen:
exten => 123,1,Playtones(busy)
exten => 123,n,Wait(2)
exten => 123,n,StopPlaytones()
exten => 123,n,Playtones(congestion)
exten => 123,n,Wait(2)
exten => 123,n,StopPlaytones()
exten => 123,n,Goto(1)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'PlayTones' =- 

[Synopsis]
Play a tone list

[Description]
PlayTones(arg): Plays a tone list. Execution will continue with the next step immediately,
while the tones continue to play.
Arg is either the tone name defined in the indications.conf configuration file, or a directly
specified list of frequencies and durations.
See the sample indications.conf for a description of the specification of a tonelist.

Use the StopPlayTones application to stop the tones playing.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 122, „StopPlaytones(), indications.conf, Abschnitt 14, „Busy(), Abschnitt 20, „Congestion(), Abschnitt 87, „Progress(), Abschnitt 100, „Ringing()

86. PrivacyManager()

Verlangt die Eingabe der Telefonnummer eines Teilnehmers, falls keine Caller-ID-Informationen empfangen werden.

PrivacyManager([Versuche[,Länge[,Optionen]]])

Wird keine Caller-ID empfangen, wird der Channel beantwortet und der Anrufer aufgefordert, seine Telefonnummer einzugeben. Wird auf dem Channel eine Caller-ID empfangen, tut PrivacyManager() nichts.

Dem Anrufer werden dabei Versuche Versuche (Default: 3) gewährt eine Telefonnummer mit mindestens Länge Stellen (Default: 10) einzugeben. Diese Default-Werte werden aus der Datei privacy.conf gelesen. Sie enthält die beiden folgenden Einträge:

maxretries
Gibt die Anzahl der Versuche an, die einem Anrufer zur Eingabe einer Caller-ID gewährt werden (Standard: 3).
minlength
Gibt die minimale erlaubte Anzahl von Ziffern in der eingegebenen Caller-ID-Nummer an (Standard: 10).

Wenn Sie nicht wollen, dass bei jedem Aufruf aus der Datei gelesen werden muss, geben Sie bei PrivacyManager() explizit Werte an.

Mit der Option j wird zur Priorität n+101 gesprungen, wenn der Anrufer nicht innerhalb der erlaubten Versuche eine Nummer der erforderlichen Länge eingibt.

Die Channel-Variable PRIVACYMGRSTATUS wird entweder auf SUCCESS oder auf FAILED gesetzt.

exten => 123,1,Answer()
exten => 123,n,PrivacyManager()
exten => 123,n,GotoIf($["${PRIVACYMGRSTATUS}" = "FAILED"]?pm-fehler,1)
exten => 123,n,Dial(Zap/1)

exten => pm-fehler,1,Playback(tut-uns-leid)
exten => pm-fehler,n,Playback(vm-goodbye)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'PrivacyManager' =- 

[Synopsis]
Require phone number to be entered, if no CallerID sent

[Description]
  PrivacyManager([maxretries[|minlength[|options]]]): If no Caller*ID 
is sent, PrivacyManager answers the channel and asks the caller to
enter their phone number. The caller is given 3 attempts to do so.
The application does nothing if Caller*ID was received on the channel.
  Configuration file privacy.conf contains two variables:
   maxretries  default 3  -maximum number of attempts the caller is allowed 
               to input a callerid.
   minlength   default 10 -minimum allowable digits in the input callerid number.
If you don't want to use the config file and have an i/o operation with
every call, you can also specify maxretries and minlength as application
parameters. Doing so supercedes any values set in privacy.conf.
The option string may contain the following character: 
  'j' -- jump to n+101 priority after <maxretries> failed attempts to collect
         the minlength number of digits.
The application sets the following channel variable upon completion: 
PRIVACYMGRSTATUS  The status of the privacy manager's attempt to collect 
                  a phone number from the user. A text string that is either:
          SUCCESS | FAILED

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 140, „Zapateller()

87. Progress()

Signalisiert Fortschritt.

Progress()

Signalisiert dem Teilnehmer, dass ein Fortschritt stattfindet (... dass sich „was tut“ ;-)).

Liefert stets 0 zurück.

; Fortschritt anzeigen:
exten => 123,1,Progress()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Progress' =- 

[Synopsis]
Indicate progress

[Description]
  Progress(): This application will request that in-band progress information
be provided to the calling channel.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 14, „Busy(), Abschnitt 20, „Congestion(), Abschnitt 85, „Playtones(), Abschnitt 100, „Ringing()

88. Queue()

Legt den aktuellen Anruf in der spezifizierten Anrufwarteschlange ab.

Queue(Schlange[,Optionen[,URL[,Ankündigung[,Timeout]]]])

Fügt der angegebenen Warteschlange - wie in queues.conf definiert - einen eingehenden Anruf hinzu.

Folgende Optionen sind möglich (auch in Kombination):

t
Erlaubt es dem angerufenen Teilnehmer, den Anruf weiterzuleiten.
T
Erlaubt es dem anrufenden Teilnehmer, den Anruf weiterzuleiten.
d
Spezifiziert einen Anruf mit Datenqualität (Modem, minimale Verzögerung).
h
Erlaubt es dem Angerufenen, durch Drücken von * aufzulegen.
H
Erlaubt es dem Anrufer, durch Drücken von * aufzulegen.
n
Verbietet eine Wiederholung des Timeouts; beendet diese Anwendung und geht weiter zum nächsten Schritt.
r
Klingelt, statt Wartemusik zu spielen.

Außer dass ein Anruf weitergeleitet werden kann, kann er auch geparkt und dann von einem anderen Teilnehmer aufgenommen werden.

Der Parameter Ankündigung überschreibt die Standardankündigung, die Warteschlangenagenten vorgespielt wird, bevor sie den angegebenen Anruf beantworten.

Die optionale URL wird dem angerufenen Teilnehmer übersendet, falls dies vom Channel unterstützt wird.

Nach einer angegebenen Zahl von Sekunden, überprüft zwischen jedem queues.conf Timeout und Retry-Kreislauf, wird Timeout die Queue() zu einem Fehlschlagen zwingen.

Liefert -1 zurück, falls der ursprüngliche Channel aufgelegt wird, oder falls der Anruf durchgestellt wird und einer der Teilnehmer den Anruf beendet. Ist die Warteschlange voll, existiert sie nicht oder hat sie keine Mitglieder, wird 0 zurückgeliefert.

; den Anrufer zur "supportschlange" hinzufügen:
exten => 123,1,Answer()
exten => 123,n,Queue(supportschlange,t)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Queue' =- 

[Synopsis]
Queue a call for a call queue

[Description]
  Queue(queuename[|options[|URL][|announceoverride][|timeout][|AGI]):
Queues an incoming call in a particular call queue as defined in queues.conf.
This application will return to the dialplan if the queue does not exist, or
any of the join options cause the caller to not enter the queue.
The option string may contain zero or more of the following characters:
      'd' -- data-quality (modem) call (minimum delay).
      'h' -- allow callee to hang up by hitting *.
      'H' -- allow caller to hang up by hitting *.
      'n' -- no retries on the timeout; will exit this application and 
             go to the next step.
      'i' -- ignore call forward requests from queue members and do nothing
             when they are requested.
      'r' -- ring instead of playing MOH
      't' -- allow the called user transfer the calling user
      'T' -- to allow the calling user to transfer the call.
      'w' -- allow the called user to write the conversation to disk via Monitor
      'W' -- allow the calling user to write the conversation to disk via Monitor
  In addition to transferring the call, a call may be parked and then picked
up by another user.
  The optional URL will be sent to the called party if the channel supports
it.
  The optional AGI parameter will setup an AGI script to be executed on the 
calling party's channel once they are connected to a queue member.
  The timeout will cause the queue to fail out after a specified number of
seconds, checked between each queues.conf 'timeout' and 'retry' cycle.
  This application sets the following channel variable upon completion:
      QUEUESTATUS    The status of the call as a text string, one of
             TIMEOUT | FULL | JOINEMPTY | LEAVEEMPTY | JOINUNAVAIL | LEAVEUNAVAIL

Differenz zum internen Hilfetext in Asterisk 1.2: 

8c8
<   Queue(queuename[|options[|URL][|announceoverride][|timeout][|AGI]):
---
>   Queue(queuename[|options[|URL][|announceoverride][|timeout]]):
17,19c17
<              go to the next step.
<       'i' -- ignore call forward requests from queue members and do nothing
<              when they are requested.
---
>        go to the next step.
29,30d26
<   The optional AGI parameter will setup an AGI script to be executed on the 
< calling party's channel once they are connected to a queue member.

Siehe auch. Abschnitt 89, „QueueLog(), Kapitel 9, Warteschleifen für Call-Center

89. QueueLog()

Schreibt einen Eintrag in das Queue-Log.

QueueLog(Schlangenname,UniqueID,AgentenNr,Event[,weitere Infos])

Schreibt einen Eintrag in das Queue-Log (normalerweise /var/log/asterisk/queue_log). Damit können Sie z.B. selbst-definierte Ereignisse aufzeichnen. Lesen Sie Abschnitt 6, „Log-Datei“ für besseres Verständnis.

QueueLog(supportschlange,${UNIQUEID},${AGENT},MITTAGSPAUSE,Guten Appetit)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'QueueLog' =- 

[Synopsis]
Writes to the queue_log

[Description]
   QueueLog(queuename|uniqueid|agent|event[|additionalinfo]):
Allows you to write your own events into the queue log
Example: QueueLog(101|${UNIQUEID}|${AGENT}|WENTONBREAK|600)

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 88, „Queue(), Abschnitt 6, „Log-Datei“

90. Random()

Springt zu einer zufälligen Priorität.

Random([Wahrscheinlichkeit]:[[Context,]Extension,]Priorität)

Springt bedingt zu der spezifizierten Priorität (und optional Extension und Context), basierend auf der angegebenen Wahrscheinlichkeit, die ein ganze Zahl zwischen 1 und 100 sein muss. Die Anwendung springt in Wahrscheinlichkeit Prozent der Fälle zu dem angegebenen Ziel.

; Glücksspiel mit jedesmal 20% Gewinnchance:
exten => 123,1,Random(20:gewonnen,1)
exten => 123,n,Goto(verloren,1)

exten => gewonnen,1,Playback(gewonnen)
exten => gewonnen,n,Goto(123,1)

exten => verloren,1,Playback(verloren)
exten => verloren,n,Goto(123,1)
[Wichtig]Wichtig

Die Applikation Random() ist seit 1.4 „deprecated“ und wird durch die Funktion RAND() ersetzt.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Random' =- 

[Synopsis]
Conditionally branches, based upon a probability

[Description]
Random([probability]:[[context|]extension|]priority)
  probability := INTEGER in the range 1 to 100
DEPRECATED: Use GotoIf($[${RAND(1,100)} > <number>]?<label>)

Differenz zum internen Hilfetext in Asterisk 1.2: 

10d9
< DEPRECATED: Use GotoIf($[${RAND(1,100)} > <number>]?<label>)

Siehe auch. Abschnitt 42, „RAND()

91. Read()

Liest DTMF-Ziffern eines Anrufers und weist die Eingabe einer Variablen zu.

Read(Variablenname[,Dateiname[,maxZiffern[,Option[,Versuche[,Timeout]]]]])

Liest eine mit # abgeschlossene Reihe von Ziffern von einem Teilnehmer, und legt sie in einer gegebenen Variablen ab.

Wenn Dateiname (ohne Endung!) angegeben ist, wird dem Anrufer diese Datei vor dem Einlesen vorgespielt.

maxZiffern bestimmt die maximal zu akzeptierende Anzahl von Ziffern. Ist der Parameter angegeben, beendet die Anwendung das Einlesen, nachdem maxZiffern Ziffern eingegeben wurden (ohne dass der Teilnehmer mit der #-Taste bestätigen muss). Standardeinstellung ist 0, was bedeutet, dass keine Begrenzung existiert und auf die Eingabe von # gewartet wird. Der größte akzeptierte Wert ist 255.

Die Option skip bewirkt sofortige Rückkehr, falls der Channel nicht aktiv ist. noanswer bewirkt Einlesen sogar bei einem inaktiven Channel.

Der Anrufer hat maximal Versuche Versuche, innerhalb von Timout Sekunden eine Eingabe zu machen. (Ein Timeout von 0 bedeutet unendlich.)

Liefert -1 zurück im Falle eines Auflegens oder Fehlers, sonst 0.

; eine maximal vierstellige Zahl einlesen (3 Versuche) und dem Anrufer ansagen:
exten => 123,1,Read(NUMMER,,4,3)
exten => 123,n,SayNumber(${NUMMER})
exten => 123,n,Goto(1)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Read' =- 

[Synopsis]
Read a variable

[Description]
  Read(variable[|filename][|maxdigits][|option][|attempts][|timeout])

Reads a #-terminated string of digits a certain number of times from the
user in to the given variable.
  filename   -- file to play before reading digits or tone with option i
  maxdigits  -- maximum acceptable number of digits. Stops reading after
                maxdigits have been entered (without requiring the user to
                press the '#' key).
                Defaults to 0 - no limit - wait for the user press the '#' key.
                Any value below 0 means the same. Max accepted value is 255.
  option     -- options are 's' , 'i', 'n'
                's' to return immediately if the line is not up,
                'i' to play  filename as an indication tone from your indications.conf
                'n' to read digits even if the line is not up.
  attempts   -- if greater than 1, that many attempts will be made in the 
                event no data is entered.
  timeout    -- An integer number of seconds to wait for a digit response. If greater
                than 0, that value will override the default timeout.

Read should disconnect if the function fails or errors out.

Differenz zum internen Hilfetext in Asterisk 1.2: 

12c12
<   filename   -- file to play before reading digits or tone with option i
---
>   filename   -- file to play before reading digits.
18,21c18,19
<   option     -- options are 's' , 'i', 'n'
<                 's' to return immediately if the line is not up,
<                 'i' to play  filename as an indication tone from your indications.conf
<                 'n' to read digits even if the line is not up.
---
>   option     -- may be 'skip' to return immediately if the line is not up,
>                 or 'noanswer' to read digits even if the line is not up.
24,25c22
<   timeout    -- An integer number of seconds to wait for a digit response. If greater
<                 than 0, that value will override the default timeout.
---
>   timeout    -- if greater than 0, that value will override the default timeout.

Siehe auch. Abschnitt 106, „SendDTMF()

92. ReadFile()

Liest eine Datei ein.

ReadFile(Variablenname=Dateiname,Länge)

Liest den Inhalt einer Datei und speichert ihn in einer Variable. Dabei werden maximal Länge Zeichen eingelesen.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ReadFile' =- 

[Synopsis]
ReadFile(varname=file,length)

[Description]
ReadFile(varname=file,length)
  Varname - Result stored here.
  File - The name of the file to read.
  Length - Maximum number of characters to capture.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

93. RealTime()

Holt Informationen vom RealTime-Konfigurationssteuerprogramm.

RealTime(Familie,Spalte,Wert[,Präfix])

Benutzt das RealTime-Konfigurationssteuerprogramm, um Daten in Channelvariablen einzulesen. Alle eindeutigen Spaltennamen aus der angegebenen Familie werden als Channelvariablen gesetzt. Dabei kann ihr Name ein optionales Namenspräfix Präfix erhalten (zum Beispiel würde ein Präfix var_ den Spaltennamen test in die Variable ${var_test} überführen).

Die Channelvariable REALTIMECOUNT wird auf die Anzahl der gelesenen Werte gesetzt.

In der extconfig.conf:

; Familie => DBMS,DB-Name,Tabelle
sipusers => mysql,asterisk,sip_users

In der extensions.conf:

exten => 123,1,RealTime(sipusers,ext,5678,var_)

Führt das folgende SQL-Query in der Datenbank asterisk aus:

SELECT * FROM sip_users WHERE ext = 5678

Angenommen die Tabelle hat eine Spalte vorname und eine Spalte nachname, dann können wir die Werte so im CLI ausgeben:

exten => 123,n,NoOp(Der Vorname von Ext. 5678: ${var_vorname})
exten => 123,n,NoOp(Der Nachname von Ext. 5678: ${var_nachname})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'RealTime' =- 

[Synopsis]
Realtime Data Lookup

[Description]
Use the RealTime config handler system to read data into channel variables.
RealTime(<family>|<colmatch>|<value>[|<prefix>])

All unique column names will be set as channel variables with optional prefix
to the name.  For example, a prefix of 'var_' would make the column 'name'
become the variable ${var_name}.  REALTIMECOUNT will be set with the number
of values read.

Differenz zum internen Hilfetext in Asterisk 1.2: 

11,14c11,13
< All unique column names will be set as channel variables with optional prefix
< to the name.  For example, a prefix of 'var_' would make the column 'name'
< become the variable ${var_name}.  REALTIMECOUNT will be set with the number
< of values read.
---
> All unique column names will be set as channel variables with optional prefix to the name.
> e.g. prefix of 'var_' would make the column 'name' become the variable ${var_name}
> 

Siehe auch. Abschnitt 94, „RealTimeUpdate()

94. RealTimeUpdate()

Aktualisiert einen Wert mit Hilfe des RealTime-Konfigurationssteuerprogramms.

RealTimeUpdate(Familie,Spalte,Wert,UpdateSpalte,UpdateWert)

Benutzt das RealTime-Konfigurationssteuerprogrammsystem, um einen Wert zu aktualisieren. Das Feld UpdateSpalte in der Zeile, bei der die Spalte UpdateSpalte in der Familie Familie mit Wert übereinstimmt, wird auf den Wert UpdateWert aktualisiert.

; bei der Situation wie im Beispiel zu RealTime() könnten wir diesen
; Befehl ausführen:
exten => 123,1,RealTimeUpdate(sipusers,ext,5678,vorname,Peter)
; resultierender SQL-Befehl:
UPDATE sip_users SET vorname = 'Peter' WHERE ext = '5678'
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'RealTimeUpdate' =- 

[Synopsis]
Realtime Data Rewrite

[Description]
Use the RealTime config handler system to update a value
RealTimeUpdate(<family>|<colmatch>|<value>|<newcol>|<newval>)

The column <newcol> in 'family' matching column <colmatch>=<value> will be
updated to <newval>.  REALTIMECOUNT will be set with the number of rows
updated or -1 if an error occurs.

Differenz zum internen Hilfetext in Asterisk 1.2: 

11,13c11
< The column <newcol> in 'family' matching column <colmatch>=<value> will be
< updated to <newval>.  REALTIMECOUNT will be set with the number of rows
< updated or -1 if an error occurs.
---
> The column <newcol> in 'family' matching column <colmatch>=<value> will be updated to <newval>

Siehe auch. Abschnitt 93, „RealTime()

95. Record()

Aufnahme von Audio auf einem Channel in eine Datei

ab Asterisk 1.2:

Record(Basisname[.Format[,Stille[,maxDauer[,Optionen]]]])

Nimmt Audio auf dem Channel auf und speichert es in der Datei Basisname.Format. Existiert diese Datei bereits, wird sie überschrieben.

Optionale Parameter sind:

format
Spezifiziert das Dateiformat der Aufnahmedatei (g723, g729, gsm, h263, ulaw, alaw, wav, ...)
Stille
Gibt die Dauer in Sekunden an, die geräuschlos verstreichen darf, bevor die Aufnahme beendet wird.
maxDauer
Gibt die maximale Aufnahmedauer in Sekunden an. Falls nicht angegeben oder 0, gibt es keine Obergrenze.
Optionen

Kann beliebige der aufgeführten Flags enthalten:

s
Nimmt nicht auf, wenn die Leitung bisher nicht beantwortet wurde.
n
Antwortet nicht, aber nimmt trotzdem auf, auch wenn die Leitung bisher nicht beantwortet wurde.
a
Hängt die Aufnahme an die bereits bestehende Aufnahme an, statt sie zu überschreiben.
t
Benutzt die alternative Abschlusstaste * an Stelle der standardmäßig eingestellten #-Taste.
q
Keinen Piep-Ton vor der Aufnahme spielen.
x
Auch die Abbruchtasten # oder * als DTMF-Töne aufzeichnen. Die Aufnahme kann dann nur durch Timeout von maxDauer oder Auflegen beendet werden.

Enthält der Basisname die Zeichenkette %d, wird diese durch eine Nummerierung ersetzt, die bei jedem erneuten Aufnehmen der Datei um 1 erhöht wird.

Der Teilnehmer kann die Taste # benutzen, um die Aufnahme abzubrechen und zur nächsten Priorität überzugehen. Beim Auflegen wird die Aufnahme verworfen.

Liefert -1 zurück, wenn der Benutzer auflegt, sonst 0.

; den Namen des Anrufers aufzeichnen:
exten => 123,1,Playback(bitte-sprechen-sie-ihren-namen-nach-dem-ton)
exten => 123,n,Record(/tmp/name.gsm,3,10)
exten => 123,n,Playback(/tmp/name)

Beachten Sie auch die Hinweise bei Monitor().

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Record' =- 

[Synopsis]
Record to a file

[Description]
  Record(filename.format|silence[|maxduration][|options])

Records from the channel into a given filename. If the file exists it will
be overwritten.
- 'format' is the format of the file type to be recorded (wav, gsm, etc).
- 'silence' is the number of seconds of silence to allow before returning.
- 'maxduration' is the maximum recording duration in seconds. If missing
or 0 there is no maximum.
- 'options' may contain any of the following letters:
     'a' : append to existing recording rather than replacing
     'n' : do not answer, but record anyway if line not yet answered
     'q' : quiet (do not play a beep tone)
     's' : skip recording if the line is not yet answered
     't' : use alternate '*' terminator key (DTMF) instead of default '#'
     'x' : ignore all terminator keys (DTMF) and keep recording until hangup

If filename contains '%d', these characters will be replaced with a number
incremented by one each time the file is recorded. 

Use 'show file formats' to see the available formats on your system

User can press '#' to terminate the recording and continue to the next priority.

If the user should hangup during a recording, all data will be lost and the
application will teminate.

Differenz zum internen Hilfetext in Asterisk 1.2: 

21,22c21
<      't' : use alternate '*' terminator key (DTMF) instead of default '#'
<      'x' : ignore all terminator keys (DTMF) and keep recording until hangup
---
>      't' : use alternate '*' terminator key instead of default '#'

Siehe auch. Abschnitt 28, „Dictate(), Abschnitt 68, „Monitor(), Abschnitt 67, „MixMonitor()

96. RemoveQueueMember()

Entfernt dynamisch Warteschlangenmitglieder.

RemoveQueueMember(Schlange[,Interface])

Enfernt das spezifizierte Interface dynamisch aus der Warteschlange. Ist Interface nicht angegeben, entfernt die Anwendung das momentan in Verwendung befindliche Interface aus der Warteschlange.

Ist das Interface nicht in der Warteschlange enthalten und eine Priorität n+101 existiert, wird die Anwendung zu dieser Priorität übergehen. Andernfalls wird sie einen Fehler zurückliefern.

Liefert -1, wenn ein Fehler auftritt, sonst 0.

; SIP/3000 aus der "supportschlange" entfernen:
exten => 123,1,RemoveQueueMember(supportschlange,SIP/3000)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'RemoveQueueMember' =- 

[Synopsis]
Dynamically removes queue members

[Description]
   RemoveQueueMember(queuename[|interface[|options]]):
Dynamically removes interface to an existing queue
If the interface is NOT in the queue and there exists an n+101 priority
then it will then jump to this priority.  Otherwise it will return an error
The option string may contain zero or more of the following characters:
       'j' -- jump to +101 priority when appropriate.
  This application sets the following channel variable upon completion:
     RQMSTATUS      The status of the attempt to remove a queue member as a
                     text string, one of
           REMOVED | NOTINQUEUE | NOSUCHQUEUE 
Example: RemoveQueueMember(techsupport|SIP/3000)

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 1, „AddQueueMember(), Abschnitt 88, „Queue(), queues.conf

97. ResetCDR()

Setzt das Anrufprotokoll (Call Detail Record) zurück.

ResetCDR([Optionen])

Setzt das Anrufprotokoll (Call Detail Record) zurück. Ist die Option w angegeben, wird eine Kopie des aktuellen Anrufprotokolls gespeichert, bevor das aktuelle CDR gelöscht wird.

Liefert stets 0 zurück.

; das aktuelle CDR speichern und dann zurücksetzen:
exten => 123,1,Answer()
exten => 123,n,Playback(tt-monkeys)
exten => 123,n,ResetCDR(w)
exten => 123,n,Playback(tt-monkeys)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ResetCDR' =- 

[Synopsis]
Resets the Call Data Record

[Description]
  ResetCDR([options]):  This application causes the Call Data Record to be
reset.
  Options:
    w -- Store the current CDR record before resetting it.
    a -- Store any stacked records.
    v -- Save CDR variables.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 45, „ForkCDR(), Abschnitt 73, „NoCDR()

98. RetryDial()

Versucht, einen Anruf zu tätigen, und wiederholt den Versuch bei einem Fehlschlag.

RetryDial(Ankündigung,Wartezeit,Versuche,Tech/Res[&Tech2/Res2...][,Timeout[,Optionen[,URL]]])

Versucht, wie Dial(), einen Anruf zu tätigen. Kann kein Channel erreicht werden, wird die Datei Ankündigung (ohne Endung!) abgespielt und Wartezeit Sekunden gewartet, bis der Versuch wiederholt wird. Per Default wir 10 Sekunden gewartet. Nach Versuche Versuchen wird der Anruft mit der nächsten Priorität im Wählplan fortgesetzt. Ist Versuche auf 0 oder -1 gesetzt, wird der Anrufversuch endlos wiederholt.

In der Wartezeit kann eine einziffrige Extension gewählt werden. Existiert diese Extensions im durch ${EXITCONTEXT} spezifizierten Context (oder im aktuellen), wird der Anruf unmittelbar an diese Extension weitergeleitet.

Alle Parameter nach Versuche werden direkt an die Dial()-Anwendung weitergeleitet.

; 3-mal versuchen, die Nummer zu erreichen, Wdh. nach 5 Sekunden:
exten => 123,1,RetryDial(versuche-zu-verbinden,5,3,IAX2/VOIP/012345678,30)
; wenn der Anrufer während des Wählens 0 drückt, auf Zap/4 versuchen:
exten => 0,1,RetryDial(versuche-zu-verbinden,5,3,Zap/4/012345678,30)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'RetryDial' =- 

[Synopsis]
Place a call, retrying on failure allowing optional exit extension.

[Description]
  RetryDial(announce|sleep|retries|dialargs): This application will attempt to
place a call using the normal Dial application. If no channel can be reached,
the 'announce' file will be played. Then, it will wait 'sleep' number of
seconds before retying the call. After 'retires' number of attempts, the
calling channel will continue at the next priority in the dialplan. If the
'retries' setting is set to 0, this application will retry endlessly.
  While waiting to retry a call, a 1 digit extension may be dialed. If that
extension exists in either the context defined in ${EXITCONTEXT} or the current
one, The call will jump to that extension immediately.
  The 'dialargs' are specified in the same format that arguments are provided
to the Dial application.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 27, „Dial()

99. Return()

Kehrt von einem Unterprogramm zurück.

Return()

Kehrt von einem Unterprogramm, das mit Gosub() oder GosubIf() aufgerufen wurde, zurück an die Anweisung, die im Dialplan auf den Sprungbefehl folgt.

exten => 123,1,Playback(tt-monkeys)
exten => 123,n,Gosub(mein-unterprogramm,s,1)
exten => 123,n,Playback(tt-monkeys)
exten => 123,n,Hangup()

[mein-unterprogramm]
exten => s,1,Playback(tt-weasels)
exten => s,n,Return()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Return' =- 

[Synopsis]
Return from gosub routine

[Description]
Return()
  Jumps to the last label on the stack, removing it.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 47, „Gosub(), Abschnitt 48, „GosubIf()

100. Ringing()

Signalisiert Klingelton.

Ringing()

Signalisiert dem Teilnehmer Klingeln. Wie diese Signalisierung erfolgt, hängt vom Channeltreiber ab. Beachten Sie, dass diese Anwendung den Anrufer nicht mit tatsächlichem Klingeln versieht. Benutzen Sie hierzu die Anwendung Playtones().

Liefert stets 0 zurück.

; Klingeln vortäuschen:
exten => 123,1,Ringing()
exten => 123,n,Wait(5)
exten => 123,n,Playback(tt-somethingwrong)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Ringing' =- 

[Synopsis]
Indicate ringing tone

[Description]
  Ringing(): This application will request that the channel indicate a ringing
tone to the user.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 14, „Busy(), Abschnitt 20, „Congestion(), Abschnitt 87, „Progress(), Abschnitt 100, „Ringing(), Abschnitt 85, „Playtones()

101. SayAlpha()

Spricht eine Zeichenkette.

SayAlpha(String)

Buchstabiert den übergebenen String unter Verwendung der aktuellen Spracheinstellung für den Channel. Die Sprache kann mit der Funktion LANGUAGE() geändert werden.

exten => 123,1,SayAlpha(ABC123)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SayAlpha' =- 

[Synopsis]
Say Alpha

[Description]
  SayAlpha(string): This application will play the sounds that correspond to
the letters of the given string.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 102, „SayDigits(), Abschnitt 103, „SayNumber(), Abschnitt 104, „SayPhonetic()

102. SayDigits()

Spricht die übergebenen Ziffern.

SayDigits(Ziffern)

Spricht die übergebenen Ziffern unter Verwendung der aktuellen Spracheinstellung für den Channel. Die Sprache kann mit der Funktion LANGUAGE() geändert werden.

exten => 123,1,SayDigits(1234)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SayDigits' =- 

[Synopsis]
Say Digits

[Description]
  SayDigits(digits): This application will play the sounds that correspond
to the digits of the given number. This will use the language that is currently
set for the channel. See the LANGUAGE function for more information on setting
the language for the channel.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 101, „SayAlpha(), Abschnitt 103, „SayNumber(), Abschnitt 104, „SayPhonetic()

103. SayNumber()

Spricht die angegebene Zahl.

SayNumber(Nummer[,Genus])

Spricht die angegebene Zahl unter Verwendung der aktuellen Spracheinstellung für den Channel. Die Sprache kann mit der Funktion LANGUAGE() geändert werden.

Bisher werden Ganzzahlen von 1 bis 99.999.999 in den folgenden Sprachen syntaktisch unterstützt:

da
Dänisch
de
Deutsch
en
Englisch
es
Spanisch
fr
Französisch
it
Italienisch
nl
Niederländisch
no
Norwegisch
pl
Polnisch
pt
Portugiesisch
se
Schwedisch
tw
Taiwanesisch

Kennt die aktuelle Sprache Geschlechter (Genus, Sexus), kann der Parameter Genus übergeben werden und das Genus der zu sprechenden Zahl zu ändern.

Benutzen Sie bei europäischen Sprachen wie Deutsch, Französisch, Spanisch, Portugiesisch das Genus f für Femininum, m für Maskulinum und n für Neutrum.

Benutzen Sie bei nordischen Sprachen wie Dänisch, Schwedisch oder Norwegisch das Genus c für Commune (/Utrum, belebt) und n für Neutrum (/Ne-utrum, unbelebt).

Benutzen Sie für Aufzählungen im deutschen Plural das Genus p.

Damit diese Anwendung mit anderen Sprachen als Englisch funktioniert, müssen die entsprechenden Audiodateien für die jeweilige gewünschte Sprache in /var/lib/asterisk/sounds/digits/ (bzw. Unterverzeichnissen wie de/) vorhanden sein.

; in Englisch sprechen:
exten => 123,1,Set(LANGUAGE=en)
exten => 123,n,SayNumber(1234)
; "one - thousand - two - hundred - and - thirty - four"

; in Deutsch sprechen:
exten => 123,1,Set(LANGUAGE=de)
exten => 123,n,SayNumber(1234)
; "ein - Tausend - zwei - Hundert - und - vier - und - dreißig"
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SayNumber' =- 

[Synopsis]
Say Number

[Description]
  SayNumber(digits[,gender]): This application will play the sounds that
correspond to the given number. Optionally, a gender may be specified.
This will use the language that is currently set for the channel. See the
LANGUAGE function for more information on setting the language for the channel.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 101, „SayAlpha(), Abschnitt 102, „SayDigits(), Abschnitt 104, „SayPhonetic()

104. SayPhonetic()

Buchstabiert die angegebene Zeichenkette phonetisch.

SayPhonetic(String)

Buchstabiert den angegebenen String unter Verwendung des phonetischen NATO-Alphabets bzw. Funker-Alphabets (je nach Sprache). Die Sprache kann mit der Funktion LANGUAGE() geändert werden. Umlaute/Sonderzeichen sind bisher nicht möglich.

exten => 123,1,Set(LANGUAGE=en)
exten => 123,n,SayPhonetic(asterisk)
; Alpha Sierra Tango Echo Romeo India Sierra Kilo

exten => 123,n,Set(LANGUAGE=de)
exten => 123,n,SayPhonetic(asterisk)
; Anton Samuel Theodor Emil Richard Ida Samuel Kaufmann
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SayPhonetic' =- 

[Synopsis]
Say Phonetic

[Description]
  SayPhonetic(string): This application will play the sounds from the phonetic
alphabet that correspond to the letters in the given string.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 101, „SayAlpha(), Abschnitt 102, „SayDigits(), Abschnitt 103, „SayNumber()

105. SayUnixTime()

Zeitansage in einem spezifischen Format

SayUnixTime([Unixzeit][,Zeitzone[,Format]])

Sagt die angegebene Zeit unter Berücksichtigung der angegebenen Zeitzone und des vorgegebenen Formats. Die Parameter sind:

Unixzeit
Unix-Timestamp, also die Anzahl der Sekunden seit dem 1. Januar 1970, 0 Uhr GMT. Kann negative Werte annehmen. Standardwert ist die aktuelle Zeit.
Zeitzone
Die Zeitzone. Eine Liste findet sich in /usr/share/zoneinfo/. Standardwert ist die Geräteeinstellung.
Format
Das Format, in der die Zeit gesprochen werden soll. Eine Liste von Formaten findet sich in voicemail.conf. Als Standardformat wird ABdY 'digits/at' IMp verwendet.

Liefert 0 zurück oder -1, wenn aufgelegt wird.

exten => 123,1,SayUnixTime(,,IMp)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SayUnixTime' =- 

[Synopsis]
Says a specified time in a custom format

[Description]
SayUnixTime([unixtime][|[timezone][|format]])
  unixtime: time, in seconds since Jan 1, 1970.  May be negative.
              defaults to now.
  timezone: timezone, see /usr/share/zoneinfo for a list.
              defaults to machine default.
  format:   a format the time is to be said in.  See voicemail.conf.
              defaults to "ABdY 'digits/at' IMp"

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

106. SendDTMF()

Sendet beliebige DTMF-Ziffern zu dem Channel.

SendDTMF(Ziffern[,Timeout_ms])

Sendet die angegebenen DTMF-Ziffern auf einem Channel. Gültige DTMF-Symbole sind 0-9, *, # und A-D. Sie können auch den Buchstaben w als eine Ziffer verwendet, er steht für eine Wartezeit von 500 Millisekunden. Der Parameter Timeout_ms bezeichnet die Zeitdauer in Millisekunden zwischen den Ziffern. Falls nicht angegeben, wird ein Wert von 250 Millisekunden für Timeout_ms angenommen.

Liefert bei Erfolg 0 zurück oder -1, wenn aufgelegt wird.

exten => 123,1,SendDTMF(123w456w789,200)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SendDTMF' =- 

[Synopsis]
Sends arbitrary DTMF digits

[Description]
 SendDTMF(digits[|timeout_ms]): Sends DTMF digits on a channel. 
 Accepted digits: 0-9, *#abcd, w (.5s pause)
 The application will either pass the assigned digits or terminate if it
 encounters an error.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 91, „Read()

107. SendImage()

Sendet eine Bilddatei.

SendImage(Dateiname[,Optionen])

Sendet eine Bilddatei auf einem Channel. Falls die Übermittlung von Bildern unterstützt wird und die Übertragung fehlschlägt, wird aufgelegt, sonst bei der nächsten Priorität fortgefahren. Mit der Option j wird, wenn der Channel keine Bildübertragung unterstützt, zur Priorität n+101 gesprungen.

Liefert 0 zurück, wenn das Bild fehlerfrei übertragen wurde oder der Channel eine Bildübertragung nicht unterstützt, sonst -1. Setzt die Channelvariable SENDIMAGESTATUS entweder auf OK (Erfolg) oder NOSUPPORT (nicht unterstützt).

exten => 123,1,SendImage(logo.jpg)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SendImage' =- 

[Synopsis]
Send an image file

[Description]
  SendImage(filename): Sends an image on a channel. 
If the channel supports image transport but the image send
fails, the channel will be hung up. Otherwise, the dialplan
continues execution.
The option string may contain the following character:
 'j' -- jump to priority n+101 if the channel doesn't support image transport
This application sets the following channel variable upon completion:
 SENDIMAGESTATUS  The status is the result of the attempt as a text string, one of
  OK | NOSUPPORT

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 108, „SendText(), Abschnitt 109, „SendURL()

108. SendText()

Sendet Text zu dem Channel.

SendText(Text[,Optionen])

Überträgt den Text auf einem Channel (z.B. zur Anzeige im Display), falls die Übertragung von Text unterstützt wird. Danach wird die Ausführung bei der nächsten Priorität fortgesetzt. Mit der Option j wird, wenn der Channel keine Textübertragung unterstützt, zur Priorität n+101 gesprungen.

Der Text sollte bisher bei den meisten Kanälen 7-Bit-ASCII sein.

Liefert 0 zurück, wenn der Text fehlerfrei übertragen wurde oder der Channel eine Textübertragung nicht unterstützt, sonst -1. Setzt die Channelvariable SENDTEXTSTATUS auf SUCCESS (Erfolg), FAILURE (Sendefehler) oder UNSUPPORTED (nicht unterstützt).

exten => 123,1,SendText(Willkommen zu Asterisk)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SendText' =- 

[Synopsis]
Send a Text Message

[Description]
  SendText(text[|options]): Sends text to current channel (callee).
Result of transmission will be stored in the SENDTEXTSTATUS
channel variable:
      SUCCESS      Transmission succeeded
      FAILURE      Transmission failed
      UNSUPPORTED  Text transmission not supported by channel

At this moment, text is supposed to be 7 bit ASCII in most channels.
The option string many contain the following character:
'j' -- jump to n+101 priority if the channel doesn't support
       text transport

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 107, „SendImage(), Abschnitt 109, „SendURL()

109. SendURL()

Sendet dem Channel eine URL.

SendURL(URL[,Option])

Sendet dem Channel eine URL, die das Gerät aufrufen soll (IAX2). Setzt die Ausführung beim nächsten Schritt fort.

Mit der Option j wird, wenn der Channel keine Übertragung von URLs unterstützt, zur Priorität n+101 gesprungen. Mit der Option wait wird vor dem Fortfahren auf eine Bestätigung gewartet, dass die URL geladen wurde.

Liefert 0 zurück, wenn die URL fehlerfrei übertragen wurde oder der Channel die Übertragung nicht unterstützt, sonst -1. Setzt die Channelvariable SENDURLSTATUS auf SUCCESS (Erfolg), FAILURE (Sendefehler), UNSUPPORTED (nicht unterstützt) oder NOLOAD (bei wait: Client konnte die URL nicht laden).

exten => 123,1,SendURL(http://www.asterisk.org/,wait)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SendURL' =- 

[Synopsis]
Send a URL

[Description]
  SendURL(URL[|option]): Requests client go to URL (IAX2) or sends the 
URL to the client (other channels).
Result is returned in the SENDURLSTATUS channel variable:
    SUCCESS       URL successfully sent to client
    FAILURE       Failed to send URL
    NOLOAD        Client failed to load URL (wait enabled)
    UNSUPPORTED   Channel does not support URL transport

If the option 'wait' is specified, execution will wait for an
acknowledgement that the URL has been loaded before continuing

If jumping is specified as an option (the 'j' flag), the client does not
support Asterisk "html" transport, and there exists a step with priority
n + 101, then execution will continue at that step.

SendURL continues normally if the URL was sent correctly or if the channel
does not support HTML transport.  Otherwise, the channel is hung up.

Differenz zum internen Hilfetext in Asterisk 1.2: 

13c13
<     NOLOAD        Client failed to load URL (wait enabled)
---
>     NOLOAD        Clien failed to load URL (wait enabled)
17a18
> and will return -1 if the peer is unable to load the URL
19,24c20,26
< If jumping is specified as an option (the 'j' flag), the client does not
< support Asterisk "html" transport, and there exists a step with priority
< n + 101, then execution will continue at that step.
< 
< SendURL continues normally if the URL was sent correctly or if the channel
< does not support HTML transport.  Otherwise, the channel is hung up.
---
> Old behaviour (deprecated): 
>  If the client does not support Asterisk "html" transport, 
>  and there exists a step with priority n + 101, then execution will
>  continue at that step.
>  Otherwise, execution will continue at the next priority level.
>  SendURL only returns 0 if the URL was sent correctly  or if
>  the channel does not support HTML transport, and -1 otherwise.

Siehe auch. Abschnitt 107, „SendImage(), Abschnitt 108, „SendText()

110. Set()

Setzt eine Variable auf den angegebenen Wert.

Set(Variable=Wert[,Variable2=Wert2,...][,Optionen])

Setzt die Variable auf den angegebenen Wert. Beginnt der Name der Variablen mit dem Zeichen _, wird einfache Vererbung angenommen (d.h. wird auf Kanäle vererbt, die von diesem Channel erzeugt werden), beginnt er mit __, wird Endlosvererbung angenommen (d.h. wird auf alle Kinder-Kanäle vererbt). Bis zu 24 Variablen können gesetzt werden. Variablen sind normalerweise nur innerhalb eines Channels gültig und werden beim Auflegen gelöscht. Mit der Option g setzt man in Asterisk 1.2 eine Variable (nicht eine Funktion!) global; in 1.4 macht man das mit Hilfe der Funktion GLOBAL().

; die Variable TEST auf "123" setzen:
exten => 123,1,Set(TEST=123)
exten => 123,n,SayDigits(${TEST})

; die globale Variable TEST2 auf "456" setzen:
exten => 123,n,Set(TEST2=456,g)         ; Asterisk 1.2
exten => 123,n,Set(GLOBAL(TEST2)=456)   ; Asterisk 1.4
[Anmerkung]Anmerkung

Ob globale Variablen auch nach einem Reload von Asterisk noch gültig sind, wird durch die Einstellung clearglobalvars in der extensions.conf bestimmt.

Set() wird auch verwendet, um in Funktionen zu schreiben (siehe Anhang C, Funktionen im Dialplan).

exten => 123,1,Set(CALLERID(name)=Apfelmus)  ; CALLERID(name) setzen
exten => 123,n,Set(CALLERID(name)=)          ; CALLERID(name) leeren

exten => 123,n,Set(DB(mein/test)=ok)         ; in AstDB schreiben
exten => 123,n,Set(var=${DB(mein/test)})     ; aus AstDB lesen
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Set' =- 

[Synopsis]
Set channel variable(s) or function value(s)

[Description]
  Set(name1=value1|name2=value2|..[|options])
This function can be used to set the value of channel variables or dialplan
functions. It will accept up to 24 name/value pairs. When setting variables,
if the variable name is prefixed with _, the variable will be inherited into
channels created from the current channel. If the variable name is prefixed
with __, the variable will be inherited into channels created from the current
channel and all children channels.
  Options:
    g - Set variable globally instead of on the channel
        (applies only to variables, not functions)

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 54, „ImportVar(), doc/README.variables (1.2) / doc/channelvariables.txt (1.4), Abschnitt 21, „GLOBAL()

111. SetAMAFlags()

Setzt AMA-Flags im Anrufprotokoll.

SetAMAFlags(Flags)

Setzt zu Abrechnungszwecken die AMA-Flags im Anrufprotokoll (Call Detail Record), wobei die AMA-Einstellungen in den Channelkonfigurationsdateien überschrieben werden. Gültige Werte sind default, omit, billing und documentation.

Liefert stets 0 zurück.

exten => 123,1,SetAMAFlags(billing)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SetAMAFlags' =- 

[Synopsis]
Set the AMA Flags

[Description]
  SetAMAFlags([flag]): This application will set the channel's AMA Flags for
  billing purposes.

Differenz zum internen Hilfetext in Asterisk 1.2: 

8,9c8,9
<   SetAMAFlags([flag]): This application will set the channel's AMA Flags for
<   billing purposes.
---
>   SetAMAFlags([flag]): This channel will set the channel's AMA Flags for billing
> purposes.

112. SetCallerPres()

Setzt Caller-ID-Darstellungsflags (presentation flags).

SetCallerPres(Darstellung)

Setzt die Caller-ID-Darstellungsflags auf einer Q931-PRI-Verbindung.

Gültige Darstellungen sind:

allowed_not_screened
Anzeige erlaubt und nicht überprüft.
allowed_passed_screen
Anzeige erlaubt und Überprüfung erfolgreich.
allowed_passed_screen
Anzeige erlaubt und Überprüfung nicht erfolgreich.
allowed
Anzeige erlaubt, Netzwerknummer.
prohib_not_screened
Anzeige verboten und nicht überprüft.
prohib_passed_screen
Anzeige verboten und Überprüfung erfolgreich.
prohib_failed_screen
Anzeige verboten und Überprüfung nicht erfolgreich.
prohib
Anzeige verboten, Netzwerknummer.
unavailable
Nummer nicht verfügbar.

Liefert stets 0 zurück.

exten => 123,1,SetCallerPres(allowed_not_screened)
exten => 123,n,Dial(Zap/4/1234567)

Evtl. müssen Sie usecallingpres=yes in der zapata.conf setzen.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SetCallerPres' =- 

[Synopsis]
Set CallerID Presentation

[Description]
  SetCallerPres(presentation): Set Caller*ID presentation on a call.
  Valid presentations are:

      allowed_not_screened    : Presentation Allowed, Not Screened
      allowed_passed_screen   : Presentation Allowed, Passed Screen
      allowed_failed_screen   : Presentation Allowed, Failed Screen
      allowed                 : Presentation Allowed, Network Number
      prohib_not_screened     : Presentation Prohibited, Not Screened
      prohib_passed_screen    : Presentation Prohibited, Passed Screen
      prohib_failed_screen    : Presentation Prohibited, Failed Screen
      prohib                  : Presentation Prohibited, Network Number
      unavailable             : Number Unavailable

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

113. SetCDRUserField()

Setzt den Wert des CDR-Feldes "userfield".

SetCDRUserField(String)

Wird benutzt, um den Wert des CDR Feldes "userfield" zu setzen.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SetCDRUserField' =- 

[Synopsis]
Set the CDR user field

[Description]
[Synopsis]
SetCDRUserField(value)

[Description]
SetCDRUserField(value): Set the CDR 'user field' to value
       The Call Data Record (CDR) user field is an extra field you
       can use for data not stored anywhere else in the record.
       CDR records can be used for billing or storing other arbitrary data
       (I.E. telephone survey responses)
       Also see AppendCDRUserField().

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 
[Wichtig]Wichtig

Obwohl in der internen Hilfe noch kein Hinweis darauf steht, ist diese Applikation deprecated. Im Source-Code wird man fündig:

ast_log(LOG_WARNING, "SetCDRUserField is deprecated.  Please use CDR(userfield) instead.\n");

Bitte verwenden Sie also die Funktion CDR(userfield).

Siehe auch. Abschnitt 6, „CDR()

114. SetGlobalVar()

Setzt den Wert einer globalen Variable.

SetGlobalVar(variable=value)

Setzt eine globale Variable. Falls die Variable nicht existiert, wird sie gleichzeitig definiert.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SetGlobalVar' =- 

[Synopsis]
Set a global variable to a given value

[Description]
  SetGlobalVar(variable=value): This application sets a given global variable to
the specified value.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 
[Wichtig]Wichtig

Obwohl in der internen Hilfe noch kein Hinweis darauf steht, ist diese Applikation deprecated. Im Source-Code wird man fündig:

ast_log(LOG_WARNING, "SetGlobalVar is deprecated.  Please use Set(GLOBAL(%s)=%s) instead.\n", name, stringp);

Bitte verwenden Sie also in Asterisk 1.2 Set() mit der Option g und in Asterisk 1.4 GLOBAL().

Siehe auch. Abschnitt 110, „Set(), Abschnitt 21, „GLOBAL()

115. SetMusicOnHold()

Setzt den Wert der Default Wartemusik Klasse.

SetMusicOnHold(Klasse)

Setzt den Wert der Default Wartemusik Klasse.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SetMusicOnHold' =- 

[Synopsis]
Set default Music On Hold class

[Description]
SetMusicOnHold(class): Sets the default class for music on hold for a given channel.  When
music on hold is activated, this class will be used to select which
music is played.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 
[Wichtig]Wichtig

Bitte verwenden Sie ab Asterisk 1.4 CHANNEL(musicclass).

Siehe auch. Abschnitt 7, „CHANNEL()

116. SetTransferCapability()

Setzt den Wert der ISDN-Transfer-Capability neu.

SetTransferCapability(transferCapability)

Mögliche Werte:

SPEECH
0x00 - Speech (default, voice calls)
DIGITAL
0x08 - Unrestricted digital information (data calls)
RESTRICTED_DIGITAL
0x09 - Restricted digital information
3K1AUDIO
0x10 - 3.1 kHz Audio (fax calls)
DIGITAL_W_TONES
0x11 - Unrestricted digital information with tones/announcements
VIDEO
0x18 - Video
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SetTransferCapability' =- 

[Synopsis]
Set ISDN Transfer Capability

[Description]
  SetTransferCapability(transfercapability): Set the ISDN Transfer 
Capability of a call to a new value.
Valid Transfer Capabilities are:

  SPEECH             : 0x00 - Speech (default, voice calls)
  DIGITAL            : 0x08 - Unrestricted digital information (data calls)
  RESTRICTED_DIGITAL : 0x09 - Restricted digital information
  3K1AUDIO           : 0x10 - 3.1kHz Audio (fax calls)
  DIGITAL_W_TONES    : 0x11 - Unrestricted digital information with tones/announcements
  VIDEO              : 0x18 - Video

Differenz zum internen Hilfetext in Asterisk 1.2: 

17c17
<   VIDEO              : 0x18 - Video
---
>   VIDEO              : 0x18 - Video:

117. SIPAddHeader()

Fügt dem ausgehenden SIP-Anruf einen Header hinzu.

SIPAddHeader(Header: Wert)

Fügt einem mit der Dial()-Anwendung initiierten SIP-Anruf einen Header hinzu. Ein nicht standardisierter SIP-Header sollte mit einem X- beginnen, wie etwa X-Asterisk-Accountcode:. Verwenden Sie diese Anwendung mit Vorsicht, denn das Hinzufügen eines falschen Headers kann Probleme verursachen. Mit dieser Applikation können keine SIP-Header verändert werden.

Liefert stets 0 zurück.

exten => 123,1,SIPAddHeader(X-Asterisk-Account: ${CDR(accountcode)})
exten => 123,n,Dial(SIP/123)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SIPAddHeader' =- 

[Synopsis]
Add a SIP header to the outbound call

[Description]
  SIPAddHeader(Header: Content)
Adds a header to a SIP call placed with DIAL.
Remember to user the X-header if you are adding non-standard SIP
headers, like "X-Asterisk-Accountcode:". Use this with care.
Adding the wrong headers may jeopardize the SIP dialog.
Always returns 0

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 48, „SIP_HEADER()

118. SIPdtmfMode()

Ändert das DTMF-Verfahren für einen SIP-Anruf.

SIPdtmfMode(Methode)

Ändert den DTMF-Modus für einen Anruf, der von einem SIP-Channel ausgeht (nicht für einen Anruf auf einen SIP-Channel). Methode kann die Werte inband (RTP), info oder rfc2833 annehmen.

exten => 123,n,SIPdtmfMode(rfc2833)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SIPDtmfMode' =- 

[Synopsis]
Change the dtmfmode for a SIP call

[Description]
SIPDtmfMode(inband|info|rfc2833): Changes the dtmfmode for a SIP call

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. RFC 2833[109], RFC 2976[110]

119. SMS()

Sendet oder empfängt SMS-Nachrichten.

SMS(Schlange[,Optionen])

Regelt den Austausch von SMS-Nachrichten mit einem SMS-fähigen Telefon oder über ein SMS-Service-Center nach dem Protokoll ETSI ES 201 912 auf analogen oder ISDN-Leitungen. Das Shell-Programm smsq verwendet dazu FSK[111] - die Funktion über komprimierte Codecs wie GSM ist daher unwahrscheinlich.

Optionen:

a
Als antwortende Seite agieren.
s
Als Service-Center agieren, das mit einem Telefon kommuniziert.

Alle Sende-/Empfangsschlangen werden in /var/spool/asterisk/sms/ gespeichert: die Nachrichten vom Service-Center zum Telefon in sc-me.Schlange/, die Nachrichten vom Telefon zum SMSC in me-sc.Schlange/. In /var/log/asterisk/sms wird ein Log geschrieben.

Beim Verbinden als Client (a) werden alle im Verzeichnis me-sc.Schlange/ wartenden Nachrichten gesendet und dann gelöscht; die empfangenen werden in sc-me.Schlange/ mit einem Timestamp im Dateinamen gespeichert. Wenn wir uns als Service-Center verbinden (s) ist das genau umgekehrt.

Die Nachrichten-Dateien haben folgendes Format, wobei ausgelassene Parameter Default-Werte haben:

oa=Originating Address (Absendernummer)

Nationale Telefonnummer oder internationale mit vorangehendem + (z.B. +49).

da=Destination Address (Empfängernummer)

Nationale Telefonnummer oder internationale mit vorangehendem +.

scts=Service Centre Time Stamp (Zeitstempel vom SC)

Im Format YYYY-MM-DD HH:MM:SS

pid=Protocol Identifier (decimal octet value)
dcs=Data coding scheme (decimal octet value)
mr=Message reference (decimal octet value)
ud=Der Nachrichtentext

Wenn andere Zeichen als 10, 13, 32-126, 128-255 (dezimal) in der Nachricht vorkommen, wird ud= durch ud# ersetzt und die Zeichen folgen hexadezimal kodiert.

srr=Status Report Request (0|1)
rp=Return Path (0|1)
vp=Validity Period (Gültigkeitsdauer in Minuten)

Beim Senden an ein SMSC müssen nur da und ud verwendet werden, oa wird ignoriert; beim Senden an ein Telefon sind nur oa und ud nötig, da wird ignoriert.

Eine Extension zum Empfangen von Nachrichten könnte so aussehen (wenn 01930100 die Nummer des für uns zuständigen SMSC - hier T-Com - ist):

[incoming]
exten => _X.,1,GotoIf($["${CALLERIDNUM}" = "01930100"]?sms-me-in,${EXTEN},1) 
; oder so:
;exten => _X./_0193010.,1,Goto(sms-me-in,${EXTEN},1)

[sms-me-in]
exten => _X.,1,Wait(1)
exten => _X.,n,SMS(me-eingang,a)
exten => _X.,n,System(handleincomingsms)
exten => _X.,n,Hangup()

wobei handleincomingsms z.B. smsq --process=befehl --queue=me-eingang sein könnte, was für jede eingegangene Nachricht einen Befehl ausführt.

Ausgehende Nachrichten sollten als Dateien geschrieben werden, könne aber auch mit folgendem (veralteten) Aufruf erzeugt werden (0193010 ist die Nummer des SMSC - hier T-Com):

[outgoing]
exten = 0193010,1,Goto(sms-me-out,${CALLERIDNUM},1)

[sms-me-out]
exten => _X.,1,Set(CDR(accountcode)=SMS)
exten => _X.,n,Set(smsFrom=${CALLERIDNUM})
exten => _X.,n,SMS(${smsFrom},s,${EXTEN},${smsText})  ; SMS erzeugen
exten => _X.,n,SMS(${smsFrom},s)                       ; senden
exten => _X.,n,Hangup()

Weitere Informationen und viele Beispiele auf http://www.voip-info.org/wiki/view/Asterisk+cmd+Sms und http://www.pi4tel.de/asterisk/sms.shtml. Man kann jedoch nicht erwarten, dass SMS()out of the box“ sofort funktioniert.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SMS' =- 

[Synopsis]
Communicates with SMS service centres and SMS capable analogue phones

[Description]
  SMS(name|[a][s]):  SMS handles exchange of SMS data with a call to/from SMS capabale
phone or SMS PSTN service center. Can send and/or receive SMS messages.
Works to ETSI ES 201 912 compatible with BT SMS PSTN service in UK
Typical usage is to use to handle called from the SMS service centre CLI,
or to set up a call using 'outgoing' or manager interface to connect
service centre to SMS()
name is the name of the queue used in /var/spool/asterisk/sms
Arguments:
 a: answer, i.e. send initial FSK packet.
 s: act as service centre talking to a phone.
Messages are processed as per text file message queues.
smsq (a separate software) is a command to generate message
queues and send messages.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

120. SoftHangup()

Legt den angegebenen Channel auf.

SoftHangup(Technologie/Ressource[,Optionen])

Legt den angegebenen Channel auf. Liefert stets 0 zurück. Der Optionen-Parameter kann den Buchstaben a enthalten, was bewirkt, dass alle Kanäle auf dem angegebenen Gerät (statt nur der Ressource) aufgelegt werden.

; alle Kanäle auflegen, die Zap/4 benutzen:
exten => 123,1,SoftHangup(Zap/4,a)
exten => 123,n,Wait(2)
exten => 123,n,Dial(Zap/4/1234567)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'SoftHangup' =- 

[Synopsis]
Soft Hangup Application

[Description]
  SoftHangup(Technology/resource|options)
Hangs up the requested channel.  If there are no channels to hangup,
the application will report it.
- 'options' may contain the following letter:
     'a' : hang up all channels on a specified device instead of a single resource

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 52, „Hangup()

121. StopMonitor()

Beendet die Überwachung eines Channels.

StopMonitor()

Beendet die Überwachung (Aufnahme) eines Channels. Diese Anwendung hat keinerlei Auswirkungen, wenn der Channel momentan nicht überwacht wird.

exten => 123,1,Answer()
exten => 123,n,Monitor(wav,monitor_test,mb)
exten => 123,n,SayDigits(12345678901234567890)
exten => 123,n,StopMonitor()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'StopMonitor' =- 

[Synopsis]
Stop monitoring a channel

[Description]
StopMonitor
Stops monitoring a channel. Has no effect if the channel is not monitored

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 68, „Monitor(), Abschnitt 79, „PauseMonitor()

122. StopPlaytones()

Beendet die Wiedergabe einer Liste von Tönen.

StopPlaytones()

Beendet die Wiedergabe der momentan laufenden Tonliste.

exten => 123,1,Playtones(busy)
exten => 123,n,Wait(2)
exten => 123,n,StopPlaytones()
exten => 123,n,Playtones(congestion)
exten => 123,n,Wait(2)
exten => 123,n,StopPlaytones()
exten => 123,n,Goto(1)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'StopPlayTones' =- 

[Synopsis]
Stop playing a tone list

[Description]
Stop playing a tone list

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 85, „Playtones(), indications.conf

123. System()

Führt einen Shell-Befehl aus.

System(Befehl)

Führt durch die C-Funktion system() einen Befehl auf der Shell sh aus.

Diese Anwendung ist der TrySystem()-Anwendung sehr ähnlich, abgesehen davon, dass sie -1 zurückliefert, falls sie den Systembefehl nicht ausführen kann, wohingegen die TrySystem()-Anwendung stets 0 zurückliefert.

Setzt die Channelvariable SYSTEMSTATUS auf SUCCESS (erfolgreich ausgeführt), FAILURE (konnte nicht ausgeführt werden) oder (undokumentiert) auf APPERROR (Befehl ausgeführt aber mit Exit-Code ungleich 0).

exten => s,1,System(echo '${DATETIME} - ${CALLERID} - ${CHANNEL}' >> /var/log/asterisk/anrufe)

Siehe auch. Abschnitt 126, „TrySystem()

[Anmerkung]Anmerkung

Als Alternative kann die Applikation Backticks() oder Funktion BACKTICKS() aus dem Modul app_backticks[112] verwenden, mit denen man auch die Ausgabe des Befehls erhält.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'System' =- 

[Synopsis]
Execute a system command

[Description]
  System(command): Executes a command  by  using  system(). If the command
fails, the console should report a fallthrough. 
Result of execution is returned in the SYSTEMSTATUS channel variable:
   FAILURE  Could not execute the specified command
   SUCCESS  Specified command successfully executed

Old behaviour:
If the command itself executes but is in error, and if there exists
a priority n + 101, where 'n' is the priority of the current instance,
then  the  channel  will  be  setup to continue at that priority level.
Note that this jump functionality has been deprecated and will only occur
if the global priority jumping option is enabled in extensions.conf.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

124. Transfer()

Übermittelt den Anruf zu einer anderen Extension.

Transfer([Technologie/]Ziel[,Optionen])

Verlangt die Übermittlung des Anrufers zu einer gegebenen Extension. Wird Technologie (SIP, IAX2 etc.) angegeben, werden nur Anrufe der gleichen Technologie transferiert. Bei SIP-Kanälen, die noch nicht beantwortet wurden, geschieht das mittels einer 302-REDIRECT-Nachricht an den Anrufer, bei beantworteten SIP-Kanälen mit REFER. Ziel kann auch z.B. 123456@sip.provider.tld sein.

Mit der Option j wird zur Priorität n+101 gesprungen, falls der Transfer-Versuch fehlschlägt.

Setzt die Channelvariable TRANSFERSTATUS auf SUCCESS (Transfer erfolgreich), FAILURE (Transfer fehlgeschlagen) oder UNSUPPORTED (vom Channel nicht unterstützt).

; Anrufe an Extension 123 zur Extension 130 umleiten:
exten => 123,1,Transfer(130)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Transfer' =- 

[Synopsis]
Transfer caller to remote extension

[Description]
  Transfer([Tech/]dest[|options]):  Requests the remote caller be transferred
to a given destination. If TECH (SIP, IAX2, LOCAL etc) is used, only
an incoming call with the same channel technology will be transfered.
Note that for SIP, if you transfer before call is setup, a 302 redirect
SIP message will be returned to the caller.

The result of the application will be reported in the TRANSFERSTATUS
channel variable:
       SUCCESS      Transfer succeeded
       FAILURE      Transfer failed
       UNSUPPORTED  Transfer unsupported by channel driver
The option string many contain the following character:
'j' -- jump to n+101 priority if the channel transfer attempt
       fails

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

125. TryExec()

Versucht die Ausführung einer Dialplan-Applikation.

TryExec(Applikation(Argumente))

Versucht, wie Exec(), eine Applikation auszuführen, aber ohne den Anruf abzubrechen, wenn die Applikation nicht gefunden wird oder einen Fehler zurückgibt. Stattdessen wird die Variable TRYSTATUS auf einen der folgenden Werte gesetzt:

SUCCESS
Die Applikation hat 0 zurückgegeben.
FAILED
Die Applikation hat einen Fehler zurückgegeben (Wert ungleich 0).
NOAPP
Die Applikation wurde nicht gefunden.

Für weitere Informationen siehe Abschnitt 35, „Exec().

Siehe auch. Abschnitt 35, „Exec(), Abschnitt 36, „ExecIf(), Abschnitt 126, „TrySystem()

126. TrySystem()

Versucht die Ausführung eines Shell-Befehls.

TrySystem(Befehl)

Führt wie System() einen Befehl auf der Shell sh aus, liefert aber stets 0 zurück, wohingegen System() bei einem Fehler -1 zurückgibt.

Setzt die Channelvariable SYSTEMSTATUS auf SUCCESS (erfolgreich ausgeführt), FAILURE (konnte nicht ausgeführt werden) oder APPERROR (Befehl ausgeführt aber mit Exit-Code ungleich 0).

exten => 123,1,TrySystem(echo 'Hallo Welt' > /tmp/hallo.txt)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'TrySystem' =- 

[Synopsis]
Try executing a system command

[Description]
  TrySystem(command): Executes a command  by  using  system().
on any situation.
Result of execution is returned in the SYSTEMSTATUS channel variable:
   FAILURE  Could not execute the specified command
   SUCCESS  Specified command successfully executed
   APPERROR Specified command successfully executed, but returned error code

Old behaviour:
If  the command itself executes but is in error, and if
there exists a priority n + 101, where 'n' is the priority of the current
instance, then  the  channel  will  be  setup  to continue at that
priority level.  Otherwise, System will terminate.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 123, „System()

127. UnpauseMonitor()

Hebt die Pausierung der Aufzeichnung auf.

UnpauseMonitor()

Hebt die Pausierung des Mitschnitts eines mit PauseMonitor() pausierten Kanals wieder auf.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'UnpauseMonitor' =- 

[Synopsis]
Unpause monitoring of a channel

[Description]
UnpauseMonitor
Unpauses monitoring of a channel on which monitoring had
previously been paused with PauseMonitor.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 68, „Monitor(), Abschnitt 79, „PauseMonitor()

128. UnpauseQueueMember()

Hebt die Pausierung eines Warteschlangenmitglieds auf.

UnpauseQueueMember([Schlange,]Interface[,Optionen])

Hebt die Pausierung für ein Mitglied einer Warteschlange auf, d.h. es kann wieder Anrufe entgegennehmen. Dies ist das Gegenstück zu PauseQueueMember() - siehe Beispiel dort. Die Arbeitsweise ist die gleiche, außer dass das gegebene Interface nicht pausiert, sondern wieder aktiviert wird.

Setzt die Channel-Variable UPQMSTATUS auf UNPAUSED (ent-pausiert) oder NOTFOUND (nicht gefunden).

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'UnpauseQueueMember' =- 

[Synopsis]
Unpauses a queue member

[Description]
   UnpauseQueueMember([queuename]|interface[|options]):
Unpauses (resumes calls to) a queue member.
This is the counterpart to PauseQueueMember and operates exactly the
same way, except it unpauses instead of pausing the given interface.
The option string may contain zero or more of the following characters:
       'j' -- jump to +101 priority when appropriate.
  This application sets the following channel variable upon completion:
     UPQMSTATUS       The status of the attempt to unpause a queue 
                      member as a text string, one of
            UNPAUSED | NOTFOUND
Example: UnpauseQueueMember(|SIP/3000)

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 80, „PauseQueueMember()

129. UserEvent()

Sendet ein beliebiges Event an das Manager-Interface.

UserEvent(Eventname[,Inhalt])

Sendet ein beliebiges Event an das Manager-Interface. Das resultierende Event-Paket hat folgendes Format:

Event: UserEvent Eventname
Channel: Channelname
Uniqueid: Anruf-ID
[Inhalt]

Als Inhalt können weitere Zeilen in der Form Feldname: Wert angegeben werden. Mehrere Zeilen werden durch | (in älteren Asterisk-Versionen durch , oder ^) getrennt.

Liefert stets 0 zurück.

exten => 123,1,UserEvent(Test,Hinweis: Ich rufe jetzt ${XY} an.)
exten => 123,n,Dial(${XY})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'UserEvent' =- 

[Synopsis]
Send an arbitrary event to the manager interface

[Description]
  UserEvent(eventname[|body]): Sends an arbitrary event to the manager
interface, with an optional body representing additional arguments.  The
body may be specified as a | delimeted list of headers. Each additional
argument will be placed on a new line in the event. The format of the
event will be:
    Event: UserEvent
    UserEvent: <specified event name>
    [body]
If no body is specified, only Event and UserEvent headers will be present.

Differenz zum internen Hilfetext in Asterisk 1.2: 

8,14c8,13
<   UserEvent(eventname[|body]): Sends an arbitrary event to the manager
< interface, with an optional body representing additional arguments.  The
< body may be specified as a | delimeted list of headers. Each additional
< argument will be placed on a new line in the event. The format of the
< event will be:
<     Event: UserEvent
<     UserEvent: <specified event name>
---
>   UserEvent(eventname[|body]): Sends an arbitrary event to the
> manager interface, with an optional body representing additional
> arguments.  The format of the event will be:
>     Event: UserEvent<specified event name>
>     Channel: <channel name>
>     Uniqueid: <call uniqueid>
16,17c15,16
< If no body is specified, only Event and UserEvent headers will be present.
< 
---
> If the body is not specified, only Event, Channel, and Uniqueid fields
> will be present.  Returns 0.

Siehe auch. manager.conf, Asterisk Manager interface

130. Verbose()

Sendet beliebigen Text zum „verbose output“ (Ausgabe im CLI).

Verbose([Level,]Nachricht)

Sendet die angegebene Nachricht an das CLI. Die Stufe Level kann als ganzzahliger Wert angegeben werden, um die Nachricht nur bei mindestens diesem Verbosity-Level anzuzeigen[113]. Ist Level nicht angegeben, wird 0 angenommen.

Liefert stets 0 zurück.

exten => 123,1,Verbose(1,Jemand ruft Extension 123 an.)
exten => 123,n,Playback(extension)
exten => 123,n,SayDigits(${EXTEN})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Verbose' =- 

[Synopsis]
Send arbitrary text to verbose output

[Description]
Verbose([<level>|]<message>)
  level must be an integer value.  If not specified, defaults to 0.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 74, „NoOp(), Abschnitt 55, „Log(), Abschnitt 31, „DumpChan()

131. VMAuthenticate()

Authentifiziert den Anrufer über ein Voicemail-Passwort.

VMAuthenticate([Mailbox][@Context][,Optionen])

Verhält sich wie die Authenticate()-Anwendung, mit dem Unterschied, dass die Passwörter aus voicemail.conf (im optionalen VM-Context Context) gelesen werden.

Ist eine Mailbox angegeben, wird nur das Passwort dieser Mailbox als gültig betrachtet. Ohne Angabe kann sich der Anrufer mit jedem(!) VM-Passwort authentifizieren; die Channelvariable ${AUTH_MAILBOX} wird dann mit der authentifizierten Mailbox belegt.

Mit der Option s wird die Ansage der Aufforderung unterdrückt.

; als Mailbox die Extension annehmen und authentifizieren:
exten => 123,1,VMAuthenticate(${EXTEN}@verkauf)
exten => 123,n,SayDigits(${AUTH_MAILBOX})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'VMAuthenticate' =- 

[Synopsis]
Authenticate with Voicemail passwords

[Description]
  VMAuthenticate([mailbox][@context][|options]): This application behaves the
same way as the Authenticate application, but the passwords are taken from
voicemail.conf.
  If the mailbox is specified, only that mailbox's password will be considered
valid. If the mailbox is not specified, the channel variable AUTH_MAILBOX will
be set with the authenticated mailbox.

  Options:
    s - Skip playing the initial prompts.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 11, „Authenticate(), voicemail.conf

132. VoiceMail()

Hinterlässt eine Voicemail-Nachricht in der angegebenen Mailbox.

VoiceMail(Mailbox[@Context][&Mailbox[@Context][&...]],Optionen)

alte Syntax:

VoiceMail([s|u|b]Mailbox[@Context][&Mailbox[@Context][&...]])

Erlaubt dem Anrufer, in der angegebenen Mailbox eine Voicemail-Nachricht zu hinterlassen. Die Mailbox muss in voicemail.conf konfiguriert sein. Sind mehrere Mailboxen aufgelistet, wird die Begrüßung der ersten gespielt. Wenn die Mailbox nicht existiert, wird die Ausführung des Dialplans abgebrochen.

Mit der Option s (silent) werden die Anweisungen zum Hinterlassen der Nachricht übersprungen. Mit u (unavailable) wird die Nicht-verfügbar-Nachricht abgespielt, falls vorhanden. Bei b (busy) wird die Besetzt-Nachricht gespielt (Datei busy statt unavail).

Mit j wird bei einem Fehler zur Extension n+101 gesprungen, wenn vorhanden.

Drückt der Teilnehmer während der Eingabeaufforderung 0 (Null), geht der Anruf zur Extension o (kleiner Buchstabe o, Operator) im aktuellen Context über.

Drückt der Teilnehmer während der Eingabeaufforderung *, geht der Anruf zur Extension a (Assistant) im aktuellen Context über.

Gibt im Falle eines Fehlers, falls die Mailbox nicht gefunden wird oder der Teilnehmer auflegt -1 zurück, sonst 0. Setzt die Channelvariable VMSTATUS auf SUCCESS (Erfolg), USEREXIT (Abbruch durch Anrufer) oder FAILED (Fehler).

; den Anrufer zur Mailbox 123 leiten, mit Nicht-erreichbar-Nachricht:
exten => 123,1,VoiceMail(123,u)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'VoiceMail' =- 

[Synopsis]
Leave a Voicemail message

[Description]
  VoiceMail(mailbox[@context][&mailbox[@context]][...][|options]): This
application allows the calling party to leave a message for the specified
list of mailboxes. When multiple mailboxes are specified, the greeting will
be taken from the first mailbox specified. Dialplan execution will stop if the
specified mailbox does not exist.
  The Voicemail application will exit if any of the following DTMF digits are
received:
    0 - Jump to the 'o' extension in the current dialplan context.
    * - Jump to the 'a' extension in the current dialplan context.
  This application will set the following channel variable upon completion:
    VMSTATUS - This indicates the status of the execution of the VoiceMail
               application. The possible values are:
               SUCCESS | USEREXIT | FAILED

  Options:
    b    - Play the 'busy' greeting to the calling party.
    g(#) - Use the specified amount of gain when recording the voicemail
           message. The units are whole-number decibels (dB).
    s    - Skip the playback of instructions for leaving a message to the
           calling party.
    u    - Play the 'unavailble greeting.
    j    - Jump to priority n+101 if the mailbox is not found or some other
           error occurs.

Differenz zum internen Hilfetext in Asterisk 1.2: 

28c28
<     u    - Play the 'unavailble greeting.
---
>     u    - Play the 'unavailable greeting.

Siehe auch. Abschnitt 133, „VoiceMailMain(), voicemail.conf

133. VoiceMailMain()

Betritt das Voicemailsystem.

VoiceMailMain([Mailbox][@Context][,Optionen])

alte Syntax:

VoiceMailMain([[s|p]Mailbox][@Context])

Tritt zum Abrufen von Voicemail-Nachrichten in das Voicemail-System ein. Ohne Angabe der Mailbox wird der Anrufer zur Eingabe der Mailboxnummer aufgefordert.

Mit der Option s wird die Überprüfung des Passworts übersprungen. Mit der Option p wird der Benutzer zur Eingabe einer Mailboxnummer aufgefordert, die angegebene Nummer der Eingabe vorangestellt und der daraus resultierende String als Mailboxnummer verwendet. Das ist nützlich bei der Bereitstellung virtueller Voicemailboxen (Virtual Hosting). Mit a(Ordner) wird direkt zum angegebenen Ordner (Default: INBOX) gesprungen.

Ist ein Context spezifiziert, werden nur Mailboxen in diesem Voicemail-Context berücksichtigt.

Liefert -1 zurück, wenn der Benutzer auflegt, sonst 0.

; zum Voicemail-Menü der Mailbox 123 im Voicemail-Context default gehen:
exten => 123,1,VoiceMailMain(123@default)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'VoiceMailMain' =- 

[Synopsis]
Check Voicemail messages

[Description]
  VoiceMailMain([mailbox][@context][|options]): This application allows the
calling party to check voicemail messages. A specific mailbox, and optional
corresponding context, may be specified. If a mailbox is not provided, the
calling party will be prompted to enter one. If a context is not specified,
the 'default' context will be used.

  Options:
    p    - Consider the mailbox parameter as a prefix to the mailbox that
           is entered by the caller.
    g(#) - Use the specified amount of gain when recording a voicemail
           message. The units are whole-number decibels (dB).
    s    - Skip checking the passcode for the mailbox.
    a(#) - Skip folder prompt and go directly to folder specified.
           Defaults to INBOX

Differenz zum internen Hilfetext in Asterisk 1.2: 

20,21d19
<     a(#) - Skip folder prompt and go directly to folder specified.
<            Defaults to INBOX

Siehe auch. Abschnitt 132, „VoiceMail(), voicemail.conf

134. Wait()

Wartet für eine in Sekunden vorgegebene Dauer.

Wait(Sekunden)

Wartet die angegebene Anzahl Sekunden und liefert dann 0 zurück. Es können auch Sekundenbruchteile übergeben werden (z.B. 1.5 für 1,5 Sekunden).

exten => s,1,Answer()
exten => s,n,Wait(1.5)                        ; 1,5 Sekunden warten
exten => s,n,Background(enter-ext-of-person)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Wait' =- 

[Synopsis]
Waits for some time

[Description]
  Wait(seconds): This application waits for a specified number of seconds.
Then, dialplan execution will continue at the next priority.
  Note that the seconds can be passed with fractions of a second. For example,
'1.5' will ask the application to wait for 1.5 seconds.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 135, „WaitExten()

135. WaitExten()

Wartet auf die Eingabe einer Extension.

WaitExten([Sekunden][,Optionen])

Wartet die angegebene Anzahl Sekunden auf die Eingabe einer neuen Extension durch den Teilnehmer und liefert dann 0 zurück. Es können auch Sekundenbruchteile übergeben werden (z.B. 1.5 für 1,5 Sekunden). Falls keine Zeitdauer spezifiziert wird, wird die Standardfrist (Default Extension-Timeout) gewartet.

Als Option ist m möglich, was dem Anrufer während auf eine Eingabe gewartet wird, Wartemusik vorspielt. Dabei kann optional in runden Klammern die Musikklasse angegeben werden, z.B. m(rock).

; 10 Sekunden auf die Eingabe einer Extension warten:
exten => s,1,Answer()
exten => s,n,Playback(enter-ext-of-person)
exten => s,n,WaitExten(10)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'WaitExten' =- 

[Synopsis]
Waits for an extension to be entered

[Description]
  WaitExten([seconds][|options]): This application waits for the user to enter
a new extension for a specified number of seconds.
  Note that the seconds can be passed with fractions of a second. For example,
'1.5' will ask the application to wait for 1.5 seconds.
  Options:
    m[(x)] - Provide music on hold to the caller while waiting for an extension.
               Optionally, specify the class for music on hold within parenthesis.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 134, „Wait()

136. WaitForRing()

Wartet die in Sekunden vorgegebene Dauer auf ein Klingelzeichen.

WaitForRing(Timeout)

Wartet nach dem Abschluss des nächsten Klingelns Timeout Sekunden auf ein Klingelzeichen.

Liefert bei Erfolg 0, falls aufgelegt wurde, -1 zurück.

; 5 Sekunden auf Klingeln warten, dann ein paar DTMF-Töne senden:
exten => 123,1,Answer()
exten => 123,n,WaitForRing(5)
exten => 123,n,SendDTMF(1234)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'WaitForRing' =- 

[Synopsis]
Wait for Ring Application

[Description]
  WaitForRing(timeout)
Returns 0 after waiting at least timeout seconds. and
only after the next ring has completed.  Returns 0 on
success or -1 on hangup

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

137. WaitForSilence()

Wartet auf eine festgelegte Dauer von Stille.

WaitForSilence(Dauer[,Wiederholungen])

Wartet auf Dauer Millisekunden Stille. Mit der Angabe von Wiederholungen wird auf soviele Auftreten von Stille gewartet, sonst auf das einmalige Auftreten.

; auf 2 Vorkommen von Stille von jeweils 500 ms warten:
exten => 123,1,WaitForSilence(500,2)
exten => 123,n,Playback(tt-weasels)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'WaitForSilence' =- 

[Synopsis]
Waits for a specified amount of silence

[Description]
  WaitForSilence(silencerequired[|iterations][|timeout]) 
Wait for Silence: Waits for up to 'silencerequired' 
milliseconds of silence, 'iterations' times or once if omitted.
An optional timeout specified the number of seconds to return
after, even if we do not receive the specified amount of silence.
Use 'timeout' with caution, as it may defeat the purpose of this
application, which is to wait indefinitely until silence is detected
on the line.  This is particularly useful for reverse-911-type
call broadcast applications where you need to wait for an answering
machine to complete its spiel before playing a message.
The timeout parameter is specified only to avoid an infinite loop in
cases where silence is never achieved.  Typically you will want to
include two or more calls to WaitForSilence when dealing with an answering
machine; first waiting for the spiel to finish, then waiting for the beep, etc.

Examples:
  - WaitForSilence(500|2) will wait for 1/2 second of silence, twice
  - WaitForSilence(1000) will wait for 1 second of silence, once
  - WaitForSilence(300|3|10) will wait for 300ms silence, 3 times,
     and returns after 10 sec, even if silence is not detected

Sets the channel variable WAITSTATUS with to one of these values:
SILENCE - if exited with silence detected
TIMEOUT - if exited without silence detected after timeout

Differenz zum internen Hilfetext in Asterisk 1.2: 

8,23c8,10
<   WaitForSilence(silencerequired[|iterations][|timeout]) 
< Wait for Silence: Waits for up to 'silencerequired' 
< milliseconds of silence, 'iterations' times or once if omitted.
< An optional timeout specified the number of seconds to return
< after, even if we do not receive the specified amount of silence.
< Use 'timeout' with caution, as it may defeat the purpose of this
< application, which is to wait indefinitely until silence is detected
< on the line.  This is particularly useful for reverse-911-type
< call broadcast applications where you need to wait for an answering
< machine to complete its spiel before playing a message.
< The timeout parameter is specified only to avoid an infinite loop in
< cases where silence is never achieved.  Typically you will want to
< include two or more calls to WaitForSilence when dealing with an answering
< machine; first waiting for the spiel to finish, then waiting for the beep, etc.
< 
< Examples:
---
>   WaitForSilence(x[|y]) Wait for Silence: Waits for up to 'x' 
> milliseconds of silence, 'y' times or 1 if omitted
> Set the channel variable WAITSTATUS with to one of these values:SILENCE - if silence of x ms was detectedTIMEOUT - if silence of x ms was not detected.Examples:
26,31d12
<   - WaitForSilence(300|3|10) will wait for 300ms silence, 3 times,
<      and returns after 10 sec, even if silence is not detected
< 
< Sets the channel variable WAITSTATUS with to one of these values:
< SILENCE - if exited with silence detected
< TIMEOUT - if exited without silence detected after timeout

138. WaitMusicOnHold()

Wartet für eine in Sekunden vorgegebene Dauer, wobei Wartemusik abgespielt wird.

WaitMusicOnHold(Dauer)

Spielt die in Sekunden angegebene Dauer Wartemusik. Ist keine Wartemusik vorhanden, wird die Verzögerung dennoch ausgeführt, jedoch ohne Musik.

Liefert nach Abschluss 0, oder -1, falls aufgelegt wurde.

; 5 Minuten Wartemusik:
exten => 123,1,Answer()
exten => 123,n,WaitMusicOnHold(300)
exten => 123,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'WaitMusicOnHold' =- 

[Synopsis]
Wait, playing Music On Hold

[Description]
WaitMusicOnHold(delay): Plays hold music specified number of seconds.  Returns 0 when
done, or -1 on hangup.  If no hold music is available, the delay will
still occur with no sound.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. musiconhold.conf

139. While()

Beginnt eine While-Schleife.

While(Ausdruck)

Beginnt eine While-Schleife. Die Ausführung kehrt zu diesem Punkt zurück, wenn EndWhile() aufgerufen wird, solange bis der Ausdruck nicht länger wahr ist. Danach wird die Ausführung nach EndWhile() fortgesetzt.

exten => 123,1,Answer()
exten => 123,n,Set(i=1)
exten => 123,n,While($[${i} < 5])
exten => 123,n,SayNumber(${i})
exten => 123,n,Set(i=$[${i} + 1])
exten => 123,n,EndWhile()
exten => 123,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'While' =- 

[Synopsis]
Start a while loop

[Description]
Usage:  While(<expr>)
Start a While Loop.  Execution will return to this point when
EndWhile is called until expr is no longer true.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< Start a while loop
---
> Start A While Loop

Siehe auch. Abschnitt 34, „EndWhile(), Abschnitt 38, „ExitWhile(), Abschnitt 21, „ContinueWhile(), Abschnitt 50, „GotoIf()

140. Zapateller()

Verwendet einen speziellen Informationston, um automatisierte Werbeanrufe abzublocken.

Zapateller(Optionen)

Generiert einen speziellen Informationston (SIT, special information tone, "Kein Anschluss unter dieser Nummer"), um Telefonverkäufer und andere maschinengewählte Anrufe davon abzuhalten, Sie zu belästigen.

Die folgenden Optionen sind verfügbar (ggf. durch | getrennt):

answer
Bewirkt, dass die Leitung beantwortet wird, bevor der Ton abgespielt wird.
nocallerid
Bewirkt, dass Zapateller den Ton nur abspielt, wenn keine Caller-ID-Information verfügbar ist.
[incoming]
; im Context incoming die SIT-Töne spielen, wenn keine Caller-ID vorhanden ist:
exten => s,1,Zapateller(nocallerid)
exten => s,n,Wait(3)
exten => s,n,Answer()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Zapateller' =- 

[Synopsis]
Block telemarketers with SIT

[Description]
  Zapateller(options):  Generates special information tone to block
telemarketers from calling you.  Options is a pipe-delimited list of
options.  The following options are available:
'answer' causes the line to be answered before playing the tone,
'nocallerid' causes Zapateller to only play the tone if there
is no callerid information available.  Options should be separated by |
characters

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 86, „PrivacyManager()

141. ZapBarge()

Tritt in einen Zap-Channel ein und überwacht ihn.

ZapBarge([Channel])

Tritt in den angegebenen Zap-Channel ein. Die anderen Teilnehmer auf dem Channel können Sie dabei nicht hören und werden auch sonst keine Anzeichen wahrnehmen, dass ihr Anruf überwacht wird.

Ist der Channel nicht angegeben, werden Sie zunächst zur Eingabe einer Channelnummer aufgefordert. Geben Sie z.B. 4# für Zap/4 ein.

Liefert -1, wenn der Anrufer auflegt. Ist unabhängig von dem Zustand, dass der Channel überwacht wird.

exten => 123,1,ZapBarge(Zap/2)
exten => 123,n,Hangup()

Siehe auch. Abschnitt 143, „ZapScan(), Abschnitt 19, „ChanSpy()

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ZapBarge' =- 

[Synopsis]
Barge in (monitor) Zap channel

[Description]
  ZapBarge([channel]): Barges in on a specified zap
channel or prompts if one is not specified.  Returns
-1 when caller user hangs up and is independent of the
state of the channel being monitored.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

142. ZapRAS()

Führt den Zaptel ISDN Remote Access Server aus.

ZapRAS(args)

Startet über pppd einen ISDN-RAS-Server auf dem aktuellen Channel. Der Channel muss ein freier Channel (z.B. PRI Source) und ein Zaptel-Channel sein, um diese Funktion durchführen zu können. (Eine Modem-Emulation ist nicht enthalten.)

Um Zaptel zu kennen, muss pppd entsprechend vorbereitet sein. Argumente ist eine Liste von durch das |-Symbol getrennten Argumenten[114].

Liefert stets -1 zurück.

Diese Anwendungen ist nur für die Benutzung mit ISDN-Leitungen ausgelegt, und Ihr Kernel muss mit einem Patch für die Unterstützung von ZapRAS() versehen sein. Außerdem muss Ihr Kernel ppp-Unterstützung bereitstellen.

exten => 123,1,Answer()
exten => 123,n,ZapRAS(debug|64000|noauth|netmask|255.255.255.0|10.0.0.1:10.0.0.2)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ZapRAS' =- 

[Synopsis]
Executes Zaptel ISDN RAS application

[Description]
  ZapRAS(args): Executes a RAS server using pppd on the given channel.
The channel must be a clear channel (i.e. PRI source) and a Zaptel
channel to be able to use this function (No modem emulation is included).
Your pppd must be patched to be zaptel aware. Arguments should be
separated by | characters.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

143. ZapScan()

Durchsucht Zap-Kanäle, um Anrufe zu überwachen.

ZapScan([Gruppe])

Erlaubt einem Call-Center-Manager, Zap-Kanäle auf bequeme Art zu überwachen. Benutzen Sie # um den nächsten Channel auszuwählen, oder * zum Beenden. Sie können die Abfrage auf eine bestimmte Channelgruppe begrenzen, indem Sie den Parameter Gruppe verwenden.

exten => 123,1,ZapScan()

Siehe auch. Abschnitt 141, „ZapBarge(), Abschnitt 19, „ChanSpy()

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'ZapScan' =- 

[Synopsis]
Scan Zap channels to monitor calls

[Description]
  ZapScan([group]) allows a call center manager to monitor Zap channels in
a convenient way.  Use '#' to select the next channel and use '*' to exit
Limit scanning to a channel GROUP by setting the option group argument.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 


[97] Analog Display Services Interface

[98] zu Erinnerung: 0: stdin, 1: stdout, 2:stderr. 3 ist ein frei definierter File descriptor

[99] Zum Beispiel IAX, SIP, H.323, Skinny, PRI, FXO, FXS, Local ...

[100] :-)

[101] zu Erinnerung: 0: stdin, 1: stdout, 2:stderr. 3 ist ein frei definierter File descriptor

[102] Interactive Voice Response

[103] http://sox.sourceforge.net/, siehe Beschreibung in Abschnitt 2, „musiconhold.conf, mindestens Version 12.17.7, Ihre installierte Version erfahren Sie mit soxmix -help

[104] abhängig von der Asterisk-Version; ältere Versionen löschen nicht automatisch

[111] Frequency Shift Keying, FSK

[113] z.B. asterisk -vvvr für Level 3 - oder set verbose 3 im CLI

[114] deren Erklärung hier zu weit führen würde; siehe http://www.voip-info.org/wiki/view/Asterisk+cmd+ZapRAS


$Revision:473 $

Beta-Version!

2.0 Entwickler-Version des Asterisk Buches. Die 1.0 stabile Version ist natürlich noch online. Die 2.0er Version enthält viele Neuerungen, ist aber noch nicht 100% fehlerfrei. Im Zweifelsfall bitte auf die 1.0er Version gehen.

Bitte melden Sie Fehler und Feedback zur neuen 2.0er Version per E-Mail an den Autor.

Asterisk-Tag.org 2008

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

Werbung