Crmgo Blog

Asterisk-Variablen

Asterisk-Variablen

Kanal-spezifische vordefinierte Variablen Nachfolgend finden Sie eine Liste der von Asterisk selbst festgelegten, kanal-spezifischen Variablen, deren Werte Sie in Dialplan-Routinen verwenden können. Im Gegensatz zu benutzerdefinierten Variablen sind die von Asterisk definierten Variablen case-sensitiv. ${ACCOUNTCODE} : Der Kontocode, falls…

Asterisk-Variablen

Kanal-spezifische vordefinierte Variablen

Im Folgenden finden Sie eine Liste der von Asterisk selbst festgelegten, kanal-spezifischen Variablen, deren Werte Sie in Dialplan-Routinen verwenden können. Im Gegensatz zu benutzerdefinierten Variablen sind von Asterisk definierte Variablen groß-/kleinschreibungssensitiv.

  • ${ACCOUNTCODE}: Kontokennung, falls zugewiesen – siehe Asterisk-Billing. (Ab Version 1.2.0 als veraltet markiert und in Version 1.4.0 entfernt. Verwenden Sie stattdessen ${CDR(accountcode)}.)
  • ${ANSWEREDTIME}: Zeitpunkt, zu dem der Anruf beantwortet wurde.
  • ${BLINDTRANSFER}: Aktiver SIP-Kanal, der den Anruf initiiert. Hier wird der Name des SIP-Kanals ermittelt, der den Anruf bei einer Blind-Übertragung tätigt – siehe BLINDTRANSFER?
  • ${CALLERID(all)} : Aktueller Wert von Name und Nummer aus CallerID – Siehe Abschnitt CallerID-Einstellung?, der sich mit der Arbeit an CallerID in Asterisk Version 1.4 befasst.
  • ${CALLERID(name)} : Aktueller Wert des Namens aus CallerID – Die Variable ${CALLERIDNAME} wurde in Asterisk bis Version 1.2.0 verwendet; sie ist ab Version 1.2.0 als veraltet markiert und wurde in Version 1.4 entfernt.
  • ${CALLERID(num)} : Aktueller Wert der Nummer aus CallerID – Die Variable ${CALLERIDNUM} wurde in Asterisk bis Version 1.2.0 verwendet; sie ist ab Version 1.2.0 als veraltet markiert und wurde in Version 1.4 entfernt. (Beachten Sie: Der Wert dieser Variable muss nicht zwingend numerisch sein, wie der Name nahelegen könnte; ein Leerzeichen ist ein gültiger Wert. Befehle, die mit diesem Variablenwert arbeiten (z. B. 'GotoIf'), müssen diesen Umstand berücksichtigen.)
  • ${CALLINGPRES}: Variable, die die PRI-Call-ID-Präsentation enthält, für eingehende Anrufe (Siehe callingpres )
  • ${CHANNEL}: Aktueller Kanalname
  • ${CONTEXT}: Aktueller Kontextname
  • ${DATETIME}: Aktuelles Datum und Uhrzeit im Format: TTMMJJJJ-St:MM:SS Diese Variable ist in Asterisk 1.2 als veraltet markiert. Verwenden Sie stattdessen: ${STRFTIME(${EPOCH},,%d%mNaVH:NaVS)})
  • ${DIALEDPEERNAME}: Name des angerufenen Teilnehmers. Derzeit nicht funktionsfähig, siehe DIALEDPEERNAME?
  • ${DIALEDPEERNUMBER}: Nummer des angerufenen Teilnehmers. Derzeit nicht funktionsfähig, siehe DIALEDPEERNUMBER?
  • ${DIALEDTIME}: Zeitpunkt der Wahl des Teilnehmers. (Funktioniert nur, wenn der angerufene Teilnehmer den Anruf annimmt?!)
  • ${DIALSTATUS}: Anrufstatus. Siehe DIALSTATUS
  • ${DNID}: Dialed Number Identifier. Zur Unterstützung von Einschränkungen für ausgehende Anrufe, siehe DNID?
  • ${EPOCH}: Aktuelle Zeit im UNIX-Format (Anzahl der Sekunden seit dem 1. Januar 1970)
  • ${EXTEN}: Aktuelle Erweiterung
  • ${HANGUPCAUSE}: Letzter Rückgabecode, der nach Beendigung der Verbindung für einen Zap-Kanal zurückgegeben wird, der mit einer PRI-Schnittstelle verbunden ist.
  • ${INVALID_EXTEN}: Angeforderte Erweiterung für Fälle, in denen sie zur Verarbeitung an den i (ungültige) Erweiterung weitergeleitet wird.
  • ${LANGUAGE}: Aktuelle Sprache der Sprachnachrichten. Siehe Asterisk Multi-Language?
  • ${MEETMESECS}: Anzahl der Sekunden, die der Teilnehmer an der MeetMe-Konferenz? teilgenommen hat.
  • ${PRIORITY}: Aktueller Prioritätswert.
  • ${RDNIS}: Caller-ID für den Teilnehmer, der die Weiterleitung durchführt DNIS. Zur Unterstützung von Einschränkungen für ausgehende Anrufe, siehe RDNIS?
  • ${SIPDOMAIN}: Ziel-Domain für ausgehende SIP-Anrufe (falls vorhanden)
  • ${SIP_CODEC}: Wird zur Festlegung des Codecs für Anrufe über einen SIP-Kanal verwendet (vermutlich nicht funktionsfähig in Version 1.0.1, funktioniert in 1.0.3 & 1.0.4, Unsicherheit bezüglich 1.0.2)
  • ${SIPCALLID}: Wert des Header-Felds „Call-ID“ in SIP-Dialognachrichten.
  • ${SIPUSERAGENT}: Wert des Header-Felds „User-Agent“ in SIP-Dialognachrichten.
  • ${TIMESTAMP}: Aktuelles Datum und Uhrzeit im Format: JJJJMMTT-HHMMSS Diese Variable ist in Asterisk 1.2 als veraltet markiert. Verwenden Sie stattdessen: ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
  • ${TRANSFERCAPABILITY}: Kanalart.
  • ${TXTCIDNAME}: Ergebnis der Anwendung TXTCIDName (siehe unten)
  • ${UNIQUEID}: Aktuelle eindeutige Anrufkennung
  • ${TOUCH_MONITOR}: Wird für „One-Touch Recording“ verwendet (siehe features.conf und die Flags wW für den Dial-Befehl). Wenn sie an beiden Enden der Verbindung gesetzt ist, enthält diese Variable die app_args (Argumente) für die app_monitor-Anwendung; andernfalls werden die Standardargumente verwendet: WAV||m
  • ${CONTEXT}: Name des aktuellen Kontexts
  • ${DATETIME}: Aktuelles Datum und Uhrzeit im Format: !YYYY-MM-DD_HH:MM:SS
  • ${TIMESTAMP}: Aktuelles Datum und Uhrzeit im Format: YYYYMMDD-HHMMSS
  • ${EPOCH}: Aktuelle UNIX-Epochenzeit (Anzahl der Sekunden seit dem 1. Januar 1970)
  • ${EXTEN}: Aktuelle Telefonnummer (Durchwahl)
  • ${INVALID_EXTEN}: Eingewählte Telefonnummer bei Weiterleitung auf die i (invalid)-Durchwahl
  • ${LANGUAGE}: Aktueller Sprachwert. Siehe Unterstützung nationaler Sprachen in Asterisk
  • ${PRIORITY}: Aktuelle Priorität
  • ${CALLINGPRES}: PRI Call ID Presentation-Variable für eingehende Anrufe (siehe callingpres)
  • ${CALLERID}: Anruferkennung (Name und Nummer)
  • ${CALLERIDNAME}: Anruferkennung: Name
  • ${CALLERIDNUM}: Anruferkennung: Nummer
  • ${CHANNEL}: Name des aktuellen Kanals
  • ${RDNIS}: Der aktuelle weiterleitende DNIS, Anruferkennung, die den Anruf weitergeleitet hat. Siehe RDNIS
  • ${SIPDOMAIN}: SIP-Ziel-Domain eines eingehenden Anrufs (falls zutreffend)
  • ${SIP_CODEC}: Wird verwendet, um den SIP-Codec für einen Anruf festzulegen
  • ${SIPCALLID}: Der SIP-Dialog Call-ID-Header
  • ${SIPUSERAGENT}: Der SIP-User-Agent-Header
  • ${UNIQUEID}: Aktuelle eindeutige SIP-Anruf-ID
  • ${HANGUPCAUSE}: Der letzte Rückgabecode beim Auflegen auf einem Zap-Kanal, der mit einer PRI-Schnittstelle verbunden ist
  • ${DNID}: Dialed Number Identifier
  • ${ACCOUNTCODE}: Kontocode, falls angegeben – siehe Asterisk-Abrechnung

 

Von verschiedenen Anwendungen verwendete Variablen

Die Befehle einiger Anwendungen verwenden Werte von „Kanalvariablen“ oder schreiben das Ergebnis ihrer Arbeit in diese Variablen zurück.

  • Der Befehl AgentCallbackLogin? gibt in ${AGENTBYCALLERID_${CALLERID}} die ID des erfolgreich autorisierten Agenten zurück.
  • Der Befehl ChanIsAvail gibt in ${AVAILCHAN} den ersten verfügbaren Kanal zurück.
  • Der Befehl Dial verwendet den Wert der Variable ${VXML_URL}, um die XML-URL an ein Cisco 7960-Telefon zu senden.
  • Der Befehl Dial verwendet den Wert der Variable ${ALERT_INFO}, um Informationen zum Anruftyp an Cisco-Telefone zu übermitteln.
  • Der Befehl Dial gibt in ${CAUSECODE} den Fehlercode zurück, falls der Anruf fehlgeschlagen ist.
  • Der Befehl Dial gibt in ${DIALSTATUS} den textbasierten Code des Ergebnisses des letzten Anrufversuchs zurück.
  • Der Befehl Dial verwendet den Wert der Variable ${TRANSFER_CONTEXT}: Wenn diese Variable festgelegt ist, wird sie bei der Durchführung des Anrufübertragungsprozesses (#transfer) verwendet, um Befehle aus dem angegebenen Kontext für die Erweiterung auszuführen.
  • Der Befehl EnumLookup gibt in der Variable ${ENUM} das Suchergebnis zurück.
  • Der Befehl Hangup verwendet den Wert der Variable ${PRI_CAUSE}, um die Rückgabecodes der PRI-Schnittstelle festzulegen.
  • Der Befehl MeetMe verwendet den Wert der Variable {MEETME_AGI_BACKGROUND}, um das auszuführende AGI-Skript zu bestimmen.
  • Der Befehl MeetMe gibt in der Variable ${MEETMESECS} die Anzahl der Sekunden zurück, die der Teilnehmer in der Konferenz verbracht hat.
  • Der Befehl Playback gibt in der Variable ${PLAYBACKSTATUS} das Ergebnis der Ausführung zurück (FAILED|SUCCESS).
  • Der Befehl Queue gibt in der Variable ${QUEUESTATUS} den Grund zurück, warum der in die Warteschlange eingereihte Anruf diese verlassen hat.
  • Der Befehl TXTLookup gibt in der Variable ${TXTCIDNAME} das Suchergebnis in DNS zurück.
  • Der Befehl VoiceMail gibt in der Variable ${VMSTATUS} das Ergebnis der Ausführung der Anwendung VoiceMail? zurück. Mögliche Werte: SUCCESS | USEREXIT | FAILED.

 

Makrospezifische Variablen

Bei der Verwendung von Kontexten als Makros stehen zusätzliche, makrospezifische „Kanale“-Variablen zur Verfügung.

  • ${ARG1}: Das erste an das Makro übergebene Argument
  • ${ARG2}: Das zweite an das Makro übergebene Argument (usw. ...)
  • ${MACRO_CONTEXT}: Der Name des Kontexts der Erweiterung, die dieses Makro aufgerufen hat
  • ${MACRO_EXTEN}: Die Erweiterung, die dieses Makro aufgerufen hat
  • ${MACRO_OFFSET}: Wird vom Makros gesetzt, um die Priorität zu bestimmen, ab der die Ausführung der Befehle nach Abschluss des Makros fortgesetzt wird
  • ${MACRO_PRIORITY}: Die Priorität der Erweiterung zum Zeitpunkt des Aufrufs dieses Makros

 

Umgebungsvariablen

Sie können auf Unix-Umgebungsvariablen mit der folgenden Syntax zugreifen:

${ENV(''foo'')}

  • ${ENV(ASTERISK_PROMPT)} : Der aktuelle CLI-Prompt? für Asterisk.
  • ${ENV(RECORDED_FILE)} : Der Name der Datei, unter der die letzte Aufnahme gespeichert wurde, die mit dem Befehl Record erstellt wurde (verfügbar in CVS > 2004-03-21)

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.