Asterisk bringt standardmäßig eine Datenbank mit, die die Berkeley DB (BDB)[78] als Datenbank-Engine einsetzt. In dieser Datenbank-Engine wird immer einem Schlüssel (key) ein Wert (value) zugeordnet, wobei Schlüssel in Familien (family) zusammengefasst werden.
Warnung | |
---|---|
Bis einschließlich Asterisk Version 1.2 wurden die folgenden Befehle eingesetzt:
Diese Befehle werden ab der Version 1.4 nicht mehr unterstützt.
Aus diesem Grund wird hier nur die neue Variante über die Funktion
|
Auf diese Datenbank kann mit der Funktion DB()
zugegriffen werden (siehe Abschnitt 17, „DB()
“).
Die Funktion DB()
kann innerhalb der Applikation
Set()
aufgerufen werden. Soll in der Family
obst
der Eintrag apfel
den Wert
20
bekommen, so geschieht das mit folgendem
Aufruf:
exten => 1234,1,Set(DB(obst/apfel)=20)
Die Werte in der Datenbank können mit der Funktion
DB()
in der Form ${DB(family/key)}
abgerufen
werden. Um den Inhalt des Eintrags apfel
in der Family
obst
auf dem Command Line Interface auszugeben, kann man
folgenden Aufruf ausführen:
exten => 1234,1,NoOp(obst/apfel hat den Wert ${DB(obst/apfel)})
Soll der Inhalt dieses Datenbankfeldes in der Variablen
apfelmenge
gespeichert werden, so kann dies mit
Set()
erfolgen:
exten => 1234,1,Set(apfelmenge=${DB(obst/apfel)})
Die beiden Applikationen DBdel()
und
DBdeltree()
können zum Löschen von Datenbankeinträgen
genutzt werden.
In der Asterisk-Version 1.2 löscht DBdel()
einen
einzelnen Eintrag in der Datenbank. Soll der Key apfel
in
der Family obst
gelöscht werden, so geschieht das wie
folgt:
exten => 1234,1,DBdel(obst/apfel)
In der Asterisk-Version 1.4 ist DBdel() deprecated, und man soll
die Funktion DB_DELETE()
benutzen. Der Aufruf
kann wie folgt erfolgen:
exten => 1234,1,NoOp(${DB_DELETE(obst/apfel)})
Siehe
auch Abschnitt 33, „DBdel()
“ und Abschnitt 18, „DB_DELETE()
“.
Soll eine ganze Family gelöscht werden, so verwendet man
DBdeltree()
. Die Family obst
kann mit
exten => 1234,1,DBdeltree(obst)
gelöscht werden.
Siehe auch: Abschnitt 34, „DBdeltree()
“
[78] Die Berkeley-Datenbank (Berkeley DB) ist eine hochperformante, eingebettete Datenbank-Bibliothek mit Programmierschnittstellen zu C, C++, Java, Perl, Python, Tcl und vielen weiteren Programmiersprachen. Die Berkeley DB speichert beliebige Schlüssel- oder Datenpaare und unterstützt mehrere Datenelemente für einen einzelnen Schlüssel. Die Berkeley DB ermöglicht Tausende von simultanen Threads zum Manipulieren der Datenbanken, die bis zu 256 Terabyte groß sein können, und läuft auf einer großen Anzahl von Systemen, unter anderem auf den meisten UNIX-artigen und Windows-Systemen und auch auf Echtzeitbetriebssystemen. [Zitiert aus http://de.wikipedia.org/wiki/Berkeley_DB]
AMOOCON 2010
Noch kein Ticket? Dann wird es Zeit. Nur noch wenige Tage.
- Infos unter www.amoocon.de.
- twitter.com/AMOOCON