Anhang C. Funktionen im Dialplan

Seit Asterisk 1.2 gibt es im Dialplan nicht nur Applikationen, sondern auch Funktionen. Anders als Applikationen können Funktionen nicht direkt aufgerufen werden. Stattdessen geben sie einen Wert zurück oder - was dem klassischen Verständnis einer Funktion widerspricht - man kann auch, in Verbindung mit der Applikation Set() (siehe Abschnitt 110, „Set()), schreibend auf sie zugreifen. Funktionsnamen werden immer ganz in Großbuchstaben geschrieben. Funktionen werden erstaunlicherweise wie Variablen durchwegs in ${} eingeklammert, was notwendig ist, da Strings nicht immer in Hochkommata stehen müssen.

Im Asterisk-CLI[115] können Sie mit show functions und show function FUNKTIONSNAME bzw. core show functions und core show function Funktionsname (ja nach Asterisk-Version) herausfinden, welche Funktionen in Ihrer Installation verfügbar sind. Dabei ist die komplette Großschreibung des Funktionsnamens wichtig.

1. AGENT()

AGENT(AgentenNr[:Feld])

Gibt Informationen über einen Agenten, identifiziert duch die AgentenNr zurück. Die folgenden Felder können abgefragt werden:

status
(default) Der Einlog-Status des Agenten, entweder LOGGEDIN oder LOGGEDOUT
password
Das Passwort des Agenten
name
Der Name des Agenten
mohclass
Die Wartemusik-Klasse (Music on hold class)
exten
Die Rückruf-Extension des Agenten. Wird von der Applikation AgentCallbackLogin() verwendet.
channel
Der Name des aktiven Kanals des Agenten (AgentLogin())
; die Variable foo auf den Namen des Agenten Nr. 42 setzen:
exten => 123,1,Set(foo=${AGENT(42:name)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'AGENT' =- 

[Syntax]
AGENT(<agentid>[:item])

[Synopsis]
Gets information about an Agent

[Description]
The valid items to retrieve are:
- status (default)      The status of the agent
                          LOGGEDIN | LOGGEDOUT
- password              The password of the agent
- name                  The name of the agent
- mohclass              MusicOnHold class
- exten                 The callback extension for the Agent (AgentCallbackLogin)
- channel               The name of the active channel for the Agent (AgentLogin)

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

2. ARRAY()

ARRAY(var1[,var2[,...]])

(ab Asterisk 1.4 verfügbar)

Setzt mehrere Variablen gleichzeitig. (Der Name ist irreführend, ein Array wird nicht erstellt.) Mit ARRAY() kann nur geschrieben, nicht gelesen werden. Denken Sie daran, die nach dieser Funktion folgenden Werte durch Komma zu trennen und dieses Komma durch Backslash (\) zu escapen, da sonst von einem zweiten Parameter für Set() ausgegangen würde!

; var1 auf 1 und var2 auf 2 setzen:
exten => 123,1,Set(ARRAY(var1,var2)=1\,2)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'ARRAY' =- 

[Syntax]
ARRAY(var1[|var2[...][|varN]])

[Synopsis]
Allows setting multiple variables at once

[Description]
The comma-separated list passed as a value to which the function is set will
be interpreted as a set of values to which the comma-separated list of
variable names in the argument should be set.
Hence, Set(ARRAY(var1|var2)=1\,2) will set var1 to 1 and var2 to 2
Note: remember to either backslash your commas in extensions.conf or quote the
entire argument, since Set can take multiple arguments itself.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

3. BASE64_DECODE()

BASE64_DECODE(Base64_String)

(ab Asterisk 1.4 verfügbar)

Dekodiert einen Base64-kodierten String.

exten => 123,1,Set(foo=${BASE64_DECODE("SGFsbG8gV2VsdA==")})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'BASE64_DECODE' =- 

[Syntax]
BASE64_DECODE(<base64_string>)

[Synopsis]
Decode a base64 string

[Description]
Returns the plain text string

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

4. BASE64_ENCODE()

BASE64_ENCODE(String)

(ab Asterisk 1.4 verfügbar)

Kodiert einen String mit Base64.

exten => 123,1,Set(foo=${BASE64_ENCODE("Hallo Welt")})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'BASE64_ENCODE' =- 

[Syntax]
BASE64_ENCODE(<string>)

[Synopsis]
Encode a string in base64

[Description]
Returns the base64 string

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

5. CALLERID()

CALLERID(Feld)

Gibt Informationen über den Anrufer zurück oder setzt diese. Feld ist eines der folgenden:

name
Name des Anrufers, alphanumerischer String. Sie sollten sich auf wenige Zeichen - z.B. 15 - beschränken.
num
Nummer, nur Ziffern. (manchmal findet man auch number, evtl. abhängig von der Asterisk-Version)
all
Name und Nummer mit der Nummer in spitzen Klammern, z.B.: "Peter Meier <012345>"
ani
ANI[116]-Nummer, für ausgehende Anrufe
dnid
DNID[117]-Nummer. Die gewählte Nummer (manchmal findet man auch dnis, evtl. abhängig von der Asterisk-Version)
rdnis
RDNIS[118]-Nummer. Die Nummer, die auf die aktuelle Extension umgeleitet hat, z.B. falls die Nummer einer Voicemailbox nicht die gewählte Extension ist.

Ab Asterisk 1.4 muss z.B. statt der Variablen ${CALLERIDNUM} die Funktion ${CALLERID(num)} verwendet werden, statt ${RDNIS} $(CALLERID(rdnis)) etc. Die Applikation SetCIDName() wird durch Set(CALLERID(name)=Name) ersetzt, SetCallerID() durch Set(CALLERID(all)=Name <Nummer>) etc.

; die Variable foo auf die Anruferkennung setzen:
exten => 123,1,Set(foo=${CALLERID(all)})

; den Anrufernamen auf "Peter Meier" setzen:
exten => 123,1,Set(CALLERID(name)="Peter Meier") 
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'CALLERID' =- 

[Syntax]
CALLERID(datatype[,<optional-CID>])

[Synopsis]
Gets or sets Caller*ID data on the channel.

[Description]
Gets or sets Caller*ID data on the channel.  The allowable datatypes
are "all", "name", "num", "ANI", "DNID", "RDNIS".
Uses channel callerid by default or optional callerid, if specified.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< CALLERID(datatype[,<optional-CID>])
---
> CALLERID(datatype)
13d12
< Uses channel callerid by default or optional callerid, if specified.

6. CDR()

CDR(Feld)

Liest oder setzt CDR[119]-Felder. Feld ist eines der folgenden (wenn nicht anders angegeben ist nur Lesen möglich):

clid
Caller-ID
src
Source, die Caller-ID-Nummer
dst
Destination, Ziel-Extension
dcontext
Destination context, der Ziel-Context
channel
Der Kanalname
dstchannel
Destination channel, der Ziel-Kanal, falls zutreffend
lastapp
Die letzte ausgeführte Applikation
lastdata
Die Argumente der zuletzt ausgeführten Applikation
start
Die Start-Zeit des Anrufs
answer
Die Zeit, zu der der Anruf beantwortet wurde
end
Die End-Zeit des Anrufs
duration
Die Dauer des Anrufs (in Sekunden)
billsec
Die Dauer des Anrufs seit der Anruf beantwortet wurde, also die zu berechnende Zeit (in Sekunden)
disposition
Der Status des Anrufs: ANSWERED, NO ANSWER, BUSY oder FAILED
amaflags
Die AMA[120]-Flags. DEFAULT (System-Default), BILLING (zur Abrechnung), DOCUMENTATION (zur Dokumentierung) oder OMIT (keine Aufzeichnung). (Manchmal findet man statt BILLING und OMIT auch die Angaben BILL und IGNORE - evtl. abhängig von der Asterisk-Version)
accountcode
Die alphanumerische Nummer des Abrechnungskontos, max. 20 Zeichen (auch Setzen möglich)
uniqueid
Die einmalige alphanumerische ID des Kanals (max. 32 Zeichen)
userfield
Das User-Feld, in das beliebige Informationen (max. 255 Zeichen) geschrieben werden können (auch Setzen möglich)
; foo auf die Dauer des Anrufs setzen:
exten => 123,1,Set(foo=${CDR(duration)})

; das User-Feld auf "meine Infos" setzen:
exten => 123,1,Set(CDR(userfield)=meine Infos)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'CDR' =- 

[Syntax]
  Here is a list of all the available cdr field names:
    clid          lastdata       disposition
    src           start          amaflags
    dst           answer         accountcode
    dcontext      end            uniqueid
    dstchannel    duration       userfield
    lastapp       billsec        channel
  All of the above variables are read-only, except for accountcode,
  userfield, and amaflags. You may, however,  supply
  a name not on the above list, and create your own
  variable, whose value can be changed with this function,
  and this variable will be stored on the cdr.
   raw values for disposition:
       1 = NO ANSWER
       2 = BUSY
       3 = FAILED
       4 = ANSWERED
    raw values for amaflags:
       1 = OMIT
       2 = BILLING
       3 = DOCUMENTATION


[Synopsis]
Gets or sets a CDR variable

[Description]
Options:
  'r' searches the entire stack of CDRs on the channel
  'u' retrieves the raw, unprocessed value
  For example, 'start', 'answer', and 'end' will be retrieved as epoch
  values, when the 'u' option is passed, but formatted as YYYY-MM-DD HH:MM:SS
  otherwise.  Similarly, disposition and amaflags will return their raw
  integral values.

Differenz zum internen Hilfetext in Asterisk 1.2: 

5,26c5
<   Here is a list of all the available cdr field names:
<     clid          lastdata       disposition
<     src           start          amaflags
<     dst           answer         accountcode
<     dcontext      end            uniqueid
<     dstchannel    duration       userfield
<     lastapp       billsec        channel
<   All of the above variables are read-only, except for accountcode,
<   userfield, and amaflags. You may, however,  supply
<   a name not on the above list, and create your own
<   variable, whose value can be changed with this function,
<   and this variable will be stored on the cdr.
<    raw values for disposition:
<        1 = NO ANSWER
<        2 = BUSY
<        3 = FAILED
<        4 = ANSWERED
<     raw values for amaflags:
<        1 = OMIT
<        2 = BILLING
<        3 = DOCUMENTATION
< 
---
> CDR(<name>[|options])
32,38c11
< Options:
<   'r' searches the entire stack of CDRs on the channel
<   'u' retrieves the raw, unprocessed value
<   For example, 'start', 'answer', and 'end' will be retrieved as epoch
<   values, when the 'u' option is passed, but formatted as YYYY-MM-DD HH:MM:SS
<   otherwise.  Similarly, disposition and amaflags will return their raw
<   integral values.
---
> Option 'r' searches the entire stack of CDRs on the channel

7. CHANNEL()

CHANNEL(Feld)

(ab Asterisk 1.4 verfügbar)

Liest/setzt bestimmte Kanaldaten. Feld ist eines der folgenden (wenn nicht anders angegeben, ist nur Lesen möglich):

audioreadformat
Das Format eingehender Audiodaten auf dem Kanal
audionativeformat
Das native Audioformat des Kanals
audiowriteformat
Das Format ausgehender Audiodaten auf dem Kanal
callgroup
In Asterisk lassen sich Extensions in Call groups von 0 - 63 einordnen, z.B. als Kundennummer.[121]
channeltype
Die „Technologie“ dieses Kanals, also z.B: IAX oder SIP
language
Die Sprache für Voice-Prompts (auch Setzen möglich)
musicclass
Die Musik-Klasse für Wartemusik, wie in musiconhold.conf definiert (auch Setzen möglich)
state

Zustand des Kanals (Down, Rsrvd, OffHook, Dialing, Ring, Ringing, Up, Busy, Dialing Offhook, Pre-ring, Unknown)

tonezone
Die „Tone zone“ bestimmt die Ton-Signale (Wählen, Klingeln, Besetzt, ...) für bestimmte Länder. Sie wird in der Konfigurationsdatei des Kanals (z.B. zaptel.conf) durch loadzone und defaultzone festgelegt. Die möglichen Werte sind (wie in der indications.conf definiert): at, au, be, br, ch, cl, cn, cz, de, dk, ee, es, fi, fr, gr, hu, it, lt, mx, ml, no, nz, pl, pt, ru, se, sg, uk, us, us-old, tw, ve, za.
videonativeformat
Das native Videoformat dieses Kanals

Zusätzlich zu diesen Feldern kann der Treiber des Kanals noch weitere bereitstellen, die man in der entsprechenden Dokumentation nachschlagen kann. Felder, die auf dem aktuellen Kanal nicht zur Verfügung stehen, geben einen leeren String zurück.

; Typ des Kanals abfragen:
exten => 123,1,Set(foo=${CHANNEL(channeltype)})

; Sprache auf Englisch setzen:
exten => 123,1,Set(CHANNEL(language)=en)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'CHANNEL' =- 

[Syntax]
CHANNEL(item)

[Synopsis]
Gets/sets various pieces of information about the channel.

[Description]
Gets/set various pieces of information about the channel.
Standard items (provided by all channel technologies) are:
R/O  audioreadformat     format currently being read
R/O  audionativeformat   format used natively for audio
R/O  audiowriteformat    format currently being written
R/W  callgroup           call groups for call pickup
R/O  channeltype         technology used for channel
R/W  language            language for sounds played
R/W  musicclass          class (from musiconhold.conf) for hold music
R/W  rxgain              set rxgain level on channel drivers that support it
R/O  state               state for channel
R/W  tonezone            zone for indications played
R/W  txgain              set txgain level on channel drivers that support it
R/O  videonativeformat   format used natively for video

Additional items may be available from the channel driver providing
the channel; see its documentation for details.

Any item requested that is not available on the current channel will
return an empty string.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

8. CHECKSIPDOMAIN()

CHECKSIPDOMAIN(Domain)

Prüft, ob die angegebene Domain (kann auch eine IP-Adresse sein) eine SIP-Domain ist, die Asterisk als lokal behandelt (siehe Datei sip.conf). Gibt den Domain-Namen oder einen leeren String zurück.

exten => 123,1,Set(foo=${CHECKSIPDOMAIN(123.45.67.89)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'CHECKSIPDOMAIN' =- 

[Syntax]
CHECKSIPDOMAIN(<domain|IP>)

[Synopsis]
Checks if domain is a local domain

[Description]
This function checks if the domain in the argument is configured
as a local SIP domain that this Asterisk server is configured to handle.
Returns the domain name if it is locally handled, otherwise an empty string.
Check the domain= configuration in sip.conf

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

9. CURL()

CURL(URL[|POST-Daten])

Lädt eine Webseite unter der angegebenen URL mit GET. Wenn POST-Daten angegeben sind, werden diese Daten mit POST gesendet. Gibt die Seite als String zurück.

; Die Seite unter der URL http://beispiel.de/seite.php?id=1&action=view abrufen:
exten => 123,1,Set(foo=${CURL(http://beispiel.de/seite.php?id=1&action=view)})

10. CUT()

CUT(Variablenname,Trennzeichen,Feld)

(Offenbar müssen in Asterisk 1.2.8 statt der Kommas zwischen den Parametern Pipe-Zeichen (|) verwendet werden.)

Zerteilt den String in einer Variablen anhand eines Trennzeichens (Default: -) und gibt den so entstandenen Einzelteil an der Stelle Feld (1-basiert) zurück. Feld kann auch eine Spanne sein (z.B. 2-4) oder mehrere Felder/Spannen, durch & getrennt, z.B. 2-4&6; die entsprechenden Felder werden dann wieder durch das Trennzeichen verbunden. Auch eine Range wie 3- (alles ab Feld 3) oder -3 (bis Feld 3) ist möglich.

Ein Komma als Trennzeichen muss durch Backslash escaped werden, z.B. CUT(var,\,,2).

exten => 123,1,Set(var=1-2-3-4-5)            ; var ist "1-2-3-4-5"
exten => 123,n,Set(var=${CUT(var,,1-3&5)})   ; var ist "1-2-3-5"
[Wichtig]Wichtig

Der Parameter Variablenname muss der Name einer Variablen sein, nicht ein String. Die wäre also falsch: CUT(${bar},,3)

Siehe auch. Abschnitt 19, „FIELDQTY()

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'CUT' =- 

[Syntax]
CUT(<varname>,<char-delim>,<range-spec>)

[Synopsis]
Slices and dices strings, based upon a named delimiter.

[Description]
  varname    - variable you want cut
  char-delim - defaults to '-'
  range-spec - number of the field you want (1-based offset)
             may also be specified as a range (with -)
             or group of ranges and fields (with &)

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

11. DB()

DB(Familie/Schlüssel)

Liest/setzt einen Wert in der AstDB. Beim Lesen wird der Wert zurückgegeben oder ein leerer String, wenn der Wert nicht existiert. Das Ergebnis ist in der Variable DB_RESULT verfügbar.

; Eintrag open/source setzen und abfragen:
exten => 123,1,Set(DB(open/source)=${ja})
exten => 123,n,Set(var=${DB(open/source)})
exten => 123,n,GotoIf($[[${DB(open/source)} = 1]?opensource:closedsource)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'DB' =- 

[Syntax]
DB(<family>/<key>)

[Synopsis]
Read from or write to the Asterisk database

[Description]
This function will read from or write a value to the Asterisk database.  On a
read, this function returns the corresponding value from the database, or blank
if it does not exist.  Reading a database value will also set the variable
DB_RESULT.  If you wish to find out if an entry exists, use the DB_EXISTS
function.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 13, „DB_EXISTS(), Abschnitt 12, „DB_DELETE(), Abschnitt 25, „DBdeltree()

12. DB_DELETE()

DB_DELETE(Familie/Schlüssel)

Löscht einen Wert aus der AstDB. Dabei wird auch die Variable DB_RESULT auf den entsprechenden Wert gesetzt, falls vorhanden.

; den Eintrag cidnums/0123456789 löschen:
exten => 123,1,Set(ignored=${DB_DELETE(cidnums/0123456789)})
[Anmerkung]Anmerkung

Vor Asterisk 1.4 muss statt der Funktion DB_DELETE() die Applikation DBdel() verwendet werden.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'DB_DELETE' =- 

[Syntax]
DB_DELETE(<family>/<key>)

[Synopsis]
Return a value from the database and delete it

[Description]
This function will retrieve a value from the Asterisk database
 and then remove that key from the database.  DB_RESULT
will be set to the key's value if it exists.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 11, „DB(), Abschnitt 13, „DB_EXISTS(), Abschnitt 24, „DBdel(), Abschnitt 25, „DBdeltree()

13. DB_EXISTS()

DB_EXISTS(Familie/Schlüssel)

Prüft, ob ein Schlüssel in der AstDB vorhanden ist. Gibt 1 oder 0 zurück. Setzt auch die Variable DB_RESULT auf den unter dem Schlüssel gespeicherten Wert.

; abfragen, ob der Eintrag cidnums/0123456789 existiert:
exten => 123,1,Set(foo=${DB_EXISTS(cidnums/0123456789)})

So kann z.B. die Applikation LookupBlacklist() ersetzt werden. Springt, falls die Anrufernummer in der Blacklist ist, zum Context blacklisted, Extension s, Priorität 1:

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

[blacklisted]
exten => s,1,NoOp(${CALLERID(num)} ist auf der Blacklist)
exten => s,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'DB_EXISTS' =- 

[Syntax]
DB_EXISTS(<family>/<key>)

[Synopsis]
Check to see if a key exists in the Asterisk database

[Description]
This function will check to see if a key exists in the Asterisk
database. If it exists, the function will return "1". If not,
it will return "0".  Checking for existence of a database key will
also set the variable DB_RESULT to the key's value if it exists.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

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

14. DUNDILOOKUP()

DUNDILOOKUP(Nummer[|DUNDi-Context[|Optionen]])

Schlägt eine Telefonnummer mit DUNDi (DUNDi) nach. Wird kein DUNDi-Context angegeben, wird e164 angenommen. Mit der Option b (bypass) wird der interne DUNDi-Cache umgangen. Gibt die gefundene Verbindung in der Form Technologie/Ressource oder einen leeren String zurück.

; die Nummer 0123456789 nachschlagen:
exten => 123,1,Set(foo=${DUNDILOOKUP(0123456789)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'DUNDILOOKUP' =- 

[Syntax]
DUNDILOOKUP(number[|context[|options]])

[Synopsis]
Do a DUNDi lookup of a phone number.

[Description]
This will do a DUNDi lookup of the given phone number.
If no context is given, the default will be e164. The result of
this function will the Technology/Resource found in the DUNDi
lookup. If no results were found, the result will be blank.
If the 'b' option is specified, the internal DUNDi cache will
be bypassed.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. dundi.conf

15. ENUMLOOKUP()

Asterisk 1.2:

ENUMLOOKUP(Nummer[,Dienst[,OptionenUndEintragsnr[,Zonen-Suffix]]])

Asterisk 1.4:

ENUMLOOKUP(Nummer[,Dienst[,Optionen,Eintragsnr[,Zonen-Suffix]]])

Schlägt eine Nummer mit ENUM (ENUM) nach. Dienst kann u.A. sip (Default), iax2, h323, tel oder ALL sein. Mit der Option c wird die Anzahl der Einträge zurückgegeben. Die Eintragsnr (Default 1) wählt einen Eintrag aus der Ergebnisliste aus. Zonen-Suffix (Default: e164.arpa) ist die ENUM-Zone. Ausführliche Beschreibung und Beispiele in doc/README.enum (1.2) / doc/enum.txt (1.4).

; in Asterisk 1.2:
exten => 123,1,Set(foo=${ENUMLOOKUP(+${CALLERID(num)},sip,1,freenum.org)})

; in Astarisk 1.4:
exten => 123,1,Set(foo=${ENUMLOOKUP(+${CALLERID(num)},sip,,1,freenum.org)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'ENUMLOOKUP' =- 

[Syntax]
ENUMLOOKUP(number[|Method-type[|options[|record#[|zone-suffix]]]])

[Synopsis]
ENUMLOOKUP allows for general or specific querying of NAPTR records or counts of NAPTR types for ENUM or ENUM-like DNS pointers

[Description]
Option 'c' returns an integer count of the number of NAPTRs of a certain RR type.
Combination of 'c' and Method-type of 'ALL' will return a count of all NAPTRs for the record.
Defaults are: Method-type=sip, no options, record=1, zone-suffix=e164.arpa

For more information, see doc/enum.txt

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< ENUMLOOKUP(number[|Method-type[|options[|record#[|zone-suffix]]]])
---
> ENUMLOOKUP(number[,Method-type[,options|record#[,zone-suffix]]])
15c15
< For more information, see doc/enum.txt
---
> For more information, see README.enum

Siehe auch. enum.conf

16. ENV()

ENV(Variablenname)

Liest/setzt eine Umgebungsvariable (Environment). Umgebungsvariablen sind keine Variablen in Asterisk, sondern in der Betriebssystem-Umgebung. Sie können in der Shell mit echo $Variablenname ausgegeben werden. Umgebungsvariablen unterscheiden zwischen Groß- unf Kleinschreibung und werden fast immer großgeschrieben.

; HOME lesen:
exten => 123,1,Set(foo=${ENV(HOME)})

; HOME setzen:
exten => 123,1,Set(ENV(HOME)=/myAst)
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'ENV' =- 

[Syntax]
ENV(<envname>)

[Synopsis]
Gets or sets the environment variable specified

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

17. EVAL()

EVAL(Variable)

Wertet eine Variable doppelt aus. Das lässt sich am besten an einem Beispiel erklären: Wenn die Variable ${VAR} den String "${VAR2}" enthält, würde sie ohne Eval() zu diesem String ausgewertet. Mit Eval() wird auch ${VAR2} nochmal zu ihrem Inhalt ausgewertet.

; wenn VAR den String "${VAR2}" enthält und VAR2 den String "Hallo Welt":
exten => 123,1,Set(foo=${EVAL(${VAR})})
; dann ist foo jetzt "Hallo Welt"
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'EVAL' =- 

[Syntax]
EVAL(<variable>)

[Synopsis]
Evaluate stored variables.

[Description]
Using EVAL basically causes a string to be evaluated twice.
When a variable or expression is in the dialplan, it will be
evaluated at runtime. However, if the result of the evaluation
is in fact a variable or expression, using EVAL will have it
evaluated a second time. For example, if the variable ${MYVAR}
contains "${OTHERVAR}", then the result of putting ${EVAL(${MYVAR})}
in the dialplan will be the contents of the variable, OTHERVAR.
Normally, by just putting ${MYVAR} in the dialplan, you would be
left with "${OTHERVAR}".

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

18. EXISTS()

EXISTS(Variable)

Prüft, ob eine Variable definiert ist. Gibt 1 oder 0 zurück.

exten => 123,1,Set(Var1=test)
exten => 123,n,Set(Var2=)
exten => 123,n,Set(foo=${EXISTS(${Var1})})   ; foo ist 1
exten => 123,n,Set(foo=${EXISTS(${Var2})})   ; foo ist 0
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'EXISTS' =- 

[Syntax]
EXISTS(<data>)

[Synopsis]
Existence Test: Returns 1 if exists, 0 otherwise

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

19. FIELDQTY()

FIELDQTY(Variablenname,Trennzeichen)

Gibt zurück, wie viele Teilstrings entstehen würden, wenn man den Inhalt der Variablen anhand des Trennzeichens aufteilt.

exten => 123,1,Set(Var=hallo#du#da#am#telefon)
exten => 123,n,Set(Anzahl=${FIELDQTY(Var,#)})    ; Anzahl ist 5
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'FIELDQTY' =- 

[Syntax]
FIELDQTY(<varname>|<delim>)

[Synopsis]
Count the fields, with an arbitrary delimiter

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< FIELDQTY(<varname>|<delim>)
---
> FIELDQTY(<varname>,<delim>)

Siehe auch. Abschnitt 10, „CUT()

20. FILTER()

FILTER(erlaubte Zeichen,String)

(ab Asterisk 1.4 verfügbar)

Filtert den String, so dass nur noch die erlaubten Zeichen im Rückgabewert vorkommen.

; nur die Zeichen 0123456789 in ${cdrnum} zulassen:
exten => 123,1,Set(foo=${FILTER(0123456789,${cdrnum})})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'FILTER' =- 

[Syntax]
FILTER(<allowed-chars>|<string>)

[Synopsis]
Filter the string to include only the allowed characters

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

21. GLOBAL()

GLOBAL(Variablenname)

(ab Asterisk 1.4 verfügbar)

Wird verwendet, um eine Variable als global zu deklarieren, also gültig über die Lebensdauer eines Kanals hinaus. In Asterisk 1.2 verwendet man stattdessen Set() (Abschnitt 110, „Set()) mit der Option g.

; eine globale Variable ${meinevariable} definieren:
exten => 123,1,Set(GLOBAL(meinevariable)=Test)
[Anmerkung]Anmerkung

Ob globale Variablen auch nach einem Reload von Asterisk noch gültig sind, wird durch die Einstellung clearglobalvars in der extensions.conf bestimmt.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'GLOBAL' =- 

[Syntax]
GLOBAL(<varname>)

[Synopsis]
Gets or sets the global variable specified

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

22. GROUP()

GROUP([Kategorie])

Liest/setzt die Gruppe des Kanals (Kanäle lassen sich beliebig gruppieren).

exten => 123,1,Set(GROUP()=ausgehende)                ; Gruppe setzen
exten => 123,n,GotoIf($[${GROUP_COUNT()} > 10]?200)   ; zu viele?
exten => 123,n,Dial(0123456)                          ; wählen
exten => 123,200,SetVar(DIALSTATUS=CHANUNAVAIL)       ; ablehnen
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'GROUP' =- 

[Syntax]
GROUP([category])

[Synopsis]
Gets or sets the channel group.

[Description]
Gets or sets the channel group.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 23, „GROUP_COUNT(), Abschnitt 24, „GROUP_LIST(), Abschnitt 25, „GROUP_MATCH_COUNT()

23. GROUP_COUNT()

GROUP_COUNT([Gruppe[@Kategorie]])

Gibt die Anzahl der Kanäle in der angegebenen Gruppe zurück. Wird keine Gruppe angegeben, gilt die aktuelle Gruppe des Kanals.

; Anzahl der Kanäle in Gruppe ausgehende abfragen:
exten => 123,1,Set(foo=${GROUP_COUNT(ausgehende)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'GROUP_COUNT' =- 

[Syntax]
GROUP_COUNT([groupname][@category])

[Synopsis]
Counts the number of channels in the specified group

[Description]
Calculates the group count for the specified group, or uses the
channel's current group if not specifed (and non-empty).

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 22, „GROUP(), Abschnitt 24, „GROUP_LIST(), Abschnitt 25, „GROUP_MATCH_COUNT()

24. GROUP_LIST()

GROUP_LIST()

Gibt eine durch Leerzeichen getrennte Liste aller Gruppen zurück, die für den aktuellen Kanal gesetzt sind.

exten => 123,1,Set(foo=${GROUP_LIST()})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'GROUP_LIST' =- 

[Syntax]
GROUP_LIST()

[Synopsis]
Gets a list of the groups set on a channel.

[Description]
Gets a list of the groups set on a channel.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 22, „GROUP(), Abschnitt 23, „GROUP_COUNT(), Abschnitt 25, „GROUP_MATCH_COUNT()

25. GROUP_MATCH_COUNT()

GROUP_MATCH_COUNT(Muster[@Kategorie])

Gibt die Anzahl der Kanäle zurück, auf die das angegebene Suchmuster - ein regulärer Ausdruck - passt.

; Anzahl der Kanäle in den Gruppen gruppe[1-4] abfragen:
exten => 123,1,Set(foo=${GROUP_MATCH_COUNT(gruppe[1-4])})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'GROUP_MATCH_COUNT' =- 

[Syntax]
GROUP_MATCH_COUNT(groupmatch[@category])

[Synopsis]
Counts the number of channels in the groups matching the specified pattern

[Description]
Calculates the group count for all groups that match the specified pattern.
Uses standard regular expression matching (see regex(7)).

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 22, „GROUP(), Abschnitt 23, „GROUP_COUNT(), Abschnitt 24, „GROUP_LIST()

26. IAXPEER()

IAXPEER(Peer-Name[:Feld])

Gibt Daten über einen IAX-Peer zurück. Peer-Name kann auch CURRENTCHANNEL für den aktuellen Kanal sein. Feld ist eines der folgenden:

ip
(Default) Die IP-Adresse des Peers
status
Der Status (wenn qualify=yes gesetzt ist)
mailbox
Die eingestellte Mailbox
context
Der eingestellte Context
expire
Die Unix-Time (Epoch), wann die Verbindung das nächste Mal ausläuft.
dynamic
Ob die Verbindung dynamisch (dynamic) ist (yes|no).
callerid_name
Der eingestellte Caller-ID-Name
callerid_num
Die eingestellte Caller-ID-Nummer
codecs
Die verfügbaren Codecs
codec[x]
Der Codec Nummer x (0-basiert) in der Reihenfolge der Präferenz
; die IP-Adresse von peer1 abfragen:
exten => 123,1,Set(foo=${IAXPEER(peer1:ip)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'IAXPEER' =- 

[Syntax]
IAXPEER(<peername|CURRENTCHANNEL>[|item])

[Synopsis]
Gets IAX peer information

[Description]
If peername specified, valid items are:
- ip (default)          The IP address.
- status                The peer's status (if qualify=yes)
- mailbox               The configured mailbox.
- context               The configured context.
- expire                The epoch time of the next expire.
- dynamic               Is it dynamic? (yes/no).
- callerid_name         The configured Caller ID name.
- callerid_num          The configured Caller ID number.
- codecs                The configured codecs.
- codec[x]              Preferred codec index number 'x' (beginning with zero).

If CURRENTCHANNEL specified, returns IP address of current channel

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< IAXPEER(<peername|CURRENTCHANNEL>[|item])
---
> IAXPEER(<peername|CURRENTCHANNEL>[:item])

Siehe auch. Abschnitt 47, „SIPPEER()

27. IF()

IF(Ausdruck?trueVal:falseVal)

Gibt abhängig von der Bedingung den ersten oder zweiten Wert zurück. Ist die Bedingung wahr, wird der Wert nach ?, sonst der Wert nach : zurückgegeben.

; wenn ${Var}=123 ist, dann 5 zurückgeben, sonst 9:
exten => 123,1,Set(foo=${IF($[ ${Var} = 123]?5:9)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'IF' =- 

[Syntax]
IF(<expr>?[<true>][:<false>])

[Synopsis]
Conditional: Returns the data following '?' if true else the data following ':'

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 28, „IFTIME(), xAbschnitt 36, „ExecIf(), Abschnitt 50, „GotoIf(), Abschnitt 51, „GotoIfTime()

28. IFTIME()

IFTIME(Zeit-Ausdruck?trueVal:falseVal)

Gibt - wie IF() - abhängig von der Bedingung den ersten oder zweiten Wert zurück, nur dass hier ein spezieller Zeit-Ausdruck angegeben wird.

Der Zeit-Ausdruck ist aufgebaut im Format Uhrzeit|Wochentag|Monatstag|Monat, wobei jeder Teil auch eine Spanne (mit -) oder das immer passende Wildcard * sein kann. Die Zeit wird im 24-Std.-Format (z.B. 08:00-18:00), Wochentage und Monatsnamen als 3-buchstabige englische Abkürzung (mon, tue, wed, thu, fri, sat, sun bzw. jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec) angegeben.

; gültig 8-18 Uhr, montags, 1.-15. Dezember:
exten => 123,1,Set(foo=${IFTIME(08:00-18:00|mon|1-15|dec?5:0)})

; gültig jeden Samstag und Sonntag:
exten => 123,1,Set(foo=${IFTIME(*|sat-sun|*|*?5:0)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'IFTIME' =- 

[Syntax]
IFTIME(<timespec>?[<true>][:<false>])

[Synopsis]
Temporal Conditional: Returns the data following '?' if true else the data following ':'

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 27, „IF(), Abschnitt 36, „ExecIf(), Abschnitt 50, „GotoIf(), Abschnitt 51, „GotoIfTime()

29. ISNULL()

ISNULL(Wert)

Gibt 1 zurück, wenn der Wert NULL (kein Wert) ist, sonst 0.

exten => 123,1,Set(foo=${ISNULL(${Var1})})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'ISNULL' =- 

[Syntax]
ISNULL(<data>)

[Synopsis]
NULL Test: Returns 1 if NULL or 0 otherwise

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

30. KEYPADHASH()

KEYPADHASH(String)

Wandelt die Buchstaben A-Z (und a-z) entsprechend der Telefontastatur in Ziffern um. Damit können z.B. Vanity-Nummern wie 0800-AUTOHAUS (0800-28864287) in richtige Nummern umgewandelt werden.

12 ABC3 DEF
4 GHI5 JKL6 MNO
7 PQRS8 TUV9 WXYZ
*0#
exten => 123,1,Set(foo=${KEYPADHASH(AUTOHAUS)})  ; gibt 28864287 zurück
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'KEYPADHASH' =- 

[Syntax]
KEYPADHASH(<string>)

[Synopsis]
Hash the letters in the string into the equivalent keypad numbers.

[Description]
Example:  ${KEYPADHASH(Les)} returns "537"

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

31. LANGUAGE()

LANGUAGE()

Liest/setzt die Sprache des Kanals. Die Sprache beeinflusst u.a., welche Audiodateien abgespielt werden. Ist z.B. de eingestellt und Playback(tt-weasels) wird ausgeführt, so wird die Datei de/tt-weasels abgespielt (wenn vorhanden). Gleiches gilt für SayDigits() etc.

; abfragen:
exten => 123,1,Set(foo=${LANGUAGE()})

; Deutsch setzen:
exten => 123,1,Set(LANGUAGE()=de)
[Warnung]Warnung

Ist deprecated (unerwünscht). Nutzen Sie lieber die Funktion CHANNEL(language). Siehe Abschnitt 7, „CHANNEL()

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'LANGUAGE' =- 

[Syntax]
LANGUAGE()

[Synopsis]
Gets or sets the channel's language.

[Description]
Deprecated. Use CHANNEL(language) instead.

Differenz zum internen Hilfetext in Asterisk 1.2: 

11c11,18
< Deprecated. Use CHANNEL(language) instead.
---
> Gets or sets the channel language.  This information is used for the
> syntax in generation of numbers, and to choose a natural language file
> when available.  For example, if language is set to 'fr' and the file
> 'demo-congrats' is requested to be played, if the file
> 'fr/demo-congrats' exists, then it will play that file, and if not
> will play the normal 'demo-congrats'.  For some language codes,
> changing the language also changes the syntax of some Asterisk
> functions, like SayNumber.

32. LEN()

LEN(String)

Gibt die Länge (Anzahl der Zeichen) eines Strings zurück.

; angenommen, ${test} ist "Hallo Welt"
exten => 123,1,Set(foo=${LEN(${test})})
; dann wird 10 zurückgegeben
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'LEN' =- 

[Syntax]
LEN(<string>)

[Synopsis]
Returns the length of the argument given

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

33. MATH()

MATH(Zahl1 Operator Zahl2[,Ergebnistyp])

Berechnet einfache mathematische Ausdrücke. Mögliche Operatoren sind: +, -, /, *, <, >, <=, >=, ==, % (modulo). Ergebnistyp: f, float (Fließkommazahl, Default), i, int (Ganzzahl), h, hex (Wert im Hexadezimal-System), c, char (Byte).

; 3*8 als Ganzzahl berechnen:
exten => 123,1,Set(i=${MATH(3*8,int)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'MATH' =- 

[Syntax]
MATH(<number1><op><number 2>[,<type_of_result>])

[Synopsis]
Performs Mathematical Functions

[Description]
Perform calculation on number 1 to number 2. Valid ops are: 
    +,-,/,*,%,<,>,>=,<=,==
and behave as their C equivalents.
<type_of_result> - wanted type of result:
  f, float - float(default)
  i, int - integer,
  h, hex - hex,
  c, char - char
Example: Set(i=${MATH(123%16,int)}) - sets var i=11

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

34. MD5()

MD5(String)

Berechnet den MD5-Hash (Digest, Prüfsumme) eines Strings (hexadezimale Rückgabe).

exten => 123,1,Set(foo=${MD5(${string})})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'MD5' =- 

[Syntax]
MD5(<data>)

[Synopsis]
Computes an MD5 digest

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

35. MUSICCLASS()

MUSICCLASS(Klasse)

Liest/setzt die Music-on-Hold-Klasse (Klasse der Wartemusik).

; abfragen:
exten => 123,1,Set(foo=${MUSICCLASS()})

; auf "HeavyMetal" setzen:
exten => 123,1,Set(MUSICCLASS()=HeavyMetal)
[Wichtig]Wichtig

Ab Asterisk 1.4 deprecated. Stattdessen Set(CHANNEL(musicclass)=default) verwenden, siehe Abschnitt 7, „CHANNEL().

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'MUSICCLASS' =- 

[Syntax]
MUSICCLASS()

[Synopsis]
Read or Set the MusicOnHold class

[Description]
Deprecated. Use CHANNEL(musicclass) instead.

Differenz zum internen Hilfetext in Asterisk 1.2: 

11c11
< Deprecated. Use CHANNEL(musicclass) instead.
---
> This function will read or set the music on hold class for a channel.

36. ODBC_SQL()

ODBC_SQL(SQL-Query)

Führt den angegebenen SQL-Query aus und gibt ggf. das Ergebnis zurück.

; abfragen:
exten => 123,1,Set(Name=${ODBC_SQL(SELECT name FROM liste WHERE nummer='123')})

; setzen:
exten => 123,1,Set(ODBC_SQL(UPDATE liste SET name='Peter' WHERE nummer='123'))

37. ODBC_USER_DATABASE()

ODBC_USER_DATABASE(var1[,var2[,...]])

Führt den in func_odbc.conf definierten SQL-Query aus und gibt ggf. das Ergebnis zurück. Die in der Abfrage definierten ${VAL1}, ${VAL2}, ..., ${ARG1}, ${ARG2}, ... werden durch die angegebenen Werte ersetzt.

func_odbc.conf:

[USER_DATABASE]
dsn=meine_datenbank
read=SELECT name FROM liste WHERE nummer='${ARG1}'
write=UPDATE liste SET name=${ARG1} WHERE nummer='${VAL1}'

extensions.conf:

; abfragen (read):
exten => 123,1,Set(Name=${ODBC_USER_DATABASE(${EXTEN})})

; setzen (write):
exten => 123,1,Set(ODBC_USER_DATABASE(${CALLERID(name)})=1000)

38. QUEUEAGENTCOUNT()

in Asterisk 1.2 - für 1.4 siehe QUEUE_MEMBER_COUNT()

QUEUEAGENTCOUNT(Warteschlange)

Gibt die Anzahl der Agenten (im Gegensatz zu den Anrufern) auf der Warteschlange zurück.

; Anzahl der Agenten in der "supportSchlange":
exten => 123,1,Set(foo=${QUEUEAGENTCOUNT(supportSchlange)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'QUEUEAGENTCOUNT' =- 

[Syntax]
QUEUEAGENTCOUNT(<queuename>)

[Synopsis]
Count number of agents answering a queue

[Description]
Returns the number of members currently associated with the specified queue.
This function is deprecated.  You should use QUEUE_MEMBER_COUNT() instead.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

39. QUEUE_MEMBER_COUNT()

in Asterisk 1.4 - für 1.2 siehe QUEUEAGENTCOUNT()

QUEUE_MEMBER_COUNT(Warteschlange)

Gibt die Anzahl der Agenten (im Gegensatz zu den Anrufern) auf der Warteschlange zurück.

; Anzahl der Agenten in der "supportSchlange":
exten => 123,1,Set(foo=${QUEUE_MEMBER_COUNT(supportSchlange)}) 
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'QUEUE_MEMBER_COUNT' =- 

[Syntax]
QUEUE_MEMBER_COUNT(<queuename>)

[Synopsis]
Count number of members answering a queue

[Description]
Returns the number of members currently associated with the specified queue.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

40. QUEUE_MEMBER_LIST()

QUEUE_MEMBER_LIST(Warteschlange)

Gibt eine durch Komma getrennte Liste der Agenten auf einer Warteschleife zurück.

; Agenten in der "supportSchlange":
exten => 123,1,Set(foo=${QUEUE_MEMBER_LIST(supportSchlange)})
; gibt z.B. 5,8,33 zurück
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'QUEUE_MEMBER_LIST' =- 

[Syntax]
QUEUE_MEMBER_LIST(<queuename>)

[Synopsis]
Returns a list of interfaces on a queue

[Description]
Returns a comma-separated list of members associated with the specified queue.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

41. QUOTE()

QUOTE(String)

Escaped Anführungszeichen innerhalb eines Strings.

; wenn ${var} >>Die "Asterisk"-PBX<< ist
exten => 123,1,Set(foo=${QUOTE(${var})})
; dann wird >>Die \"Asterisk\"-PBX<< zurückggeben
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'QUOTE' =- 

[Syntax]
QUOTE(<string>)

[Synopsis]
Quotes a given string, escaping embedded quotes as necessary

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

42. RAND()

RAND(min,max)

(ab Asterisk 1.4 verfügbar)

Gibt ein Zahl zwischen min und max (beide einschließlich) zurück. Der Default für min ist 0, der für max ist die größte auf dem System darstellbare Ganzzahl (meist 2147483647).

; einen zufälligen Wert zwischen 1 und 10 (einschließlich) wählen:
exten => 123,1,Set(zufall=${RAND(1,10)})

; Glücksspiel:
exten => 123,1,GotoIf($[${RAND(0,100)} < 25]?gewonnen:verloren)
exten => gewonnen,1,Playback(gewonnen)
exten => gewonnen,n,Goto(123,1)
exten => verloren,1,Playback(verloren)
exten => verloren,n,Goto(123,1)
[Anmerkung]Anmerkung

Vor Asterisk 1.4 muss man stattdessen die Applikation Random() verwenden.

[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'RAND' =- 

[Syntax]
RAND([min][|max])

[Synopsis]
Choose a random number in a range

[Description]
Choose a random number between min and max.  Min defaults to 0, if not
specified, while max defaults to RAND_MAX (2147483647 on many systems).
  Example:  Set(junky=${RAND(1|8)}); 
  Sets junky to a random number between 1 and 8, inclusive.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 90, „Random()

43. REGEX()

REGEX("Ausdruck" String)

Gibt 1 zurück, wenn ein String auf einen regulären Ausdruck passt, sonst 0. Der reguläre Ausdruck kann auch ^ (passt auf den Anfang) und $ (passt auf das Ende) enthalten. Variablen werden vorher ausgewertet.

Der Parser in Asterisk 1.2 arbeitet nicht sauber und kann durch besondere Zeichen wie $ oder geschweifte Klammern im Ausdruck verwirrt werden. Als Workaround definiert man sich z.B. eine Variable ${dollar} mit dem Inhalt "$" und verwendet diese statt des $-Zeichens.

; prüfen, ob der Ausdruck "[abc][0-9]" auf den String "b3" passt:
exten => 123,1,Set(foo=${REGEX("[abc][0-9]" b3)})   ; gibt 1 zurück

; prüfen, ob ${str} mit 0 endet, Asterisk 1.4:
exten => 123,1,Set(foo=${REGEX("0$" ${str})})

; in Asterisk 1.2 behilft man sich so:
exten => 123,1,Set(foo=${REGEX("0${dollar}" ${str})})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'REGEX' =- 

[Syntax]
REGEX("<regular expression>" <data>)

[Synopsis]
Regular Expression

[Description]
Returns 1 if data matches regular expression, or 0 otherwise.
Please note that the space following the double quotes separating the regex from the data
is optional and if present, is skipped. If a space is desired at the beginning of the data,
then put two spaces there; the second will not be skipped.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

44. SET()

SET(Variablenname=Ausdruck)

Kann innerhalb von verschachtelten Ausdrücken verwendet werden, um Variablen auf einen Wert zu setzen. (Nicht verwechseln mit der Applikation Set()!)

; ${a}, ${b}, ${c}, und ${d} auf 8 setzen:
exten => 123,1,Set(a=${SET(b=${SET(c=${SET(d=8)})})})

; es ist aber meist vorteilhafter, zugunsten der Übersichtlichkeit
; ein oder zwei Zeilen mehr zu schreiben
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'SET' =- 

[Syntax]
SET(<varname>=[<value>])

[Synopsis]
SET assigns a value to a channel variable

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 110, „Set()

45. SHA1()

SHA1(String)

Berechnet den SHA1-Hash (Digest, Prüfsumme) eines Strings (hexadezimale Rückgabe).

; den SHA1-Hash von "Hallo Welt" berechnen:
exten => 123,1,Set(sha1hash=${SHA1(Hallo Welt)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'SHA1' =- 

[Syntax]
SHA1(<data>)

[Synopsis]
Computes a SHA1 digest

[Description]
Generate a SHA1 digest via the SHA1 algorythm.
 Example:  Set(sha1hash=${SHA1(junky)})
 Sets the asterisk variable sha1hash to the string '60fa5675b9303eb62f99a9cd47f9f5837d18f9a0'
 which is known as his hash

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

46. SIPCHANINFO()

SIPCHANINFO(Feld)

Gibt Daten des aktuellen SIP-Kanals zurück. Gültige Felder sind:

peerip
Die IP-Adresse des Peers
recvip
Die ursprüngliche IP-Adresse des Peers
from
Die URI aus dem From:-Header
uri
Die URI aus dem Contact:-Header
useragent
Der User-Agent (Client-Programm)
peername
Der Name des Peers
; den Namen des Peers abfragen:
exten => 123,1,Set(foo=${SIPCHANINFO(peername)}) 
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'SIPCHANINFO' =- 

[Syntax]
SIPCHANINFO(item)

[Synopsis]
Gets the specified SIP parameter from the current channel

[Description]
Valid items are:
- peerip                The IP address of the peer.
- recvip                The source IP address of the peer.
- from                  The URI from the From: header.
- uri                   The URI from the Contact: header.
- useragent             The useragent.
- peername              The name of the peer.
- t38passthrough        1 if T38 is offered or enabled in this channel, otherwise 0

Differenz zum internen Hilfetext in Asterisk 1.2: 

18d17
< - t38passthrough        1 if T38 is offered or enabled in this channel, otherwise 0

47. SIPPEER()

SIPPEER(Peername[,Feld])

Gibt Informationen über einen SIP-Peer zurück. Gültige Felder sind:

ip
(Default) Die IP-Adresse des Peers
mailbox
Die eingestellte Mailbox
context
Der eingestellte Context
expire
Die Unix-Zeit (Epoch), wann die Verbindung das nächste Mal ausläuft.
dynamic
Ob dynamic=yes gesetzt ist (yes|no).
callerid_name
Der eingestellte Caller-ID-Name
callerid_num
Die eingestellte Caller-ID-Nummer
codecs
Die verfügbaren Codecs
status
Der Status (wenn qualify=yes gesetzt ist)
regexten
Die Registrierungs-Extension (regexten)
limit
Begrenzung der Anzahl der Anrufe
curcalls
Die Anzahl der derzeitigen Anrufe (nur wenn ein Limit gesetzt ist)
language
Die Default-Sprache für diesen Peer
useragent
Der User-Agent des Peers
codec[x]
Der Codec Nummer x (0-basiert) in der Reihenfolge der Präferenz
accountcode
Die Abrechnungsnummer im CDR für Gespräche mit diesem Peer
; die IP-Adresse des Peers 2001:
exten => 123,1,Set(sip_ip=${SIPPEER(2001,ip)})
; der bevorzugte Codec des Peers:
exten => 123,n,Set(sip_ip=${SIPPEER(2001,codec[0])})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'SIPPEER' =- 

[Syntax]
SIPPEER(<peername>[|item])

[Synopsis]
Gets SIP peer information

[Description]
Valid items are:
- ip (default)          The IP address.
- mailbox               The configured mailbox.
- context               The configured context.
- expire                The epoch time of the next expire.
- dynamic               Is it dynamic? (yes/no).
- callerid_name         The configured Caller ID name.
- callerid_num          The configured Caller ID number.
- codecs                The configured codecs.
- status                Status (if qualify=yes).
- regexten              Registration extension
- limit                 Call limit (call-limit)
- curcalls              Current amount of calls 
                        Only available if call-limit is set
- language              Default language for peer
- accountcode           Account code for this peer
- useragent             Current user agent id for peer
- codec[x]              Preferred codec index number 'x' (beginning with zero).

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< SIPPEER(<peername>[|item])
---
> SIPPEER(<peername>[:item])

Siehe auch. Abschnitt 26, „IAXPEER()

48. SIP_HEADER()

SIP_HEADER(Headername[,Nummer])

Gibt einen Header aus dem SIP-Protokoll zurück. Diese Funktion werden Sie nur benötigen, wenn Sie genaue Kenntnis des SIP-Protokolls haben. Da manche Header (wie Via) mehrfach vorkommen können, kann man mit Nummer (1-basiert) angeben, welche Zeile man haben will.

; den TO-Header abfragen:
exten => 123,1,Set(DN=${SIP_HEADER(TO):5})
exten => 123,2,Set(DN=${CUT(DN,@,1)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'SIP_HEADER' =- 

[Syntax]
SIP_HEADER(<name>[,<number>])

[Synopsis]
Gets the specified SIP header

[Description]
Since there are several headers (such as Via) which can occur multiple
times, SIP_HEADER takes an optional second argument to specify which header with
that name to retrieve. Headers start at offset 1.

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 117, „SIPAddHeader()

49. SORT()

SORT(Schlüssel1:Wert1[,Schlüssel2:Wert2[,...]])

Sortiert eine Liste von Schlüsseln und Werten anhand der Werte (als Fließkommazahlen) und gibt eine durch Komma getrennte Liste der Schlüssel zurück.

; Liste sortieren:
exten => 123,1,Set(foo=${SORT(vier:4|haelfte:.5|hundert:100|pi:3.14|e:2.71828|minuseins:-1)})
; foo ist jetzt "minuseins,haelfte,e,pi,vier,hundert"
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'SORT' =- 

[Syntax]
SORT(key1:val1[...][,keyN:valN])

[Synopsis]
Sorts a list of key/vals into a list of keys, based upon the vals

[Description]
Takes a comma-separated list of keys and values, each separated by a colon, and returns a
comma-separated list of the keys, sorted by their values.  Values will be evaluated as
floating-point numbers.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

50. STAT()

STAT(Flag,Dateiname)

(ab Asterisk 1.4 verfügbar)

Gibt Status-Informationen über eine Datei zurück (vgl. die Shell-Befehl test und stat). Mit Dateiname ist ein Datei-Knoten („inode“) gemeint, kann also auch ein Verzeichnis oder eine besondere Datei sein. Flag ist eines der folgenden:

d
Prüft, ob die Datei ein Verzeichnis ist.
e
Prüft, ob die Datei existiert.
f
Prüft, ob die Datei eine reguläre Datei ist (im Gegensatz zu besonderen Dateien: block special file, character special file, symbolic link, named pipe, socket).
m
Gibt den Datei-Modus zurück (oktal), also die Rechte, z.B. 0754.
s
Gibt die Datei-Größe in Bytes zurück.
A
Gibt die Unix-Time des letzten Zugriffs zurück (access).
C
Gibt die Unix-Time zurück, wann sich der Knoten (inode) zuletzt geändert hat (change).
M
Gibt die Unix-Time der letzten Veränderung zurück (modification).
; letzte Veränderung der Datei /etc/crontab abfragen:
exten => 123,1,Set(foo=${STAT(M,/etc/crontab)})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'STAT' =- 

[Syntax]
STAT(<flag>,<filename>)

[Synopsis]
Does a check on the specified file

[Description]
flag may be one of the following:
  d - Checks if the file is a directory
  e - Checks if the file exists
  f - Checks if the file is a regular file
  m - Returns the file mode (in octal)
  s - Returns the size (in bytes) of the file
  A - Returns the epoch at which the file was last accessed
  C - Returns the epoch at which the inode was last changed
  M - Returns the epoch at which the file was last modified

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

51. STRFTIME()

STRFTIME([Unixtime][,[Zeitzone][,Format]])

Formatiert eine Unix-Zeit (Epoch), umgerechnet in die angegebene Zeitzone, in einem bestimmten Format. Wenn Unixtime nicht angegeben wird, gilt die aktuelle Zeit. Der Default der Zeitzone ist die des Rechners. Mögliche Zeitzonen finden Sie in /usr/share/zoneinfo/. Die Formatierungsplatzhalter sind die wie in der C-Funktion strftime() (siehe man strftime), der Default ist %c, also die Lokale-abhängige Darstellung von Datum und Zeit.

; Datum/Zeit im Format JJJJ-MM-TT HH:MM:SS
exten => 123,1,Set(zeit=${STRFTIME(${EPOCH},Europe/Berlin,"%Y-%m-%d %H:%M:%S")})
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'STRFTIME' =- 

[Syntax]
STRFTIME([<epoch>][|[timezone][|format]])

[Synopsis]
Returns the current date/time in a specified format.

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

5c5
< STRFTIME([<epoch>][|[timezone][|format]])
---
> STRFTIME([<epoch>][,[timezone][,format]])

52. STRPTIME()

STRPTIME(DatumZeit|Zeitzone|Format)

(ab Asterisk 1.4 verfügbar)

Wandelt einen formatierten Datums-/Zeit-String unter Berücksichtigung der Zeitzone in einen Unix-Timestamp um.

; Datum/Zeit im Format JJJJ-MM-TT HH:MM:SS in ${zeit} speichern:
exten => 123,1,Set(zeit=${STRFTIME(${EPOCH},Europe/Berlin,"%Y-%m-%d %H:%M:%S")})
; ${zeit} wieder in einen Timestamp umwandeln:
exten => 123,n,Set(timestamp=${STRPTIME(${zeit}|Europe/Berlin|%Y-%m-%d %H:%M:%S)} 
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'STRPTIME' =- 

[Syntax]
STRPTIME(<datetime>|<timezone>|<format>)

[Synopsis]
Returns the epoch of the arbitrary date/time string structured as described in the format.

[Description]
This is useful for converting a date into an EPOCH time, possibly to pass to
an application like SayUnixTime or to calculate the difference between two
date strings.

Example:
  ${STRPTIME(2006-03-01 07:30:35|America/Chicago|%Y-%m-%d %H:%M:%S)} returns 1141219835

Differenz zum internen Hilfetext in Asterisk 1.2: 

-- in Version 1.2 nicht vorhanden --

Siehe auch. Abschnitt 51, „STRFTIME()

53. TIMEOUT()

TIMEOUT(Art)

Liest/setzt einen Timeout auf einem Kanal. Diese Arten von Timeouts sind möglich:

absolute
Die gesamte, maximale Zeit, die ein Anruf dauern darf. Beim Erreichen dieser Dauer wird auf die Extension T (absolute timeout) weitergeleitet oder aufgelegt. Ein Wert von 0 bedeutet keine Begrenzung. Mit dem Aufruf dieser Funktion wird die vorangehende Einstellung ungültig und neu gesetzt. Der Timeout beginnt zum Zeitpunkt des Aufrufs dieser Funktion, nicht mit dem Beginn des Anrufs.
digit
Die maximale Zeit, die zwischen dem Eintippen von Ziffern erlaubt ist. Beim Überschreiten wird die Eingabe des Users als beendet angesehen. Wenn dann die Extension nicht existiert, wird auf die Extension i (invalid) weitergeleitet oder aufgelegt. Der Default ist 5 Sekunden.
response
Die maximale Zeit, die auf eine Eingabe vom User gewartet wird. Wenn der User keine Extension tippt, wird auf die Extension t (timeout) weitergeleitet oder aufgelegt. Default: 10 Sekunden.
; absoluten Timeout abfragen:
exten => 123,1,Set(foo=${TIMEOUT(absolute)})

; Anruf-Dauer auf maximal 60 Sekunden begrenzen:
exten => 123,1,Set(TIMEOUT(absolute)=60)
exten => 123,n,Dial(SIP/${EXTEN})
exten => T,1,Playback(tut-uns-leid) 
exten => T,n,Playback(auf-wiederhoeren) 
exten => T,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'TIMEOUT' =- 

[Syntax]
TIMEOUT(timeouttype)

[Synopsis]
Gets or sets timeouts on the channel.

[Description]
Gets or sets various channel timeouts. The timeouts that can be
manipulated are:

absolute: The absolute maximum amount of time permitted for a call.  A
     setting of 0 disables the timeout.

digit:    The maximum amount of time permitted between digits when the
          user is typing in an extension.  When this timeout expires,
          after the user has started to type in an extension, the
          extension will be considered complete, and will be
          interpreted.  Note that if an extension typed in is valid,
          it will not have to timeout to be tested, so typically at
          the expiry of this timeout, the extension will be considered
          invalid (and thus control would be passed to the 'i'
          extension, or if it doesn't exist the call would be
          terminated).  The default timeout is 5 seconds.

response: The maximum amount of time permitted after falling through a
     series of priorities for a channel in which the user may
     begin typing an extension.  If the user does not type an
     extension in this amount of time, control will pass to the
     't' extension if it exists, and if not the call would be
     terminated.  The default timeout is 10 seconds.

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

54. TXTCIDNAME()

TXTCIDNAME(Nummer)

Schlägt den Namen des Anrufers mittels DNS (im TXT-Record) nach.

exten => 123,1,Set(foo=${TXTCIDNAME(012345678)})

55. URIDECODE()

URIDECODE(String)

Dekodiert einen URI-kodierten String. Siehe URIENCODE().

; "www.beispiel.de/?seite=Hallo%20Welt" dekodieren:
exten => 123,1,Set(foo=${URIDECODE("Hallo%20Welt")})
; ergibt "Hallo Welt"
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'URIDECODE' =- 

[Syntax]
URIDECODE(<data>)

[Synopsis]
Decodes a URI-encoded string according to RFC 2396.

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

8c8
< Decodes a URI-encoded string according to RFC 2396.
---
> Decodes an URI-encoded string.

56. URIENCODE()

URIENCODE(String)

URI-kodiert einen String, d.h., dass Zeichen, die nicht in einer URI vorkommen dürfen, durch Escape-Sequenzen der Form %XX ersetzt werden, wobei XX der hexadezimale Wert des Zeichens ist.

; "Hallo Welt" kodieren:
exten => 123,1,Set(foo=${URIENCODE("Hallo Welt")})
; ergibt "Hallo%20Welt"
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'URIENCODE' =- 

[Syntax]
URIENCODE(<data>)

[Synopsis]
Encodes a string to URI-safe encoding according to RFC 2396.

[Description]
Not available

Differenz zum internen Hilfetext in Asterisk 1.2: 

8c8
< Encodes a string to URI-safe encoding according to RFC 2396.
---
> Encodes a string to URI-safe encoding.

57. VMCOUNT()

VMCOUNT(VM-Box[@Context][|Ordner])

Gibt die Anzahl der Voicemailnachrichten in einer Voicemailbox zurück. Der Default-Context ist default, der Default-Ordner ist INBOX.

; Anzahl der Nachrichten in der Mailbox 456 abfragen:
exten => 123,1,Answer()
exten => 123,n,Set(anzahl=${VMCOUNT(456)})
exten => 123,n,Playback(vm-youhave)          ; "Sie haben"
exten => 123,n,GotoIf($[ ${anzahl} = 0 ]?keine:neue)

exten => 123,10(keine),Playback(vm-no)       ; "keine"
exten => 123,n,Goto(weiter)

exten => 123,20(neue),SayNumber($COUNT)      ; Anzahl
exten => 123,n,Goto(weiter)

exten => 123,30(weiter),Playback(vm-INBOX)   ; "neue"
exten => 123,n,Playback(vm-messages)         ; "Nachrichten"
exten => 123,n,Playback(vm-goodbye)          ; "Auf Wiederhören!"
exten => 123,n,Hangup()
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about function 'VMCOUNT' =- 

[Syntax]
VMCOUNT(vmbox[@context][|folder])

[Synopsis]
Counts the voicemail in a specified mailbox

[Description]
  context - defaults to "default"
  folder  - defaults to "INBOX"

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch Abschnitt 62, „MailboxExists()



[115] Command Line Interface, kann durch asterisk -r aufgerufen werden

[116] Automatic Number Identification

[117] Dialed/Destination Number Identification Service

[118] Redirected Dialed Number Identification Service

[119] Call Data Record, siehe CDR

[120] Automated Message Accounting

[121] Diese Beschränkung auf 64 Gruppen scheint rein willkürlich zu sein, und dürfte für den ein oder anderen Anwender nicht ausreichen.


$Revision:473 $

Beta-Version!

2.0 Entwickler-Version des Asterisk Buches. Die 1.0 stabile Version ist natürlich noch online. Die 2.0er Version enthält viele Neuerungen, ist aber noch nicht 100% fehlerfrei. Im Zweifelsfall bitte auf die 1.0er Version gehen.

Bitte melden Sie Fehler und Feedback zur neuen 2.0er Version per E-Mail an den Autor.

Asterisk-Tag.org 2008

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

Werbung