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_
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
.soApplikationsname
anzeigen.
Tipp | |
---|---|
Die Befehle core application
|
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 | |
---|---|
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“ ( 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 | |
---|---|
Bitte beachten Sie, dass, abhängig von der eingesetzten
Asterisk-Version die Parameter durch |
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 |
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 | |
---|---|
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
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 | |
---|---|
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
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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
als Channel, von dem der Anruf ausgeht, gespeichert wird, damit festgestellt werden kann, von welchem Agenten der Anruf ausging.Agent
/AgentenNr
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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
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}
aufMACHINE
gesetzt. greeting
- Maximale Länge einer Ansage. Wenn länger, dann wird
${AMDSTATUS}
aufMACHINE
gesetzt. afterGreetingSilence
- Maximale Länge der Stille nach der Ansage. Wenn länger,
dann wird
${AMDSTATUS}
aufHUMAN
gesetzt. totalAnalysisTime
- Maximale Zeit die der AMD Algorithmus bekommt, um die
Entscheidung
HUMAN
oderMACHINE
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}
aufMACHINE
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 | |
---|---|
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“
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 | |
---|---|
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()
“
Hängt einen String an das CDR-User-Feld an.
AppendCDRUserField(String
)
Hängt den übergebenen String an das CDR-User-Feld an.
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 | |
---|---|
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 |
Siehe auch. Abschnitt 6, „CDR()
“
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 | |
---|---|
Beachten Sie bei der Option |
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 | |
---|---|
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()
“
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). Istskip
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 | |
---|---|
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
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
Ä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:
Bit1 | Bit2 | Erläuterung |
---|---|---|
0 | 0 | Die Caller-ID-Information liefert der Teilnehmer, sie ist nicht verifiziert. |
0 | 1 | Die Caller-ID-Information liefert der Teilnehmer, sie ist erfolgreich verifiziert. |
1 | 0 | Die Caller-ID-Information liefert der Teilnehmer, die Verifizierung war nicht erfolgreich. |
1 | 1 | Die Caller-ID-Information liefert das Netzwerk. |
Präsentation wird durch die Bits 6 und 7 gesteuert:
Bit6 | Bit7 | Erläuterung |
---|---|---|
0 | 0 | Anzeige der Caller-ID-Information ist erlaubt. |
0 | 1 | Anzeige der Caller-ID-Information ist nicht erlaubt. |
1 | 0 | Die Nummer ist aufgrund von Zwischenstationen nicht verfügbar. |
1 | 1 | Reserviert |
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()
“
Ä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 | |
---|---|
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()
“
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 | |
---|---|
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 |
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 | |
---|---|
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 | |
---|---|
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 - |
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 | |
---|---|
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()
“
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) istchanspy
.v[(
Wert
)](volume) Die anfängliche Lautstärkeeinstellung von
-4
(leise) bis4
(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 anChannelpräfix
angehängt. Wenn Sie z.B.ChanSpy(Agent)
ausführen und1234#
eingeben, werden Sie auf dem ChannelAgent/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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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“
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 | |
---|---|
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()
“
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()
“
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 | |
---|---|
Die Applikation |
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()
“
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 | |
---|---|
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()
“
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 | ||||||
---|---|---|---|---|---|---|
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
Es ist auch wichtig, dass Sie nach dem Auflegen nicht mehr mit
Asterisk kommunizieren, sonst erhält das Skript ein
|
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()
“
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 infeatures.conf
konfiguriert) aufzunehmen (Audio to disk). Falls die VariableTOUCH_MONITOR
gesetzt ist, wird ihr Wert als Parameter derMonitor()
-Anwendung weitergeleitet, wenn die Aufnahme startet. Ist sie nicht gesetzt, wirdMonitor()
die VorgabeWAV,,m
übergeben. W
- Ermöglicht es dem Anrufer den Anruf durch Eintippen der
automon
-Sequenz (wie infeatures.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 dieMACRO_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 auchLookupBlacklist()
. 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 Parametercalling
an die anrufende Seite. Beide Parameter können individuell eingesetzt werden. L(
x
[:y
][:z
])Begrenzt die Dauer des Anrufs auf
x
Millisekunden, wobeiy
Millisekunden vor Ablauf der festgesetzten Dauer und danach wiederholt allez
Millisekunden bis zum Anlauf der Frist eine Warnung signalisiert wird. Derx
-Parameter muss angegeben werden,y
undz
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
oderT
-Flag der Fall ist). Anrufe werden gewöhnlich geparkt, indem man sie der Extension 700 übermittelt, aber dieses Verhalten ist infeatures.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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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
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 | |
---|---|
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 | |
---|---|
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. |
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“.
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
Bei einem negativen Rückgabewert wird die Ausführung des Dialplans
beendet. Will man das nicht, verwendet man
|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 Gruppegrp
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 istchanspy
. 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 | |
---|---|
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()
“
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 | |
---|---|
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. |
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()
“
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 | |
---|---|
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
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 | |
---|---|
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 - |
Follow-Me/Find-Me Funktionalität.
FollowMe(FollowMeID
,Optionen
)
Bitte lesen die Konfigurationsdatei
followme.conf
.
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 -- |
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 | |
---|---|
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()
“
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 | |
---|---|
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
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
Verzweigt bedingt, abhängig von Zeit und Tag.
GotoIfTime(Zeit
,Wochentag
,Monatstag
,Monat
?[[Context
,]Extension
,]Pri
o)
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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 - |
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 "
, bzw. Nummer
"
"1"database del blacklist
"
zum Löschen oder Nummer
"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 | |
---|---|
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 - |
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 "
, bzw. Nummer
"
"Name
"database del cidname
"
zum Löschen oder Nummer
"database
show cidname
für eine Auflistung ein.
exten => 123,1,Answer() exten => 123,n,LookupCIDName()
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 - |
Ruft ein zuvor definiertes Makro auf.
Macro(macroname
[,Arg1
[,Arg2
[,...
]]])
Führt ein im Context
macro-
definiertes Makro
aus, indem es zur macroname
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 | |
---|---|
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()
“
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-
definiertes Makro
aus (und nur das eine!), indem es zur macroname
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 | |
---|---|
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
Bricht die Abarbeitung eines Macros ab.
MacroExit()
Kann innerhalb eines Macros dazu benutzt werden das selbige vorzeigtig zu beenden.
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
Damit MeetMe-Konferenzen funktionieren, muss ein passendes
Zaptel-Interface installiert sein. Alternativ kann auch der
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
undx
). b
- Startet das in
${MEETME_AGI_BACKGROUND}
spezifizierte AGI-Skript, standardmäßigconf-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 lautetmeetme-conf-rec-${
, wobeiKonferenzNr
}-${UniqueID
}UniqueID
eine einmalige ID ist. Das Standardformat istwav
. (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 | |
---|---|
Mit |
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 | |
---|---|
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 |
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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
,
das ausgehende in
Basisname
-in.Format
im Verzeichnis Basisname
-out.Format
/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 Bei der Verwendung von soxmix ist zu beachten, dass soxmix ohne explizite Angabe der Dateitypen diese aus den Endungen erkennt.
gsm
undwav
bereiten z.B. keine Probleme, aber für die Formatealaw
undulaw
werden als Endungenal
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 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 | |
---|---|
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 | |
---|---|
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 | |
---|---|
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()
“
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 | |
---|---|
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 -- |
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 | |
---|---|
Das häufig als Alternative installierte und auf
|
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 | |
---|---|
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 - |
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 | |
---|---|
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()
“
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 | |
---|---|
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 - |
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 | |
---|---|
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()
“
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 | |
---|---|
Die Ausgabe von |
exten => 123,1,NoOp(Caller-ID: ${CALLERID})
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()
“
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 | |
---|---|
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 |
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
Stoppt das Monitoring eines Channels.
PauseMonitor()
Pausiert die Aufzeichnung eines Channels, bis die Pause mit
UnpauseMonitor()
wieder aufgehoben wird.
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()
“
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 | |
---|---|
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()
“
Führt eine Perl-Funktion oder ein Perl-Skript aus.
Perl(Funktionsname
[:Arg1
[:Arg2
[:...
]]])
Perl(Loadfile:Dateiname
[:Arg1
[:Arg2
[:...
]]])
Wichtig | |
---|---|
Für |
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()
“
Führt ein PHP-Skript aus.
PHP(Dateiname
[|Arg1
[|Arg2
[|...
]]])
Wichtig | |
---|---|
Für |
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()
“
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 | |
---|---|
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. > |
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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
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 | |
---|---|
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“
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 | |
---|---|
Die Applikation |
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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 - |
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 vonmaxDauer
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 | |
---|---|
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()
“
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 | |
---|---|
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
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 wirdABdY 'digits/at' IMp
verwendet.
Liefert 0 zurück oder -1, wenn aufgelegt wird.
exten => 123,1,SayUnixTime(,,IMp)
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 - |
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
Ob globale Variablen auch nach einem Reload von Asterisk noch
gültig sind, wird durch die Einstellung |
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 | |
---|---|
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()
“
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 | |
---|---|
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. |
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 | |
---|---|
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 - |
Setzt den Wert des CDR-Feldes "userfield".
SetCDRUserField(String
)
Wird benutzt, um den Wert des CDR Feldes "userfield" zu setzen.
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 | |
---|---|
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 |
Siehe auch. Abschnitt 6, „CDR()
“
Setzt den Wert einer globalen Variable.
SetGlobalVar(variable=value)
Setzt eine globale Variable. Falls die Variable nicht existiert, wird sie gleichzeitig definiert.
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 | |
---|---|
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 |
Siehe auch. Abschnitt 110, „Set()
“, Abschnitt 21, „GLOBAL()
“
Setzt den Wert der Default Wartemusik Klasse.
SetMusicOnHold(Klasse
)
Setzt den Wert der Default Wartemusik Klasse.
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 | |
---|---|
Bitte verwenden Sie ab Asterisk 1.4
|
Siehe auch. Abschnitt 7, „CHANNEL()
“
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 | |
---|---|
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: |
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 | |
---|---|
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()
“
Ä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 | |
---|---|
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 - |
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.
, die
Nachrichten vom Telefon zum SMSC in
Schlange
/me-sc.
. In
Schlange
//var/log/asterisk/sms
wird ein Log
geschrieben.
Beim Verbinden als Client (a
) werden alle im
Verzeichnis
me-sc.
wartenden
Nachrichten gesendet und dann gelöscht; die empfangenen werden in
Schlange
/sc-me.
mit einem
Timestamp im Dateinamen gespeichert. Wenn wir uns als Service-Center
verbinden (Schlange
/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=
sein
könnte, was für jede eingegangene Nachricht einen Befehl ausführt.befehl
--queue=me-eingang
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 | |
---|---|
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 - |
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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
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 | |
---|---|
Als Alternative kann die Applikation |
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 - |
Ü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 | |
---|---|
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 - |
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()
“
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 | |
---|---|
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()
“
Hebt die Pausierung der Aufzeichnung auf.
UnpauseMonitor()
Hebt die Pausierung des Mitschnitts eines mit
PauseMonitor()
pausierten Kanals wieder auf.
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()
“
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 | |
---|---|
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()
“
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: UserEventEventname
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 | |
---|---|
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
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 | |
---|---|
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()
“
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 | |
---|---|
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
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 | |
---|---|
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
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(
wird direkt zum
angegebenen Ordner (Default: Ordner
)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 | |
---|---|
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
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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 - |
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 | |
---|---|
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 |
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 | |
---|---|
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
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 | |
---|---|
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()
“
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 | |
---|---|
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()
“
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 | |
---|---|
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 - |
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 | |
---|---|
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 - |
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 | |
---|---|
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
[106] http://mpg123.org/, http://sourceforge.net/projects/mpg123/, für MacOS X siehe auch http://sourceforge.net/projects/mosx-mpg123/
[107] von http://www.pbxfreeware.org/, Informationen zur Benutzung auf http://www.voip-info.org/wiki-Asterisk+cmd+Perl
[108] von http://eder.us/projects/asterisk_php/, Informationen zur Benutzung auf http://www.voip-info.org/wiki-Asterisk+cmd+PHP
[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.